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 habilidad, y existe un cierto conjunto de herramientas básicas que debes dominar antes que cualquier hacker se le ocurra llamarte 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 por ahora es claro que se debe incluir lo siguiente:

1. Aprende a programar.

Esta es, por supuesto, la habilidad fundamental del hacker. Si no conoces ningún lenguaje de programación, te recomiendo comenzar con Python. Está limpiamente diseñado, bien documentado y es relativamente agradable para principiantes. A pesar de ser un buen lenguaje inicial, no es sólo un juguete: es muy poderoso y flexible y bien adaptado a proyectos grandes.

Pero no creas que podrás ser un hacker, siquiera un programador, si conoces un único lenguaje -- debes aprender a pensar en los problemas de programación de una manera general, independiente de cualquier lenguaje. Para ser un hacker de verdad, debes llegar al punto en el cual puedes aprender un lenguaje nuevo en días, relacionando lo que está en el manual con lo que sabes de antes. Esto significa que debes aprender varios lenguajes muy diferentes entre sí.

Si quieres entrar a programar de verdad, tendrás que aprender C, el lenguaje central de Unix (aunque no es el que se debe intentar aprender primero). Otros lenguajes de importancia son Perl y LISP. Perl vale la pena por razones prácticas: es muy usado en páginas WWW 'activas' y en administración de sistemas; tanto así que aunque nunca llegues a escribirlo, al menos tienes que aprender a leerlo. LISP es interesante de aprender por la profunda e iluminadora experiencia que tendrás cuando finalmente lo consigas: la experiencia te hará un mejor programador el resto de tu vida, incluso si nunca usas demasiado el mismo LISP.

Lo mejor, en realidad, es aprender estos cuatro lenguajes (Python, C, Perl y LISP). Además de ser los lenguajes más importantes para hackear, representan enfoques muy disímiles a la programación, y cada uno te educará de maneras importantes.

No puedo explicar en detalle en este documento como puedes aprender a programar -- es una habilidad compleja. Pero puedo adelantarte 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 un lenguaje natural. La mejor manera de aprender es leer algunas cosas escritas por los maestros del estilo, luego escribir algunas cosas tú mismo, leer mucho más, escribir un poco más... y repetir esto hasta que lo que escribes empiece a mostrar la clase de fuerza y economía que ves en tus 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 ello hecho por hackers) están ampliamente disponibles en la actualidad. Lo que me lleva elegentemente a nuestro siguiente tema...

2. Obtén uno de los UNIXs libres y aprende a usarlo y a ponerlo en funcionamiento.

Doy por sentado que tienes un computador o puedes conseguir acceso a uno (estos muchachos de hoy en día tienen las cosas tan fácil :-)). El paso 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 -- No puedes leer el código ni modificarlo. Si intentas aprender a hackear en una máquina DOS, Windows o en un MacOS te sentirás como si trataras de bailar metido en una armadura.

Además, Unix es el sistema operativo de Internet. Si bien puedes aprender a usar Internet sin saber Unix, nunca podrás 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 obtén un Unix -- personalmente me gusta Linux, pero hay otros. Aprende a usarlo. Hazlo funcionar. Métele mano, anímate. Comunícate en Internet mediante él. Lee el código. Modifícalo. En ese sistema se incluyen mejores herramientas de programación (incluyendo Python, C, Lisp y Perl) de lo que cualquier sistema operativo de Microsoft podría siquiera soñar, además te divertirás y te sumergirás en un caudal de conocimientos de tal magnitud que nunca hubieras imaginado, hasta que en cierto momento, mirando hacia atrás, te darás cuenta que ya eres un maestro hacker consumado.

Si quieres saber más sobre del aprendizaje de Unix, mira The Loginataka.

Para meter mano en Linux, mira en el directorio de distribuciones Linux o en el programa `Linux CD Giveaway' en Metalab.

Aprende sobre la WWW y HTML. Status en la cultura hacker. La conexión hacker-nerd. Preguntas frecuentes.