Comment rester attractif en tant que développeur ?

Comment rester attractif en tant que développeur ?

Quel framework et/ou quel langage faut-il connaître en tant que développeur ? C’est l’une des questions je reçois le plus. Le problème c’est que c’est pas la bonne question.



Obsolescence programmée

C’est pas la bonne question parce que la réponse va pas t’aider pour le vrai problème que t’essayes de régler. Le vrai problème est beaucoup plus général. Comment rester attractif sur le marché de l’emploi en tant que développeur ? C’est de ça qu’on cause.

Au début, surtout parce que j’avais la flemme, je répondais avec une liste de technologies. Je sortais de mon cul une de ces top list tendance automne/été 2020 de langage et framework. Aujourd’hui, pour une fois, j’ai décidé d’allumer mon cerveau. Je me suis vraiment posé la question.

Je t’en ai parlé à peu près 35 000 fois sur ce blog, tu le sais, les technologies vont et viennent. En particulier les frameworks. Je pourrais juste te dire : « apprends ce qui est populaire », ça marcherait.

Ça marcherait pour un temps limité. Et après ce temps, il faudra s’y remettre. Et je sais que t’aimes ça, mais c’est un combat sans fin d’apprendre tout ce qui est populaire.



attractif


Avec assez de temps, tous les outils, langages et frameworks vont perdent en popularité au point où les entreprises n’en voudront plus. Ou du moins, ils seront largement détrônés au point où tes choix de carrière seront limités. Ton savoir a donc une date de péremption. Il faut d’abord investir ton temps sur quelque chose qui n’a pas d’obsolescence programmée.



Maîtrise les fondamentaux

Il y a un seul domaine où les choses ne bougent pas en informatique. Les fondamentaux. C’est important de connaître un langage et/ou un framework. C’est indispensable de maîtriser les fondamentaux. Sans ça, tu joues avec ton caca. Il faut apprendre la programmation de façon générale.

Pour maîtriser le framework ReactJS il faut d’abord que tu maîtrises le langage de programmation Javascript. Pour maîtriser le langage de programmation Javascript il faut d’abord que tu maîtrises les fondamentaux de la programmation. Et si tu maîtrises les fondamentaux, ça sera facile pour toi d’apprendre ce que tu veux. Tu pourras t’adapter à n’importe quelle situation !



bambino


Beaucoup de développeurs font l’inverse et commencent par le framework. C’est pour ça que c’est le bordel dans leur tête et dans leur code. Regardons les étapes pour éviter ça.



Algorithme et structure de données

Difficile de faire plus basique que ça. Ce savoir est transverse à tout dans la programmation. Voilà quelque chose qui ne bouge pas. Ce qui est intéressant avec cette partie c’est qu’elle peut être très simple comme extrêmement compliquée.

Si tu cherches juste à apprendre la programmation pour faire des choses « simple », c’est assez rapide. Comment transformer de la logique en algorithme simple. Les conditions, les boucles, les opérateurs, la récursion et tout ce qui va avec. Et puis il y a les types de données et comment les structurer. Là, on parle de comment stocker et utiliser des données. Les tableaux, les strings, les listes, etc etc.

Si tu cherches à faire des choses « complexe », ça devient très vite plus long. Là on parle d’algorithmes de tri dans des graphs et de programmation dynamique avec des matrices. Pour entrer chez les grands noms comme Google, Facebook ou Amazon il faut être expert là-dedans. Donc je t’en parle, mais dans la vraie vie t’auras sûrement pas besoin d’aller aussi loin.

Je suis très loin de maîtriser la partie complexe de cette partie personnellement. Mon conseil c’est d’adapter la complexité de ce que t’apprends sur cette partie en accord avec ce que tu fais. Mais cette partie reste absolument incontournable !

Ma principale source d’apprentissage sur ce point : https://www.geeksforgeeks.org/



Paradigmes et patron de conception

Une fois que tu maîtrises assez la logique et la structuration des données pour ton besoin, c’est important de maîtriser le paradigme que tu utilises. C’est également intéressant de connaître plusieurs paradigmes, mais doucement faut y aller par étapes.

Pour faire de l’objet, il faut que tu comprennes bien la programmation-objet. Ca semble évident, mais ça ne l’est pas pour tout le monde. Je dis ça parce que tu peux faire plein de choses sans tout comprendre. Le souci c’est que tu t’exposes à des problèmes incompréhensibles quand ça plante à cause d’une lacune à ce niveau-là.



attractif


Les patrons de conceptions sont également tes amis. Ça aussi ça bouge pas. Des solutions propres et qui ont prouvé leur efficacité sur la plupart des problèmes de conception que tu vas rencontrer. Ça sert à rien de tout savoir par cœur. Il suffit de les comprendre et de savoir quand les appliquer.

Dans la même logique, quand tu fais du fonctionnel c’est mieux de maîtriser la programmation fonctionnelle. Ce paradigme est de plus en plus populaire et présente plein d’avantages par rapport à l’objet.

Enfin je te conseille fortement d’aller consulter ma compilation de compétences clefs pour tous les développeurs. Tu vas être inarrêtable après tout ça.



La clef c’est la facilité d’apprentissage

En maîtrisant ces fondamentaux, apprendre un langage et/ou un framework est beaucoup plus facile et rapide. C’est comme ça que tu restes attractif ! Sans ça, apprendre quelque chose de nouveau sera toujours effrayant, long et pénible pour toi. C’est pour ça qu’autant de développeurs ont peur de sortir de leur zone de confort.

Alors attention, tu dois maîtriser les fondamentaux pour ensuite apprendre les outils populaires. Ça suffit pas de maîtriser les fondamentaux. La boite va te demander une technologie en particulier.

Et là tu vas me dire : « y’a beaucoup trop d’outils populaires c’est impossible de tout apprendre ». Et tu as raison. C’est pour ça qu’il faut comprendre les concepts au lieu de tout apprendre.



Comprendre les concepts

Quand t’auras maîtrisé les fondamentaux puis appris le langage et/ou framework populaire de ton choix, tu vas te retrouver avec une liste de malade mental de choses à apprendre. Je te le dis tout de suite, ça sert à rien de vouloir tout maîtriser.

Et n’empêche qu’il faut que tu comprennes comment toutes ces nouvelles technologies, méthodologies et langages fonctionnent pour rester pertinents dans tes analyses. Alors, comment faire ?



comment


La réponse est simple, il faut que tu comprennes les concepts de fonctionnement. Par exemple comprendre le concept GraphQL te permettra de remplacer une api REST par GraphQL si un besoin client va dans ce sens.

Apprendre les dernières tendances DevOps te sert peut-être à rien dans ton boulot. Mais comprendre le concept de l’infra-as-code te permettra de rapidement t’y mettre si un jour tu intègres une organisation DevOps.

Le futur du web ne se fera pas sans WebAssembly. C’est intéressant de comprendre le concept WebAssembly si tu bosses dans le web non ?

Et si je fais autant d’auto pub c’est parce que mon format « comprendre en 5 minutes«  et super pratique pour toi comme pour moi. Je t’ai mâché le boulot pour apprendre des concepts qui te serviront tout de suite ou plus tard.

Moi ça m’a pris des heures de boulots pour réunir, analyser, comprendre et expliquer tous ces concepts. J’ai appris énormément à titre personnel et toi tu as tout sur un plateau, consommable en 5 minutes. Maintenant, il te manque juste un peu de pratique.



Gamifier la pratique

Avec tous les points précédents en tête, t’as compris que la clef c’est d’être capable d’apprendre fréquemment et efficacement. Le meilleur moyen d’apprendre de nouvelles compétences c’est la pratique. Y’a même pas débat. C’est pour ça que tu vois autant de dev faire des sides projects.

Mais justement, parlons de ces sides projects. La tendance forte que je vois c’est des développeurs qui partent sur des sides projects de fou. Un scope de malade, une complexité folle, un truc infaisable. Du coup le side project est commencé et aussitôt abandonné.

Ce que je te conseille c’est de fortement gamifier ta pratique. Fait un projet avec un petit scope, pas forcément quelque chose d’utile, un projet fun sur un sujet qui te passionne. Fais quelque chose juste pour jouer. Tu seras tellement occupé à faire un truc drôle que tu te rendras même plus compte que tu seras entrain d’apprendre !



attractif


Y’a pas longtemps je m’emmerdais à cause de ce confinement et de ce virus à la con. Du coup je me suis dit tiens, j’aimerais utiliser une intelligence artificielle pour coder une connerie. Ça m’a pris seulement quelques heures de compréhension et de pratique et j’ai énormément appris ! Et c’est vraiment ce genre de pratique sur le sujet de ton choix que tu peux faire tout de suite et qui va t’apporter énormément.



Épilogue

Apprendre la dernière technologie à la mode peut très bien suffire pour te faire engager dans une boîte. Mais ça fera pas de toi un développeur attractif sur le long terme. Maîtriser les fondamentaux est de loin la meilleure stratégie. Ça te servira toute ta carrière alors autant le faire tout de suite.

clearfix