Le plus important pour réussir en tant que développeur.se
Spoiler : ce n'est pas une compétence technique
Je suis développeur freelance depuis 2010. J’ai commencé en tant que développeur backend PHP / Python. Je travaille maintenant principalement avec TypeScript / Node.JS.
Il y a quelques années, j’ai travaillé pour Le Figaro, le plus gros journal français. Plus de 20M de personnes voyaient mon travail chaque jour. Est-ce que je me la raconte en disant ça ? Pas du tout. Livrer de la valeur pour autant de gens est vraiment grisant. Mais, avec de grands pouvoirs viennent de grandes responsabilités. Pour garder la tête froide et réussir en tant que développeur.se, il faut une compétence indispensable : l’humilité.
J’avais 10 ans quand j’ai commencé à créer des sites web. J’utilisais à l’époque une solution no-code (dont j’ai oublié le nom). C’était fait pour créer des sites statiques. À l’époque, j’avais créé un site sur les jeux vidéos qui n’était autre qu’une pale copie de jeuxvideo.com (toute proportion gardé évidemment).
C’était suffisamment excitant pour me donner un nouvel objectif : construire un site dynamique de A à Z.
Tout ce dont j’avais besoin, c’était du temps. Et j’avais beaucoup de temps pendant les vacances d’hiver chez ma grand-mère à 12 ans, où les jours étaient tellement courts que ça ne valait pas la peine de sortir. Comme beaucoup de gens de mon âge à l’époque, j’ai suivi le cours sur le Site Du Zéro pour apprendre à développer avec PHP, MySQL, HTML et CSS.
Une passion était née !
Quand la passion devient un catalyseur
Une passion très forte peut agir comme un catalyseur vers une superbe carrière.
J’ai passé toute ma scolarité (collège et lycée) à développer sur ma Casio Graph 35+. Je me rappelle la tête de mes profs de français et d’histoire quand ils me voyaient tapoter sur ma calculatrice pendant leur cours ! Aujourd’hui, je les remercie de m’avoir laissé vivre ma passion :)
Après un DUT j’ai intégré une école d’ingénieur. J’avais l’impression d’être supérieur aux autres parce que je programmais depuis l’âge de 10 ans ! Je n’étais pas concentré durant les cours, je pensais déjà tout savoir ! Je me basais sur un apprentissage autodidacte pour apprendre tout ce que je pensais devoir connaître. Ce que j’aime le plus dans la programmation, c’est l’architecture logicielle. Je me focalisais donc dessus !
Et ce qui devait arriver arriva : j’ai over-engineeré TOUS les projets sur lesquels j’ai travaillé ! Ça aurait dû me mettre la puce à l’oreille, ça allait être bien pire ensuite…
“Choisis un travail que tu aimes, et tu n’auras jamais à travailler un seul jour de ta vie” — Confucius (peut-être)
C’est une citation très connue, mais peut-être qu’on devrait lui ajouter : “[…] mais n’oublie pas que ton travail reste un travail”. Quand tu es tellement passionné à propos de quelque chose, c’est facile d’oublier que tu es au travail. Tu oublies que tu ne sais pas tout, et qu’en tant que professionnel, tu as des responsabilités !
Mes premières expériences professionnelles étaient assez identiques. Mes clients me décrivaient comme très talentueux, une excellente source de propositions malgré mon jeune âge. Une habilité à penser “outside the box” et une propension à apprendre de nouvelles choses très rapidement. J’étais déjà étiqueté avec le profil “expert”. Ça sonne comme la définition du parfait petit développeur, n’est-ce pas ? Eh bien PAS DU TOUT !
Si vous demandez à mes clients entre 2010 et 2016, probablement très peu d’entre eux seraient enjoués à l’idée de retravailler avec moi. Car à chaque fois j’ai fait passer mes envies personnelles de code “pointu” avant les objectifs de l’entreprise.
L’humilité est la clé
J’oubliais la chose la plus importante. Oui, développer est ma passion. Mais c’est aussi mon travail. En tant que développeur web, il y a de grandes attentes sur mon travail, il en va de la santé de l’entreprise qui fait appel à mes services ! Et ça j’avais tendance à l’oublier…
Mon objectif premier dans ma carrière est d’être un développeur web à succès. Mais avoir du succès ne veut pas dire la même chose en fonction des gens. Pour beaucoup de développeurs, il s’agit d’apporter de la valeur aux utilisateurs finaux. J’ai la même définition. On arrive à ce résultat en écrivant du code. Du code qui doit être lisible, compréhensible, maintenable, évolutif. Ce genre de code de grande qualité prend du temps à écrire, et comme nous le savons tous : le temps, c’est de l’argent. C’est donc tentant de vouloir écrire du code quick & dirty du moment que ça marche ! La nouvelle fonctionnalité est déployée en un temps record ! Le product owner est content ! Le département financier est content ! L’utilisateur final est content ! Avec le sentiment du devoir accompli, le développeur est content !
Mais si tu es si passionné à propos du développement que tu ne peux pas accepter d’écrire du code sale parce que tu sais que ça fait perdre plus de temps que ça n’en fait gagner en apparence, alors tu n’es pas heureux. Tu cherches la perfection. Après tout, tu développes depuis un âge où la majeure partie des autres développeurs étaient en train de jouer dans le jardin ! Tu ne peux pas te décrire seulement comme “moyen”.
Attention, ne me faites pas dire ce que je n’ai pas dit. Je ne dis pas que tous les développeurs passionnés veulent écrire du code “parfait”. Le code “parfait”, comme tous types de “perfection” n’existe pas. Mais comme beaucoup de développeurs passionnés, tu peux tomber facilement dans le piège du “je connais de meilleures façons de le faire que toi donc j’ai BESOIN de le faire comme ça". Le premier problème, c’est que dans ce cas, on écrit du code pour soi, et plus pour résoudre des problématiques de l’utilisateur final. Pour gérer ça, il faut s’ouvrir à l’humilité.
L’humilité vous fait comprendre que la connaissance se cache dans les choses que vous ne savez pas que vous ne savez pas.
L’humilité n’est pas quelque chose que l’on apprend à l’école. L’école favorise la compétition entre les étudiants. L’objectif principale est de préparer les étudiants à la compétition que l’on retrouve tous les jours dans le monde du travail. Mais l’humilité reste la clé. C’est cette humilité qui vous fait comprendre que vous ne savez pas tout. Cette humilité qui vous permet de rester à l’écoute même quand quelqu’un d’en apparence moins “passionné” ou “compétent” que vous partage son expérience. L’expérience est extrêmement importante. Dans un environnement très changeant, spécifiquement dans le développement web, l’humilité est ce qui pousse à vouloir apprendre de nouvelles choses, parce que vous êtes conscient des choses que vous ne savez pas. L’humilité vous fera devenir un meilleur être humain, et donc un.e meilleur.e développeur.se.
Happy Coding !