Être Un Développeur Après 40

Voici le discours présenté lors de la conférence App Builders Switzerland, le 25 avril 2016.

Les slides sont disponibles à SpeakerDeck et à la fin de cette page. La vidéo de la présentation (en anglais) est disponible sur YouTube.

Grâce a des traducteurs extraordinaires, voici quelques versions de cet article dans d’autres langues:

Original in English. He publicado también una traducción al castellano.


Bonjour à tous, je suis un développeur de logiciels autodidacte de quarante-deux ans, et voici mon histoire.

Il y a quelques semaines j’ai trouvé ce tweet ci-dessous, et en le voyant j’ai pensé à ma carrière professionnelle, et ces pensées m’ont fait aller en arrière, vers le moment où tout à commencé pour moi:

J’ai démarré ma carrière comme développeur de logiciels très exactement à 10 heures du matin, le lundi 6 octobre 1997, quelque part dans la ville d’Olivos, au nord de Buenos Aires, Argentine. Le moment c’était Unix Epoch 876142800. J’avais très récemment fêté mon vingt-quatrième anniversaire.

Le Monde En 1997

Le monde n’était que très légèrement différent alors.

Les sites web n’avertissaient pas à propos des cookies. Le futur du web c’étaient les portails du genre Excite.com. Mon moteur de recherche préféré était AltaVista. Mon e-mail était kosmacze@sc2a.unige.ch , ce qui voulait dire que mon premier site web était logé à l’adresse http://sc2a.unige.ch/~kosmacze . On pleurait encore la princesse Diana. Steve Jobs avait repris le rôle de CEO et avait convaincu Microsoft d’injecter 150 millions de dollars dans Apple Computer. Digital Equipment Corporation traînait Dell en justice. Les restes du Che Guevara avaient été inhumés à Cuba. La quatrième saison de “Friends” venait tout juste de démarrer. Gianni Versace avait été assassiné devant chez lui. La Mère Teresa, Roy Lichtenstein et Jeanne Calment (la plus vieille personne ayant jamais vécu) venaient de décéder. Les gens jouaient follement à Final Fantasy 7 sur leurs PlayStation. La BBC 2 avait démarré un programme appelé Teletubbies. James Cameron était à point de dévoiler Titanic. The Verve venait de sortir son tube planétaire “Bitter Sweet Symphony” et par la suite ont dû verser la plus grande partie des recettes aux Rolling Stones.

Excite en 1997, courtoisie de l’Internet Archive.

Les smartphones ressemblaient au Nokia 9000 Communicator; ils avaient 8 MB de mémoire, un processeur i386 cadencé à 24 MHz et tournaient avec le système d’exploitation GEOS.

Les montres connectées ressemblaient au CASIO G-SHOCK DW-9100BJ. Sans tellement d’apps mais avec une durée de vie de la batterie sans pareille mesure.

IBM Deep Blue venait de gagner son premier jeu d’échecs contre Garry Kasparov.

Un hacker connu comme “_eci” avait publié le code en C pour une attaque sur Windows 3.1, 95 et NT connue sous le nom de “WinNuke”, une attaque par déni de service sur le port TCP 139 (NetBIOS) ce qui causait un écran bleu de la mort dans les machines affectées.

De manière plus anecdotique, en 1997 sont aussi nées Malala Yousafzai, Chloë Grace Moretz et Kylie Jenner.

Les histoires de plusieurs films ont lieu en 1997, par exemple: Escape from New York, Predator 2, The Curious Case of Benjamin Button, Harry Potter et le Prince de Sang-mêlé, Le Parrain III, et d’après Terminator 2, Le Jugement Dernier, Skynet devient conscient le 29 août 1997 à 2:14 du matin. Ceci n’est pas arrivé, mais étrangement, le nom de domaine google.com a été enregistré le 15 septembre suivant.

Il manquait deux ans avant Y2K et les médias commençaient à mettre les gens sérieusement nerveux.

Mon Premier Boulot

Il consistait à écrire des pages ASP dans plusieurs éditeurs, comme Microsoft FrontPage, HotMeTaL Pro et EditPlus, gérer la compatibilité entre les navigateurs Netscape Navigator et Internet Explorer 4, et écrire des procédures stockées en SQL Server 6.5 pour donner vie à un site web commercial traduit au japonais, russe, anglais et espagnol — alors qu’il n’y avait pas vraiment un support consistant de l’UTF-8 à travers ces outils.

Le produit de nos efforts tournait sur un serveur Pentium II logé quelque part aux États-Unis, avec disque dur étonnant de 2 GB et des bluffants 256 MB de RAM. C’était une machine seule qui tournait Windows NT 4, SQL Server 6.5 et IIS 2.0, pour accueillir à peu près dix mille visiteurs par jour.

Mon premier langage de programmation professionnel était cet engendre mutant appelé VBScript, avec bien sûr du JavaScript pour le côté client, saupoudré avec pas mal de “si on est sur Netscape fait ceci, autrement fait cela” parce que je ne savait pas vraiment comment faire du JavaScript correctement.

Il est intéressant de noter qu’il est maintenant 2016 et on commence à peine à comprendre comment faire du JavaScript correctement.

Les tests unitaires n’existaient pas. Le Manifeste pour le développement Agile de logiciels n’avait pas encore été écrit. L’intégration continue n’était qu’un rêve. XML n’était même pas un sigle à la mode. Notre stratégie de gestion de qualité consistait à réinitialiser le serveur une fois par semaine, parce qu’autrement il tombait en panne de façon aléatoire. On avait créé notre propre composant COM+ en Visual J++ pour analyser les fichiers JPEG téléchargés sur notre serveur. Dès que les fichiers JPEG 2000 ont fait leur apparition, notre composant a cessé de fonctionner.

On n’avait pas de gestion de code source, même pas CVS, RCS ou — Dieu nous protège — SourceSafe. Subversion n’existait pas encore. On faisait moins 25 dans le Joel Test.

6776 Jours

Chaque jour des derniers 6776 j’ai bu ma tasse de café et ensuite j’ai écrit du code avec des choses appelées VBScript, JavaScript, Linux, SQL, HTML, Makefiles, Node.js, CSS, XML, .NET, YAML, Podfiles, JSON, Markdown, PHP, Windows, Doxygen, C#, Visual Basic, Visual Basic.NET, Java, Socket.io, Ruby, tests unitaires, Python, shell scripts, C

Pendant ces 6776 jours ils se sont passées énormément de choses. J’ai quitté 6 boulots et j’ai été viré deux fois. J’ai commencé et fermé ma propre boîte. J’ai fini mon Master. J’ai publié quelques projets en open source, et l’un d’entre eux a fait l’objet d’un article sur Ars Technica par personne d’autre qu’Erica Sadun. J’ai été sur la télé en Suisse et en Bolivie. J’ai vu en direct des présentations par Bill Gates et Steve Jobs, à Seattle et San Francisco respectivement. J’ai parlé et j’ai co-organisé des conférences sur quatre continents. J’ai écrit et publié deux livres. J’ai souffert deux épisodes de burnout, et bien d’autres choses se sont passées, tout aussi merveilleuses qu’horribles.

Je me suis souvent posé la question de laisser de côté le développement de logiciel pour toujours. Mais d’une façon ou d’une autre, j’y reviens toujours. J’aime écrire des apps, des systèmes, du software. Pour éviter de craquer, j’ai dû m’armer de quelques stratégies pour survivre.

Dans cette présentation je vais vous donner quelques trucs, pour que vous aussi, vous puissiez atteindre l’âge glorieuse de quarante ans comme un développeur expérimenté, ayant toujours l’envie de continuer.

Avis Pour La Jeunesse

Voici quelques trucs pour attendre l’âge glorieuse de 40 dans la joie et la bonne humeur.

1. Laissez Tomber Le Battage

La première chose que je peux vous dire est, laissez tomber le battage. Chaque année il y a un nouveau langage de programmation, framework, librairie, pattern, architecture de composant ou paradigme qui prend la presse d’assaut. Les gens deviennent fous. Des conférences s’organisent. Des livres apparaissent. Les cycles de Gartner montent et descendent. Des consultants factures des sommes colossales pour enseigner, mettre en production ou nous rendre la vie impossible dans cette industrie. La presse supporte ces exactions et vous fait sentir coupable si vous n’y prêtez pas attention.

En 1997 c’était CORBA et RUP.

En 2000 c’était SOAP & XML.

En 2003 c’était Model Driven Architecture et Software Factories.

En 2006 c’était le Web Sémantique et OLPC.

En 2009 c’était la Réalité Augmentée.

En 2012 c’était Big Data.

En 2015… Virtual Reality? Bots?

Ne prêtez pas attention au battage. Continuez à faire ce que vous étiez en train de faire, apprenez ce que vous étiez en train d’apprendre, et le reste suivra. Faites-y attention seulement si vous vous y intéressez véritablement, ou si vous pensez que cela pourrait vous rapporter un quelconque bénéfice dans le moyen et long terme.

La raison pour ceci se trouve dans le fait que, comme disaient les romains, nihil sub sole novum. La plupart de ce que vous verrez et apprendrez en informatique a existé pendant des décennies, et ceci vous a été occulté sous des masses de marketing, livres et questions posées sur Stack Overflow. Chaque nouvelle architecture est une récréation et une réadaptation d’un concept ou une idée qui existait déjà depuis des décennies.

2. Choisissez Sagement Votre Galaxie

Dans notre industrie, chaque technologie génère autour d’elle ce que j’appelle une “galaxie”. Ces galaxies ont des étoiles mais aussi des trous noirs; des changement météoriques qui disparaissent aussitôt dans le noir de la nuit, beaucoup de planètes, dont seulement une petite fraction permet le développement de la vie, et beaucoup de poussière cosmique et de matière noire.

Quelques exemples de galaxies sont .NET, Cocoa, Node.js, PHP, Emacs, SAP, etc. Chacune d’entre elles possède des évangélistes, des développeurs, des blogueurs, des podcasts, des conférences, des livres, des cours, des services de consulting, et des problèmes d’inclusion sociale. Les galaxies s’agglutinent autour de l’idée selon laquelle leur technologie est la solution ultime à tous les problèmes. Chaque galaxie, donc, est fondée sur une fausse idée.

Les développeurs de ces différentes galaxies répondent tous à l’archétype des attitudes qui ont permis le développement de leur technologie correspondante. Ils sont d’accord avec les idées, et vont porter le t-shirt avec enthousiasme, pour évangéliser les autres sur les mérites de leur choix.

Pour être tout à fait franc, j’utilise ici le mot “galaxie” pour éviter un autre, le terme “religion”, bien plus correct mais hélas sujet à controverse.

Dans mon cas personnel, j’ai d’abord passé dix ans dans la galaxie Microsoft, et ensuite neuf ans dans la galaxie Apple.

J’irai plus loin, en disant que la raison du changement de galaxie a été Steve Ballmer lui-même. J’étais fatigué de l’attitude négative de la galaxie Microsoft à propos du logiciel open source.

De l’autre côté, je dois dire que la galaxie Apple est un endroit merveilleux, rempli d’artistes et de musiciens qui, par chance ou par manque de celle-ci, écrivent aussi du code.

J’ai participé à des conférences dans la galaxie Microsoft, comme le TechEd 2003 a Barcelone, ou plusieurs Tech Talks à Buenos Aires, Genève ou Londres. J’ai même parlé aux Microsoft DevDays 2006 à Genève. L’attitude des développeurs dans la galaxie Microsoft en général est déplaisante, “entrepreneuriale” et soumise à des secrets, des accords de non-divulgation et d’ennuyants processus d’IT.

La galaxie Apple a été, pour moi, exactement le contraire; un endroit rempli de musiciens, artistes, peintres; ils écrivaient des logiciels pour étendre leur passion, et ils écrivaient des logiciels avec passion. Cela a fait pour moi toute la différence, et encore aujourd’hui, je prendre encore du plaisir dans cette galaxie, celle où nous nous trouvons maintenant, et qui nous a rassemblé aujourd’hui.

Et ensuite l’iPhone est sorti, et le reste c’est de l’histoire.

Alors, je vous recommande de choisir sagement votre galaxie, et d’en profiter autant que vous voudrez, mais de toujours maintenir le télescope pointé vers d’autres galaxies, et d’être prêt à faire le saut dans l’hyperespace dès que le moment sera arrivé.

3. Apprenez L’Histoire De L’Informatique

Ceci m’amène au prochain point: apprenez les origines de votre technologie favorite. Par exemple, vous aimez C#? Savez-vous qui l’a inventé? Savez-vous comment le projet .NET a démarré? Qui a été son architecte? Quelles étaient les contraintes du projet et pourquoi le langage ressemble à ce qu’il est maintenant?

Utilisez la même méthode pour tout langage ou architecture de CPU que vous utilisez ou aimez: Python, Ruby, Java, n’importe quel langage de programmation. Faites de même pour des systèmes d’exploitation, pour des technologies de réseau, pour du hardware, peu importe. Apprenez comment les gens ont eu l’idée originale, et combien de temps il leur a fallu pour grandir et mûrir. Parce que le bon software prend dix ans, vous savez?

Les histoires autour de l’origine de notre industrie sont fascinantes, et vous apprendront deux choses: d’abord, que tout est un remix. Deuxio, que vous pourriez être celui que remixera la prochaine grande idée. Non, arrêtez, changez ça: vous allez être ceux qui vont développer la prochaine grande idée.

Et pour vous y aider, voici ma liste (très opiniâtre, décidément) de livres que j’aime et je recommande de lire absolument:

Ce faisant, vous apprendrez à rendre la juste valeur aux technologies qui ont su passer avec brio l’épreuve du temps: Lisp, TeX, Unix, bash, C, Cocoa, Emacs, Vim, Python, ARM, GNU make, man pages. Ceux-ci sont quelques exemples de technologies durables, des motifs pour célébrer, protéger et apprendre.

4. Toujours Apprendre

Apprenez. Tout est bon. Voulez-vous apprendre Fortran? Allez-y. Vous trouvez Erlang intéressant? Excellent. Pensez-vous que COBOL est une étape importante pour votre carrière? Fantastique. Besoin de savoir un peu plus à propos de Functional Reactive Programming? Après vous. Design? Bien sûr. UX? Il le faut. Poésie? Vous devriez.

Bien de concepts en informatique ont fait le tour pendant des décennies, ce qui rend utile d’apprendre de vieux langages de programmation ou frameworks; même ceux qui ne sont pas forcément à l’ordre du jour. Tout d’abord, il vous feront apprécier (ou détester, cela dépend) l’état actuel de l’industrie. Deuxièmement, vous allez apprendre a utiliser les outils modernes de façon plus effective — au moins parce que vous comprendrez leur héritage et leurs origines.

Truc 1: apprenez au mois un langage de programmation par an. Cette idée n’est pas la mienne; je l’ai empruntée du livre The Pragmatic Programmer. Et ça marche.

Un langage de programmation par an. Cela semble simple, n’est-ce pas? Mais allez au-delà du simple “Hello, World”, et construisez quelque chose d’utile avec. Dans mon cas c’est toujours une calculatrice. Cela me permet d’assimiler la syntaxe, de devenir familier avec les APIs, les éditeurs, etc.

Truc 2: lisez au moins 6 livres par an. J’ai montré plus haut une liste de six livres; cela devrait vous tenir occupés pendant une année. Pour la deuxième année, voici quelques titres supplémentaires:

(OK, je vous l’accorde, ce sont sept bouquins).

Six livres par an semblent beaucoup, mais cela veut dire un seul chaque deux mois. Et la plupart des bouquins que j’ai mentionné plus haut ne sont pas très longs, et encore mieux, ils sont merveilleusement bien écrits, sont drôles et pleins de sagesse.

Regardez-le de cette façon: si vous avez maintenant 20 ans, à l’âge de 30 vous aurez lu quelques 60 livres, et 120 lorsque vous atteindrez mon âge. Et vous aurez essayé autour de 20 langages de programmation différents. Pensez-y pendant un moment.

Quelques uns des 13 livres que je vous ai suggéré plus haut ont été écrit dans les années 70, quelques autres dans les années 80, d’autres dans les 90 et finalement la plupart ont été écrit pendant la dernière décennie. Ils sont les meilleurs bouquins que j’ai lu jusqu’à maintenant.

Mais surtout, ne vous contentez pas seulement de les lire; prenez des notes. Ajoutez-y des marques de page. Ecrivez dans les bords des pages. Relisez les de temps en temps. Borges disait qu’un plaisir plus grand que celui de lire un livre est celui de le relire. Aussi, achetez-les en format de papier. Croyez-moi. Les eBooks ne pourront jamais vraiment remplacer l’expérience complète d’un livre en papier.

Bien sûr, sachez qu’à fur et à mesure que vous deviendrez vieux, le nombre de choses qui vous surprendront comme nouvelles ou importantes diminuera de façon dramatique. Préparez-vous à cela. C’est bien de pleurer le jour où vous vous en rendrez compte.

5. Enseignez

Une fois que vous avez appris, enseignez. Ceci est très important.

Cela ne veut pas dire que vous devriez louer une salle de cours et y enseigner (même si ce serait génial!) Cela pourrait vouloir dire que vous vous donniez la peine de répondre correctement et longuement à une question sur Stack Overflow; que vous écriviez un livre; que vous publiez un podcast sur votre technologie préférée; que vous écriviez sur Medium; que vous fondiez une école de développement de logiciels basées sur des Raspberry Pis de l’autre côté du monde; ou que vous aidiez un jeune développeur en devenant sa ou son mentor (mais ne faites pas ceci avant l’age de 30, par contre).

L’enseignement vous rendra plus humbles, car il vous montrera cruellement les terribles limitations de votre connaissance. Enseigner est la meilleur façon d’apprendre. Seulement en mettant vos connaissances à l’épreuve pourrez vous apprendre véritablement. Ceci vous fera aussi plus tolérant et respectueux des autres développeurs et de leurs choix technologiques; chaque langage de programmation, sans regard à son origine ou portée, à sa place dans le Tao de la Programmation, et vous n’apprendrez ceci qu’à travers l’enseignement.

Et à travers l’enseignement vous pourrez vraiment faire la différence dans ce monde. Un jour de 2012 j’ai reçu un e-mail d’un de mes ex-élèves, une femme qui travaillait à l’époque comme développeur Adobe Flash. Vous rappelez-vous d’ActionScript? Bien, cela n’a pas été vraiment surprenant, mais elle s’est soudain retrouvée sans travail après 12 ans de travail comme programmatrice Flash. Seule. Avec un enfant dans les bras. Elle m’a dit dans son e-mail qu’elle avait trouvé mon cours intéressant, qu’elle avait appris quelque chose d’utile, et que par la suite elle avait trouvé un boulot comme développeur web mobile. Elle m’a écrit pour me dire merci.

Je ne peux pas dire que j’ai changé le monde, mais je l’ai peut-être bougé un peu dans une autre direction, une qui est (je l’espère) une meilleure direction. Cette pensée a fait que chaque cours que j’ai donné par la suite soit encore plus gratifiant et significatif.

6. Le Bureau, Ça Fait Chier

Il ne faut pas s’attendre à ce que les entreprises vous offrent un quelconque chemin de croissance professionnelle. C’est peut-être le cas aux États-Unis, mais en Europe, je n’ai rien vu de cela. Cela veut dire que vous êtes les seuls responsables du succès de votre carrière. Personne vous dira “bon, l’année prochaine vous pourriez être leader de l’équipe, ensuite chef de projet, plus tard CTO…”

Pas. Du. Tout. Bien au contraire: vous étiez, êtes et serez pour toujours un développeur de logiciels, c’est à dire un ouvrier relativement cher, dont les tâches seraient volentiers réalisées par de tiers en outre-mer selon le critère de vos supérieurs hiérarchiques.

Ne prenez pas un boulot seulement pour l’argent. Les entreprises de développement de logiciels sont devenues des ateliers de travail esclave, où vous êtes supposés justifier votre salaire absurdement élevé avec des heures extras et des attentes déraisonnables. Et, au moins dans le cas de la Suisse, sans aucun support de la part des syndicats si les choses ne se passent pas bien. En fait, il y a des syndicats en Suisse, mais il ne font aucun effort dans des situations qui ne leur permettent d’obtenir un quelconque niveau d’exposition médiatique.

Et cela devient pire encore; dans la plupart des places de travail vous courez le risque d’être harcelé, particulièrement si vous êtes une femme, si vous faites partie de la communauté LGBT ou si vous êtes d’une autre origine ethnique que la caucasienne. J’ai vu des développeurs menacés d’expulsion de leur pays s’il ne travaillaient pas plus vite. J’ai été le témoin du harcèlement de collègues femmes et gays.

Il y a des secteurs de notre industrie qui sont strictement abjectes, et vous n’avez pas besoin de vivre en Silicon Valley pour en être le témoin. Vous n’avez pas besoin de lire Medium pour le savoir. Vous pourriez voir ceci ici même en Suisse. Plusieurs banques ont des environnements de travail aberrants. Les institutions financières vous demanderont de vomir du code pendant 15 heures par jour, même si la loi suisse sur le travail interdit explicitement de tels traitements. Les grandes entreprises de la Pharmaceutique voudront que vous écriviez du code pour tricher illicitement des tests ou passer par dessus de règlements. Les startups veulent votre peau, en travaillant 18 heures par jour sans compensation, en saupoudrant le tout avec des phrases hypocrites du genre “parce qu’on vous donne des stock options” ou “parce que nous sommes une équipe”.

Cela ne fait aucune différence que vous soyez Zach Holman et que sur votre CV vous puisiez vous vanter d’avoir construit Github à partir du néant: vous serez viré sans autre ménagement.

Cela ne fait aucune différence que votre app mobile apporte plus de la moitié des utilisateurs à votre employeur; le team de l’API prendra vos suggestions avec dédain et mépris.

Des gens très connus dans l’industrie, même avec leur bios sur Wikipedia, m’ont demandé de travailler gratuitement pour eux, et c’est juste une honte. Je ne donnerai pas de noms, mais je ferai tout mon possible pour qu’ils ne puissent pas recruter des jeunes, parce que les gens qui travaillent sans éthique ne méritent pas votre cerveau.

Chaque vois qu’un gérant de resources humaines vous dira “vous devez faire ceci (peu importe quoi, mais en dehors de votre cadre éthique) parce que l’on vous paie un salaire” rappelez-vous de répondre “vous me payez un salaire, mais moi je vous offre mon cerveau en échange, et je refuse de remplir cet ordre”.

Parce que en plus de gonflés, il vont vous faire assoir dans un open space, et pour une quelconque raison qui m’échappe complètement il en seront fiers. Les open spaces sont un cancer. Ils sont, sans aucun doute, le pire environnement de travail jamais inventé, et le mois approprié pour le développement de logiciels — ou pour tout type de travail intellectuel, en fait.

Rappelez-vous de ceci: le fait que vous compreniez une situation ne veut en aucun cas dire que vous deviez l’accepter.

Désobéissez l’autorité. Dites “allez chier, je ne ferai pas ce que vous dites” et changez de boulot. Il y a des places de travail fantastiques là dehors; pas beaucoup, mais elles existent. J’ai eu la chance inouïe de pouvoir travailler dans certaines d’entre elles. Ne laissez pas un mauvais job vous ôter l’envie et l’enthousiasme. Le jeu n’en vaut pas la chandelle. Désobéissez et allez ailleurs.

Ou, encore mieux, devenez indépendant.

7. Connaissez Votre Valeur

Vous avez sûrement entendu parler du mythe du “Développeur de Logiciels 10x”, n’est-ce pas? Bon, voici une révélation pour vous: ce ne pas un mythe, mais il ne fonctionne pas de la façon que vous le croyez.

Ça marche du point de vue de l’employeur: un “Développeur de Logiciels 10x” génère 10 fois la valeur pécuniaire que son employeur lui verse. Cela veut dire que si vous touchez cent mille francs par année, vous êtes en train de créer une valeur de l’ordre du million de francs. Mais, bien sûr, ce n’est pas vous qui recevront les bonus à la fin de l’année fiscale, mais bien eux, parce que, eh bien, capitalisme. Connaissez votre valeur. Lisez Karl Marx et Thomas Piketty. Voilà.

Bougez continuellement: soyez comme le requin qui ne cesse de nager, parce que vos connaissances ont une énorme valeur. Dites votre salaire à haute voix, bloguez-le, pour que vos collègues puissent savoir s’ils sont bien payés ou pas. Les entreprises vous empêchent de le dire, ne veulent pas que vous le disiez à haute voix, parce que de cette façon les femmes pourront continuer à être payés le 70% de ce qu’un homme toucherait pour le même travail. Alors, parlez-en! Bloguez-en! Twittez-en! Je gagne 135 mille francs suisses par année. Voilà mon salaire actuel. Et vous? Et vous là-bas? Plus en on parlera, moins il y aura des écarts dans les salaires entre nous. Toute personne qui fait mon travail, avec mon expérience doit gagner la même quantité de travail, peu importe son sexe, son âge ou son équipe de football préféré. Fin de l’histoire. Mais ce n’est pas comme ça. Oh non.

8. Aidez Vous Les Uns Aux Autres

Si vous êtes un homme de race blanche, soyez conscient de l’énorme privilège dont vous avez joui dès votre naissance, juste parce que vous êtes né comme ça. Il est de votre responsabilité de changer cette industrie et ses tendances pour générer plus d’inclusion.

Il est de votre devoir d’aider et de changer les choses.

Prenez des décisions conscientes dans votre vie. Soyez conscient de vos actions et de son effet. N’ayez pas honte de changer vos opinions. Dites “je suis désolé” lorsqu’il le faut. Écoutez. Ne soyez pas des abrutis. Ayez de l’intégrité et du respect de soi.

Ne critiquez pas, ne vous moquez pas des choix technologiques de vos collègues; car d’autres auront leurs raisons pour ce faire, et elles doivent être respectées. Soyez prêt à changer votre manière de penser à tout moment. Un jour vous pourriez aimer utiliser Windows. Un jour vous pourriez aimer utiliser Android. Moi même je trouve quelques éléments d’Android très bien foutus dernièrement, et c’est très bien ainsi.

9. LLVM

Tout le monde est fou à propos de Swift, mais en fait ce à quoi je prête plus d’attention dernièrement c’est LLVM.

Je pense que LLVM est le projet de software le plus important aujourd’hui, en tenant compte de son impact sur le long terme. Objective-C blocks, Rust & Swift (les deux langages de programmation compilés et fortement typés les plus aimés par les développeurs lors du StackOverflow developer survey de 2016) Dropbox Pyston, the Clang Static Analyser, ARC, Google Souper, Emscripten, LLVMSharp, Microsoft LLILC, Rubymotion, cheerp, watchOS apps, l’Android NDK, Metal, toutes ces choses sont basées ou ont été étendues grâce à LLVM. Il y a des compilateurs basés sur LLVM pour quasiment tous les langages de programmation les plus importants d’aujourd’hui. Le .NET CLR sera compatible avec LLVM bientôt, et Mono l’utilise déjà. Facebook a essayé d’intégrer LLVM avec HHVM, et Webkit a récemment changé son compilateur JavaScript de LLVM au nouveau B3 JIT.

LLVM est cross-platform, cross-architecture de CPU, cross-langage, cross-compilateur, testé avec les yeux croisés, gratuit comme la liberté et libre comme un oiseau.

Apprenez tout ce que vous pourrez à propos de LLVM. C’est la galaxie où se passe la vrai innovation maintenant. Il s’agit des fondements des prochaines 20 années.

10. Suivez Votre Instinct

J’ai eu le pressentiment que .NET allait être énorme lorsque j’ai vu sa présentation en juin 2000. J’ai eu le pressentiment que l’iPhone allait être énorme lorsque j’ai vu sa présentation en 2007.

Dans les deux cas les gens se sont littéralement moqués de moi. Dans les deux cas j’ai suivi mon instinct et je pense que cela s’est plutôt bien passé.

Suivez votre instinct. Vous aussi pourriez avoir de la chance.

11. L’API Est Roi

Une excellent API donne du pouvoir à des excellentes apps. Si l’API c’est de la merde, l’app sera de la merde aussi, et peu importe la finesse du design.

Rappelez-vous qu’il vaut mieux chunky que chatty, c’est à dire qu’il vaut mieux envoyer beaucoup de données d’un coup que peu de données souvent, et que les clients doivent être stupides; il faut mettre autant de logique sur le serveur qu’il est possible.

N’inventez pas vos propres protocoles de sécurité.

Apprenez quelques technologies du côté serveur, et faites en sorte que Node soit l’une d’entre elles.

Laissez REST de côté et intégrez le real-time: Socket.io, ZeroMQ, RabbitMQ, Erlang, XMPP; explorez le real-time au delà des applications de chat. Arrêtez de faire du “polling” sur votre serveur.

Oh, et aussi, rappelez-vous de commencer à ajouter des bots autour de ces APIs. Conseil d’ami.

12. Luttez Contre La Complexité

Plus simple c’est mieux. Toujours. Rappelez-vous du principe KISS: “Keep It Simple, Stupid”. Et je ne parle pas seulement au niveau de l’interface utilisateur, mais dans tous les étages jusque aux niveaux les plus profonds de votre architecture.

Refactoring, tests unitaires, révisions de code, pull requests, voici les outils à votre disposition pour être sûr que votre code en production a toujours l’architecture la plus simple qui fonctionne. C’est ainsi que vous créerez des systèmes fiables sur le long terme.

Conclusion

Ce qu’il faut retenir de cet article c’est que l’âge n’a pas d’importance.

Un de mes fils m’a dit, “Impossible, papa. Les mathématiciens font leur meilleur travail avant l’âge de 40. Et tu as plus de 80 ans. Il est impossible que tu aies une bonne idée maintenant”.
Si vous êtes encore réveillé et lucide mentalement à l’âge de 80, vous avez l’avantage d’avoir vécu une longue vie et vous avez vu une quantité énorme de choses, et vous avez de la perspective. J’ai 86 ans maintenant, et c’est dans les dernières années que j’ai eu ces idées. Les nouvelles idées apparaissent et vous prenez des éléments ici et là, et le temps de la récolte a sonné, alors qu’il n’était pas le temps cinq ou dix ans auparavant.
Michael Atiyah, mathématicien médaillé Fields et vainqueur du prix Abel, cité dans un article de Wired.

Aussi longtemps que votre coeur vous dira de continuer à écrire du code et à construire de nouveaux projets, vous serez jeune pour toujours.

En 2035, exactement dans 19 ans, quelqu’un parlera dans une conférence similaire à celle-ci, en disant:

“Bonjour, j’ai 42 ans, et voici mon histoire”.

Avec un peu de chance se sera l’un d’entre vous; autrement, ce sera un bot d’intelligence artificielle. Vous allez donner tout d’abord quelques éléments anecdotiques 2016, comme par exemple que c’est l’année que David Bowie, Umberto Eco, Gato Barbieri et Johan Cruyff ont décédé, ou quand SQL Server a été finalement disponible sur Linux, ou quand AlphaGo a battu un champion de Go, ou quand les Panama Papers et la base de données de citoyens turques ont été mis à disposition sur Internet, ou quand Google a considéré l’utilisation de Swift sur Android pour la première fois, ou quand les gens ont pu profiter de leur intimité pour la dernière fois.

Il ne manquera que trois ans pour vivre le problème de l’année 2038 et les gens seront vraiment nerveux à ce propos.

Bien sûr je suis incapable de dire avec certitude ce qui arrivera en 2038, mais je peux vous dire trois choses qui, j’en suis sûr, vont arriver sans doute:

  1. Quelqu’un demandera sur Stack Overflow comment filtrer des adresses d’email avec des expressions régulières.
  2. Quelqu’un sortira un énième framework en JavaScript.
  3. Quelqu’un fera quelque chose de génial avec LLVM.

Et peut-être vous vous rappellerez de cette présentation avec un sourire.

Merci beaucoup pour votre attention.