Ir a la página de FAQs de Eric Ir al mapa del sitio de Eric $Date: 1997/09/16 19:25:13 $

 

Traducido por:
C. Ballardi
cballard@santafe.com.ar

Como transformarse en un hacker

¿Porqué existe este documento?

En mi trabajo como editor del Archivo de la jerga, recibo frecuentemente mensajes de novatos que consultan "¿cómo puedo aprender a ser un hacker mágico?". Triste es decir que no parece haber ninguna FAQ ni documento Web que trate este tema vital, así que ahí va el mío.

Si Ud. está leyendo una copia de este documento fuera de la red, la versión original en inglés actualizada está en http://www.ccil.org/~esr/faqs/hacker-howto.html, y la traducción al castellano está en http://usuarios.santafe.com.ar/~cballard/pf/hacker-howto.es.html.

¿Qué es un hacker?

El Archivo de la jerga contiene un montón de definiciones del término `hacker', la mayoría de las cuales tiene que ver con la afición a lo técnico, y la capacidad de deleitarse en la solución de problemas y al sobrepujar los límites. Si Ud. quiere saber como transformarse en hacker, bien, sólo dos son realmente relevantes.

Existe una comunidad, una cultura compartida, de programadores expertos y brujos de redes, que cuya historia se puede rastrear décadas atrás, hasta las primeras minicomputadoras de tiempo compartido y los primigenios experimentos de ARPAnet. Los miembros de esta cultura acuñaron el término `hacker'. Los hackers construyeron la Internet. Los hackers hicieron del sistema operativo UNIX lo que es en la actualidad. Los hackers hacen andar Usenet. Los hackers hacen que funcione la WWW. Si Ud. es parte de esta cultura, si Ud. ha contribuído a ella y otra gente lo llama a Ud. hacker, entonces Ud. es un hacker.

La mentalidad de hacker no está confinada a esta cultura de hackers en software. Hay personas que aplican la actitud de hacker a otras cosas, como electrónica o música -- de hecho, puede Ud. encontrarla en los más altos niveles de cualquier ciencia o arte. Los hackers en software reconocen estos espíritus emparentados y los denominan `hackers' también -- y algunos sostienen que la naturaleza de hacker es en realidad independiente del medio particular en el cual el hacker trabaja. En el resto de este documento nos concentraremos en las habilidades y actitudes de los hackers en software, y en las tradiciones de la cultura compartida que originó el término `hacker'.

Existe otro grupo de personas que a los gritos se autodenominan hackers, pero no lo son. Éstas son personas (principalmente varones adolescentes) que se divierten ingresando ilegalmente en computadoras y estafando al sistema de telefonía. Los hackers de verdad tienen un nombre para esas personas: `crackers', y no quieren saber nada con ellos. Los hackers de verdad opinan que la mayoría de los crackers son perezosos, irresponsables, y no muy brillantes, y fundamentan su crítica en que ser capaz de romper la seguridad no lo hace a uno un hacker, de la misma manera que ser capaz de encender un auto con un puente en la llave no lo puede transformar en ingeniero en automotores. Desafortunadamente, muchos periodistas y editores utilizan erróneamente la palabra `hacker' para describir a los crackers; esto es causa de enorme irritación para los verdaderos hackers.

La diferencia básica es esta: los hackers construyen cosas, los crackers las rompen.

Si Ud. desea ser un hacker, continúe leyendo. Si Ud. quiere ser un cracker, mejor mire en el foro de discusión alt.2600 y prepárese para soportar la dura realidad cuando descubra que no es tan listo como se cree. Y eso es todo lo que voy a decir acerca de los crackers.

La actitud del hacker

Los hackers resuelven problemas y construyen cosas, y creen en la libertad y la ayuda voluntaria mutua. Para ser aceptado como hacker, Ud. deberá comportarse como si tuviera esta clase de actitud en su interior. Y para comportarse como si tuviera esta actitud, deberá creer en verdad en dicha actitud.

Pero si Ud. piensa que el cultivo de las actitudes de hacker es una forma de ganar aceptación en la cultura, malinterpretará el tema. La transformación en la clase de persona que cree en esas cosas es importante para ayudarlo a aprender y mantenerlo motivado. Como en las artes creativas, el modo más efectivo de transformarse en un maestro es imitar la mentalidad de los maestros -- no sólo intelectualmente, sino además emocionalmente.

Por lo tanto, si Ud. quiere ser un hacker, repita lo siguiente hasta que lo crea:

1. El mundo está lleno de problemas fascinantes que esperan ser resueltos.

Es muy divertido ser un hacker, pero es la clase de diversión que requiere mucho esfuerzo. El esfuerzo requiere motivación. Los atletas exitosos obtienen su motivación a partir una clase de placer físico que surge de trabajar su cuerpo, al forzarse a sí mismos más allá de sus propios límites físicos. De manera similar, para ser un hacker Ud. deberá sentir un estremecimiento de tipo primitivo cuando resuelve un problema, aguza sus habilidades, y ejercita su inteligencia.

Si Ud. no es la clase de persona que naturalmente siente de esta manera las cosas, necesitará poder experimentarlas para llegar a ser un hacker. De otra manera, encontrará que su energía para `hackear' será absorbida por otras distracciones como sexo, dinero y aprobación social.

(Además deberá desarrollar cierta clase de fe en su propia capacidad de aprendizaje -- la creencia de que aún cuando pueda no saber todo lo que necesita para resolver el problema, si agarra una parte de él y aprende desde allí, aprenderá lo suficiente para resolver la siguiente parte, y así, hasta que lo resuelva completo.)

2. Nadie debería tener que resolver un problema dos veces.

Los cerebros creativos son un recurso valioso y limitado. No deben desperdiciarse reinventando la rueda cuando hay tantos y tan fascinantes problemas nuevos esperando por allí.

Para comportarse como hacker, Ud. debe creer que el tiempo empleado para pensar por los otros hackers es precioso -- tanto, que es casi una obligación moral para Ud. el compartir la información, resolver los problemas y luego exponer la solución de manera que los otros hackers puedan resolver nuevos problemas, en lugar de enfrentarse perpetuamente con los viejos.

(No tiene Ud. que pensar que está obligado a regalar todo su producto creativo, aunque aquellos hackers que lo hacen son los que obtienen más respeto de los demás hackers. Se considera consistente con los valores de un hacker que se venda lo suficiente para pagar la comida, la casa y los gastos relacionados con la computadora. También es consistente la utilización de estas habilidades de hacker para sostener a su familia, o incluso hacerse rico, siempre que Ud. no se olvide que es un hacker mientras lo hace.)

3. Lo aburrido y lo rutinario es malo.

Los hackers (y las personas creativas en general) nunca debieran ser sometidas a trabajos rutinarios, porque cuando esto sucede significa que no están haciendo lo único que deben hacer: resolver nuevos problemas. Este desperdicio de talento daña a todo el mundo. Por ello, las tareas rutinarias, repetitivas y aburridas no sólo son displacenteras, sino intrínsecamente malas.

Para comportarse como hacker, debe Ud. creer en esto lo suficiente como para automatizar aquellas porciones de tareas todo lo que se pueda, no solamente por Ud., sino para beneficio de todos los demás (especialmente otros hackers).

(Existe una aparente excepción a esta regla. Los hackers hacen cosas a veces que pueden parecer repetitivas o aburridas pero como ejercicio para lograr limpieza mental, o para obtener cierta habilidad, u obtener cierta clase de experiencia que no podría tener de otro modo. Pero esto es una elección -- ninguna persona pensante debiera nunca ser forzada a hacer cosas aburridas.)

4. La libertad es buena.

Los hackers son naturalmente anti-autoritaristas. Cualquiera que le pueda dar órdenes, puede hacer que deba dejar de resolver ese problema con el cual está Ud. fascinado -- y, debido a la manera en la cual trabajan las mentes autoritarias, encontrarán alguna razón espantosamente estúpida para hacerlo. Por eso, la actitud autoritaria debe ser combatida donde sea que se la encuentre, pues si se la deja lo asfixiará, tanto a Ud. como a los otros hackers.

(Esto no es lo mismo que combatir toda autoridad. Los niños necesitan guía, y los criminales restricciones. Un hacker puede estar de acuerdo en aceptar cierta clase de autoridad para poder obtener algo que desea más que el tiempo que gasta en seguir órdenes. Pero éste es un pacto limitado, conciente; la clase de sumisión que desean los autoritarios no está en oferta.)

Los autoritarios florecen en la censura y el secreto. Y desconfían de la cooperación voluntaria y el intercambio de información -- sólo les agrada la cooperación que tienen bajo su control. Así que para comportarse como hacker, Ud. deberá desarrollar una hostilidad instintiva hacia la censura, el secreto, y la utilización de la fuerza o el fraude para someter a adultos responsables. Y deberá estar preparado para actuar en consecuencia.

5. La actitud no es sustituto para la competencia.

Para ser un hacker, deberá desarrollar algunas de esas actitudes. Pero tener la actitud solamente no lo transformará en hacker, como tampoco lo puede transformar en un atleta campeón o en estrella del rock. Para transformarse en hacker necesitará inteligencia, práctica, dedicación, y trabajo pesado.

Por lo tanto, debe aprender a desconfiar de la actitud y respetar la competencia en todas sus formas. A ningún hacker le gusta perder el tiempo con quienes adoptan la pose de hacker, sino que veneran la competencia -- especialmente la competencia al hackear, pero la competencia encualquier ámbito está bien. Especialmente buena es la competencia en habilidades exigentes que pocos pueden dominar, y la mejor es la competencia en habilidades exigentes que involucran agudeza mental, maña y concentración.

Si Ud. respeta la competencia, disfrutará desarrollándola en sí mismo -- el pesado trabajo y la dedicación se transformarán en una especie de juego intenso, y no una rutina. Y éso es lo vital para transformarse en hacker.

Habilidades básicas en un hacker

La actitud del hacker es vital, pero más aún lo son las habilidades. La actitud no es sustituto para la competencia, y existe un cierto conjunto de herramientas básicas que Ud. debe dominar antes que cualquier hacker sueñe con llamarlo de ese modo.

Este conjunto cambia lentamente a lo largo del tiempo a medida que la tecnología crea nuevas habilidades y descarta otras por obsoletas. Por ejemplo, se incluía la programación en lenguaje de máquina, y no se hablaba de HTML hasta hace poco. Pero hacia finales de 1996, es claro que se debe incluir lo siguiente:

1. Aprenda a programar.

Esta es, por supuesto, la habilidad fundamental del hacker. En 1997 el único lenguaje que Ud. debe conocer sí o sí es C. Pero no crea que podrá ser un hacker, siquiera un programador, si conoce solamente un único lenguaje -- Ud. debe aprender como pensar en los problemas de programación de una manera general, independiente de cualquier lenguaje. Para ser un hacker de verdad, Ud. debe llegar al punto en el cual puede aprender un lenguaje nuevo en días, relacionando lo que está en el manual con lo que ya sabe de antes. Esto significa que Ud. debe aprender varios lenguajes muy diferentes entre sí.

Además de C, Ud. deberá aprender al menos LISP y Perl (y Java está presionando fuerte por un lugar en esa lista). Además de ser los lenguajes más importantes para hackear, a su vez representan enfoques muy diferentes a la tarea de la programación, y lo educarán de distintas y valiosas maneras.

No puedo explicar en detalle en este documento como puede aprender a programar -- es una habilidad compleja. Pero puedo adelantarle que los libros y los cursos no servirán (muchos, y tal vez la mayoría de los mejores hackers son autodidactas). Lo que sí servirá es (a) leer código y (b) escribir código.

El aprendizaje de la programación es como aprender a escribir bien en lenguaje natural. La mejor manera de aprender es leer algo de las cosas escritas por los maestros del estilo, luego escribir algunas cosas Ud. mismo, leer mucho más, escribir un poco más ... y repetir esto hasta que lo que escribe empieza a mostrar la clase de fuerza y economía que aprecia en sus modelos.

Antes era difícil encontrar código de buena calidad para leer, porque había pocos programas de cierta magnitud disponibles en código fuente de tal manera que los nóveles hackers pudieran meterles mano. Esta situación ha cambiado dramáticamente: software libre, herramientas de programación libres, y sistemas operativos libres (todo disponible con su código fuente, y todo ello hecho por hackers) están ampliamente disponibles en la actualidad. Lo que me lleva elegentemente a nuestro siguiente tema...

2. Obtenga uno de los UNIXs libres y aprenda a usarlo y a ponerlo en funcionamiento.

Doy por sentado que Ud. tiene una computadora personal o puede conseguir acceso a una de ellas (a estos muchachos de hoy día les resulta tan sencillo obtenerlas :-)). El paso con mucho más importante que cualquier novato puede dar en el camino de adquirir las habilidades de un hacker es obtener una copia de Linux o alguno de los otros Unixs tipo BSD libres, instalarlo en una máquina personal, y hacerlo funcionar.

Si, es cierto que existen otros sistemas operativos en el mundo además de Unix. Pero sólo pueden encontrarse en formato binario -- Ud. no puede ni leer el código ni modificarlo. Si intenta aprender a hackear en una máquina DOS, Windows o en un MacOS se sentirá como si trata de bailar metido en un cajón.

Además de eso, Unix es el sistema operativo de la Internet. Si bien Ud. puede aprender a usar la Internet sin saber Unix, nunca podrá ser un hacker en Internet sin conocerlo. Por este motivo, la cultura hacker actual está centrada fuertemente en Unix. (Esto no siempre fue así, e incluso la situación le desagrada a algunos de los hackers más viejos, pero la simbiosis entre Unix y la Internet es tan fuerte que hasta la energía de Microsoft parece incapaz de hacerle mella.)

Así que, obtenga un Unix -- personalmente me gusta Linux, pero hay otros. Apréndalo. Hágalo funcionar. Métale mano, anímese. Comuníquese en Internet mediante él. Lea el código. Modifíquelo. En ese sistema se incluyen las mejores herramientas de programación (que incluyen C, Lisp y Perl) de lo que cualquier sistema operativo de Microsoft ni siquiera podría soñar, además se divertirá y se sumergirá en un caudal de conocimientos de tal magnitud que nunca hubiera imaginado, hasta que en cierto momento, mirando hacia atrás, se dará cuenta que ya es un maestro hacker consumado.

Si quiere saber más acerca del aprendizaje de Unix, mire The Loginataka.

Para meter mano en un Linux, mire en el directorio de distribuciones Linux o en el programa `Linux CD Giveaway' en Sunsite.

3. Aprenda como usar la World Wide Web y escribir en HTML.

La mayoría de las cosas que ha construído la cultura hacker trabajan fuera de la vista del gran público, ayudando en el funcionamiento de fábricas, oficinas y universidades, y carecen de un impacto obvio en la vida de los que no son hackers. La Web es la única gran excepción, y es tan enorme y brillante este juguete de hackers que incluso los políticos admiten que está cambiando el mundo. Sólo por esta razón (y hay un montón de otras igualmente buenas) Ud. debe aprender como trabajar en la Web.

Esto no significa aprender a manejar un navegador (cualquiera puede hacer eso), sino que debe aprender a escribir HTML, el lenguaje de marcas de la Web. Si Ud. aún no sabe como programar, el aprendizaje que implica la escritura de HTML le enseñará algunos de los hábitos mentales que le ayudarán luego con la programación. Así que haga su página personal.

No crea que por tener una página personal está más cerca de ser un hacker. La Web está llena de páginas personales. La mayoría de ellas son sin sentido, basura sin contenido -- basura muy vistosa, pero basura al fin (si desea ver más sobre este tema mire en The HTML Hell Page).

 Para que valga la pena, su página debe tener contenido -- debe ser interesante y/o útil para los otros hackers. Y esto nos lleva al próximo tema...

Status en la Cultura Hacker

De manera similar a muchas otras culturas sin economía monetaria, el hackerismo se basa en la reputación. Ud. está intentando resolver problemas interesantes, pero cuan interesantes son, y cuan buenas son las soluciones que Ud. encuentre, es algo que sólo sus iguales o superiores técnicamente hablando serán capaces de juzgar.

De acuerdo a esto, cuando juega el juego de los hackers, Ud. aprende a puntuarse principalmente en función de los que los otros hackers piensan acerca de sus habilidades (éste es el motivo por el cual Ud. no puede ser un hacker de verdad hasta que otros hackers lo denominen así de manera consistente). Este hecho está empañado por la imagen del trabajo de hacker como trabajo solitario; también por un tabú cultural de los hackers (si bien en la actualidad es menor, aún es fuerte) que impide que se admita al ego o la validación externa como elementos involucrados en la propia motivación.

Específicamente, el hackerismo es lo que los antropólogos denominan cultura de la donación. Ud. gana estatus y reputación no mediante la dominación de las otras personas, no por ser hermoso/a, ni por tener cosas que las otras personas desean, sino por donar cosas. Específicamente, al donar su tiempo, su creatividad, y el resultado de sus habilidades.

Existen básicamente cinco clases de cosas que Ud. puede hacer para obtener el respeto de los hackers:

1. Escribir software libre.

Lo primero (lo más central y más tradicional) es escribir programas que los otros hackers opinen son divertidos o útiles, y donar los fuentes del programa a la cultura hacker para que sean utilizados.

Los más reverenciados semidioses del hackerismo son las personas que han escrito programas de gran magnitud, con grandes capacidades que satisfacen necesidades de largo alcance, y los donan, de tal manera que cualquiera pueda utilizarlos.

2. Ayudar a probar y depurar software libre

También son reconocidas aquellas personas que depuran los errores del software libre. En este mundo imperfecto, inevitablemente pasaremos la mayoría de nuestro tiempo de desarrollo en la fase de depuración. Éste es el motivo por el cual los desarrolladores de software libre piensan que un buen probador-beta (uno que sabe como describir claramente los síntomas, que puede localizar correctamente los problemas, que tolera los errores en una entrega apurada, y que está dispuesto a aplicar unas cuantas rutinas sencillas de diagnóstico) vale su peso en rubíes. Aún contando con un solo probador de éstos puede hacerse que el proceso de depuración pase de ser una prolongada pesadilla que lo deja a uno exhausto, a ser sólo una saludable molestia.

Si Ud. es un novato, trate de encontrar un programa en desarrollo en el cual esté interesado, y sea un buen probador beta. Hay una progresión natural desde ayudar a probar programas, luego ayudar a depurarlos, y más adelante ayudar a modificarlos. Aprenderá un montón de esa manera, y la gente lo ayudará a Ud. más adelante.

3. Publicar información útil.

Otra buena cosa que puede hacer es recolectar y filtrar información útil e interesante y construir páginas Web, o documentos como PF (Preguntas Frecuentes, FAQ en inglés), y ponerlos a disposición de los demás.

La gente que mantiene las PF (FAQ) técnicas más importantes gozan de casi tanto respeto como los autores de software libre.

4. Ayudar a mantener en funcionamiento la infraestructura.

La cultura hacker (y el desarrollo ingenieril de la Internet, para el caso) funciona gracias al trabajo voluntario. Existe una gran cantidad de trabajo necesario pero sin glamour que debe hacerse para que esto siga marchando -- administrar listas de correo, moderar foros de discusión, mantener sitios donde se archivan grandes cantidades de software, desarrollar RFCs y otros estándares técnicos.

La gente que desarrolla estas actividades goza de mucho respeto, porque todos saben que esos trabajos son grandes consumidores de tiempo y no tan divertidos como meterse con el código. Los que lo llevan adelante demuestran su dedicación.

5. Hacer algo por la cultura hacker en sí misma.

Finalmente, Ud. puede servir y propagar la cultura hacker en sí misma (por ejemplo, escribiendo un texto acerca de como transformarse en hacker :-)). Esto no es algo en lo cual estará en posición de hacer hasta que sea conocido en el ambiente por las primeras cuatro cosas.

La cultura hacker no tiene líderes, exactamente, pero tiene héroes culturales, historiadores tribales, y voceros. Cuando Ud. ha estado en las trincheras tiempo suficiente, podrá crecer y transformarse en uno de ellos. Pero tenga cuidado: los hackers desconfían del ego ruidoso en sus jefes tribales, así que la búsqueda visible de esa clase de fama es peligrosa. En lugar de esforzarse por ella, debe colocarse en una posición tal que ella caiga sobre Ud., y luego debe comportarse de manera modesta y con gracia con su estatus.

La conexión Hacker/Nerd

Contrariamente al mito popular, no es necesario que sea un nerd para ser un hacker. Ayuda, sin embargo, y muchos hackers son nerds. Al ser un marginado social, el nerd puede mantenerse concentrdo en las cosas realmente importantes, como pensar y hackear.

Por esta razón, muchos hackers han adoptado la etiqueta `nerd' e incluso utilizan el desagradable término `geek' como insignia de orgullo -- es su forma de declarar su propia independencia de las expectativas sociales normales. Si desea ver una discusión más extensa vea The Geek Page.

Si Ud. puede vérselas con la concentración suficiente en las tareas de hacker para ser bueno en ello, y encima disfrutar de una vida, está bien. Es muchísimo más fácil ahora que cuando yo era un novato; la cultura popular ve con mejores ojos a los tecno-nerds en la actualidad. Hay además un número creciente de personas que se dan cuenta que los hackers frecuentemente son un material de alta calidad para novio/novia/marido/esposa. Si desea ver algo más acerca de esto, vea la Girl's Guide to Geek Guys.

Si Ud. se siente atraído por la actividad hacker porque no tiene una vida personal, está bien también -- al menos no tendrá problemas de concentración. A lo mejor más adelante se puede conseguir una vida como la gente.

Cuestiones de estilo

De nuevo, para ser un hacker, Ud. debe desarrollar la mentalidad del hacker. Existen algunas cosas que Ud. puede hacer cuando está sin computadora, que lo pueden ayudar. Estas cosas no son sustituto para la actividad propia de hackear (nada lo es) pero muchos hackers las realizan, y sienten que de alguna manera primitiva se conectan con la esencia de la actividad de hackear. Cuanto más de estas cosas haya hecho, es más probable que Ud. posea material natural para hacker.

Finalmente, unas pocas cosas que no debe hacer.

La única reputación que se ganará con esas costumbres es la de un escarnecedor. Los hackers tienen una gran memoria -- puede tomarle años hasta que lo acepten luego de estas cosas.

Otras fuentes de información

Puede leer una traducción al japonés de este documento.

 El Loginataka nombra alguna de las cosas que hay que decir acerca del entrenamiento apropiado y la actitud de un hacker de Unix.

Además he escrito A Brief History Of Hackerdom.

Peter Seebach maintiene una excelente Hacker FAQ para administradores que no saben como tratar con hackers.

También he escrito un artículo, The Cathedral and the Bazaar, que explica en detalle como trabaja la cultura Linux. Puede encontrarlo en mi página de escritos.
 
 

Preguntas frecuentes

P: ¿Me enseñaría como hackear?

Desde la primera publicación de esta página, me llegan varios pedidos por semana de gente que quiere que le "enseñe todo sobre hackeo". Desafortunadamente, no tengo ni el tiempo ni la energía para hacer eso; mis propios proyectos de hackeo consumen el 110% de mi tiempo.

Aún si pudiera hacerlo, el hackeo es una actitud y habilidad que Ud. debe aprender por sí mismo. Verá que los hackers de verdad quieren ayudarlo, pero no lo respetarán si Ud. comienza a rogarles que lo alimenten en la boca con todo lo que saben.

Aprenda unas cuantas cosas primero. Muéstreles que está intentando, que es capaz de aprender por su cuenta. Luego vaya, hable con los hackers y hágales sus preguntas.

P: ¿Dónde puedo encontrar algunos verdaderos hackers para comunicarme con ellos?

Bueno, ciertamente no en IRC, eso es seguro -- allí no hay nada más que discutidores y crackers hasta donde la vista alcanza. La mejor manera es encontrar un grupo local de usuarios de Unix o Linux y asistir a sus reuniones (existe una lista de grupos en la página de Sunsite: Linux Users' Group.
 
 

P: ¿Cuál lenguaje debo aprender primero?

HTML, si no lo conoce ya. Existe un montón de malos libros sobre HTML con brillantes páginas y con contenidos a la moda. El que más me gusta es HTML: The Definitive Guide.

 Cuando esté listo para comenzar con programación, le recomiendo que comience con Perl o Python. C es realmente importante, pero también mucho más difícil.

P: ¿Por dónde puedo empezar? ¿Dónde puedo conseguir un Unix libre?

En otras partes de esta página ya incluí enlaces hacia donde obtener Linux. Para ser un hacker Ud. necesita motivación, iniciativa y la capacidad para educarse a sí mismo. Comience ahora...


Ir a la página de FAQs de Eric Ir al mapa del sitio de Eric $Date: 1997/09/16 19:25:13 $
Eric S. Raymond <esr@snark.thyrsus.com>