Les tribulations d'un octet

← revenir au blog


Pourquoi je code ?

Attention cet article à plus de 3 ans ! Les informations peuvent ne plus être d'actualité et les liens peuvent être cassé.

Suite à la lecture de la nouvelle The little printf qui tourne sur les réseaux sociaux en ce moment, j'aimerais répondre à cette question : "pourquoi je code ?".

Coder est avant tout un jeux !

Moi et le code on a commencé à l'age des billes. Il y a cette histoire que j'aime bien raconter à propos de mes premiers pas en informatique. Mon père doit d'ailleurs encore s'en souvenir.

L'été de mes 7 ans je m'ennuyais ferme, mon père travaillant dans le domaine du web, j'avais un ordinateur à ma disposition. J'avais déjà l'habitude depuis des années d'aller sur l'ordinateur de mon père pour aller sur planète pokemon ou pour jouer à petit ours brun. J'ai alors eu cette question qui allait me pousser sur la voie du développeur :

Papa ? Comment on fait les sites web ?

Il m'a alors expliqué ce qu'était une balise HTML avec l'exemple suivant : <html></html>. Il m'a aussi expliqué ce qu'étais head et body et puis, le miracle à eu lieu, il m'a donné la liste des balises HTML4. J'ai donc passé mon été à tester une à une toute les possibilités du HTML4. J'ai d'ailleurs toujours une pensée émue pour la balise <MARQUEE> (elle faisait défiler toutes sortes de choses, dont du texte, sans JavaScript).

J'ai eu une très très longue période Lego et quand je parle de code aujourd'hui, je parle souvent de Lego. L'informatique est pour moi un grand jeu, j'ai à ma disposition un coffre à jouet géant dont je n'atteindrai jamais le fond et il ne tient qu'à moi d'en faire ce que bon me semble, d'assembler les choses les unes avec les autres pour avoir le résultat que j'avais imaginé ou non. Dans ma tête, une fonction ou une balise HTML ne sont rien d'autres que des briques à assembler.

Coder est avant tout un je

De manière un peu égoïste, je code d'abord pour moi-même. Comme beaucoup de choses dans ma vie (lire des livres, jouer de la musique,...), je fais avant tout une activité parce qu'elle m'amuse moi, ou me fait plaisir à moi. Le code (qui prend une grande part de mon existence) ne déroge pas à cette règle. Je code avant tout des choses qui me font plaisir, qui me seront utile à moi.

Un autre moteur de mes scripts serai la curiosité. Combien de fois j'ai créé des fonctions en me disant "que se passe-t-il si j'utilise ça ?". De la même façon, lorsque l'on me demande mon langage préféré, je ne peux pas répondre ! Mon premier vrai langage de programmation fut le PHP, bien que très vite j'ai aussi découvert le JavaScript (via editeurjavascript, un site qui n'est plus disponible mais qui proposait une multitude de petits scripts en tout genre).

Finalement, tous les langages m’intéressent et si il est clair que certains langages ne me plaisent pas à coder pour diverses raisons, je ne les écarte pas pour autant. J’essaye pour voir, je serais plus du coté du early adopter avec tout de même un besoin de recul lors de projets plus gros, ou pour des missions demandant un savoir faire, de la stabilité ou de la maintenabilité.

Coder pour quoi faire ?

J'ai eu la chance d'avoir beaucoup de possibilités qui m'ont été offertes, que ce soit pour des projets perso ou lors de mes différents stages et missions. J'ai eu l'occasion de découvrir beaucoup d'autres développeurs, car oui, coder c'est avant tout découvrir de nouvelles choses en permanence et ce sont les autres développeurs qui m'en ont appris le plus. Bien sûr je suppose qu'un jour je découvrirai moins de choses mais pour l'instant je code surtout avec d'autres. Cela me permet de découvrir de nouvelles façons de faire, de nouveaux assemblages et de nouveaux jeux !

Cela étant dit, codant pour mes propres besoins (un luxe je suppose), je me permets de coder ce qui me plait et donc je code avec avant tout le besoin en tête. J'ai besoin ou envie d'avoir un site web avec un blog et mon cv, et bien je vais aller chercher de quoi le coder moi-même (la fonction CV de ce site est en cours de développement). La raison pour laquelle j'utilise KeystoneJS ici est avant tout pour la curiosité d'agrandir mon coffre à jouet. Bien sûr, ceci a rendu mon site indisponible pendant quelques temps mais j'ai adoré découvrir cette nouvelle techno et me suis senti comme un gosse devant une nouvelle boite de Lego : "encore plus de choses sont possibles, je vais pouvoir inventer encore plus de super features".

Et puis viennent les missions, le code pour de l'argent. Là aussi, c'est un nouveau jeu. Il y a faire le liens entre une demande et des outils disponibles. L'intérêt d'une mission c'est le luxe de pouvoir choisir à peu près ce que l'on veut et comment on veut le faire. La seule vraie condition c'est que ça réponde aux besoins du client. Par exemple, j'ai du faire l'année dernière, pour une mission, un jeu de mots-croisés. Rien de bien compliqué, le tout devait tourner sur navigateur et être compatible SCORM (pour les plateformes d'e-learning). J'ai alors décidé, pour en apprendre plus et me donner un challenge, de ne faire que du JavaScript pur sang, aucune librairie, aucun artifice, du pur JS ! Cela m'a non seulement appris beaucoup mais j'ai de plus été plus créatif dans mon code et particulièrement intéressé par cette mission.

Et après ?

Après ? Après je code des bouts de choses que je finis plus ou moins. je me retrouve souvent dans les dessins de commitstrip. Et je me pose des questions comme "y a-t-il un risque avec le big data ?", "les exo-squelettes peuvent-ils vraiment aider des gens à se remettre d'une maladie ou d'un accident ?" ou encore "Asimov, Huxley et Orwell ont-ils raison d'avoir peur ?".

Toutes ces questions se posent. Au-delà de savoir quel type de programmeur je suis, il me parait plus important de se demander vers quel avenir numérique nous allons. En effet, je suis peut-être un peu d'un early adopter qui finalement ne profite jamais vraiment d'une techno, peut-être aussi un peu d'un architecte logiciel (mon jeune âge ne permet pas encore de savoir si c'est vraiment ce que je suis), je serai peut-être plus tard cet expert dans une technologie qui n'en sort plus, qui sait ? Ce qui importe vraiment c'est quel monde je veux aider à construire !

J'aimerais construire un monde dans lequel le big data permet de repérer plus efficacement des maladies graves afin de mieux les soigner. J'aimerais construire un monde où nos téléphones portables sont des outils et non des traceurs. J'aimerais construire un monde dans lequel les idées peuvent se répandre partout et venir de partout. J'aimerais participer à un monde où l'humain est au centre de ce que nous faisons. Comme le dit si bien le texte qui m'a inspiré ce billet :

"It is only when you solve problems with a human face that you can feel truly right"

L'avenir du développement ce n'est pas moi

Il n'est jamais trop tard pour faire les choses biens et si j'ai un jour été très dur avec certaines technos ou certains acteurs de l'informatique, il n'est jamais trop tard pour dire que j'ai eu tort ou pour admettre que le secteur évolue. Je peux toujours donner une seconde chance à une techno ou à une boite, et inversement. L'important ce n'est pas pourquoi moi je code, l'important c'est pourquoi des jeunes qui ont 10~12 ans aujourd'hui vont coder !

Les questions sont donc "Quelle piste de développement donnons nous à la génération qui arrive ? A quoi aspire ce secteur ? Comment donner aux jeunes qui arrivent les moyens de faire ce qu'ils veulent ? Quel exemple donnons nous à ceux qui sont déjà aux portes du développement ?"

Ma réponse finale sera donc : "Je code pour m'amuser, pour rendre les machines utiles et pour aider l'humain et j’espère pouvoir transmettre le fun du gosse devant un code aux gens qui m’entourent autant que je reçois d'eux"

Les droits de l'image reviennent à son auteur, je le remercie de m'avoir autorisé à utiliser cette image ainsi que pour son excellent blog :)