AINSI, VOUS VOULEZ DEVENIR PROGRAMMEUR ?

Un point de vue humoristique sur les programmeurs.


Par David K. Every, traduit de l'anglais par Charles Gigučre.
(C) 1997 - Tous droits réservés par l'auteur

Quelques personnes m'ont demandé comment devenir un programmeur, comment c'est, avec quel langage débuter, etc.

 

C'est quoi être un programmeur ?

Honnêtement, ce n'est pas si mal, la première chose que vous devez apprendre pour être programmeur c'est vous lamenter -- la majorité des programmeurs sont des geignards (ou des martyrs). Les adolescents font de bons programmeurs car ils croient tout savoir -- zut!, ils ne sont qu'à mi-chemin d'avoir l'attitude d'un programmeur. C'est difficile de savoir si on agit correctement, et plus difficile encore si les administrateurs ne vous écoutent pas. Vous vous rappelez ces types du marketing et de l'administration ? Ils croient que tous les programmeurs sont équivalents. Que savent-ils ? Ils ne savent même pas la différence entre Kilobaud et Kilo-bits par seconde! Crétins!

 

Allez vous apprécier être un programmeur ?

Vous avez la bonne personnalité si vous aimez résoudre des problèmes, et que vous adorez résoudre des problèmes «ennuyeux» tel que le cube Rubik, ou faire ces casses-têtes de 5000 pièces qui sont tous de la même couleur, qui n'ont pas de bordures et qui ont 5 pièces supplémentaires. C'est plus facile de «l'avoir» lorsque vous êtes un adolescent pubère et plein d'acné qui n'a aucun succès avec les filles -- cependant certains adultes possèdent ces «dons», ont du temps libre et apprécient la programmation.

La programmation n'est pas difficile, mais il y a beaucoup à apprendre (préparez-vous à lire...énormément). La programmation c'est l'explication des choses en des termes très simples. Si vous aimez réduire les problèmes à leurs plus simples expressions, alors la programmation est pour vous.

 

TEST: Écrivez sur une feuille, de manière détaillée, la façon de traverser une pièce en marchant.

Si la réponse dépasse 2 pages (en simple espacement et recto-verso), alors vous possédez ce qu'il faut pour devenir un programmeur. Si vous y avez ajouté comment mâcher une gomme en même temps (juste pour vous amuser) alors vous allez être un bon programmeur.

NOTE: Si vous avez réfléchie sur la manière de décrire le «processus de masticage» en un thread indépendant (pour que votre mâchoire et vos pieds ne soient pas synchronisés), alors arrêtez de lire cet article -- vous êtes déjà un expert et passez beaucoup trop de temps sur Internet! Vivez un peu!

 

Une ÉNORME récompense est associée à la résolution de problèmes (en programmation), et plus encore dans celui de posséder un savoir secret, et un langage, que personne d'autre ne peut comprendre (sauf pour les quelques initiés qui ont choisi la même carrière). Cela vous donnera un complexe de supériorité qui fait l'envie de tous. Nous avons même un signal secret qui nous permet de savoir qui est un programmeur: en se frottant les yeux à les faire rougir (parce que nous avons regardé l'écran 10 heures sans arrêt), pour ne pas mentionner la crampe des mains (vous ai-je parlé du problème avec les filles ?).

 

Quel langage de programmation choisir ?

Si vous devenez un programmeur d'assembleur, vous ne ferez qu'améliorer du code de compilateur, travailler sur des satellites, ou créer des pilotes de dispositifs (driver) pour des systèmes en temps réel. Vous deviendrez un expert, même aux yeux des autres experts. Vous serez l'expert des experts et parlerez un jargon qui fera rougir les autres. Vous passerez des années à créer des choses que les autres programmeurs peuvent faire en une heure (avec leurs langages de haut niveau), mais les vôtres iront plus vites et seront destinées à un ordinateur précis. Vous deviendrez également complètement fou suite à votre isolement du reste de l'humanité.

Vous pouvez devenir un programmeur C. Ceux-là ne sont que des programmeurs d'assembleur en puissance. Même travail, mais vous avez la chance de travailler sur certains systèmes d'exploitation (OS) ou sur un vieil héritage de code. Qui veut réparer ça et là le mauvais code des autres ? Bien sûr vous pouvez devenir un gourou de Unix ou écrire des CGI à la journée longue (et être la moitié moins productif que les programmeurs Perl). Ce langage fait partie du passé -- vous voulez travailler sur quelque chose de nouveau, quelque chose de bien.

Cobol. Ha! Ha! Je vous ai joué un tour! Chacun sait que les vrais programmeurs n'utilisent pas le Cobol. Les programmeurs de Cobol font de la programmation de bases de données pour les grosses corporations -- et font plus d'argent que tous ce que vous pouvez imaginer, tous essaient de corriger ce problème de l'an 2000, qu'ils ont eux-mêmes créés.

Le C++ est le langage des vrais programmeurs. Il est déroutant, facilite les erreurs, il vous permet de marcher sur la mémoire et d'écraser l'OS, vous-même et les autres programmes. C'est le pire des langages orientés-objets sur le marché, ajouté à cela la syntaxe la plus déconcertante jamais inventée (à part celle de l'APL). Ainsi il est devenu tout naturellement le standard. Vous pouvez écrire du code qu'aucun autre humain ne pourra jamais comprendre -- sécurité d'emploi garantie, ou du moins des contrats lucratifs pour les années à venir. C'est ce que les VRAIS programmeurs d'applications utilisent.

Java est le langage de l'avenir. Seul les gens de goût travaillent en Java. Bien sûr il est lent, et demande beaucoup plus de puissance pour faire tourner des programmes (garantissant la croissance de l'industrie informatique pour la prochaine décennie). Même le nom est accrocheur -- baptisé d'après votre vice favori.

 

Quel type de programmeurs devriez-vous être ?

Programmeurs de systèmes d'exploitation (OS). Ces gars sont arrogants même face aux autres types de programmeurs. Vous travaillez pour des compagnies telles qu'Apple, Sun ou Microsoft, là où on ne vous paie pas assez pour les longues heures de travail accomplies. Ils vous assignent à de toutes petites parties du système d'exploitation, là vous travaillez sur un ensemble spécifique d'API qu'une infime quantité de programmeurs aura à utiliser (et que peu apprécieront). C'est aussi excitant que des travailleurs à la chaîne vissant des bouchons sur des tubes dentifrice. Votre seule récompense est de devenir un snob de l'informatique qui s'imagine être meilleur que les programmeurs d'applications.

Les programmeurs d'applications écrivent des applications, pour lesquelles on ne vous paie pas assez pour les longues heures de travail accomplies. C'est ainsi si vous travaillez pour une petite compagnie ou à l'intérieur d'un petit groupe -- vous en arrivez à tout connaître de l'application. C'est le vrai pouvoir, être capable de fermer une compagnie et mettre au chômage des douzaines de personnes parce que vous quittez pour devenir un programmeur de systèmes d'exploitation. Si vous travaillez à l'intérieur d'un gros groupe (c'est le cas de la majorité), alors vous êtes centré sur une petite partie de l'application et faites pratiquement le même travail qu'un programmeur de systèmes d'exploitation -- sans le snobisme qui y est rattaché.

Les programmeurs de jeux -- c'est là que s'accrochent les vrais programmeurs. Vous avez la jouissance d'être un programmeur de petites applications (et pouvoir ainsi travailler sur plusieurs parties de celle-ci), ajoutez à cela des échéanciers qui font paraître les autres programmeurs comme des fainéants. Vous n'avez pas la même arrogance que les programmeurs de systèmes d'exploitation (mais presque). Si vous travaillez sur un bon jeu, alors tous les jeunes (de 40 ans ou moins) vous vénéreront lorsque vous leur direz que vous y avez contribué (et vous vous sentirez obligé de tout leur dire).

Les programmeurs de bases de données -- c'est la mare de rebuts du monde de l'informatique. Ils utilisent souvent des 4GL (environnements de développement faciles à utiliser), ou des langages faciles à utiliser. Ils ont une paie stable et une charge de travail raisonnable. (Où est le défi ?). Ils mettent en place des solutions «clé en main» pour des corporations et des entreprises (et non pas seulement un petit morceau d'un sous-ensemble). Ils sont souvent très bien payés (particulièrement si ce sont des consultants)! Ha! le fléau de la programmation. Les seuls qui portent attention aux programmeurs de bases de données sont les non-programmeurs (et les entreprises qui les embauchent).

Les Scripteurs -- ce sont les gens devant lesquels les programmeurs de bases de données baissent les yeux. Ils jouent avec des langages leur permettant de faire du multimédia, de l'Internet, ou de rattacher des applications ensembles pour les rendre plus utiles -- et ils sont payés pour ça ?! Les autres programmeurs font du scripting pour s'amuser. Ces gars sont des extorqueurs, ils facturent les autres pour des choses qu'ils devraient payer eux-mêmes!

 

Quel système d'exploitation (OS) choisir ?

MacOS ? Ce n'est pas le préféré pour la programmation. La première chose que vous devez apprendre en tant que programmeur Mac, c'est comment donner priorité à l'utilisateur. Oups! Vous avez souvent plus de travail à accomplir pour que l'ordinateur voue de précieux cycles d'horloge à se rendre plus facile à utiliser. Catastrophe! C'est comme dire à un avocat qu'il devrait se soucier de l'esprit de la loi. Hé bien! Il y a très peu de programmeurs Mac.

Un programmeur Windows ? Ça n'existe pas. C'est une mauvaise blague. Ce sont des programmeurs DOS qui utilisent un ensemble de routines appelé Windows -- ils utilisent plus de la moitié de leur temps à configurer leurs systèmes ou à essayer de savoir pourquoi une certaine chose s'est soudainement arrêtée de fonctionner sur leur machine. Ils utilisent l'autre moitié de leur temps à se demander pourquoi leurs applications, qui fonctionnent bizarrement sur la plupart des machines, échouent sur 20 machines Windows différentes sans raison connue (1). Ce qui veut dire que tous les programmeurs Windows ne sont que des gens travaillant à l'assurance de la qualité chez Microsoft, qui écrivent occasionnellement une ligne de code ou deux. Le côté ironique, c'est qu'ils doivent payer Microsoft pour avoir la joie de déboguer leur OS pour eux.

(1) Ces caprices ont leur raison d'être puisque Microsoft possède un avantage compétitif à garder des «secrets». Microsoft possède ainsi une équipe super secrète de développeurs de bogues pour que le reste du monde gaspille de l'argent à les résoudre. Puis Microsoft facture les gens pour le support.

Un programmeur Unix ? Ce sont des programmeurs égoïstes. Ceux qui ne programment que pour eux-mêmes. Avez-vous déjà vu une interface-utilisateur dans un programme Unix ? Disons-le clairement, il n'y a aucun programmes commerciaux écris pour Unix. 95% de tout le développement dans Unix est académique -- de manière à ce que les écoles préparent les programmeurs pour ce qui n'est PAS la réalité. Eh oui! quelques bâtards chanceux écrivent des applications serveurs pour Unix, des applications scientifiques, ou décrochent un travail pépère pour une compagnie spécialisée dans des projets tels que le 3D, la vidéo, etc. Mais c'est comme gagner à la loterie et la vie trouve toujours une façon de se reprendre. Aujourd'hui la plupart des programmeurs Unix sont forcés de faire de la programmation pour WinNT, et il y a eu une augmentation en flèche des programmeurs qui se sont pendus avec le câble de leur souris. Les défis vous rendent forts, les gars de Unix sont les tapettes du monde de l'informatique.

Un programmeur DOS ? Il y a pas mal de programmeurs CP/M qui utilisent cette variante volée (connue sous le nom de DOS). C'est ici qu'on trouve les gars qui sont trop stupides pour reconnaître la valeur d'un riche ensemble d'API (tel que ceux du Mac), et qui ont de la difficulté à utiliser des routines NOMMÉES plutôt que numérotées (je ne blague pas, les routines du DOS sont numérotées). Où croyez-vous que tous les programmeurs de FORTRAN se sont rangés dans les années 80 ? Ils programment le DOS. Disons-le franchement, s'ils ne sont pas capables de comprendre des concepts complexes tels que les routines nommées avec des mots humains, alors les chances sont grandes pour qu'ils ne puissent jamais se sortir de ce trou infecté qu'est ce système d'exploitation. Pitié pour eux.

 

Comment avoir l'air d'un programmeur ?

Cesser de vous laver. Les programmeurs n'ont pas le temps pour ces luxes. Les coupes de cheveux sont pour les autres. Laissez pousser cette queue de cheval! Les vieux programmeurs n'ont pas besoin d'un lifting, ils ne font que resserrer davantage leur queue de cheval. (Vous pouvez distinguer les programmeurs seniors des programmeurs juniors par la longueur de leur queue et par l'épaisseur de cheveux sur leur front). Les barbes sont pas mals également (même sur les joues).

Cessez de fumer et facilitez-vous la vie un peu (si vous fumez) -- les vrais programmeurs travaillent dans des endroits où il est interdit de fumer (ou travaillent en Californie où les fumeurs sont bannis). Développez-vous un goût pour les liqueurs douces -- l'injection directe de caféine est le signe qu'un programmeur est allé trop loin, mais à part ça tout est permis. Il n'y a aucun programmeur qui débute avec le diabète ou une haute pression, mais après 20 ans de sodas et de croustilles achetées dans les distributrices, ils finissent tous ainsi.

Les programmeurs existent en deux formats -- trop maigre ou trop gras. Habituellement ils débutent avec le premier format et terminent avec le second. Cela est accentué par le degré d'exercice requis pour l'emploi (tel que déplacer vos doigts rapidement sur le clavier ou glisser votre bas avec la souris), ainsi que par les aliments santés généreusement fournis par les distributrices (à un fort prix). Disons-le franchement, si votre poids est «correct» alors vous pourriez avoir une vie sociale qui détruirait toutes vos chances d'être un bon programmeur.

 

La tenue vestimentaire

Les lunettes sont optionnelles, pour l'instant -- après avoir regardé un écran brouillé pendant 20 ans, vous en aurez besoin. Un bleu jeans et un T-shirt sont la norme. Les versions plus élégantes sont réservées pour les rencontres avec les clients, les administrateurs ou les gens de mise en marché. Les manteaux en Jeans sont permis pour les climats plus froids. La véritable base de votre tenue vestimentaire est le T-shirt, s'il porte le nom d'un produit éteint depuis longtemps (mais super cool) que seuls les programmeurs connaissent et peuvent apprécier -- alors vous êtes VRAIMENT cool. Un T-shirt portant la mention «Lisa Workshop» ou «CP/M à jamais» fera de vous le Calvin Klein de la mode programmeur (vous obtenez des points supplémentaires si vous ajoutez les accessoires suivants à votre T-shirt : taches de moutarde et de fast-food).

 

Comment se comporter comme un programmeur ?

Prenez votre pire trait de personnalité et affichez-le fièrement. Laissez libre cours à votre excentricité. Laissez savoir à chaque personne que vous rencontrez qui vous êtes en moins de 5 minutes, pourquoi vous êtes un rejeté de la société et un excellent programmeur. Un bon départ serait de rire à gorge déployée comme un fou, parler technique en tout temps et répondre à des questions simples du genre «Comment allez-vous ?» en racontant votre vie. Sentez-vous libre d'improviser sur tout ce qui est socialement inacceptable.

Bien sûr tout le monde vous détestera -- mais vous aurez dit la vérité. Car vous ne pouvez pas mentir à un ordinateur et être un bon programmeur -- alors si vous passez les 9/10 de votre vie (incluant la moitié de votre sommeil) à programmer les ordinateurs, vous ne pouvez pas espérer échanger ceux-là uniquement contre des ordinateurs biochimiques (et très émotionnels) connus sous le nom d'humains.

Si les gens ne sont pas surpris par vos propos et vous fuis lors de réceptions, alors vous n'avez pas encore maîtrisé l'habileté sociale d'un programmeur. Le côté super c'est de pouvoir, lors de réceptions, parler à d'autres programmeurs de choses vraiment importantes comme votre nouvel ordinateur domestique ou les problèmes de cohérence de cache dans les environnements multiprocesseurs.

 

Comme puis-je devenir programmeur ?

Si vous considérez toujours devenir programmeur malgré son côté noir, alors allez-y et codez. Le marché a soif de programmeurs. Il n'y a rien de magique, tout ce qui compte est l'expérience. Enfermez-vous pour une décennie loin de l'humanité, avec un ordinateur pour seul compagnon (et peut être un ou deux CD-ROM grivois), et vous serez bien parti. Débutez lentement, en faisant du scripting et de la programmation de bases de données -- puis tout doucement, laissez votre ego prendre le dessus et progressez vers la programmation d'applications. Lorsque votre ego aura éclipsé tous les autres traits de votre personnalité alors vous serez prêt à devenir programmeur de systèmes d'exploitation.