En dehors du titre, le générique masculin est utilisé sans aucune discrimination et uniquement dans le but d'alléger le texte.

Les gens autour des développeurs aimeraient en général les diviser en deux catégories. Les rock stars et les mauvais. La réalité est bien plus complexe, à l’image de notre métier. Le problème c’est qu’il existe une infinité de niveaux, de talents … Être un bon développeur ça veut dire quoi ? Pourquoi tout le monde en a une vision si différente? Et si la bonne question était : vous êtes un bon pour qui ?

La base

On va commencer par le commencement : n’arrêtez jamais d’apprendre. JAMAIS. Je vais pas refaire une tirade dessus allez donc voir mon ancien article j’en parle assez là-bas. Une fois que vous avez intégré ça, faites en sorte d’être serein dans votre domaine. J’entends par là qu’il peut arriver qu’on ait des “trous” dans nos connaissances. Que ce soit dans nos langages ou même plus basiquement en algorithmie. Faites l’effort : posez-vous 5 min et listez les quelques points qui font défaut à vos connaissances et vous déstabilisent. Puis comblez-les en vous autoformant.

Ça n’a l’air de rien comme ça mais faire l’impasse sur certaines choses que vous savez que vous devez maîtriser c’est comme se trimbaler un boulet à la cheville quand on fait son jogging. Oui c’est possible, mais mon dieu que c’est relou. Une fois les trous dans vos connaissances et l’esprit d’apprentissage acquis vous pouvez passer à la suite.

Bougez, évoluez

Voulez-vous être une personne compétente dans votre entreprise ou une personne compétente ? Parce que oui, c’est deux choses totalement différentes. Physiquement et intellectuellement vous devez évoluer. Surtout si vous commencez à travailler sur l’outil historique et tout pourri de la boîte et que du coup le patron vous adore. Ça y est c’est fait. Vous faites partie des meubles, les nouveautés ce sera pour les autres, vous vous êtes monsieur maintenance. Et en très peu de temps vous ne valez plus rien dans le monde du travail. Ce n’est pas un formatage qu’on attend d’un développeur mais une faculté poussée d’adaptation.

Changer d’environnement est très impressionnant au départ et vous remet inévitablement en question car il faut refaire ses preuves. Et bien c’est ça le but ! C’est ça qui vous fera grandir plus que tout. Sortez de votre zone de confort faites vous du mal, ça vous fera du bien.

Vous ne voulez pas devenir cette personne qui va jusqu’à faire de la rétention d’informations pour sécuriser son emploi. Ce mec est là depuis longtemps. Il a d’ailleurs prévu d’y rester là où il est. Il cache des informations (mots de passe, accès ou autres) dans l’unique but de se rendre “indispensable” (car tout passe alors par lui). Justement parce qu’il ne l’est pas. Ce genre de personne est toxique. Il tire vers le bas. Vous ne voulez pas vous retrouver coincé comme ce genre de personne.

Croire au travail

Il n’y pas de secret. Il n’y a pas de fatalité. Le boulot, c’est tout. Le boulot paye, le boulot élève, le boulot c’est le seul point commun des gens qui ont du succès. Alors attention, je ne suis pas en train de dire que le talent n’existe pas. Il y a des gens brillants de base, mais ces mecs là sont juste une race à part. De plus même ces mecs-là, sans travail ils ne sont rien. Enfin la plupart du temps ce sont des étoiles filantes.

Certains (beaucoup en fait) devs vont même jusqu’à sacrifier du sommeil pour bosser sur leur projet. Ne faites pas ça. Le sommeil est votre ami! Vous avez besoin de sommeil si vous voulez pas arriver en mode zombie au boulot et rien paner de la journée. Aimez le sommeil! C’est le bien.

Autre chose : plus vous aimez votre boulot, moins vous aurez à bosser. On l’entend souvent ça parce que c’est vrai. Là aussi y’a pas de mystère.

Construire des trucs

Ne soyez pas ce mec qui se plaint et qui fait tout un drama pas possible en disant que tel librairies ou tel outil n’est pas parfaits. Bossez pour réparer ce qui n’est pas à votre goût et faites un pull request ! N’attendez pas qu’une solution pop du ciel comme par magie : créez votre solution. Participez autant que faire se peut au monde de l’open source qui est super bénéfique pour vous mais aussi pour les autres. L’open source et la communauté des développeurs en général nous ont tellement appris et apporté tout au long de nos carrières, il faut à un moment partager aussi un maximum. On devrait tous le faire, et si c’est ce que font les meilleurs développeurs c’est pas un hasard.

Je parle d’open source mais ça pourrait très bien être un side projets d’ailleurs. C’est super un side projet. Et je ne veux plus entendre que vous commencez mais ne finissez pas vos sides projets. C’est facile, avec un minimum de motivation, de mener à bien tous vos projets perso. Ne sous-estimez jamais la pratique de cas concrets.

PRATIQUE PRATIQUE PRATIQUE

N’apprenez pas des mots en vous disant qu’au moins vous comprenez le concept et qu’il n’y a pas besoin de creuser. Non ! C’est mort ! Et vous le savez. Notre métier est bien trop compliqué, bien trop nuancé, pour rester en surface. Non vous savez ce qui marche dans notre métier? Je pense pas que je vous apprends quoi que ce soit ici, mais si vous ne le voyez pas écrit quelque part c’est pas pareil : PRATIQUE PRATIQUE PRATIQUE !!!!!!!

Vous pouvez lire autant de tutos que vous voulez, regarder autant de sujets stack overflow que vous voulez, regarder autant de vidéos youtube GÉNIALES que vous voulez (la nouvelle mode). Si vous voulez vraiment être serein sur une techno, un concept ou ce que vous voulez, il va falloir la pratiquer ! C’est tout. Vous voulez apprendre NodeJS ? Vous vous réservez une petite semaine où vous bossez après le boulot, et vous faites que du NodeJS non-stop avec un vrai objectif intéressant type : “faire un site avec une inscription où on peut poster une image et la partager”. Et seulement après vous pouvez mettre “Notion NodeJS” sur votre CV.

Après évidement il faut faire la part des choses entre maîtriser une nouvelle technologie et faire simplement de la veille pour comprendre ce qui se passe autour de vous on est bien d’accord.

Ne soyez pas religieux

On va pas parler du petit Jésus ici, mais bien de technologies.

“Javascript est le meilleur langage de la terre et dominera bientôt le monde”, “Symfony est le meilleur framework PHP rien ne lui arrive à la cheville” : voilà le genre de phrases qu’un fanatique vous dira sans sourciller. Oui je parle de fanatique car c’est exactement ça. Ce qui est important à comprendre c’est qu’il n’y a pas une technologie parfaite, mais beaucoup de technologies imparfaites qui règlent chacune plus ou moins bien certaines tâches. Concrètement il faut savoir reconnaître les forces et les faiblesses de chaque technologie au lieu d’en mettre une en particulier sur un piédestal et de cracher sur les autres.

Et si j’insiste là-dessus, c’est parce que c’est un point crucial quand vous êtes amené à faire des choix techniques avant projet. Car utiliser tel langage ou telle technologie parce que “c’est juste la mieux y’a pas à chier” c’est bien pour vous, mais pas pour votre entreprise. Alors quand ça se voit pas c’est juste un mauvais choix, mais quand ça se voit c’est une grosse erreur qui peut avoir des conséquences. Alors par pitié arrêtez de faire des procès et du drama à tout-va et pensez au projet avant votre ressenti.

Apprendre à apprendre

Vous vous demandez si vous devez apprendre Angular 2? C’est la mauvaise question. La bonne question est : comment apprendre n’importe quel framework rapidement et efficacement? Oui parce qu’une fois qu’on a conscience de l’importance d’apprendre de nouvelles choses vient le problème concret de l’apprentissage en lui-même. Entre “j’ai pas le temps” et “y’a trop de trucs” il est difficile de faire de vrais progrès. Cependant il existe des solutions simples et efficaces à ça. Elles ne vous promettent pas de tout savoir (lol) ni de tout apprendre dans l’heure mais simplement de faire de vrais progrès raisonnables. Et les meilleures solutions que je préconise sont présentées ici par la dame :

Oui c’est en anglais mais ça va elle a pas un accent impossible au contraire. Alors je vais pas faire un transcript complet mais vous donnez l’idée générale de la vidéo. Très grossièrement elle explique que nous utilisons beaucoup de ressources cognitives en essayant d’apprendre des choses ce qui freine fatalement notre apprentissage. Et le but est de savoir gérer cette utilisation intensive de ressources cognitives. On se retrouve avec un tas de ce “qu’on veut maîtriser”, “ce qu’on peut faire mais avec beaucoup d’efforts” et “ce qui est devenu naturel”. Et elle propose des techniques pour passer d’un stade à un autre qui vont du découpage en sous taches très simples avec une itération très rapide sur chaque tâche, jusqu’à l’exposition constante à beaucoup d’exemples jusqu’à reconnaître naturellement des patterns. J’ai rarement vu une vidéo sur ce sujet aussi intéressante : c’est un must watch !

Soft Skill

Au bout d’un moment le niveau des devs pour un poste donné est sensiblement le même. C’est là que rentre en jeu les soft skills ! De plus en plus les développeurs sont amenés à être au centre des décisions capitales de l’entreprise. Nos capacités à proposer, convaincre, comprendre et nous faire comprendre sont cruciales à la réussite d’un projet. Il est loin le mythe du développeur complètement muet, seul au fond de la salle, isolé, qui crache du code toute la journée en mode extraterrestre qui vient d’atterrir. Les recruteurs le savent et ne cachent plus le fait que les softs skills sont désormais très importantes dans votre embauche.

Vous pouvez faire le meilleur code de la terre, si vous ne savez pas en parler et le “vendre” ça sert à rien. Et c’est bien de ça dont il s’agit, de communication, savoir écouter et savoir se faire entendre. Qu’il s’agisse de code ou tout simplement de relation humaine. Personne a envie d’avoir un cas social dans son équipe même s’il code plus vite que son ombre. Les soft skill ça passe aussi par de la prise d’initiative. Si vous voyez un truc débile dans l’entreprise, proposez un outil (aussi simple soit-t-il) pour y remédier. Vous prenez tout de suite +10 000 en valeur aux yeux de l’entreprise car vous faites avancer tout le monde. Et en fin de compte c’est tout ce qui importe : amenez de la valeur ajoutée. C’est ce qui vous fera ressortir du lot.

Mieux gérer son temps

Je connais bien l’enfer de l’entreprise pour un développeur. Y’a toujours ce gars qu’on appellera Jean-Jean. Jean-Jean il vient vous parler de son truc qui sert à rien pendant que vous essayez de vous concentrer sur un point compliqué de l’appli. Et Jean-Jean il vous aime bien il vient vous voir tous les jours. Alors je dis pas que Jean-Jean a tort de vous déranger et même que des fois c’est pas si inutile que ça ses interventions. Je dis simplement que Jean-Jean est une réalité, il est là, partout, dans toutes les entreprises. Jean-Jean vous attend et il va vous couper dans votre travail parce que Jean-Jean veut et doit vous parler. Des fois même ils sont plusieurs Jean-Jean.

Alors pour ne pas perdre un temps monstrueux avec Jean-Jean il y a une technique redoutable que j’affectionne tout particulièrement c’est la technique pomodoro. Je vais pas rentrer dans les détails car le lien du wiki le fera mieux que moi mais en gros : vous balancez un timer de 25min, gros focus sur une tâche bien particulière (il est très important de faire une tâche et SANS interruption), pause de 5 min et rebelote. Et pendant la pause de 5 min vous pouvez aller déranger Jean-Jean(hahaha). Et si Jean-Jean vient vous voir pendant le focus dites-lui que vous venez à lui dans 5 min mais surtout ne coupez pas votre focus.

Vous êtes certainement sceptique comme je l’étais en découvrant cette technique. Et bien faites le test : https://pomodoro.cc/ tentez le coup pendant une matinée. Faites-vous votre avis et améliorez votre vision de Jean-Jean par la même occasion. Protips : ça marche aussi sans Jean-Jean.

Accepter de passer pour un con

Si si, ça vous est déjà arrivé, ça nous arrive tous. Vous savez le truc évident que tout le monde sait à part vous. Oui vous savez de quoi je parle pas la peine de faire semblant. Et pourquoi je sais que ça vous est déjà arrivé ? Parce que vous n’êtes pas omniscient et qu’il faudrait plusieurs vies pour tout savoir sur le métier (et encore). Ça vous est jamais arrivé ? C’est mauvais signe. Sortez de votre zone de confort !

Est-ce si grave que ça ? Pourquoi avoir autant peur de poser les questions, d’en savoir plus? Ce n’est pas plaisant de se sentir stupide, mais c’est le prix à payer pour accéder à plus de savoir. Même si ça peut sembler être évidemment pour d’autres. De toute façon c’est le même tarif pour tout le monde là-dessus. Ce “dev qui sait tout” en a posé beaucoup des questions croyez-moi. Même le grand expert manitou gourou jedi ninja hacker ou je ne sais quel nom la RH lui a donné pour flatter son ego.

Tiens d’ailleurs parlons de l’ego. MON DIEU on a un problème avec l’ego. Les devs ont un égo de la taille de l’Everest c’est un truc de fou furieux ! Vite un traitement il faut nous soigner (←↑→↓)! MOI LE PREMIER ! Je me prends pour qui à écrire cet article et à vous dire ce qui est bien et ce qui est pas bien ? La plupart d’entre vous sont sûrement bien meilleurs !

Bon après, vous êtes meilleur pour qui ?

Toi, mon développeur, t’es un bon

Y’a pas longtemps je suis tombé sur le site de présentation d’un dev et la personne en question disait pouvoir utiliser plus de 30 technologies/frameworks. De plus il vendait ses aptitudes de leader d’équipe et sa forte adaptation à tout type de situation. Enfin il expliquait qu’il était à la recherche d’un premier stage, ayant juste fini ses études… Vous voyez ou je veux en venir ? Posez-vous la question : Pour qui êtes-vous “un bon” ? Pour vous ? Pour votre patron ? Pour un pote ? Pour la communauté mondiale des développeurs ? Ha et ça marche aussi à l’envers. Pour qui êtes-vous “un mauvais” ? Une personne qui ne connaît rien au métier ? Un formateur chevronné ? Un junior qui ne fait pas de test pour “gagner du temps” ?

Ce que j’essaye de dire c’est que tout le monde a une vision bien particulière d’un “bon développeur”. Sa vision personnelle. Certains pensent qu’un bon développeur est un mec qui connaît par cœur toutes les fonctions d’un langage même les plus inutiles en mode encyclopédie parlante. D’autres pensent qu’un bon développeur est plus dans la psychologie et l’analyse des besoins clients. Il comprend, crée et adapte son application en mode “customer-centric” comme ils disent. Une bête de marketing et d’ergonomie au service du code. D’autres encore pensent que les seuls vrais devs sont des monstres en mathématiques et en algorithmie ultra complexe. En gros des scientifiques de la NASA en puissance qui aurait choisi de faire du dev à la place.

Allons bon, c’est simple il suffit d’être les trois en même temps non ?

Ou alors, tout simplement accepter que vous êtes l’imbécile de quelqu’un, qu’il ait raison ou tort finalement peu importe.

Épilogue

Il y a aura toujours quelqu’un pour vous prouver par A + B que vous êtes mauvais. Un autre pour vous prouver, avec le même aplomb, que vous êtes bon. Un bon développeur, pour moi, ça ne veut rien dire. Alors j’essaye juste d’être meilleur chaque jour. Et ça sera déjà pas mal. Et vous ? C’est quoi pour vous un bon développeur ?