Dans un article précédent, j’avais souligné la baisse du niveau des devs et on m’avait demandé mes sources. Mes sources, comme souvent pour ce genre d’opinion, sont les études empiriques du très sérieux Institut National du Doigt Mouillé de Sam. Faudrait que je fasse un logo mais je suis une pine en graphique.
Aujourd’hui, à l’aide de chiffres scientifiquement approximatifs et d’analyse d’échantillons représentatifs localement, à moins que ce soit l’inverse, nous allons vous expliquer ce qui se trame.
Je ne suis pro en dev que depuis 10 ans. 10 ans, c’est court dans une carrière. Mais en informatique, c’est long. Suffisamment long pour avoir vu l’ère pré-msql_real_escape
, les premiers ORM, la mode du NoSQL et le big Data. Suffisamment pour avoir vu le design via table
, puis la psychose du xHTML valide strict et accessible pour finir sur le HTML 5 avec le retour du JS inline qui ne sert pas qu’à faire des flocons de neige. Suffisamment pour avoir vu Linux devenir utilisable, la programmation sur téléphone accessible (vous vous souvenez qu’avant on programmait les nokias en J2ME ?), la latence réseau devenir un bottleneck, le CPU et la mémoire étant relégués à un problème comptable sur 90% des projets. Et surtout, suffisamment pour voir le Dev Web passer d’un truc de bidouilleur à une spécialité à part entière du monde de l’informatique.
Mais même avant, sans faire de l’argent avec, j’avais les mains dedans. J’avais un ordi avec des disquettes 5 pouces, un écran en noir et vert et un bouton “turbo” qui overclockait le puce à 8Mhz. Wooosh ! Et encore avant, un ordinateur avec une cassette à bande magnétique que je n’ai jamais réussi à faire marcher.
Et puis on croise du monde, des gens d’expérience qui partagent. On lit des livres d’il y a 20 ans (almost perfect est disponible gratos au fait). On travaille. On forme. On recrute.
Cela m’a amené a plusieurs constats.
Le niveau de vie des développeurs s’est bien amélioré
Que ce soit au niveau qualité de matériel (2 écran HD pour utiliser VI, c’est le luxe), accessibilité de l’information (Google, c’est plus facile qu’un magazine ou des man pages sur disquette), automatisation (on compile très rarement les dépendances tierces maintenant), facilité de trouver un job (y a des annonces partout), tout est plus confortable.
Mais ce n’est pas le plus important.
L’image des dev s’est améliorée. Être le geek au collège n’était pas vraiment une partie de plaisir. En fait si j’avais rencontré Max dans la cour de l’école, on se serait probablement mis sur la gueule.
Aujourd’hui on vend des magazines avec en couv’ des geeks millionnaires, Hollywood s’est approprié la mythologie du hacker et la coolification (devrais-je dire coolifitude ?) de l’utilisation informatique rend la vie beaucoup plus facile.
Quand je dis à une meuf que je suis informaticien, elle ne fuit plus. C’est pratique. La logistique devenait compliquée.
L’informatique a explosé
Comme vous pouvez le voir sur ce graphique, le nombre de connards à utiliser l’informatique a drastiquement augmenté. Ce faisant, il y a donc beaucoup plus d’appareils nécessitant d’être programmés sur le marché, les rayons, le chaumières et les poubelles.
Malgré des échelles qui n’ont rien à voir, la courbe de facilité des usages suit paresseusement celles des usagers, et ce n’est pas un hasard. La formule pour calculer la simplicité d’un système étant dépendante de la variable du nombre de boulets l’utilisant (Evidence = MasseConnards²).
Or, pour répondre à la fois à la simplification des usages, et à leur multiplication, il y a fallu créer un paquets d’abstractions qui ont rajouté des couches, ce qui explique la progression du niveau d’indirection.
Les formations n’ont pas suivi
Dans le cas le plus grave, elles ont des années de retard sur les technologies actuellement utilisées. Dans le meilleur des cas, elles sont dispensées par des gens qui ne travaillent pas, et donc ne fournissent pas aux apprenants les éléments nécessaires pour être un élément productif.
Je voulais rajouter le pourcentage de profs qui avaient fait une migration de schéma en prod, mais LibreOffice n’accepte pas les chiffres négatifs.
Les bons informaticiens restent donc ceux qui se forment eux-mêmes. Via un projet personnel, par simple passion, en travaillant pour financer leurs études, etc. Même pendant la vie professionnelle, ceux qui ne deviennent pas obsolètes sont ceux qui continuent à apprendre. Car la formation en info, c’est toute sa vie. Et c’est un train où le paysage avance en même temps que soi, donc si on s’arrête, en vérité, on recule.
Et du coup
Le niveau des dev baisse. Pas de manière absolue, mais de manière relative au niveau dont le marché a besoin, et également en pourcentage de la population totale.
C’est lié à la conjoncture : plus de demande et plus de confort impliquent qu’il y a plus de monde qui se lance dedans. La démocratisation, c’est bien, mais ça apporte également un flot de personnes qui font ça comme job alimentaire. Or, si la formation ne suit pas, et qu’ils ne se forment pas, le nombre de technos continue d’augmenter. Les abstractions continuent de s’accumuler. Les nouveaux produits continuent de sortir.
Si bien que le besoin de dev augmente, mais également l’exigence de la somme des compétences requises progresse. Car si on a plus besoin de connaître la différence entre un little endian et un gros portoricain, pour dev une app Web moderne il faut maitriser : CSS, Javascript/Python/Ruby, HTML, quelques frameworks par dessus tout ça, une base de données et peut être un ORM, un système d’exploitation, potentiellement une machine virtuelle, un système de déploiement, des préprocesseurs, un système de files de tâches, un moteur de recherche, un système de cache…
Et l’attente des clients, comme des employeurs, sur le résultat, a elle aussi grandi. On veut du mieux, plus vite, plus ergonomique. Ils le font bien à côté. Par contre, ce qu’ils peuvent payer pour ça n’a pas beaucoup bougé en France, ils pensent toujours qu’avec un bon fichier de conf on peut faire faire un clone de Youtube pour pas cher.
Du coup les bons devs qui restent, ceux qui se sont formés et continuent de se former, ceux qui sont noyés dans la masse grandissante des spleenés de la programmation qu’on a attiré avec la promesse d’un job, ils se barrent. Ils se barrent là où on les paie à la hauteur de leur compétence : aux USA et aux UK.
Je résume :
- La demande en dev est en hausse.
- A corréler avec l’augmentation du nombre d’abstractions.
- Il y a plus de dev avec des boulots alimentaires.
- Les meilleurs devs se cassent ou se mettent à leur compte.
A l’embauche, le nombre de bons dev disponibles comparé à la demande grandissante et au nombre total de candidats, est en chute libre. Et ce, malgré le nombre de devs de talent, absolu, qui lui augmente dans le monde par le simple truchement de la démographie et de l’émulsion technologique.
Dans la vraie vie vivante, ça se traduit par des entretiens déprimants, des embauches tristes et des cours d’info frustrants.
Et la situation ne va pas s’arranger. Les besoins vont continuer à croître. Les bons dev ne vont pas sortir du chapeau. Faites en sorte que ce soit une bonne nouvelle pour vous :
- Si vous êtes dev, vous avez l’occasion de sortir du lot.
- Si vous êtes recruteur, visez juste, et vous aurez un avantage concurrentiel non négligeable.
Comment faire ? Arf, ça pourrait être un autre article. Un jour :)
t’as réussi à placer truchement, bien joué Sam!
Quelques typos:
la cours de l’école -> la cour de l’école
rends la vie -> rend la vie
il y a fallut créer un paquets d’abstractions -> il a fallu créer un paquet d’abstractions
actuellement utilisée -> actuellement utilisées
eux même -> eux-mêmes
plus de demande et plus de confort implique -> impliquent
le nombre de bons dev disponibles face, comparé -> le nombre de bons dev disponibles comparé
aux nombres total -> au nombre total
Et tu oublies le niveau des RHs en france qui ne suit pas mais qui arrivent toujours a faire croire qu’ils sont indispensables pour recruter.
« la différence entre un little endian et un gros portoricain »
Ce jeu de mots a fait ma journée, comme ils doivent dire outre-Outaouais.
la différence entre un little endian et un gros portoricain => mdr
Et une “ère” plutôt qu’une “aire”.
Sauf si
msql_real_escape
était une sorte d’espace multi-dimensionnel aspirateur de toute autres dimension spatiales (voir temporelle :) ) ; ce qui est aussi une possibilité évidemment…Un article de bon sens, bien écrit quoi qu’un peu pessimiste… Rien qu’à l’échelle de 6 ou 7 ans à traîner sur le ouèbe et à regarder ce qui se passe un peu derrière, j’ai pu constater moi-même une évolution fascinante. J’en ferai jamais mon boulot, mais je suis curieux de voir ce que ça donnera dans encore 10 ans !
(Et promis ce soir je dessine le logo de l’INDMS et je vous l’envoie, j’ai déjà l’idée.)
A propos des formations, a défaut de qulaité je ne suis pas certains non plus qu’elle suivent niveau quantité.
La dernière fois que j’ai accompagné un stagiaire pour une soutenance son directeur d’IUT me confiait qu’ils avaient de plus en plus de mal à remplir les sections, je me demandais pourquoi en contemplant le thermos de café, la brique de jus d’orange leader price et le tas de gateau sec posé sur une assiette jetable qui consitutait le buffet de petit dej….
Bizarrement les jeunes qui rêvent de devenir des geeks millionnaires ils filent dans les
écoles de commercesbusiness school, pas certains que ça en fasse de grand dev (encore que… si ils sont capable de se former à coté ça sera peut être pas pire qu’une formation dédié).@Sam
D’ailleurs,
J’utilise intensivement votre test FuzzBizz. Il me permet de virer 80% des candidats qui marquent genre “PHP/Python” sur leurs CV, mais échoue sur un simple 1 boucles et 3 conditions…
C’est dire si le niveau est problématique…
@bussiere
Clair … le niveau des RH est aussi un problème.
@cyp : je suis en école de commerce et ya pas beaucoup de vrais geek hein, et les quelques qui existent ont pour la plupart juste des compétences en PHP/HTML et vaguement CSS. Et encore, pour PHP c’est surtout l’utilisation de Framework et les connexion avec les API. Après on est quelques uns quand même à savoir coder (je me considère pas pro mais je me démerde en python notamment), mais l’ambition n’est pas de devenir multimillionnaire, faut arrêter les clichés. Ceux qui ont les dents longues et des envies de portefeuille garni cherchent plutôt en conseil ou tu peux viser les salaires annuels à 6 chiffres rapidement et sans trop de risque. En se disant qu’en plus après tu te retrouve cadre sup dans une grande boite payé toujours autant mais avec des horaires pépères, ce qui est appréciable.
Ya pas de miracle, pour être un bon entrepreneur et gagner des millions à la fin, l’important c’est pas l’ambition c’est d’avoir une motivation de dingue et ne pas avoir peur, parce que pendant des mois/ans tu vas dormir sur un canap’ sans aucune garantie de si ça va changer ou quand, tout en bossant tout le temps jusque pas d’heure ! Et quand tu sors d’une école ou le salaire moyen à la sortie est de 40K€/an, t’as forcément la tentation du confort, c’est humain. Et c’est vrai pour les écoles d’ingé autant que pour les écoles de commerce.
D’ailleurs même moi, je vais être diplômé dans 3 mois et la question se pose : j’ai bien une idée en tête de création de boite mais pour le moment personne pour m’accompagner, et entre créer une boite qui me botte bien mais qui a 60% de chance d’échouer et qui de toutes ne me rapportera rien pendant au moins 2 ans et prendre un poste sympa et tranquille ou je toucherais 3000€ net/mois et pourrais partir en vacances avec ma copine, ben franchement j’hésite !
Car si on a plus besoin de connaître la différence entre un little endian et un gros portoricain
Mouais, ça vaut peut être pour les développeurs Web, mais pour ceux qui font de la couche réseau comme moi on a intérêt à faire la différence si on veut pas décoder nos trames à l’envers :p
Sinon il y a un gros problème au niveau de l’enseignement de l’informatique, qui reste encore trop focalisé sur l’algorithmique et la programmation, laissant les problématiques d’architecture, de packaging et de déploiements de côté.
Ouais, le niveau baisse. Avant, les ordis c’était pour les geeks, ceux qui les achetaient s’en servaient dans des buts précis (de la même manière qu’on achète un aspirateur), maintenant ils sont se juste imposés de facto à tous les foyers. Classique, mais pertinent:
http://coding2learn.org/blog/2013/07/29/kids-cant-use-computers/
Le hic, c’est que le nombre de geeks qui savent se servir d’un ordi n’a pas suivi la croissance du marché, car il est beaucoup plus difficile de démocratiser du savoir que des trucs qui s’achètent. Le résultat, c’est qu’il suffit de pas beaucoup pour être considéré comme “bon en informatique”. Si mon père était un geek parce qu’il jouait à Rogue et faisait de l’assembleur MVS et du PL1 en son temps, je passe pour un geek simplement parce que j’utilise Ubuntu. Les gens qui n’y connaissent rien ne sont pas foutus de faire la différence (tout comme un béotien aux échecs ne ferait pas la différence entre celui de son prof du coin et celui de Carlsen) et le recrutement devient une blague.
Cela dit, ayant recu très peu de vrais cours d’info, stackoverflow et la doc m’ont été bien plus utile les quelques occasions où j’ai du me sortir les doigts du code. C’est un des rares domaines qui se prêtent très bien à l’autodidaxie (contrairement aux maths et à la physique) et où la connaissance est libre, facile d’accès et prolifique (contrairement aux sciences humaines). Tout n’est pas perdu, il est toujours temps d’acquérir des skills.
@archive
Faut pas se vexer, c’était autant une attaque contre le manque de sex appeal de certaines formation destinées aux informaticiens (dev. sysadmin…) que contre les filières plus à la mode dont on ne voit pas toujours la finalité.
De l’expérience que j’en ai, autant c’est difficile de trouver un dev autant des qu’on publie une annonce avec des termes genre manager, chef de projet ou d’autres postes de ce genre on croule sous les CV bardé de formations au nom pompeux.
Moi je dit ça mais je suis passé par la fac et j’ai eu droit à des TP d’ASM68k dans des caves qui aurait fait le bonheur des amateurs d’urbex (y’avait encore des armoires gavée de cartes perforées) et comme tout le monde je n’ai pas vraiment eu l’utilité des enseignements que j’y ai reçu (par contre coté culture informatique c’était tout de même interressant et la relation avec les services administratif est aussi assez formatrice…. ;-p ).
Et monter ça boite à la sortie d’école bof… à moins d’avoir un bon sponsor qui va assurer pour essuyer les platres ou sortir des marchés de son chapeau magique je ne suis pas sur que ce soit une très bonne idée.
Avec quelques années d’expérience ont découvre rapidement beaucoup de chose qui ne s’apprenne pas à l’école et surtout un réseau beaucoup plus efficace, les quelques années consacré aux salariat doivent pouvoir être vite “rattrapé” par rapports aux années galères qu’on peux rencontrer en se lançant directement.
Apprendre c’est la meilleur partie du métier, et en plus les langages web sont les plus accessibles..
Je ne me suis pas senti vexé du tout, c’est juste intéressant de partager différents points de vue selon les expériences de chacun.
Et la création de boite en sortie d’école ça dépend, parfois c’est mieux car après il ya trop d’imperatifs financiers et humains (genre des gosses …). Je connais d’ailleurs plusieurs cas proches.
Premier comment, j’en profite pour vous remercier pour votre site que je lis tous les jours. Concernant cet article précis, étant professeur externe de Python à l’Université (je suis expert Python en SSII à côté), j’avoue effectivement qu’il y a un soucis dans la formation des jeunes. J’ai même un ami, lors de son stage, son tuteur dans la boite s’est foutu de son prof car ce dernier leur avait appris à coder en Python, selon ses dire, “comme en 1995″.
Et effectivement, rappport à ta conclusion Sam, si je n’avais pas autant d’attaches à ma BZH, je pense que je partirai sans hésiter dans un pays ou on arreterait de me les briser sévère (merci l’administration, et le reste).
J’ai surement quelques années en moins dérrière moi mais je me retrouve un peu dans cette rétrospective.
En ce qui me concerne a propos du niveau des développeurs, plus j’en cottoie en explorant le monde professionnel (salaria), moins je rencontre de développeurs “passioné”, qui code des projets persos, sensibilisé a l’écriture d’un code “propre” (en réference à Robert C.Martin), bien testé ou je ne sais quoi qui produit un peu de jouissance en nous quand on execute. Ce qui pourtant est en parfaite opposition avec le modèle que je retrouve dans l’univers du libres (symfony, django, machin, truc). Où la qualité logicielle est un prérequis indispensable pour que ça fonctionne bien et que ce soit utilisé.
Evidemment mon echantillons de sujet observé se limite aussi a mon environnement (lequel est composés exclusivement de développeurs moin bon que moi). Mais bon sang, ce que l’on m’a appris lors de mes études de dév c’est rien a coté de tout ce que j’ai appris avec le dév perso, la veille, la bidouille !
En fait si ce n’était que ça ça irait. On pourrais se pavaner d’être des bons en gonflant bien notre poitrine et nos chevilles. Mais on nous paie a coup de médianne ou de niveau d’étude, et ça fait chier.
@Bux: Tout à fait d’accord. J’ai été embauché en tant qu’expert Python sur mon experience perso. Je suis autodidacte (je suis inge domotique de base), et c’est le fait que je soit passionné, que je dev sur mon temps libre des osfts Open Source, que j’écris des livres pour la communauté, …, qui ont fait que j’ai réussit à me réorienté. Mais étant donné mon “niveau”, on me paie un peu au rabais actuellement.
Et côté des jeunes dev, mon experience m’a démontré la même chose que toi: aucun respect des normes, code dégueulasse, se contente de l’a peu près, … Bref, rien de bon pour l’avenir.
Salut, ton article, basé sur ton expérience est très intéressant pour moi qui suis débutant & surtout motivant. Je suis loin d’être un pro à l’heure actuelle, je suis en plein apprentissage, je suis tout de même en mesure de dire que j’ai un bon niveau HTML/CSS (responsive et tout le tralala) et que je suis plutôt bien parti pour JS & PHP… A la base, je suis plutôt webdesign…
Bref tout ça pour dire que je suis des cours, et que les cours dispensés, sont juste une calamité (pour la plupart & perte de temps), du coup, je me forme par l’intermédiaires du web et de plateformes anglophones axés sur l’apprentissage du web dev.
Si c’est comme ça ailleurs, pas étonnant que le niveau baisse…
Si je devais être sur le marché du travail avec mes compétences actuelles, je ferais partie probablement des personnes qui font descendre la moyenne du niveau, en tout cas en tant que web dev pur et dur.
Je considère que je serai un “vrai” web dev front-end quand je gérerai comme une bête Javascript et des frameworks comme Angular. Ce qui n’est pas encore le cas…
Mon ressenti est aussi que les nouveaux web devs, dont je fais partie n’ont pas du tout cette vue globale, ce recul, que vous les “anciens” avez, vous avez pu suivre l’évolution du web et du développement, presque depuis ses tout premiers balbutiements, c’est un avantage indéniable. Vous avez (pour ceux qui ont fait l’effort,sinon je doute qu’ils bossent encore en tant que dev), évolué avec les dites technologies…
Vous voyez clairement pourquoi telle ou telle techno s’est dirigée dans une dite direction et pas une autre et etc… Vous avez tout simplement une meilleure compréhension du sujet, enfin je pense… Même s’il n’est jamais bon de généraliser.
Un autre exemple, c’est que les anciens, par exemple se sont fait chier à faire des sites entier en procédural sous PHP, sans framework, quedal à tout faire à la mano, sans que rien ne soit automatisé.
Maintenant, quand on suit des cours, enfin pour ma part, on vous montre rapidement, en quelques jours ce qu’est le procédural PHP, puis basta, on passe directement à un framework, on utilise des classes sans même savoir ce qui se trame réellement derrière, sans trop comprendre en réalité, et c’est une chose que je trouve également très dommage, même si professionnellement, une connaissance de ces frameworks est nécessaire, je pense qu’il n’y a rien de tel que de reprendre depuis le “début” ou presque…
Voilà, le ressenti d’un noob qui ne demande qu’à apprendre :)
@Furankun : merci.
@bussiere : oui et j’ai de la famille en RH, je peux te dire qu’ils y tiennent à leur sacro-saint filtre.
@ikario: :-D
@archive : rien ne t’empêche de profiter de cette vie pendant quelques années, monter ton réseau, faire mûrir ton idée, puis te lancer après. Mais faut entretenir la volonté.
@lucas : et on a toujours besoin du Cobol. Disons juste que ce n’est pas représentatif du dev de tous les jours. Le langage le plus utilisé aujourd’hui est Java, c’est donc d’assez haut niveau. Mais surtout, les tâches pour lesquelles on recrute, sauf dans le monde de l’embarqué, sont généralement très loin de la machine.
@Mister G : si tu es capable de voir ça, tu n’auras aucun problème pour la suite. Laisse toi le temps d’apprendre, et n’essaye pas de tour faire. Ce n’est plus possible.
Je me permets de rebondir sur “les jeunes qui font du code dégueulasse et s’en satisfont”. J’ai la joie de travailler dans un milieu où concrètement, pas grand monde ne sait coder. Moi-même, je ne considère pas savoir coder (j’ai découvert le code design il y a deux mois, et je suis loin d’avoir tout compris dessus). Je me récupère des usines à gaz développées par au mieux trois générations de dévs, la plupart n’ayant pas le temps ou les compétences de faire les choses correctement. Et il faut que que je déeloppe des trucs là-dedans et que ça marche, avec des versions pour la plupart obsolètes depuis plusieurs années, des codes pas optimisés mais “qu’il ne faut surtout pas modifier parce qu’on a publié dessus” (oui, je parle de la recherche).
Et bien sûr, il faut que ça marche vite.
Donc parfois, malheureusement, on n’a pas le temps de faire propre, et encore moins le temps d’apprendre à faire propre.
Ca me fait penser au Che Guevara
. Nan j’ai pas tout lu du Ché, je connais juste par coeur “Rabbi Jacob” :D
bon désolé ; c’est pause café alors ca part en quenouille :)
Je pense que je n’aurai pas mieux dit, aujourd’hui les dév sont payés à vomir du code vite pour que ça marche quitte à faire fi des bonnes pratiques (après je pense que ça dépend de l’industrie/du client aussi). Et que dire des clients qui te balancent des nouvelles specs à 1 jour d’un rendu et qui pensent que les devs sont que des geeks magiciens qui pondent des nouvelles fonctionnalités en 1h.
Malheureusement très intéressant et plutôt véridique. Je ne côtoie pas le monde du dev, je suis plutôt du côté des formations (méca/matériaux donc rien à voir), mais ce que je vois fait peur : même la suite office n’est pas maîtrisée (et je ne parle même pas de libreoffice, alors vim…). Et RTFM, ils connaissent pas…
Les cours d’info ne sont pas adaptés et ont des années de retard. Il faudrai commencer dés le collège, voire la primaire… Et surtout arrêter Matlab!!!!!
Je ne sais pas coder, je connais quasi rien à rien, juste suffisement pour pouvoir vous lire et apprendre beaucoup! Merci pour ça.
Vous donnez envie de coder pour la beauté de la chose, c’est beau ça ! Bavo!
@furakun : je suis aussi dans la recherche, et… bref…
mais j’ai ça sur ma porte http://xkcd.com/627/ et depuis j’ai un peu plus de temps…
Pour ma part, je suis dev front depuis 2 ans mais je touche au dev en général depuis 6 ans.
On a voulu engager des devs front et on avait l’impression qu’ils ne connaissaient rien.
Le javascript, c’est pas la peine. jQuery (parce qu’ils croient que c’est un langage à part entière), ils sont experts parce qu’ils ajoutent une class à un élément du DOM.
Ils ne savent pas ce qu’est une requête HTTP alors setupper un serveur de prod, c’est pas la peine ^_^”
Pour les jeunes diplômés, je veux bien croire qu’ils ne connaissent pas certaines choses et encore qu’avec un peu d’intérêt pour la chose… Mais les personnes avec de l'”experience”, je trouve ça tellement dommage. =_=
Bref, très bon article comme d’habitude et des graphiques très parlant =D