Home | News | Hacking | Sciences | Technology | Ti 92 | Programming | Free articles | Links | Webmaster

 

 Comment devenir un hacker?


S'il est une question qui revient souvent sur le Web, c'est bien celle-là : comment devient-on hacker? Et d'abord, qu'est-ce exactement qu'un hacker? Loin de toute démagogie, cet article apporte une réponse concrète et détaillée au niveau technique, mais également culturel. Car l'un et l'autre sont indissociables. Initié fin 1997, et prochainement actualisé, ce document remarquable possède une valeur symbolique, voire même historique...
Pourquoi ce document?

Qu'est-ce qu'un hacker?

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, NDT]. 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, NDT] 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 "crackers'' et ne veulent rien avoir à faire avec eux. Les vrais hackers pensent que les crackers 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 "cracker''. Cela ne lasse pas d'irriter les vrais hackers.
La différence fondamentale est la suivante: les hackers construisent des choses, les crackers les cassent.
Si vous voulez devenir un hacker, alors continuez cette lecture. Si vous voulez devenir un cracker, allez lire le newsgroup
alt.2600, c'est tout ce que j'ai à en dire.

L'attitude des hackers

Les hackers résolvent des problèmes, construisent des choses et croient à la liberté et à l'entraide volontaire. Pour être accepté comme un hacker, vous devez vous comporter comme si vous aviez ce type d'attitude vous-même. Et pour vous comporter comme si vous aviez ce type d'attitude, vous devez vraiment y croire.
Mais si vous pensez qu'adopter l'attitude d'un hacker n'est qu'un moyen pour être accepté dans la culture des hackers, alors vous avez raté le point essentiel: il faut croire à ces principes pour en tirer la motivation personnelle pour continuer à apprendre. Comme pour tous les arts créatifs, la façon la plus efficace de devenir un maître est d'imiter l'état d'esprit des maîtres - non seulement intellectuellement - mais aussi émotionnellement.
Donc, pour devenir un hacker, répétez les phrases suivantes jusqu'à y croire réellement :

1. Le monde est plein de problèmes fascinants qui n'attendent que d'être résolus

C'est très amusant d'être un hacker, mais c'est un amusement qui demande beaucoup d'efforts, et l'effort demande de la motivation. Les champions sportifs tirent leur motivation d'un plaisir physique à accomplir des performances avec leur corps, à dépasser leurs propres limites physiques. De façon similaire, pour être un hacker, il faut ressentir une certaine excitation à résoudre des problèmes, à affûter ses compétences, à exercer son intelligence.Si pour vous cette façon de penser n'est pas naturelle, il faut qu'elle le devienne si vous voulez devenir un hacker. Autrement, vous allez découvrir que votre énergie va se disperser dans des distractions comme le sexe, l'argent ou la reconnaissance sociale.(Vous devez également développer une certaine foi en votre propre capacité d'apprentissage : même si vous ne savez pas tout ce qu'il faut pour résoudre un problème, si vous en traitez seulement une partie et que vous en apprenez quelque chose, alors vous allez réussir à traiter la partie suivante, et ainsi de suite jusqu'à ce que le problème soit résolu.)

2. Personne ne devrait jamais avoir à résoudre le même problème deux fois.

Les cerveaux créatifs sont une ressource précieuse et limitée. Il ne faut pas la gâcher en réinventant la roue quand il y a tant de problèmes fascinants qui attendent.

Pour vous comporter comme un hacker, vous devez vous convaincre que le temps de pensée des autres hackers est précieux, à tel point que c'est pour vous une obligation morale de partager vos informations, de résoudre des problèmes et d'en donner les solutions pour que les autres hackers puissent résoudre de nouveaux problèmes au lieu de perpétuellement revenir sur les mêmes.
(Il n'est pas nécessaire de vous croire obligé de donner toute votre production créative, bien que les hackers les plus respectés soient ceux qui le font. Il est tout à fait compatible avec les valeurs des hackers d'en vendre une partie suffisante pour payer sa nourriture, son loyer et ses ordinateurs, d'entretenir une famille et même de devenir riche, à condition de ne jamais oublier que vous êtes un hacker pendant tout ce temps.)

3. La routine et l'ennui sont inacceptables.

Les hackers (et les gens créatifs en général) ne devraient jamais se consacrer à des tâches ennuyeuses ou répétitives, parce que cela signifie qu'ils ne font pas pas ce qu'eux seuls savent faire : résoudre de nouveaux problèmes.

Pour se comporter comme un hacker, vous devez vous en convaincre suffisamment pour automatiser les parties ennuyeuses de votre travail, non seulement pour vous-même, mais aussi pour tous les autres (et particulièrement les autres hackers).

(Il y a une exception apparente à cette règle : un hacker va parfois faire des choses qui semblent répétitives ou ennuyeuses à un observateur pour se vider l'esprit, ou pour acquérir une nouvelle compétence, ou pour faire une expérience particulière. Mais c'est toujours par choix : une personne capable de penser ne devrait jamais être forcée à faire un travail ennuyeux.)

4. Vive la liberté!

Les hackers sont naturellement anti-autoritaristes. Si une personne peut vous donner des ordres, elle peut vous empêcher de résoudre le problème particulier, quel qu'il soit, par lequel vous êtes fasciné à un instant donné. Et, vu la façon dont les esprits autoritaristes fonctionnent, elle trouvera en général une raison particulièrement stupide de le faire. Par conséquent, les attitudes autoritaristes doivent être combattues partout où elles se trouvent.

(Ce n'est pas la même chose que de combattre toute forme d'autorité. Les enfants ont besoin d'être guidés, et les criminels d'être arrêtés. Un hacker peut accepter de se soumettre à une certaine forme d'autorité pour obtenir quelque chose qu'il désire plus que le temps perdu à suivre les ordres. Mais c'est un marchandage limité, conscient. Une soumission totale à une autorité donnée est hors de question.)
Les autoritaristes se nourrissent de censure et de secrets. Et ils se méfient de l'entraide mutuelle et du partage d'informations. Ils n'apprécient la "coopération'' que quand ils peuvent la contrôler. Donc, pour vous comporter comme un hacker, vous devez développer une hostilité instinctive vis-à-vis de la censure, du secret et de l'usage de la force ou de la ruse pour dominer des adultes responsables. Et vous devez vous tenir prêt à agir conformément à cette conviction.

5. L'attitude n'est pas un substitut à la compétence.

Pour être un hacker, vous devez développer un certain nombre de ces attitudes. Mais cela seul ne suffira pas à faire de vous un hacker, pas plus qu'un champion sportif ou une rock star. Pour devenir un hacker, il faut de l'intelligence, de l'expérience, de la persévérance et beaucoup de travail.

Par conséquent, vous devez apprendre à vous méfier des attitudes et à respecter les compétences, quelles qu'elles soient. Les hackers ne se laissent pas impressionner par les poseurs, mais ils apprécient les compétences, particulièrement les compétences de hackers, mais aussi toutes les autres. Les compétences dans les domaines exigeants maîtrisées par une élite sont particulièrement appréciées, et plus particulièrement celles qui nécessitent un esprit perçant et une grande concentration.

Si vous respectez la compétence, alors vous aimerez travailler à vous améliorer sans cesse, et cela sera plus un plaisir qu'une routine. C'est vital pour devenir un hacker.

Les compétences de base du hacker

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, NDT] et Perl [ou Python, NDT], 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