Cómo llegar a ser un Hacker

Eric Steven Raymond

Traducción: José Luna: [email protected]

Revisión: Alejandro Comes


Tabla de Contenidos

¿Por qué este Documento?
¿Qué es un Hacker?
La Actitud del Hacker
1. El Mundo esta lleno de problemas fascinantes esperando una solución.
2. Ningún problema debiera resolverse dos veces.
3. El aburrimiento y el trabajo agotador son una desgracia.
4. La libertad es lo mejor.
5. La actitud no es el sustituto de la aptitud.
Habilidades Básicas para el Hacking
1. Aprende a programar.
2. Obtén algún Unix open-source, aprende a usarlo y a ejecutarlo.
3. Aprende a usar la Web y escribe en HTML.
4. Si no tienes un inglés funcional, apréndelo.
Status dentro de la cultura Hacker
1. Escribe software open-source
2. Ayuda a probar y a depurar software open-source
3. Publica información útil
4. Ayuda a mantener la infraestructura en marcha
5. Sirve a la cultura Hacker
La Conexión Hacker/Nerd
Cuestiones de Estilo
Otros Recursos
Preguntas más Frecuentes

¿Por qué este Documento?

Como editor del Jargon File y autor de otros pocos y conocidos documentos de naturaleza similar, habitualmente recibo mensajes de novatos entusiastas de la red preguntando (en efecto) "¿cómo puedo aprender a ser un fantástico hacker?". Extrañamente, pareciera que no hubiera otras FAQs o documentos web que abordasen esta cuestión tan vital, así que aquí va la mía.

Si tú estás leyendo este documento sin conexión, la versión actual está en http://www.catb.org/~esr/faqs/hacker-howto.html (el original, en inglés).

Nota: Existe una lista de Preguntas más Frecuentes (FAQ) al final de este documento. Por favor, léela—dos veces—antes de enviarme alguna pregunta.

Actualmente están disponibles varias traducciones de este documento: Alemán, Búlgaro, Catalán, Chino (Simplificado), Chino (Tradicional), Coreano, Danés, Francés, Hebreo, Holandés, Húngaro, Indonesio, Italiano, Japonés, Portugués (Brasileño), Portugués (Europeo), Ruso y Sueco. Observa que desde que este documento cambia ocasionalmente, éstas pueden estar desactualizadas en distinto grado.

 

¿Qué es un Hacker?

El Jargon File contiene un puñado de definiciones acerca del término "hacker", la mayoría tiene que ver con la afición técnica y el placer por resolver problemas, superando los límites. Si tú deseas saber cómo llegar a ser un hacker, sólo dos puntos son realmente importantes.

Hay una comunidad, una cultura compartida, de expertos programadores y genios de la Red, cuya historia se remonta por décadas, desde las primeras minicomputadoras 'time-sharing' y los primeros experimentos con ARPAnet. Los miembros de esta cultura originaron el término "hacker". Los hackers construyeron Internet. Los hackers hicieron del Sistema Operativo Unix lo que es hoy. Los hackers hacen a la Usenet. Los hackers hacen que la World Wide Web funcione. Si tú eres parte de esta cultura, si tú has contribuido a ella y otros en esta cultura saben quién eres y te llaman hacker, eres un hacker.

El interés intelectual de un hacker no se limita solamente a esta cultura del software. Hay quienes aplican su actitud hacker a otras cuestiones, como la electrónica o la música —en realidad, puedes encontrarlos en los más altos niveles de cualquier ciencia o arte. Los hackers del software reconocen este espíritu familiar donde se encuentre, y también los llaman «hackers» —incluso, algunos aseguran que la naturaleza del hacker es completamente independiente del medio particular donde el hacker de desempeñe. De todos modos, durante el resto de este documento nos enfocaremos en las habilidades y actitudes de los hackers del software, y en la tradición de la cultura del compartir que dio origen al término “hacker”.

Existe otro grupo de personas que pomposamente se llaman hackers a sí mismos, aunque no lo sean. Éstos son algunos (principalmente varones adolescentes) que entran a las patadas en otras computadoras y se intrometen en sistemas telefónicos (phreaking). Los auténticos hackers llaman a esta clase de individuos "crackers", y no quieren tener nada que ver con ellos. Los hackers, generalmente, creen que estos crackers son vagos, irresponsables y no muy lúcidos, y aducen que el ser capaz de quebrar algún sistema de seguridad no te hace un hacker, como meter mano a un automóvil no te hace ingeniero mecánico. Desgraciadamente, algunos periodistas y escritores se engañan al usar el término "hacker" para referirse a un cracker; lo que disgusta notablemente a los auténticos hackers.

La diferencia básica es: los hackers construyen, los crackers destruyen.

Si quieres ser un hacker, continúa leyendo. Si prefieres ser un cracker, vete a leer el grupo de noticias alt.2600 y prepárate para un cero al as, después de descubrir que no eras ni la mitad de inteligente de lo que te creías. Y creo que ya dije bastante acerca de los crackers.

 

La Actitud del Hacker

Los Hackers resuelven problemas y construyen cosas, creen en la libertad y en la ayuda mutua voluntaria. Para ser aceptado como un hacker, tienes que comportarte da acuerdo con esta actitud. Y para comportarte de acuerdo con esta actitud, deberás creer firmemente en ella.

Pero si te propones adoptar esta actitud sólo como una forma de conseguir aceptación en la cultura hacker, estarás equivocándote. Convertirte en la clase de persona que realmente cree en estas cosas es importante para ti —ayudándote a aprender y manteniéndote motivado. Tal como con todas las artes creativas, la forma más eficaz de convertirte en un maestro es imitando la manera de pensar de un maestro —no sólo intelectualmente sino emocionalmente también.

O, de acuerdo con el moderno poema Zen:

 

Ser un hacker es bastante divertido, pero ésta es una clase de diversión que demanda mucho esfuerzo. El esfuerzo requiere motivación. Los atletas exitosos obtienen su motivación de una especie de placer físico al hacer rendir sus cuerpos, impulsándose más allá de sus propios límites físicos. De una manera similar, al ser un hacker habrás de obtener la simple emoción de resolver problemas, aguzando tus habilidades y ejercitando tu inteligencia.

Si no eres de la clase de personas que sienten de esta manera con naturalidad, necesitarás serlo para actuar como un hacker. De otro modo, encontrarás que tu energía de hacker se disipará en distracciones como el sexo, el dinero y la aceptación social.

(También tendrás que desarrollar una especie de fe en tu capacidad de aprender —la creencia de que aunque no sepas todo lo necesario para resolver un problema, si acometes sólo una parte y aprendes de ello, adquirirás lo suficiente para resolver la siguiente —y así, hasta terminar.)

Los cerebros creativos son un recurso valioso y limitado. No debieran agotarse reinventando la rueda cuando existen tantos problemas nuevos y fascinantes esperando en otro lado.

Para comportarte como un hacker, debes entender que el tiempo pensante de otros hackers en precioso —tanto que es casi una obligación moral compartir la información, esclarecer problemas y brindar la solución, para que los demás puedan ocuparse de otros nuevos , en lugar de tener que abordarlos eterna y recurrentemente.

(No necesitas creer que estás obligado a revelar todas tus creaciones, aunque quienes lo hacen, reciben el mayor respeto de los otros hackers. Vender lo suficiente de ellas para poder pagar la comida, la renta y la computadora es perfectamente compatible con los principios de un hacker. Está muy bien que hagas uso de tus habilidades de hacker para mantener una familia o, incluso, hacerte rico, mientras que no olvides la lealtad con tu arte y tus compañeros.)

Los hackers (y las personas creativas en general) nunca debieran aburrirse o agotarse en trabajos repetitivos y estúpidos; cuando sucede algo así, significa que no están haciendo lo que mejor saben hacer —resolver problemas. Este despilfarro nos perjudica a todos. Por eso, el aburrimiento y el trabajo agotador no sólo son desagradables sino realmente una desgracia.

Para actuar como un hacker, debes estar tan convencido de esto como para desear automatizar las tareas aburridas todo lo posible, tanto para ti mismo como para los demás (y en particular, para los otros hackers).

(Existe una aparente excepción a esta regla. Algunas veces, los hackers hacen ciertas cosas que parecen repetitivas o tediosas, a modo de ejercicio: para despejar la mente; para adquirir una cierta habilidad; o para conseguir alguna clase particular de experiencia, la que no podrían obtener de otra manera. Pero esto es una elección —nadie con la capacidad de pensar debiera ser forzado a una situación que le resultase tediosa.

Los hacker son, naturalmente, anti-autoritarios. Alguien que pueda darte órdenes, podrá impedir que resuelvas el problema con el que estés fascinado. —y, dada la forma en que trabajan las mentes autoritarias, generalmente encontrarán alguna terriblemente estúpida razón para hacerlo. Así que una actitud autoritaria debe ser combatida allí dónde se encuentre, no sea que te sofoque a ti y a otros hackers.

(Esto no es lo mismo que combatir toda autoridad. Los niños necesitan ser guiados, y los criminales restringidos. Un hacker puede aceptar alguna forma de autoridad para obtener algo que valora más que el tiempo que pierde obedeciendo una orden. Pero éste es un pacto limitado, consciente; la clase de renuncia personal que los autoritarios esperan, no está en venta.)

Los autoritarios medran con la censura y los secretos. Desconfían de la cooperación voluntaria y de compartir la información —sólo aceptan la "cooperación" cuando ellos la controlan. Así que para comportarte como un hacker, tendrás que desarrollar una hostilidad instintiva hacia la censura, los secretos y el uso de la fuerza, o el engaño, para someter a adultos responsables. Y siempre tendrás que estar preparado para actuar en consecuencia.

Para ser un hacker, tendrás que desarrollar estas actitudes; aunque copiar alguna que otra actitud no te hará un hacker, no más que un atleta olímpico o una estrella del rock. Llegar a ser un hacker requiere inteligencia, práctica, dedicación y mucho trabajo.

Por lo tanto, tendrás que aprender a desconfiar de las actitudes y a respetar todo tipo de pericia. Los hackers no toleran que los presuntuosos les hagan perder el tiempo, pero respetan las aptitudes —especialmente la habilidad para el "hacking", aunque la habilidad para cualquier cosa es buena. Ser competente en alguna habilidad poco común, es una gran cosa, aunque ser competente en habilidades poco comunes que requieran agudeza mental, pericia y concentración, es mejor.

Si admiras las aptitudes, disfrutarás desarrollándolas en ti mismo —el trabajo duro y la dedicación serán una especie de juego intenso antes que agotador. Esta actitud es vital para llegar a ser un hacker.

 

Habilidades Básicas para el Hacking

La actitud de un hacker es vital, pero su pericia es incluso más vital. La actitud no reemplaza a la aptitud, y existe cierto bagaje básico de habilidades que tendrás que adquirir antes de que un hacker sospeche en ti a otro.

Este bagaje básico cambia ligeramente cada tanto, a medida que la tecnología crea nuevos ingenios y convierte a los anteriores en obsoletos. Por ejemplo, se solía incluir la programación en lenguaje máquina, y así fue hasta que se incorporó el HTML. Pero, actualmente incluye lo siguiente:

Esto, por supuesto, es la habilidad fundamental del hacking. Si no conoces ningún lenguaje de programación, te recomiendo que comiences con Python. Está diseñado con claridad, bien documentado, y relativamente amable con los principiantes. A pesar de ser un buen primer lenguaje, no se trata de un juguete; es muy potente, flexible y apropiado para grandes proyectos. He escrito un detallado evaluation of Python. Se encuentran buenos tutoriales disponibles en el sitio web de Python

Java también es un buen lenguaje para aprender a programar. Es más difícil que Python, pero produce código más rápido. Creo que resulta un excelente segundo lenguaje.

Pero debes saber que no alcanzarás el nivel de hacker o, incluso, el de mero programador, si sólo conoces uno o dos lenguajes de programación —necesitarás aprender cómo pensar en los problemas de la programación en términos generales, independientemente de cualquier lenguaje. Para ser un auténtico hacker, necesitarás alcanzar el punto en el que puedas aprender un nuevo lenguaje en días, relacionando el contenido del manual con lo que ya sabes. Lo que significa que deberás aprender varios lenguajes diferentes.

Para meterte seriamente en la programación, deberás aprender el C, el lenguaje central de Unix. El C++ es muy parecido al C; si aprendes uno, el segundo no te resultará difícil, aunque ninguno de ellos es una buena opción como primer lenguaje. Y, realmente, mientras más evites programar en C, mayor será tu productividad.

El lenguaje C es muy eficiente y muy frugal con los recursos de tu máquina. Desafortunadamente, el C consigue esta eficiencia a costas de requerirte un gran manejo de los recursos de bajo nivel (como la memoria) a mano. Todo este código de bajo nivel es complejo y propenso a error, y consumirá una enorme cantidad de tu tiempo durante la depuración. Con las máquinas de hoy, potentes como son, esto es normalmente un mal negocio —es más inteligente emplear un lenguaje que use el tiempo de la máquina menos eficientemente, y el tuyo propio mucho más eficientemente. O sea: Python.

Otros lenguajes de particular importancia para los hackers son el Perl y el LISP. Vale la pena aprender Perl por razones prácticas: es ampliamente utilizado en páginas web activas y administración de sistemas, así que aunque no escribas en Perl, necesitarás aprender a leerlo. La mayoría de la gente usa Perl en el sentido en que yo ya había sugerido el empleo del Python, para evitar la programación en C en trabajos que no necesitan tanta eficiencia de máquina. Necesitarás ser capaz de entender su código.

Vale la pena aprender LISP por una razón diferente —la profunda experiencia esclarecedora que tendrás cuando lo consigas. Esta experiencia te hará un mejor programador por el resto de tus días, incluso aunque no llegues a usar LISP demasiado. (Puedes obtener alguna primera experiencia con LISP muy fácilmente escribiendo y modificando los modos de edición del editor de texto Emacs.)

En realidad, lo mejor es aprender los cinco (Python, Java, C/C++, Perl y LISP). Además de ser los lenguajes de hacking más importantes, representan diferentes modos de programación, y cada uno de ellos te enseñará algo valioso.

No puedo darte aquí una serie de instrucciones completas sobre cómo aprender a programar —se trata de una habilidad compleja. Pero puedo decirte que libros y cursos tampoco lo harán (muchos, quizás la mayoría, de los mejores hackers son autodidactas). Puedes aprender las características de un lenguaje —trozos de conocimiento— de los libros, pero el estado mental que hace del conocimiento una destreza viva sólo puede conseguirse a través de la práctica y el aprendizaje. Lo conseguirás (a) leyendo código y (b) escribiendo código.

Aprender a programar es como aprender a escribir en un buen lenguaje natural. La mejor forma de hacerlo es leyendo material de los maestros del estilo, escribiendo algo tú mismo, leer mucho más, escribir algo más, leer mucho más, escribir... y seguir hasta que tus escritos comiencen a desarrollar esa clase de energía y economía que encuentras en tus modelos.

Conseguir código bien escrito, solía ser bastante difícil, ya que casi no había código disponible de programas grandes como para que un hacker novel pueda leerlo y chapucear con él. Esto ha cambiado drásticamente; ahora se encuentran ampliamente disponibles: software de tipo open-source (de código abierto), herramientas de programación y sistemas operativos (todos hechos por hackers). Lo que me lleva prolijamente al próximo tema....

Asumo que tienes una computadora personal o que puedes tener acceso a una (estos niños de hoy tienen todo tan fácil :-)). El paso más simple e importante que un principiante puede dar para adquirir habilidades de hacker es obtener una copia de Linux o alguno de los BSD-Unix, instalarlo y ejecutarlo.

Sí, hay otros sistemas operativos en el mundo además de Unix. Pero se distribuyen en binario --no puedes leer el código y no puedes modificarlo. Intentar aprender a hackear en una máquina DOS o Windows, o bajo MacOS, es como aprender a bailar usando un corsé.

Bajo OS/X es posible, pero sólo parte del sistema es open source —es como si estuvieras golpeando paredes, y debes cuidarte de no desarrollar el mal hábito de depender del código propietario de Apple. Si te concentras en Unix, bajo el capó, podrás aprender algunas cosas útiles.

Unix es el sistema operativo de Internet. Aunque puedes aprender a usar Internet sin saber Unix, no puedes ser un hacker de Internet sin entender Unix. Por esta razón, la cultura hacker está hoy firmemente centrada en Unix. (Esto no siempre fue así, y algunos hackers de los viejos tiempos todavía no se sienten cómodos con esto, pero la simbiosis entre Unix e Internet se ha vuelto tan estrecha que incluso la musculatura de Microsoft no parece capaz de mellarla seriamente.)

Así que consíguete un Unix —Personalmente prefiero Linux aunque hay otras formas (y sí, puedes ejecutar Linux y DOS/Windows en la misma máquina). Apréndelo. Hazlo funcionar. Chapucea con él. Comunícate en Internet mediante él. Lee el código. Modifica el código. Obtendrás mejores herramientas de programación (incluyendo al C, LISP, Python y Perl) de las que cualquier sistema operativo de Microsoft puede siquiera imaginar; te divertirás y te empaparás de más conocimiento del que puedas ser conciente hasta que puedas verlo desde la perspectiva de un hacker consumado.

Para obtener más acerca de cómo aprender Unix, ve a La Loginataka.

Si quieres meter tus manos en Linux, mira en Dónde puedo obtener Linux

Puedes encontrar ayuda y recursos de BSD Unix en http://www.bsd.org/.

He escrito una síntesis sobre los fundamentos básicos de Unix y de Internet.

(Nota: si eres un principiante, no te recomiendo que instales Linux o BSD como único proyecto. Para Linux, busca algún grupo de usuarios local y pide ayuda; también puedes contactarte con Open Projects Network. LISC mantiene IRC channels donde puedes obtener ayuda.)

La mayoría de las cosas que ha construido la cultura hacker lo ha hecho en privado; ayudando a funcionar fábricas, oficinas y universidades, sin una evidente influencia en la vida de quienes no son hackers. La Web es la única gran excepción, un juguete hacker tan enorme y brillante que incluso los políticos admiten que está cambiando al mundo. Sólo por esta razón (y por otras muchas y buenas también) necesitas aprender cómo desarrollar la Web.

Esto no significa meramente aprender a usar un navegador (cualquiera puede hacerlo), sino aprender a escribir en HTML, el lenguaje característico de la Web. Si no sabes programar, escribir en HTML te enseñará algunos hábitos mentales que te ayudarán a aprender. Entonces, construye una página personal. Prueba con XHTML, que es más limpio que el clásico HTML. (Hay buenos tutoriales para principiantes en la Web; aquí hay uno.)

Pero por tener una página personal no te estás ni aproximando a la posibilidad de convertirte en un hacker. La Web está llena de páginas personales. La mayoría son insignificantes, vacías de contenido, mugre —mugre vistosa, pero mugre al fin (puede interesarte visitar The HTML Hell Page).

Para que sea de algún valor, tu página debe tener contenido —debe ser interesante y/o útil para otros hackers. Lo que nos lleva al siguiente tema...

Como estadounidense, y por ser el inglés mi lengua materna, he sido remiso a sugerir esto, que podría haberse interpretado como una especie de imperialismo cultural; pero, varias personas que tienen otros idiomas como lengua materna me han aclarado que el inglés es el lenguaje funcional de la cultura hacker y de Internet; y que necesitarás aprenderlo para participar de esta comunidad.

Es verdad. Alrededor de 1991 supe que muchos hacker tenían al inglés como segundo idioma, y que lo empleaban en discusiones técnicas, incluso, aunque compartieran el mismo idioma. También me dijeron que el inglés tiene un vocabulario técnico más rico que otros idiomas, por lo que resulta una herramienta más apropiada. Por razones similares, las traducciones de libros técnicos, originalmente escritos en inglés, suelen ser insatisfactorias (si es que alguna vez se hacen).

Linus Torvalds, que es finlandés, comenta su código en inglés (y pareciera que nunca se le ocurrió hacerlo de otra forma). Su inglés fluido le ha resultado un factor importante en su habilidad para reclutar una comunidad mundial de desarrolladores para Linux. Este ejemplo me parece tan valioso como lo que sigue...

Status dentro de la cultura Hacker

Como en la mayoría de las culturas que no dependen del dinero, la calidad de hackers se basa en la reputación. Tú estás ocupado en resolver problemas interesantes, pero, si éstos son importantes, y si tus soluciones son buena, es algo que sólo podrán juzgar tus pares o superiores.

En este sentido, al practicar este juego hacker, aprendes que tu calificación depende fundamentalmente de la forma en que otros hackers consideran tus habilidades (esto explica por qué no puedes considerarte un auténtico hacker hasta que otros hacker te llamen así). Este hecho queda empañado por la imagen del hacker como trabajador solitario; incluso por el tabú (decadente, aunque aún poderoso) de que el ego y el ansia de reconocimiento hacen a nuestra motivación.

Específicamente, la cultura hacker es de la clase que los antropólogos denominan cultura del don. El prestigio y la reputación no se obtienen a través de la dominación sobre los otros ni por ser hermoso o por poseer cosas que otros desean, sino a través de dar. En este caso, dando a los demás tu tiempo, tu creatividad y el resultado de tu destreza.

Básicamente, existen cinco clases de tareas para ser respetado por los hackers:

Lo primero (principal y más tradicional) es escribir programas que otros hackers crean divertido o útil, y hacer disponible el código fuente para uso de toda la cultura hacker.

(Solíamos denominarlo "free software" (software libre), pero esto ha confundido a mucha gente que no tenía en claro qué debía entenderse por "free"(¿libre o gratuito?). La mayoría de nosotros, al menos en una proporción de 2 a 1, de acuerdo con un análisis de los contenidos en la Web, preferimos llamarlo software "open-source" (software de código fuente abierto).

Los semidioses del hacking más reverenciados son personas que han escrito programas de gran magnitud, capaces de satisfacer un amplio espectro de necesidades y que lo han donado, de modo que ahora todos los usamos.

También es útil aquel que ayuda a depurar software open-source. En este mundo imperfecto, inevitablemente invertiremos la mayor parte de nuestro tiempo de desarrollo en la etapa de depuración. Esto explica por qué un autor de software open-source dirá que un buen beta-tester (que sabe cómo describir síntomas con claridad, que sabe localizar problemas, que tolera errores en una entrega rápida, y que está dispuesto a aplicar unas simples rutinas de diagnóstico) vale su peso en rubíes. Incluso uno sólo de ellos puede significar la diferencia entre una etapa de depuración convertida en una interminable pesadilla que lo deja a uno exhausto, o, apenas, una saludable incomodidad.

Si eres un novato, busca un programa en etapa de desarrollo que te resulte interesante y sé un buen beta-tester. Hay una progresión natural desde ayudar a probar programas, ayudar a depurarlos y ayudar a modificarlos. De este modo aprenderás muchísimo, y generarás un buen karma con las personas que luego te ayudarán.

Otra buena acción que puedes hacer es recopilar y filtrar información útil e interesante de las páginas web o documentos de tipo "Frequently Asked Questions" (FAQs) [Preguntas Más Frecuentes], y ponerlos a disposición de los demás.

Quienes mantienen las FAQs más importantes, prácticamente son tan respetados como los autores de software open-source.

La cultura hacker (y, para el caso, la ingeniería de desarrollo de Internet) funciona gracias al trabajo voluntario. Hay mucho trabajo necesario, aunque poco atractivo, para mantenerla en marcha —administración de listas de mensajes, moderación de grupos de noticias, mantenimiento de sitios con grandes archivos de software, desarrollo de RFCs y otros estándares técnicos.

Quienes hacen estas tareas obtienen un gran respeto, ya que todos saben que estos trabajos son enormes sumideros de tiempo, y que no son tan agradables como jugar con código. Al hacerlo demuestran su dedicación.

Finalmente, puedes servir y propagar la cultura hacker (por ejemplo, escribiendo un preciso original sobre cómo llegar a ser un hacker :-)). Esto no lo podrás hacer antes de haber estado bastante en el ambiente, y ser reconocido por alguna de las cuatro consignas anteriores.

La cultura hacker no tiene líderes, precisamente, pero sí tiene sus héroes, ancianos de la tribu, historiadores y voceros. Cuando hayas estado en la trinchera lo suficiente, te irás haciendo uno de ellos. Pero ten cuidado; los hackers desconfían del ego vocinglero en sus ancianos tribales, así que la búsqueda de esa clase de fama es peligrosa. En vez de esforzarte por eso, tendrás que ubicarte de modo que caiga en tu regazo, y entonces, se modesto y gracioso con tu estatus.

A pesar del mito popular, no necesitas ser un nerd para ser un hacker. Ayuda, sin embargo, y muchos hackers son, de hecho, nerds. Ser un paria te ayuda a concentrarte en cosas realmente importantes, como pensar y hackear.

Por esta razón, muchos hackers han adoptado el título de "nerd", e incluso utilizan el áspero término "geek" con orgullo —es una forma de declarar su independencia de las expectativas sociales habituales. Encontrarás una discusión más extensa en The Geek Page.

Si puedes concentrarte en el hacking suficientemente para ser bueno en ello, y todavía tener una vida social, mejor. Esto es mucho más fácil ahora que cuando yo era un principiante, allá por los años 70; la cultura dominante es hoy más tolerante con los tecno-nerds. Incluso, cada vez más personas reconocen que los hackers son amantes de alta calidad y un buen partido.

Si te sientes atraído por el hacking porque no tienes una vida social, también está bien —al fin de cuentas, no tendrás problemas para concentrarte; y quizás tengas una vida social después.

De nuevo, para ser un hacker, debes desarrollar la mentalidad hacker. Existen algunas otras cosas que puedes hacer cuando no estás frente a una computadora, que pueden ayudar. No son sustitutos (nada lo es) pero muchos hackers las hacen, y sienten que se conectan de una manera primaria con la esencia del hacking.

Mientras más de estas cosas hayas hecho, dispondrás de mayor sustancia natural hacker. Por qué esto es así, no está completamente claro, pero está relacionado con una combinación de la actividad de los hemisferios cerebrales derecho e izquierdo, que parece importante; Los hackers necesitan ser capaces de razonar en términos lógicos y de apartarse de la lógica aparente de un problema casi inmediatamente.

Trabaja tan intensamente como juegas y juega tan intensamente como trabajas. Para los verdaderos hackers, las diferencias entre "juego", "trabajo", "ciencia" y "arte" tienden a desaparecer, o combinarse en un alto nivel de creatividad. También, no te conformes con un estrecho rango de habilidades. Aunque la mayoría de los hackers se auto describen como programadores, generalmente son más que competentes en varias disciplinas afines administración de sistemas, diseño de sitios web y la solución de problemas de hardware, son muy frecuentes. Un hacker que es el administrador de un sistema, es probable que sea muy competente programando scripts y en el diseño web. Los hacker no hacen las cosas a medias, cuando se comprometen con un tema, tienden a ser muy buenos en él.

Finalmente, algunas cosas que no debes hacer.

La única reputación que te ganarás de esta manera es la de tonto. Los hackers tienen buena memoria —puede tomarte años revertir esos errores para poder ser aceptado.

El problema con los apodos o nombres de pantalla merece alguna aclaración. Ocultar tu identidad detrás de un apodo es un comportamiento tonto e infantil, característico de los crackers, warez, d00dz, y otras formas de vida inferiores. Los hackers no hacen eso; ellos están orgullosos de lo que hacen y lo quieren asociado a sus nombres reales. Así que si tienes un apodo, abandónalo. En la cultura hacker sólo te señalará como un perdedor.

P: ¿Me enseñaras a hackear?
P: ¿Cómo puedo iniciarme entonces?
P: ¿Cuándo tienes que empezar? ¿Es muy tarde para aprender?
P: ¿Cuánto tiempo me tomará aprender a hackear?
P: ¿Son Visual Basic o C# buenos lenguajes para empezar?
P: ¿Me enseñarías cómo crackear un sistema, o a crackear en general?
P: ¿Cómo puedo obtener la contraseña de la cuenta de otra persona?
P: ¿Cómo puedo acceder/leer/monitorizar el e-mail de otra persona?
P: ¿Cómo puedo robar privilegios de operador de canal en el IRC?
P: He sido crackeado, ¿me ayudarás a defenderme de futuros ataques?
P: Estoy teniendo problemas con mi Windows, ¿me ayudarás?
P: ¿Dónde puedo encontrarme con algunos hackers reales para platicar con ellos?
P: ¿Puedes recomendar libros útiles acerca del hacking y temas relacionados?
P: ¿Necesito ser bueno en Matemáticas para llegar a ser un buen hacker?
P: ¿Qué lenguaje debería aprender primero?
P: ¿Qué clase de hardware necesito?
P: ¿Necesito odiar y humillar a Microsoft?
P: Pero el software open-source, ¿no dejará a los programadores sin posibilidades de ganarse la vida?
P: ¿Cómo puedo iniciarme?, ¿dónde puedo obtener un Unix libre?
P:

¿Me enseñarás a hackear?

R:

Desde la primera publicación de esta página, he recibido varias peticiones semanalmente (a menudo varias por día) diciendo "enséñeme todo acerca del hacking". Desafortunadamente, no dispongo del tiempo o la energía para hacerlo; mis propios proyectos de hacker y los viajes como abogado del open-source, consumen el 110% de mi tiempo.

Incluso, aunque lo hiciera, el hacking es una actitud y destreza que básicamente deberás aprender por ti mismo. Encontrarás que mientras que los verdaderos hackers desean ayudarte, no te respetarán si ruegas que te alimenten en la boca con todo lo que saben.

Antes aprende unas cuantas cosas. Demuestra que lo estás intentando, que puedes aprender por las tuyas. Entonces dirígete al hacker que encuentres con preguntas específicas.

Si escribes un e-mail a un hacker, pidiendo consejo, debes tener en cuenta dos cosas: En primer lugar, hemos encontrado que la gente perezosa y descuidada con lo que escribe, generalmente es demasiado perezosa y descuidada con sus pensamientos para ser un buen hacker. —así que cuida la ortografía, gramática y signos de puntuación; de otro modo, probablemente serás ignorado. En segundo lugar, no te arriesgues a pedir que una respuesta se dirija a una cuenta ISP diferente a la que utilizas para enviar la pregunta; habitualmente, las personas que lo hacen son ladrones, usando cuentas robadas, y no nos interesa asistir a ladrones.

P:

¿Cómo puedo iniciarme entonces?

R:

Probablemente, la mejor manera de iniciarte es yendo a una reunión de LUG ("Linux user group" - Grupo de usuarios de Linux). Puedes encontrar esta clase de grupos en LDP General Linux Information Page; probablemente haya uno cerca tuyo, posiblemente asociado a algún colegio o universidad. Si se los solicitas, probablemente te darán una copia de Linux, y seguramente te ayudarán a instalarla y a iniciarte.

P:

¿Cuándo tienes que empezar? ¿Es muy tarde para aprender?

R:

Cualquier edad en la cual estés motivado es buena edad. La mayoría de la gente parece interesarse entre los 15 y 20 años, aunque conozco excepciones en ambas direcciones.

P:

¿Cuánto tiempo me tomará aprender a hackear?

R:

Esto depende de tu talento y del empeño que pongas. La mayoría de las personas pueden adquirir un respetable nivel de habilidad en dieciocho meses o dos años, si se concentran. Sin embargo, no creas que termina allí, si eres un auténtico hacker, pasarás el resto de tu vida aprendiendo y perfeccionando tu material.

P:

¿Son Visual Basic o C# buenos lenguajes para empezar?

R:

No, porque no son portables. No hay implementaciones open-source de estos lenguajes, de modo de que estarás atrapado en aquellas plataformas que el vendedor elija soportar. Aceptar este tipo de situación monopólica no es del estilo hacker.

Visual Basic es particularmente terrible. El hecho de que sea un lenguaje propietario de Microsoft es suficiente para descalificarlo, y como otros "Basics" es un lenguaje pobremente diseñado que sólo te enseñará malos hábitos de programación.

Uno de esos malos hábitos es hacerse dependiente de las bibliotecas, módulos y herramientas de desarrollo de un único vendedor. En general, cualquier lenguaje que al menos no tenga soporte para Linux o alguno de los BSDs, y/o al menos tres sistemas operativos diferentes, es un lenguaje pobre para aprender a hackear.

P:

¿Me enseñarías cómo crackear un sistema, o a crackear en general?

R:

No. Cualquiera que sea capaz de hacer semejante pregunta luego de leer esta FAQ, es demasiado estúpido para instruirlo, aunque tuviera el tiempo para enseñarle. Cualquier e-mail con esta clase de preguntas lo ignoraré o responderé con extrema rudeza.

P:

¿Cómo puedo obtener la contraseña de la cuenta de otra persona?

R:

Eso es cracking. Desaparece, idiota.

P:

¿Cómo puedo acceder/leer/monitorizar el e-mail de otra persona?

R:

Eso es cracking. Piérdete imbécil.

P:

¿Cómo puedo robar privilegios de operador de canal en el IRC?

R:

Eso es cracking. Fuera de aquí, cretino.

P:

He sido crackeado, ¿me ayudarás a defenderme de futuros ataques?

R:

No. Siempre que me han preguntado esto ha sido una pobre víctima de Windows. No es posible proteger eficazmente un sistema con Windows de los ataques de un cracker; su código y su arquitectura tienen demasiadas grietas, por lo que proteger a Windows es como tratar de achicar el agua de un bote con un colador. La única prevención realista es adoptar Linux o algún otro sistema operativo diseñado con algún criterio de seguridad.

P:

Estoy teniendo problemas con mi Windows, ¿me ayudarás?

R:

Sí. Ve al prompt de DOS y teclea "format c:". Cualquier problema que tengas desaparecerá en pocos minutos.

P:

¿Dónde puedo encontrarme con algunos hackers reales para platicar con ellos?

R:

La mejor manera es encontrar un grupo local de usuarios de Unix o Linux e ir a sus reuniones (podrás encontrar varias listas de grupos de usuarios en el sitio LDP de Metalab).

(Yo solía decir aquí que no encontrarías ningún hacker real en el IRC, pero me estoy dando cuenta de que esto está cambiando. Aparentemente, algunas comunidades de hackers reales, vinculadas a cosas como GIMP y Perl, actualmente tienen canales IRC.)

P:

¿Puedes recomendar libros útiles acerca del hacking y temas relacionados?

R:

Mantengo un Linux Reading List HOWTO que puedes encontrar útil. El Loginataka también puede interesarte.

Para una introducción a Python, ve los introductory materials en el sitio web de Python.

P:

¿Necesito ser bueno en Matemáticas para llegar a ser un buen hacker?

R:

No. Aunque necesitas ser capaz de pensar lógicamente y seguir cadenas de razonamientos exactas, el hacking usa muy poca matemática formal o aritmética.

En particular, no necesitarás trigonometría, cálculo o análisis (dejamos estos temas a los ingenieros electricistas :-)). Alguna base en matemática finita (incluyendo álgebra booleana, tería de conjuntos, combinatoria y teoría gráfica) puede ayudar.

P:

¿Qué lenguaje debería aprender primero?

R:

XHTML (el último dialecto de HTML) si todavía no lo sabes. Existen muchos lustrosos, hiper-intensivos y muy malos libros de HTML por allí, y desafortunadamente poco buenos. El que a mí más me gusta es HTML: The Definitive Guide.

Pero HTML no es un lenguajes de programación completo. Cuando estés preparado para comenzar a programar, te recomendaría empezar con Python. Muchos te recomendarán Perl, que es más popular que Python, pero es más difícil de aprender y (en mi opinión) no tan bien diseñado.

C es realmente importante, pero es incluso mucho más difícil que Python o Perl. No intentes aprenderlo primero.

Los usuarios de Windows, no lo intenten con Visual Basic. Les enseñará malos hábitos, y no es portable fuera de Windows. Evítalo.

P:

¿Qué clase de hardware necesito?

R:

Solía suceder que las computadoras personales eran demasiado limitadas y con insuficiente memoria, imponiendo límites artificiales al proceso de aprendizaje. Hace ya algún tiempo que esto dejó de ser así; cualquier máquina desde una Intel 486DX50 es más que suficiente para el trabajo de desarrollo, X y comunicaciones por Internet, y el disco más chico que puedas comprar será suficientemente grande.

Lo más importante a la hora de elegir una máquina es que su hardware sea compatible con Linux (o con BSD, si has elegido ese camino). La mayoría de las máquinas modernas servirán. La zona embarrada de la cancha son los módems, algunas máquinas tienen hardware específico para Windows, y no funcionarán con Linux.

Hay una FAQ que trata sobre la compatibilidad de hardware; la última versión esta aquí.

P:

¿Necesito odiar y humillar a Microsoft?

R:

No, no lo hagas. No es que Microsoft no lo merezca, pero existía una cultura hacker mucho antes que Microsoft y todavía habrá una mucho después de que Microsoft se haya extinguido. Cualquier energía que gastes odiando a Microsoft sería mejor empleada amando tu arte. Escribe buen código —lo que humillará a Microsoft suficientemente, sin contaminar tu karma.

P:

Pero el software open-source, ¿no dejará a los programadores sin posibilidades de ganarse la vida?

R:

Esto parece poco probable —por ahora, la industria del software open-source parece estar creando empleos antes que reduciéndolos. Si tener escrito un programa se puede considerar como un beneficio neto frente a no tenerlo, un programador obtendrá su retribución aunque el programa vaya a ser open-source o no. Y, no importa qué cantidad de software "libre" se haya escrito, parece que siempre habrá una mayor demanda de aplicaciones nuevas y personalizadas. He escrito más sobre este tema en las páginas sobre Open Source.

P:

¿Cómo puedo iniciarme?, ¿dónde puedo obtener un Unix libre?

R:

En esta misma página incluyo indicaciones sobre cómo obtener los Unix libres más comúnmente utilizados. Ser un hacker necesita motivación, iniciativa y la habilidad de aprender por uno mismo. Empieza ahora...

Hosted by www.Geocities.ws

1