Bonjour à tous. Ceci est un duplicatat du post de HackAngel sur HackBBS.
Je pense qu'il pourra en éclairer beaucoup.
Bonne lecture !
Tortue 974.
Suite du texte au post suivant
Je pense qu'il pourra en éclairer beaucoup.
Bonne lecture !
Tortue 974.
- Comment devenir un hacker
Eric Steven Raymond
Texte original copyright © 2001 Eric S. Raymond
- Sommaire
Pourquoi ce Document ?
Qu'est-ce qu'un Hacker ?
L'Attitude du Hacker
1. Le monde est rempli de problèmes fascinants qui n'attendent que d'être résolus.
2. On ne devrait jamais avoir à résoudre un problème deux fois.
3. L'ennui et les corvées sont maléfiques.
4. La liberté est bonne.
5. L'attitude ne remplace pas la compétence.
Les Compétences de Base du Hacker
1. Apprenez à programmer.
2. Procurez-vous un Unix à code source ouvert et apprenez à vous en servir.
3. Apprenez à utiliser le World Wide Web et à écrire en HTML.
4. Si vous ne maîtrisez pas l'anglais technique, apprenez-le.
Les Statuts dans la Culture Hacker
1. Écrivez des programmes à code source ouvert.
2. Aidez à tester et à déboguer des logiciels à code source ouvert.
3. Publiez des informations utiles.
4. Aidez à maintenir l'infrastructure vivante.
5. Contribuez à la culture hacker.
La Relation Hacker/Nerd
Remarques sur le Style de Vie
Note Historique : Hacking, Open Source, et Free Software
Autres Ressources
Foire Aux Questions
Pourquoi ce document ?
En tant qu'éditeur du Jargon File et auteur d'autres documents notoires de même nature, je reçois souvent des e-mails d'internautes débutants qui me demandent comment puis-je apprendre à devenir un hacker?. En 1996 j'ai remarqué qu'il ne semblait pas y avoir de FAQs ou de documents sur le Web qui répondaient à cette question vitale et j'en ai commencé un. De nombreuses personnes le considèrent comme une édition définitive, et je suppose que cela veut dire que ça l'est. Toutefois, je ne clame pas avoir une autorité exclusive sur le sujet et si vous n'aimez pas ce que vous lisez ici, rédigez votre propre document.
Si vous lisez un instantané de ce document hors-ligne, l'original se trouve à http://catb.org/~esr/faqs/hacker-howto.html.
Note : il y a une Foire aux questions à la fin de ce document. S'il vous plaît, lisez ces questions (deux fois) avant de m'envoyer des e-mails à propos de ce document.
De nombreuses autres traductions de ce document sont disponibles en: Arabe, Bulgare, Catalan, Chinois (simplifié), Danois, Néerlandais, Estonien, Farsi, Finnois, Allemand, Grec, Hébreu, Italien, Japonais, Norvégien, Polonais, Portugais (Brésilien), Roumain, Russe, Espagnol, Turc et Suédois. Comme ce document change occasionnellement, ces traductions peuvent refléter d'anciennes versions.
Le diagramme qui comporte 5 points dans 9 cases et qui décore ce document est nommé un glider. C'est un motif simple possédant des propriétés surprenantes dans une simulation mathématique, appelé Jeu de la Vie qui fascine les hackers depuis de nombreuses années. Je pense que le glider est un bon emblème visuel de ce que les hackers sont : abstraits, semblant à première vue mystérieux mais une passerelle vers un véritable monde ayant sa propre logique. Vous pouvez en lire plus sur le glider ici.
Qu'est-ce qu'un hacker ?
Le Jargon File contient un grand nombre de définitions du terme hacker, la plupart se rapportant aux aptitudes techniques et au plaisir de résoudre des problèmes et à dépasser les limites. Cependant, si vous souhaitez savoir comment devenir un hacker, seules deux définitions sont pertinentes.
Il existe une communauté, une culture commune, d'experts en programmation et de gourous de la gestion de réseau dont les racines remontent à quelques décennies, au temps des mini-ordinateurs à exploitation partagée et des premières tentatives du réseau ARPAnet. Ce sont les membres de cette culture qui ont introduit le terme hacker. Les hackers ont construit Internet. Ils ont fait du système d'exploitation UNIX ce qu'il est aujourd'hui. Ils font tourner le réseau Usenet. Ils font fonctionner le Web. Si vous faites partie de cette culture, si vous y avez contribué et d'autres membres de cette communauté savent qui vous êtes et vous appellent un hacker, alors vous êtes un hacker.
L'état d'esprit d'un hacker ne se limite pas à cette culture informatique. Il y a des personnes qui appliquent cette attitude à d'autres domaines tels que l'électronique ou la musique. En fait, il est possible de la consacrer à l'état le plus avancé de tout art ou science. Les hackers informatiques reconnaissent ces esprits apparentés et peuvent parfois les appeler des hackers. Certains même estiment que cette démarche est totalement indépendante du support sur lequel le hacker travaille. Toutefois, dans la suite de ce document, nous allons concentrer notre attention aux aptitudes et au comportement des hackers informatiques, et aux traditions de cette culture commune qui a donné naissance au terme hacker.
Il y a un autre groupe de personnes qui s'autoproclament des hackers, mais qui n'en sont pas. Ces personnes (majoritairement des adolescents de sexe masculin) qui prennent leur pied à pirater les systèmes téléphoniques et à s'introduire à distance dans les ordinateurs. Les vrais hackers les appellent des crackers et ne veulent avoir rien à faire avec eux. Les vrais hackers pensent surtout que les crackers sont paresseux, irresponsables et pas très brillants. Ils réfutent l'idée qu'être capable de craquer des sécurités fasse de soi un hacker tout comme démarrer une voiture en court-circuitant l'allumage fasse de soi un ingénieur automobile. Malheureusement, de nombreux journalistes et écrivains se sont laissés abuser à utiliser le mot hacker pour décrire les crackers, ce qui ne lasse pas d'irriter les hackers.
La différence fondamentale est : les hackers construisent des choses, les crackers les détruisent.
Si vous souhaitez être un hacker, continuez de lire ce document. Si vous voulez être un cracker, allez lire le newsgroup alt.2600 et préparez vous à un réveil brutal après avoir découvert que vous êtes moins intelligent que vous le croyez. C'est tout ce que j'ai à dire des crackers.
L'attitude du hacker
- 1. Le monde est rempli de problèmes fascinants qui n'attendent que d'être résolus.
2. On ne devrait jamais avoir à résoudre un problème deux fois.
3. L'ennui et les corvées sont maléfiques.
4. La liberté est bonne.
5. L'attitude ne remplace pas la compétence.
Les hackers résolvent des problèmes, construisent des choses et croient en la liberté et en l'entraide bénévole. Pour être accepté comme hacker, vous devez vous comporter comme si vous aviez vous-même cet état d'esprit. Et pour vous comporter comme si vous aviez cet état d'esprit, vous devez vraiment y croire.
Cependant, si vous pensez à adopter des comportements propres aux hackers dans le seul but d'être accepté dans leur culture, vous ne comprenez rien. Croire en ces choses est important parce qu'elles vous permettrons de rester motivé et vous aideront à apprendre. Comme dans toute forme d'art, le moyen le plus efficace de devenir un maître est d'imiter l'état d'esprit des maîtres, non seulement intellectuellement mais aussi émotionnellement.
Et comme dit le poème moderne Zen suivant :
- Pour suivre le chemin :
Regarde le maître,
Suis le maître,
Marche à côté du maître,
Regarde par les yeux du maître,
Deviens le maître.
Donc si vous voulez être un hacker, répétez les phrases suivantes jusqu'à y croire réellement :
1. Le monde est rempli de problèmes fascinants qui n'attendent que d'être résolus.
C'est très amusant d'être un hacker, mais c'est le genre d'amusement qui demande beaucoup d'efforts. Et ces efforts nécessitent de la motivation. Les athlètes accomplis tirent leur motivation d'un certain plaisir physique à faire travailler leur corps, à dépasser leurs propres limites. De manière similaire, il faut, pour être un hacker, ressentir une excitation à résoudre des problèmes, à affûter ses compétences et à exercer son intelligence.
Si cette façon de penser ne vous semble pas naturelle, il vous faudra qu'elle le soit pour que vous deveniez un hacker. Autrement vous découvrirez que votre énergie est rongée par des distractions telles que le sexe, l'argent et la reconnaissance sociale.
Vous devez aussi développer une certaine foi en votre propre capacité d'apprentissage, la conviction que, même si vos connaissances ne vous permettent pas de résoudre un problème, le fait d'en attaquer une partie et d'en tirer quelque chose vous permettra de résoudre une autre partie, et cela jusqu'à résoudre le problème entier.
2. On ne devrait jamais avoir à résoudre un problème deux fois.
Les cerveaux créatifs sont une ressource de grande valeur, mais limitée. Ils ne devraient pas perdre leur temps à réinventer la roue alors qu'il existe tant de nouveaux problèmes fascinant qui les attendent.
Pour vous comporter comme un hacker, vous devez être convaincu que le temps de pensée des autres hackers est précieux. Si précieux qu'il est un devoir moral pour vous de partager vos informations, de résoudre des problèmes et d'en donner les solutions pour que d'autres hackers puissent se concentrer sur de nouveaux problèmes au lieu de travailler perpétuellement sur d'anciens.
Notez, cependant, que "Aucun problème n'a à être résolu deux fois" ne signifie pas que vous ayez à considérer toutes les solutions existantes comme sacrées, ou qu'il n'y a qu'une seule solution valable pour un problème donné. Souvent, on apprend beaucoup d'un problème inconnu jusqu'alors en étudiant la première version d'une solution. Il est tout à fait acceptable, et souvent nécessaire, de décider que l'on peut faire mieux. Ce qui est absolument inacceptable, ce sont toutes les barrières artificielles - techniques, légales, ou institutionnelles (comme du code fermé) - qui empêche une bonne solution d'être réutilisée et force les gens à ré-inventer la roue.
(Ne vous croyez pas obligé de diffuser toutes vos créations, bien que les hackers les plus respectés sont ceux qui le font. En vendre une partie pour avoir de quoi se nourrir, se loger et payer ses ordinateurs est compatible avec les valeurs des hackers. Vous pouvez aussi utiliser vos compétences pour entretenir votre famille ou même devenir riche tant que vous restez fidèle à votre art et à vos confrères hackers.)
3. L'ennui et les corvées sont maléfiques.
Les hackers (et les gens créatifs en général) ne devraient jamais s'ennuyer ou se consacrer à des taches répétitives, parce que dans ce cas, ils ne font pas ce qu'eux seuls savent faire : résoudre de nouveaux problèmes. Cette perte de temps nuit à tout le monde. Pour ces raisons, l'ennui et les corvées ne sont pas seulement déplaisants, ils sont maléfiques.
Pour vous comporter comme un hacker, vous devez vous en convaincre suffisamment pour vouloir automatiser au maximum les tâches ennuyeuses de votre travail, non seulement pour vous-même, mais aussi pour tous les autres (et particulièrement les autres hackers).
(Il existe toutefois une exception à cette règle. Un hacker va parfois faire des choses qu'un observateur trouverait répétitives ou ennuyeuses dans le but de se vider l'esprit, d'acquérir une nouvelle compétence ou de l'expérience. Mais c'est toujours par choix : toute personne capable de penser ne devrait jamais être forcée d'effectuer un travail ennuyeux.)
4. La liberté est bonne.
Les hackers sont naturellement anti-autoritaires. Quiconque peut vous donner des ordres peut vous empêcher de résoudre les problèmes qui vous fascinent. Étant donné la façon dont les esprits autoritaires fonctionnent, ils trouveront toujours un prétexte stupide pour le faire. Vous devez donc combattre les comportements autoritaires partout où vous les rencontrez, de crainte qu'ils ne vous réduisent au silence, vous et les autres hackers.
(Ce n'est pas pareil que de combattre toute forme d'autorité. Les enfants ont besoins d'être guidés et les criminels d'être contenus. Un hacker peut accepter un certain type d'autorité pour obtenir quelque chose qui vaut bien le temps passé à suivre des ordres. Mais ce doit être une négociation réfléchie et limitée. La soumission totale requise par l'autoritarisme n'est pas une option.)
Les autoritaristes prospèrent sur la censure et le secret, et se méfient de l'entraide volontaire et du partage d'informations. Ils n'apprécient la coopération que lorsqu'ils la contrôlent. De ce fait, pour vous comporter en hacker, vous devez devenir instinctivement hostile à la censure, au secret et l'emploi de la force ou de la tromperie pour contraindre des adultes responsables. Et vous devez être prêt à agir conformément à cette conviction.
5. L'attitude ne remplace pas la compétence.
Pour être un hacker, vous devez acquérir certains de ces traits de caractère. Mais simplement adopter un état d'esprit ne fera de vous un hacker, pas plus qu'un champion sportif ou une rock star. Devenir un hacker nécessite de l'intelligence, de l'expérience, du dévouement et un travail acharné.
Par conséquent, vous devez apprendre à vous méfier des attitudes et à respecter les aptitudes, quelles qu'elles soient. Les hackers ne perdront pas leur temps avec les m'as-tu-vu mais ils admirent les compétences, particulièrement liées aux hackers, mais toute compétence est bonne. Elle est particulièrement appréciée lorsqu'elle touche des domaines astreignants que peu de personnes maîtrisent et plus encore des domaines qui nécessitent de l'acuité mentale, du savoir-faire et de la concentration.
Si vous vénérez les aptitudes, vous prendrez plaisir à en développer. Le travail acharné et le dévouement prendront la forme d'un jeu intense et non d'une corvée. Ce trait de caractère est vital pour devenir un hacker.
Les Compétences de Base du Hacker
- 1. Apprenez à programmer.
2. Procurez-vous un Unix à code source ouvert et apprenez à vous en servir.
3. Apprenez à utiliser le World Wide Web et à écrire en HTML.
4. Si vous ne maîtrisez pas l'anglais technique, apprenez-le.
L'état d'esprit du hacker est primordial, mais ses aptitudes le sont plus encore. Son attitude ne peut remplacer ses compétences et il y a un ensemble de connaissances de base que vous devez posséder avant de pouvoir être considéré comme un hacker par la communauté.
Ces connaissances évoluent lentement au fil des années avec la technologie, certains outils devenant obsolètes, d'autres voyant le jour. Par exemple, la programmation en langage machine était autrefois indispensable alors que le HTML est tout récent. De nos jours, les aptitudes que vous devez posséder sont les suivantes :
1. Apprenez à programmer.
C'est, évidemment, la compétence fondamentale du hacker. Si vous ne connaissez pas de langage de programmation, je vous recommande de débuter avec Python. Il est clairement structuré, bien documenté et relativement simple pour les débutants. Bien qu'il s'agisse d'un bon langage de départ, il ne s'agit pas d'un simple jouet. C'est un outil très puissant, flexible et particulièrement efficace pour les grands projets. J'ai rédigé une évaluation de Python plus détaillée. De bons tutoriels sont disponibles sur le site web de Python.
Je recommandais auparavant Java comme langage d'apprentissage, mais cette critique m'a fait changer d'avis (voir la section "The Pitfalls of Java as a First Programming Language"). Un hacker ne peut, selon cette critique, "approcher la résolution de problèmes comme un plombier dans une quincaillerie" ; vous devez savoir ce que les composants font concrètement. Je pense que l'idéal est d'apprendre d'abord le C et le Lisp, et ensuite Java.
Il y a une généralité à prendre en compte ici. Si un langage en fait trop, il peut être simultanément un bon outil pour la production et un mauvais pour l'apprentissage. Il n'y a pas que les langages qui ont ce problème ; les frameworks web comme RubyOnRails, CakePHP, ou Django peuvent trop facilement vous donner une compréhension superficielle qui vous laissera sans ressource face à un problème complexe, ou simplement débugger la solution d'un problème facile.
Si vous vous lancez sérieusement dans la programmation, vous devrez étudier le C, le langage noyau d'Unix. Le langage C++ en est très proche. Ainsi, si vous connaissez l'un, vous n'aurez pas de difficulté à apprendre l'autre. Cependant, il n'est pas bon d'en faire votre premier langage. D'ailleurs, plus vous pouvez éviter de programmer en C, plus vous serez productif.
Le langage C est très efficace et ménage particulièrement les ressources de votre machine. Malheureusement, cet atout nécessite une gestion manuelle conséquente des ressources, telles que la mémoire. Tout ce code de bas niveau est complexe et enclin aux bogues. Vous devrez passer une grande partie de votre temps à le déboguer. De nos jours, avec la puissance des machines, c'est en général un mauvais compromis. Il est plus astucieux de choisir un langage qui demandera moins de votre temps que celui de votre machine. Pour cela, Python est un bon choix.
D'autres langages de programmation particulièrement chers aux hackers comprennent Perl et LISP. Apprendre le Perl est intéressant pour des raisons pratiques. Il est très largement utilisé dans les pages Web dynamiques et l'administration système. Ainsi, même si vous ne l'employez jamais, vous devriez savoir le lire. Par ailleurs, nombre de personnes s'en servent comme je vous conseille d'utiliser Python, afin d'éviter la programmation en C pour des projets qui ne nécessitent pas l'efficacité des machines C. Vous aurez besoin de comprendre leur code.
L'apprentissage de LISP mérite votre attention car sa maîtrise offre une expérience révélatrice et profonde. Elle fera de vous un meilleur programmeur pour le reste de vos jours, même si vous n'utilisez plus vraiment le langage LISP. (Il est assez facile d'obtenir des bonnes bases avec LISP en codant ou en modifiant des mode d'édition de l'éditeur de texte Emacs ou des plugins Script-Fu de GIMP.)
Le mieux, en fait, est de les apprendre tous les cinq (Python, Java, C/C++, Perl et LISP). En plus d'être les langages les plus importants pour les hackers, ils représentent des approches très diverses de la programmation, et chacun vous apportera des connaissances très profitables.
Mais soyez conscient que vous n'obtiendrez pas plus les aptitudes d'un hacker ou même d'un programmeur en connaissant seulement un ou deux langages qu'en les accumulant aveuglément. Vous devez apprendre à aborder les problèmes de programmation de manière générale, quelque soit le langage que vous utilisez. Pour être un vrai hacker, vous devez pouvoir apprendre un nouveau langage en quelques jours, simplement en appliquant les règles du manuel à vos connaissances en matière de programmation. Par conséquent il vous faudra maîtriser plusieurs langages très différents.
Je ne peux pas vous donner ici d'instructions complètes sur l'apprentissage de la programmation, il s'agit d'une exercice complexe. Mais je peux vous dire que les cours et les livres n'y suffisent pas (de nombreux, et peut-être même la plupart des meilleurs hackers sont autodidactes). Vous pouvez apprendre dans les livres certaines fonctionnalités de langage, quelques connaissances, mais l'état d'esprit qui les transformera en réelles compétences ne peut s'acquérir que par des années d'apprentissage et de pratique. Ce qu'il vous faut, c'est (a) lire du code et (b) écrire du code.
Peter Norvig, qui est l'un des meilleurs hackers de Google et co-auteur de l'un des manuels les plus utilisés sur l'IA, a écrit un excellent essai intitulé "Teach Yourself Programming in Ten Years". Sa "recette pour la réussite en programmation" mérite une attention particulière.
Apprendre à programmer, c'est comme apprendre à écrire naturellement et correctement dans n'importe quelle langue. La meilleure façon d'y arriver, c'est de lire les maîtres, d'écrire soi-même un peu, de lire beaucoup plus, d'en écrire un peu plus, et ce jusqu'à ce que votre écriture montre la même force et simplicité que vos modèles.
Il était autrefois difficile aux apprentis hackers de trouver du bon code à lire et à bricoler, parce que les sources des gros programmes étaient rarement disponibles. Cette situation a vraiment changé. Aujourd'hui, les logiciels à code source ouvert, les outils de programmation et systèmes d'exploitations open-source, tous écris par des hackers, sont très largement accessibles. Ce qui m'amène à notre sujet suivant ...
2. Procurez-vous un Unix à code source ouvert et apprenez à vous en servir.
Je vais supposer que vous possédez ou que avez accès à un ordinateur personnel (Prenez le temps d'apprécier ce que cela signifie. La culture des hackers est issue d'une époque où les ordinateurs étaient si coûteux que les particuliers ne pouvaient en posséder). Le tout premier pas pour n'importe quel aspirant hacker pour obtenir des compétences de hacker est d'obtenir une copie de GNU/Linux,d'un des Unix de BSD ou d'OpenSolaris, de l'installer sur sa machine et la faire tourner.
Certes, il existe d'autres systèmes d'exploitation dans le monde qu'Unix. Le problème est qu'ils sont distribués en code binaire; vous ne pouvez ni le lire ni le modifier. Essayer de bidouiller sur une machine Windows, sous MacOS ou tout autre système binaire, c'est comme tenter d'apprendre à danser alors que vous êtes entièrement plâtré.
Il est possible de bricoler avec OS/X. Toutefois, seule une partie du système est à code source ouvert. Vous risquez donc de rencontrer de nombreux murs, et vous devez rester prudent et ne pas prendre la mauvaise habitude de dépendre d'un code qui est la propriété d'Apple. Si vous vous concentrez sur le système Unix, sous son capot, vous pourrez apprendre quelques astuces très utiles.
Unix est le système d'exploitation d'Internet. Alors que vous pouvez apprendre à vous servir d'Internet sans connaître Unix, vous ne pouvez pas être un hacker d'Internet sans comprendre Unix. C'est pour cette raison que, de nos jours, la culture des hackers est très fortement centrée sur Unix. Ce n'a pas toujours été le cas, et quelques hackers rétro n'en sont toujours pas très contents. Cependant, la symbiose entre Unix et Internet est devenue tellement solide que même la toute puissance de Microsoft n'a pas l'air de l'entailler.
Alors, installez Unix. Personnellement, j'aime Linux, mais il y a d'autres choix possibles (et oui, vous pouvez faire tourner Linux et Microsoft Windows sur la même machine). Apprenez-le. Faites-le tourner. Bidouillez avec. Communiquez avec Internet grâce à lui. Lisez le code. Modifiez le code. Vous trouverez de meilleurs outils de programmation (dont C, LISP, Python et Perl) que sous n'importe quel système d'exploitation de Microsoft. Vous vous amuserez et vous assimilerez plus de connaissances que vous ne le croyez, jusqu'à ce que vous réalisiez que vous êtes un maître hacker.
Pour en savoir plus sur Unix, voir The Loginataka. Vous pourriez aussi jeter un oeil à The Art Of Unix Programming.
Pour mettre la main sur une copie de Linux, voir le site Linux Online! ; vous pouvez y effectuer un téléchargement ou, et c'est sans doute une meilleure idée, trouver un groupe local d'utilisateurs de Linux qui vous aidera pour votre installation.
Pendant les dix premières années de la vie de ce HOWTO, il était dit ici que du point de vue de l'utilisateur, toutes les distributions Linux étaient plus ou moins équivalentes. Mais en 2006-2007, un meilleur choix est apparu : Ubuntu. Même si les autres distributions ont leurs propres avantages dans leurs propres domaines, Ubuntu est de loin la plus accessible aux débutants.
Vous trouverez de l'aide et des ressources sur BSD Unix à http://www.bsd.org/.
Une bonne manière de faire ses premiers pas et de démarrer par ce que les fans de GNU/Linux appellent un live CD, une distribution qui s'exécute entièrement depuis un CD sans installation sur le disque dur. Ce sera lent - parce que les CDs sont lents, mais cela permet de jetter un oeil aux possibilités de la distribution sans devoir faire quoi que ce soit de drastique.
J'ai écris un premier jet sur les bases d'Unix et de l'Internet.
Je déconseillais auparavent d'installer GNU/Linux ou BSD vous-même si vous êtiez débutant. De nos jours, les programmes d'installation sont devenus assez efficaces pour que l'installation soit possible de manière autonome, même pour un débutant. Cependant, il reste possible de contacter votre Linux User Group local et y demander de l'aide: ça ne peut pas faire de mal, et facilitera sans doute le processus.
3. Apprenez à utiliser le World Wide Web et à écrire en HTML.
La plupart des créations de la communauté des hackers fonctionnent dans l'ombre. Elles permettent de faire tourner des usines, des bureaux et des universités sans impact apparent sur les vies des non-hackers. Le Web est la seule grosse exception, ce jouet des hackers, brillant et démesuré, dont même les politiciens admettent qu'il a changé le monde. Rien que pour cette raison, et pour bien d'autres encore, vous devez apprendre à vous servir du Web.
Cela ne signifie pas uniquement savoir utiliser un navigateur (tout le monde pour le faire) mais aussi apprendre à écrire en HTML, le langage de balisage du Web. Si vous ne savez pas programmer, écrire en HTML vous enseignera quelques habitudes mentales qui vous y aideront. Réalisez donc votre page personnelle. Tâchez de vous cantonner au XHTML, qui est un langage plus propre que le HTML classique. (Il existe de bon tutoriels pour débutants sur le Web: en voici un.)
Toutefois, avoir son propre site Web ne fera pas de vous un hacker. Le Web est plein de pages personnelles. Un grand nombre sont sans intérêt, un lisier sans contenu; certes un lisier qui tape à l'oeil, mais pour autant insipide (pour plus de détails à ce propos, visitez The HTML Hell Page).
Pour qu'elle en vaille la peine, votre page doit posséder du contenu. Elle doit être intéressante et/ou utile pour les autres hackers. Ce qui nous amène au sujet suivant...
4. Si vous ne maîtrisez pas l'anglais technique, apprenez-le.
En tant qu'américain et qu'anhone de naissance, j'ai d'abord eu des réserves quant à suggérer ceci, de peur que ce soit pris comme une sorte d'impérialisme culturel. Pourtant, plusieurs personnes, d'autre langue natale, m'ont exhorté à souligner que l'anglais est la langue pratique d'Internet et de la culture hacker. Vous en aurez donc besoin pour communiquer avec la communauté des hackers.
Tout ceci est véridique. En 1991, j'ai appris que de nombreux hackers, dont l'anglais est la seconde langue, l'utilise dans des discussions techniques, même s'ils ont la même langue natale. On m'a rapporté à l'époque que l'anglais possède un vocabulaire technique plus riche que tout autre langue, ce qui en fait un outil plus adapté. Pour des raisons similaires, les traductions de livres techniques rédigés en anglais laissent souvent à désirer (lorsqu'elles existent).
Linus Torvalds, un finlandais, commente son code en anglais (apparemment, il ne lui est jamais venu à l'esprit de faire autrement). Sa fluidité en anglais fut un facteur primordial dans sa capacité à rassembler une communauté internationale de développeurs pour Linux. C'est un exemple qui vaut d'être suivi.
Etre anhone de naissance ne garantit pas que vos compétences linguistiques soient suffisantes pour fonctionner dans le monde des hackers. Si vos écrits sont semi-littéraires, avec une grammaire approximative et constellés de fautes d'orthographe, beaucoup de hacker (moi inclus) auront tendance à vous ignorer. Une écriture bancale ne signifie pas forcément une pensée bancale, mais la corrélation est souvent très forte et nous n'avons que faire de penseurs bancals. Si vous ne savez pas écrire correctement, apprenez à le faire.
Statut dans la culture hacker
- 1. Écrivez des programmes à code source ouvert.
2. Aidez à tester et à déboguer des logiciels à code source ouvert.
3. Publiez des informations utiles.
4. Aidez à maintenir l'infrastructure vivante.
5. Contribuez à la culture hacker.
Comme la plupart des cultures sans économie fiduciaire, la réputation fait loi dans la communauté des hackers. Vous essayez de résoudre des problèmes intéressants, mais seuls vos égaux ou vos supérieurs d'un point de vue technique sont à même de juger l'intérêt réel de ces problèmes et la qualité de vos solutions.
Par conséquent, lorsque vous jouez au hacker, vous apprenez à tenir les scores en fonction de ce que les autres hackers pensent de vos aptitudes; et c'est pourquoi vous n'appartiendrez à la communauté hacker qu'un fois reconnu par ses membres. Ce fait est masqué par l'image de solitude de l'activité du hacker, ainsi que par un tabou culturel (en déclin actuellement mais toujours présent) au sein même des hackers, qui refusent que l'orgueil ou la validation extérieure ne fassent partie de leurs motivations.
Explicitement, le monde des hackers est ce que les anthropologues appellent une culture du don. Votre statut et votre réputation ne se fondent pas sur votre potentiel à dominer les autres, sur votre beauté ou sur vos possessions qui font des envieux, mais sur votre capacité à donner, en particulier votre temps, votre créativité et le résultat de vos compétences.
Il existe en fait cinq différentes actions que vous pouvez entreprendre pour gagner le respect des hackers :
1. Écrivez des programmes à code source ouvert.
La première action, la plus essentielle et traditionnelle, est d'écrire des programmes que les autres hackers trouvent amusants ou utiles, et d'en diffuser le code source à toute la communauté.
(Nous avions l'habitude de les appeler des free software [NDT: logiciels libres, en français], mais cela troublait trop de personnes qui n'étaient pas certain du véritable sens de free [NDT: en anglais, le terme free signifie à la fois libre et gratuit]. La plupart des hackers, au moins deux tiers selon des analyses sur le contenu du Web, préfèrent désormais utiliser le terme "logiciel open-source"[NDT: en français, logiciel à code source ouvert].)
Les demi-dieux les plus vénérés sur la planète hacker sont ceux qui ont écrit des programmes importants répondant à des besoins répandus et les ont diffusé gratuitement, si bien que maintenant tout le monde les utilise.
Il y a une nuance historique à faire ici. Même si les hackers ont toujours vu les développeurs de logiciels libres en leur sein comme noyau le plus dur, avant la moitié des années 1990 la plupart des hackers travaillaient majoritairement sur des logiciels fermés. Ceci était encore le cas quand j'ai écrit la première version de ce HOWTO en 1996 ; il a fallu la popularisation du logiciel libre après 1997 pour changer les choses. Aujourd'hui, la "communauté hacker" et les "développeurs libres" sont deux descriptions de ce qui est essentiellement une seule et même culture et population, mais faut savoir que cela n'a pas toujours été le cas. (Pour plus d'information à ce sujet, voir la section "Note historique : Hacking, Open Source, et Free Software".)
2. Aidez à tester et à déboguer des logiciels à code source ouvert.
Les hackers aident quiconque en a besoin et déboguent les logiciels à code source ouvert. Dans ce monde imparfait, nous passerons fatalement la majorité du temps de développement d'un logiciel à le déboguer. C'est pour cette raison que tous les auteurs de programmes à code source vous diront qu'un bon bêta-testeur (qui sait décrire des symptômes clairement, bien localiser des problèmes, tolérer des bogues dans une mise à jour éclair et qui est prêt à lancer quelques procédures de diagnostic simples) vaut son pesant d'or. Il suffit d'un seul bêta-testeur pour faire la différence entre une phase de déboguage prolongée, épuisante et cauchemardesque et une besogne profitable.
Si vous êtes novice, tâchez de trouver un programme en développement qui vous intéresse et d'en être un bon bêta-testeur. La progression se fait naturellement en commençant par aider à tester les programmes, puis à les déboguer pour finalement participer à leur modification. Vous apprendrez beaucoup en procédant de la sorte, et vous vous ferez de bonnes relations avec des personnes qui vous aideront plus tard.
3. Publiez des informations utiles.
Une autre bonne chose à faire est de réunir et de trier des informations utiles et intéressantes et de les publier sur des pages Web ou des documents tels que des Foires Aux Questions (FAQ) de sorte qu'elles soient disponibles au public.
Ceux qui maintiennent les principales FAQs techniques récoltent presque autant de respect que les auteurs de programmes à code source ouvert.
4. Aidez à maintenir l'infrastructure vivante.
La culture hacker (et donc le développement technique d'Internet) est basée sur le bénévolat. Il existe de nombreuses tâches nécessaires quoique peu séduisantes pour qu'elle se maintienne : administrer des listes de diffusion, modérer des forums de discussion, gérer de grands sites d'archivage de logiciels, développer des RFCs [NDT : Request For Comment, publications de référence portant sur le réseau Internet et rédigées par les experts du réseau, définition du grand dictionnaire terminologique] et d'autres normes techniques.
Les personnes qui maintiennent cette infrastructure sont très respectées parce que tout le monde sait que c'est un travail qui demande beaucoup de temps et qui n'est pas aussi amusant que de jouer avec du code. Y contribuer est une preuve de dévouement.
5. Contribuez à la culture hacker.
Enfin, pour pouvez participer à la transmission de la culture hacker elle-même (par exemple, en rédigeant un livre pour enfants complet sur comment devenir un hacker :-)). Avant d'en arriver là, vous devrez avoir roulé votre bosse dans la communauté et vous être illustré dans l'une des quatre actions ci-dessus.
Le monde des hackers n'a pas de chefs, à proprement parler, mais il possède des héros et des anciens de la tribu, des historiens et des porte-parole. Quand vous aurez passé suffisamment de temps dans les tranchées, vous pourrez peut-être devenir l'un deux. Mais attention, les hackers se méfient de l'ego flagrant des anciens de leur tribu; il est apparemment dangereux d'être en quête de ce statut. Plutôt que de vous y efforcer, vous devez vous mettre sur les bancs et attendre que ce statut vous tombe naturellement dans le creux de la main et rester modeste et abordable.
La Relation Hacker/Nerd
Contrairement au mythe populaire, vous n'avez pas besoin d'être un nerd [NDT : le nerd est un accroc de l'informatique qui passe des nuits entières devant son écran d'ordinateur, n'a pas de vie sociale et ressemble à un adolescent un peu attardé, lunette à double foyer, acné, peu athlétique.] pour être un hacker. Pourtant cela aide, et nombre de hackers sont en réalité des nerds. Être un rejeté social vous permet de rester concentré sur la seule chose qui importe, comme penser et bidouiller comme un hacker.
C'est pourquoi beaucoup de hackers endossent avec fierté le badge de "geek". C'est une manière de déclarer leur indépendance de toute attente sociale (et en même temps leur goût pour d'autres chose comme la science-fiction ou les jeux de stratégie, qui vont souvent avec le fait d'être un hacker). Le mot "nerd" était utilisé dans ce sens dans les années 1990; "nerd" était alors un peu péjoratif et "geek" plus agressif; peu après 2000 ils ont permuté, du moins dans la culture populaire américaine, et il y a à présent une mode de la culture "geek" chez des gens qui n'ont pas de connaissances techniques.
Si vous arrivez à passer suffisamment de temps pour devenir un bon hacker et continuer à avoir une vie à côté, tant mieux. Cela est plus simple de nos jours que dans les années 70s, quand j'étais un novice. Le courant de pensée de la société actuelle est plus complaisant vis-à-vis des techno-nerds. Il y a même un nombre croissant de personnes qui réalisent que les hackers font souvent d'excellents amants et de très bons maris.
Si vous souhaitez devenir un hacker parce que vous n'avez pas de vie, pas de problème; au moins, vous n'aurez pas de difficulté à vous concentrer. Et puis vous aurez peut-être une vie plus tard.
Remarques sur le Style de Vie
De nouveau, pour être un hacker, il faut entrer dans l'état d'esprit du hacker. Pour se faire, il existe quelques petites choses que vous pouvez faire lorsque vous n'êtes pas devant votre ordinateur. Ces activités ne remplacent pas le bidouillage informatique mais la plupart des hackers les pratiquent et se sentent fondamentalement connectés à l'essence même de ce qui fait le hacker.
- - Maîtrisez l'écrit de votre langue natale. Bien que le stéréotype veuille que le programmeur ne sache pas bien écrire, un nombre étonnant de hackers (parmi lesquels les plus éminents que je connaisse) sont des écrivains compétents.
- Lisez de la science-fiction. Allez aux conventions SF (un bon moyen de rencontrer des hackers et des proto-hackers).
- Pratiquez un art martial. Le genre de discipline mentale qu'exigent les arts martiaux semble assez similaire à ce que font les hackers. Les plus populaires parmi les hackers sont clairement les arts à main nue asiatiques tels que le Tae Kwon Do, le Karaté, Kung Fu, Aikido et Ju Jitsu. Les formes d'escrimes occidentales et orientales sont également pratiquées. Dans les endroits où cela est légal, le tir au pistolet devient également populaire depuis la fin des années 1990. Les arts martiaux les plus prisés par les hackers sont ceux qui insistent sur la discipline mentale, la méditation et le self-contrôle plutôt que sur la force pure, l'athlétisme ou la résistance physique.
- Etudiez une forme de méditation. La favorite parmi les hackers est le Zen (il est possible de pratiquer le Zen sans acquérir une religion ou renier la vôtre). D'autres styles peuvent fonctionner aussi, mais attention à ne pas en choisir un qui vous demande de croire en des choses tordues.
- Développez une oreille musicale aiguisée. Apprenez à apprécier des genres particuliers de musique. Apprenez à bien jouer d'un instrument ou à bien chanter.
- Stimulez votre goût pour les calembours et les jeux de mots.
Plus vous pratiquez déjà ces activités, plus il est probable que vous soyez à même de devenir un bon hacker. Pourquoi ces disciplines en particulier sont importantes n'est pas tout à fait clair, à part pour le fait qu'elles mettent en jeu un dosage, entre des aptitudes du lobe gauche et droit du cerveau, qui semble important (les hackers doivent savoir à la fois raisonner logiquement et franchir la barrière de la logique apparente d'un problème au moment opportun).
Travaillez aussi intensément que vous jouez et jouez aussi intensément que vous travaillez. Pour les véritables hackers, les frontières entre jeu, travail, science et art ont tendance à disparaître et à fusionner avec un entrain créatif incomparable. Aussi, ne vous limitez pas à une palette de compétences restreinte. Bien que la plupart des hackers se disent être des programmeurs, il y a de fortes chances pour qu'ils soient plus qu'expérimentés dans un grand nombre de domaines liés : administration de système, conception de sites Web, et dépannage de matériel informatique font partie des plus communs. Un hacker qui est administrateur de système, à son tour, sera sans doute compétent en programmation de script et en conception de sites Web. Les hackers ne font rien à moitié. S'ils s'investissent dans une activité, ils deviennent souvent très doués.
Pour conclure, voici une liste de choses à ne pas faire :
- - N'utilisez pas de pseudonymes ou de nom d'utilisateur stupide ou grandiloquent.
- Ne prenez pas part aux dissensions frénétiques sur le réseau Usenet (ni où que ce soit).
- Ne vous autoproclamez pas cyberpunk, et ne perdez pas votre temps avec ceux qui le font.
- Ne postez pas de messages et n'envoyez pas d'e-mails remplis de fautes d'orthographe et de grammaire.
La seule réputation que vous vous ferez en agissant de la sorte est celle d'un crétin. Les hackers ont la mémoire longue. Il vous faudra peut-être des années pour que ces erreurs soient oubliées.
Le problème des pseudonymes et des noms d'utilisateur mérite quelques approfondissements. Dissimuler son identité derrière un pseudonyme est un comportement immature et idiot, caractéristique des crackers, des warez d00dz [NDT : une sous-culture majeure des crackers], et d'autres formes de vie inférieures. Les hackers ne le font pas. Ils sont fiers de leurs réalisations et veulent que leur vrai nom y soit associé. Donc si vous avez un pseudonyme, laissez-le tomber. Il ne pourra que vous faire passer pour un looser dans la communauté hacker.
Note historique : Hacking, Open Source, et Free Software
Quand j'ai initialement écrit ce guide en 1996, certaines des conditions l'entourant étaient différentes de ce qu'elles sont aujourd'hui. Quelques mots à propos de ces changements aideront sans doute à clarifier les choses pour ceux qui sont perturbés par le rapport entre Open Source, Free Software, et Linux au sein de la communauté hacker. Si vous n'êtes pas curieux à ce sujet, vous pouvez passer ce chapitre et vous rendre directement à la FAQ.
L'éthique et la communauté telles que je les ai décrites ici sont bien antérieures à l'émergence de Linux d'après 1990; j'ai été impliqué pour la première fois dans cette communauté vers 1976, et ses racines sont aisément traçable jusqu'au début des années 1960. Mais avant Linux, la majorité du hacking se pratiquait soit sur système d'exploitation propriétaire, soit sur un etit choix de systèmes quasi-expérimentaux tels que le ITS du MIT qui n'ont jamais été déployés à l'extérieur de leur niche académique. Même s'il y a eu des tentatives antérieures - avant Linux - pour changer cette situation, l'impact est resté, au mieux, très marginal et confiné à des communautés de vrais passionnés, minuscules minorités au sein de la communauté hacker, et encore plus si on les considère du point de vue du monde du logiciel en général.
Ce qui est à présent appelé "Free Software" remonte aussi loin que la communauté hacker, mais jusqu'à 1985 il s'agissait plus d'une coutume locale anonyme que d'un mouvement volontaire, avec ses théories et manifestes. Cette "préhistoire" a cessé quand, en 1985, l'arch-hacker Richar Stallman ("RMS") a essayé de lui donner le nom de "Free Software". Mais cet acte d'appellation était aussi un acte d'appropriation; il a lié à l'étiquette "Free Software" un bagage idéologique que beaucoup de ceux qui constituaient la communauté hacker d'alors n'ont jamais accepté. En conséquence, l'étiquette "Free Software" a été vigoureusement rejetée par une minorité substancielle de la communauté hacker (et particulièrement par ceux associés à BSD Unix), et utilisée - avec de sérieuses mais silencieuses réserves - par la majorité des autres (moi inclus).
Malgré ces réserves, la volonté qu'avait RMS de définir et mobiliser la communauté hacker sous la bannière "Free Software" a bien tenu jusqu'au milieu des années 1990. Elle ne fut mise à mal par l'ascension de Linux, qui a donné au développement libre un habitat naturel. Beaucoup de projets fournis sous des termes que nous appellerions maintenant "open source" ont migré d'Unix propriétaires vers Linux. La communauté autour de Linux s'est accrue de manière explosive, devenant bien plus grande et plus hétérogène que la culture hacker pré-Linux. RMS a tenté avec détermination de ramener toute cette activité dans son mouvement du "Free Software", mais fut mis en échec à la fois par la diversité de la communauté Linux et le scepticisme public de son fondateur, Linux Torvalds. Torvalds a continué à utiliser le terme "Free Software" faute d'alternative, mais rejetait publiquement les idées de RMS. Et beaucoup de jeunes hackers lui emboitèrent le pas.
En 1996, quand j'ai publié ce guide pour la première fois, la communauté hacker se réorganisait rapidement autour de Linux et d'une poignée d'autres systèmes libres (particulièrement les descendants de BSD Unix). La mémoire collective des décennies passées, durant lesquelles la plupart d'entre nous avions développé des logiciels fermés sur des systèmes fermés, n'avait pas encore commencé à s'estomper; mais cela commençait à appartenir au passé: les hackers, de plus en plus, se définissaient comme hackers par leur appartenance à des projets libres tels que Linux ou Apache.
Le terme "open source", cependant, n'était pas encore apparu, et ne le ferait que début 1998. Quand ce fut le cas, la majorité de la communauté hacker l'avait adopté dans les six mois, exception faite d'une minorité idéologiquement attachée au terme de "Free Software". Depuis 1998, mais surtout après 2003, l'identification du "hacking" avec le développement "open-source (et du "Free Software")" est devenue extrêmement nette. Actuellement, il est vain d'essayer de distinguer ces catégories, et il semble peu probable que cela soit possible par le futur.
Il est bon, cependant, de se souvenir que cela n'a pas toujours été le cas.
Autres Ressources
Paul Graham a écrit un essai intitulé "Great Hackers", et un autre intitulé "Undergraduation", dans lesquels il s'exprime avec beaucoup de sagesse.
Il existe un document appelé "How To Be A Programmer" qui est un excellent complément au précédent. Il contient de précieux conseils non seulement sur la programmation et les compétences requises mais aussi sur comment travailler dans une équipe de programmeurs.
J'ai également écris "A Brief History of Hackerdom" [NDT : Une Brève Histoire des Hackers].
J'ai rédigé l'article "The Cathedral and the Bazaar", qui explique pas mal de choses sur le fonctionnement de Linux et de la culture open-source. Ce sujet est traité plus précisément dans sa suite : "Homesteading the Noosphere".
Rick Moen a publié un excellent document sur comment gérer un groupe d'utilisateurs Linux.
Rick Moen et moi-même avons collaboré à la conception d'un autre document : "How To Ask Smart Questions". Il vous aidera à demander de l'aide d'une manière qui vous permettra d'en recevoir.
Si vous avez besoin d'instructions de base concernant les ordinateurs personnels, Unix et l'Internet, allez voir The Unix and Internet Fundamentals HOWTO.
Lorsque vous diffusez un logiciel ou que vous écrivez un patch pour un programme, essayez de suivre les principes de Software Release Practice HOWTO.
Si vous avez aimé le poème zen, vous apprécierez sans doute Rootless Root: The Unix Koans of Master Foo. - Sommaire
Suite du texte au post suivant
Commentaire