Il est vital d'avoir une attitude de hacker, mais encore plus vital d'en avoir les compétences. L'attitude n'est pas un substitut pour la compétence, et il convient de développer un ensemble minimal de compétences avant que l'idée n'effleure un autre hacker de vous accepter comme son pair.
Cet ensemble change lentement au cours du temps, au fur et à mesure que l'évolution technologique crée de nouvelles compétences et en rend d'autres obsolètes. Par exemple, à une certaine époque il convenait de savoir programmer en assembleur et il n'était pas question, jusqu'à une date récente, de HTML.
En tout état de cause, il est clair que cela inclut, fin 1996 :
1. Apprendre à programmer.
C'est, évidemment, la compétence fondamentale du hacker. En 1997, le langage à connaître absolument est le C (mais ce n'est probablement pas celui qu'il faut apprendre en premier). Mais vous n'êtes pas un hacker (ni même juste un programmeur) si vous ne connaissez qu'un seul langage. Il faut apprendre à penser à la programmation en termes généraux, indépendamment d'un langage particulier. Pour être un vrai hacker, il faut être arrivé au point où vous pouvez apprendre un nouveau langage en quelques jours, en faisant le rapport entre ce qui est écrit dans le manuel et vos propres connaissances. Cela signifie que vous devez apprendre plusieurs langages très différents.
A part le C, vous devez également apprendre LISP (ou Scheme(+)) et Perl(+) (ou Python(+)), et Java(+) aura bientôt sa place également dans la liste. En plus d'être les langages les plus pratiqués par les hackers, ils représentent chacun une approche très différente de la programmation, et contribueront de façon très sensible à votre éducation.
Je ne peux pas vous donner un cours complet sur "comment apprendre à programmer'', c'est quelque chose de très complexe. Mais je peux vous dire que les livres et les cours ne suffisent pas (la plupart des meilleurs hackers sont autodidactes). Ce qu'il faut, c'est (a) lire du code et (b) écrire du code.
Apprendre à programmer, c'est comme apprendre à écrire correctement dans un langage humain. La meilleure façon d'y arriver, c'est de lire des trucs écrits par des maîtres, d'en écrire un peu, d'en lire beaucoup plus, d'en écrire un peu plus, etc. jusqu'à ce que vous arriviez à écrire avec la même force et la même économie de moyens que vos modèles.
Trouver du bon code à lire a longtemps été difficile, parce qu'il y avait très peu de gros programmes disponibles sous forme de sources pour que les apprentis hackers puissent les lire et les étudier. Heureusement, cette situation a évolué, et maintenant des logiciels libres, des outils de programmation libres et des systèmes d'exploitation libres (tous disponibles sous forme de sources, tous écris par des hackers) sont maintenant très faciles à trouver. Cela nous amène directement à notre sujet suivant...
2. Installer un Unix libre et apprendre à s'en servir.
Je vais supposer que vous possédez, ou que vous avez accès à un ordinateur personnel. Pour un débutant qui aspire à acquérir des compétences de hacker, l'action la plus importante à entreprendre est d'obtenir une copie de Linux ou d'un des clones de BSD, de l'installer sur une machine personnelle, et de le faire tourner.
Bien sûr, il y a d'autres systèmes d'exploitation dans le monde à part Unix. Le problème, c'est qu'ils sont distribués sous forme de binaires. Vous ne pouvez pas lire le code, et encore moins le modifier. Apprendre à hacker sur une machine DOS ou Windows, ou sous MacOS, c'est comme d'apprendre à danser en étant plâtré des pieds à la tête.
En plus, Unix est le système d'exploitation de l'Internet. On peut apprendre à utiliser l'Internet sans connaître Unix, mais on ne peut pas être un hacker de l'Internet sans le comprendre. C'est pour cette raison que la culture des hackers est à l'heure actuelles fortement Unix-centrique. (Ce n'a pas été toujours le cas, et quelques hackers âgés regrettent cet état de fait, mais la symbiose entre Unix et l'Internet est devenue suffisamment forte pour que même Microsoft semble s'y casser les dents.)
Donc, installez un Unix (j'aime bien personnellement Linux mais d'autres choix sont possibles). Apprenez-le. Faites-le tourner. Parlez à l'Internet avec. Lisez le code. Modifiez le code. Vous trouverez de meilleurs outils de programmation (y compris C, Lisp, Perl) que sous n'importe quel système d'exploitation de Microsoft, vous vous amuserez, et vous en tirerez plus de connaissances que ce que vous avez l'impression d'apprendre, jusqu'à ce que vous deveniez un vrai maître hacker. Pour en savoir plus sur comment apprendre Unix, voir The Loginataka(+).
Pour obtenir Linux, voir Where To Get Linux(+) (En français, allez voir sur Freenix(+), ou Loria(+))
3. Apprendre à utiliser le World Wide Web et à écrire en HTML.
La plupart des choses créées par la culture des hackers travaillent dans l'ombre, en aidant à faire tourner des usines, des bureaux et des universités, sans impact direct sur les vies des non-hackers. Il y a une grosse exception, le Web, ce jouet de hacker énorme et lumineux dont même les politiciens admettent qu'il est en train de changer la face du monde. Rien que pour cette raison (et pour de bonnes raisons par ailleurs), vous devez apprendre à travailler avec le Web.
Cela ne signifie pas seulement apprendre à utiliser un browser (navigateur, butineur), mais aussi apprendre à écrire en HTML, le langage de balisage du Web. Si vous ne savez pas programmer, le fait d'écrire en HTML vous apprendra quelques habitudes mentales qui vous aideront à démarrer. Donc, faites-vous une home page (page personnelle).
Mais ce n'est pas seulement d'avoir une home page qui fera de vous un hacker. Le Web est plein de home pages. La plupart sont d'un intérêt absolument nul, parfois jolies à regarder mais nulles quand même (pour plus d'information voir The HTML Hell Page(+)).
Pour être utile, votre page doit avoir du contenu. Elle doit être intéressante et/ou utile pour les autres hackers. Cela nous conduit à notre sujet suivant...
Le Jargon File(+) (traduit en français par Frédéric de SOLLIERS(+) et Christian ROZEBOOM sous le titre Cyberlexis(+), Editions Masson) contient un certain nombre de définitions du terme "hacker'', qui sont toutes liées à l'aptitude technique et au plaisir pris à résoudre des problèmes et à dépasser des limites arbitraires. Cependant, si vous voulez savoir comment devenir un hacker, seules deux de ces définitions sont pertinentes.
Il existe une communauté, une culture partagée, de programmeurs expérimentés et de spécialistes des réseaux, dont l'histoire remonte aux premiers mini-ordinateurs multi-utilisateurs, il y a quelques dizaines d'années, et aux premières expériences de l'ARPAnet (le réseau connu aujourd'hui sous le nom d'Internet). Les membres de cette culture ont créé le mot "hacker''. Ce sont des hackers qui ont créé l'Internet. Ce sont des hackers qui ont fait du système d'exploitation Unix ce qu'il est de nos jours. Ce sont des hackers qui font tourner les newsgroups (forums de discussion), Usenet et le World Wide Web.
Si vous faites partie de cette culture, si vous y avez contribué et si d'autres personnes qui en font partie savent qui vous êtes et vous considèrent comme un hacker, alors vous êtes un hacker.
L'état d'esprit d'un hacker ne se réduit pas à cette culture des hackers du logiciel. Il y a des gens qui appliquent l'attitude du hacker à d'autres domaines, comme l'électronique ou la musique. En fait, on trouve cet esprit à l'état le plus avancé dans n'importe quel domaine de la science ou des arts. Les hackers du logiciel reconnaissent cette similitude d'esprit, et certains affirment que la nature même du hacker est indépendante du domaine particulier auquel le hacker se consacre réellement. Mais dans la suite de ce document, nous nous concentrerons sur les aptitudes et les attitudes des hackers du logiciel, et sur les traditions de la culture partagée qui a créé le terme "hacker".
NB: il y a un autre groupe de personnes qui s'autoproclament des "hackers'', mais qui n'en sont pas. Ces gens (principalement des adolescents de sexe masculin) prennent leur pied en s'introduisant à distance dans les systèmes informatiques et en piratant les systèmes téléphoniques. Les vrais hackers appellent ces gens des "lamers'' et ne veulent rien avoir à faire avec eux. Les vrais hackers pensent que les lamers sont des gens paresseux, irresponsables et pas très brillants. Malheureusement, de nombreux journalistes se sont laissés abuser et utilisent le mot "hacker'' quand ils devraient utiliser le mot "lamers". Cela ne lasse pas d'irriter les vrais hackers.
La différence fondamentale est la suivante: les hackers construisent des choses, les lamers les cassent.