"Où sont ces jeunes punks qui nous essuieront de la surface de la terre?"

Après la prochaine série de discussions dans l'une des communautés, j'ai posé la question existentielle, posée dans l'en-tête du libellé de Grebenshchikov, de savoir si la connaissance du Web SQL est nécessaire pour un développeur de backend Web débutant ou si ORM fera tout. J'ai décidé de chercher la réponse un peu plus loin que l'ORM et le SQL, et en principe d'essayer de systématiser qui sont les personnes qui vont maintenant pour des entretiens à des postes de développement junior et intermédiaire, quelle est leur histoire et dans quel monde ils vivent. En général, j'avais une opinion, mais elle était formée par une expérience d'embauche personnelle et était clairement adaptée au marché local. En général, c'est devenu curieux. Voici ce que j'ai réussi à trouver.

Population mondiale de développeurs


Afin d'aborder le problème d'une manière ou d'une autre, j'ai décidé de commencer par rechercher des données sur le nombre de développeurs dans le monde en principe et sur l'évolution de cette population au fil du temps.
Les estimations dans diverses sources se réfèrent à des chiffres dans une fourchette de 12 à 30 millions de personnes. J'ai décidé de m'arrêter sur les données de SlashData , car leur méthodologie me semblait assez équilibrée et adaptée à mes besoins. Dans l'évaluation, ils ont pris en compte le nombre de comptes et de référentiels sur Github, le nombre de comptes sur StackOverflow, les comptes npm et les données de sources officielles sur l'emploi aux États-Unis et en Europe. Ils ont également ajusté les chiffres en utilisant leurs propres 16 études, qui couvraient environ 20 000 personnes pour chaque enquête.

Selon SlashData, il s'est avéré qu'au quatrième trimestre de 2018, il y avait environ 18,9 millions de développeurs dans le monde, dont 12,9 millions de professionnels, c'est-à-dire qu'ils gagnaient leur vie en programmant. Ceux qui ne sont pas actuellement des développeurs professionnels sont des personnes pour qui la programmation est un passe-temps, plus ceux qui étudient actuellement la profession (étudiants divers et autodidactes). Eh bien, c'est un indice de la taille du groupe qui m'intéresse - 6 millions de personnes. Honnêtement, c'est plus que ce à quoi je m'attendais.

La deuxième surprise pour moi a été le taux de croissance du nombre de programmeurs: du deuxième trimestre 2017 au quatrième trimestre 2018, il est passé de 14,7 aux 18,9 millions mentionnés, soit une augmentation de 21% en 2018! Si on me demandait d'estimer le taux de croissance du nombre de programmeurs, alors je dirais qu'il est d'environ 5% par an avec une légère augmentation annuelle du taux. Et ici, il s'avère que jusqu'à 20%.

En outre, SlashData estime que d'ici 2030, la population atteindra 45 millions d'habitants. Il est facile de calculer que cela implique une croissance d'un peu plus de 8% par an, et pas du tout de 20%, mais ils se réfèrent à une correction tenant compte de la pénétration d'Internet (aujourd'hui environ 57% dans le monde selon Statista ) et de plusieurs autres facteurs, par exemple, le nombre de développeurs par par habitant. Géographiquement, le nombre de développeurs en Inde et en Chine augmente le plus, l'Inde devrait dépasser les États-Unis en nombre de développeurs d'ici 2023 (il s'agit déjà de données C # Corner ).

En général, il y aura de nombreux programmeurs, quoi qu'on en dise, car la demande augmente. En parlant de demande.

Quelle est la demande?


Pour estimer la demande, j'ai utilisé les données HackerRank pour 2018 et 2019 .

Dans les langages de programmation, la plus grande demande pour JavaScript, Python et Java se situe dans presque toutes les industries, à l'exception du matériel informatique. Dans ce dernier, la plus grande demande en C / C ++, ce qui est compréhensible, dans les projets matériels, il existe encore des exigences pour la consommation des ressources et la productivité du logiciel correspondant.



Selon les cadres, AngularJS, Node.js et React sont les plus demandés, avec le plus grand écart d'offre et de demande selon eux, ce qui semble s'expliquer par la vitesse à laquelle l'écosystème JavaScript évolue, car, par exemple, avec ExpressJS, l'offre dépasse déjà la demande.



Par compétence, les employeurs attendent des candidats avant tout des compétences en résolution de problèmes. Environ 95% des employeurs mentionnent ces compétences comme importantes. Compétence en langage de programmation en deuxième place avec 56%. Soit dit en passant, il n'y a pas de lignes avec une connaissance fondamentale des algorithmes, des structures de données et d'autres sciences informatiques, soit pas dans le questionnaire, ou une connaissance de masse académique n'est plus requise.

La conception de bases de données nécessite 23,2% des entreprises comptant jusqu'à 100 personnes et 18,8% des entreprises de plus de 1000 personnes. Oui, ici, c'est ORM et SQL! L'explication logique, à mon humble avis, est que dans les grandes entreprises, il existe un rôle DBA dédié, qui est responsable de cet aspect, et qu'il est donc possible d'adoucir les exigences pour les développeurs et d'embaucher plus rapidement. Mais avec System Design, au contraire: 37,0% dans les petits, 44,1% dans les grands. Il semblerait que les grands architectes devraient être distingués, mais peut-être qu'ils ne sont tout simplement pas en mesure de couvrir le nombre de systèmes générés. Ou en même temps qu'ils investissent dans la conception de systèmes les algorithmes et les structures de données très fondamentaux, alors cela devient un peu plus clair.

Les petites entreprises ont besoin de plus de compétence de cadre et moins que la conception de système susmentionnée, dont nous pouvons tirer la conclusion du capitaine qu'il est important pour les startups de lancer un produit qui fonctionne le plus tôt possible, et demain sera demain.



Qu'est-ce que les élèves apprennent?


Ici, je me suis appuyé sur les données d'une autre étude HackerRank .
Il est important de considérer que malgré le fait que la programmation sous une forme ou une autre soit enseignée dans les universités (je veux dire des spécialités en informatique), plus de la moitié des répondants ont déclaré qu'ils s'engageaient également dans l'auto-éducation.

Les étudiants modernes préfèrent étudier sur YouTube, tandis que les développeurs plus âgés ont tendance à utiliser des didacticiels et des livres. Les deux utilisent activement StackOverflow. J'attribue cela au fait que la vidéo est le canal médiatique habituel pour la génération Z, tandis que les représentants de la génération Y ont encore trouvé l'ère sans blogueurs.

Découvrez ce que les employeurs exigent: JavaScript, Java, Python. Ils indiquent qu'ils connaissent le C / C ++, mais c'est probablement parce que ces langages sont utilisés pour l'enseignement dans les universités. Ils apprennent les cadres JS, mais la demande est nettement supérieure à l'offre, ils sont donc apparemment activement formés déjà après avoir trouvé le premier emploi.



En général, ce qui devrait être enseigné est ce qui est demandé.

Les étudiants du premier emploi s'attendent principalement à une croissance professionnelle, en deuxième position (dans certains pays dans le premier), conciliation travail-vie personnelle, dans le troisième - des tâches intéressantes.

Développeurs dynamiques de population par langages de programmation et types de logiciels




Les applications Web viennent en premier avec environ 16,9 millions de développeurs. Ce sont encore des données SlashData. Viennent ensuite les services backend (13,6 millions), les applications mobiles (13,1 millions) et les ordinateurs de bureau (12,3 millions). Les secteurs AR / VR et IoT gagnent progressivement en popularité, l'IA / ML / Data Science ont considérablement augmenté au cours des deux dernières années.

Javascript se développe le plus rapidement, sa communauté est déjà la plus importante, seulement en 2018, elle a augmenté de 2,5 millions. Ils essaient même d'écrire dessus dans les secteurs IoT et ML.
Python en 2018 a augmenté de 2,2 millions en raison de la popularité croissante de ML, où il est traditionnellement fort, ainsi qu'en raison de la facilité de développement et de la commodité du langage.

Java, C / C ++ et C # croissent à un rythme plus lent que la population générale des développeurs. Ils sont maintenant rarement le langage de programmation avec lequel les gens préfèrent commencer. La demande de développeurs ici est plus ou moins équilibrée avec l'offre. Je pense que Java se développerait encore plus lentement sans Android.

PHP est le deuxième langage de programmation d'applications Web le plus populaire et il connaît également une croissance significative (de 32% en 2018). Sa communauté est estimée à 5,9 millions de développeurs. Malgré l'opinion polaire sur la réputation de PHP, il est assez facile à apprendre et répandu.

Comment les jeunes candidats modernes étudient par rapport aux générations passées


Données HackerRank à nouveau. Ceux qui sont maintenant âgés de 38 à 53 ans indiquent des matchs avec leurs premiers projets.

Soit dit en passant, je confirme que mon premier projet plus ou moins fonctionnel était «tic-tac-toe» jusqu'à cinq d'affilée avec un champ illimité, le second - un jeu à 15 ans. J'ai écrit tout cela sur BC 010-01 , il y avait un Vilnius BASIC , également connu sous le nom de BASIC- 86 et focale. Eh.

Les programmeurs novices modernes (avant l'âge de 21 ans) écrivent des calculatrices et des sites Web comme leurs premiers projets.

Parmi les représentants de la génération X, près de la moitié ont commencé à écrire du code avant l'âge de 16 ans, beaucoup en général de 5 à 10 ans (principalement ceux qui ont maintenant entre 35 et 45 ans). Il est plus ou moins compréhensible pourquoi: il y avait peu de sources d'information, et pour devenir programmeur il fallait vraiment le vouloir, et ceux qui voulaient vraiment commencer la programmation tôt. Ceux qui ne voulaient pas tant, maintenant, ont probablement une profession différente, donc l'image en sociologie est juste cela.



Les jeunes candidats d'aujourd'hui dans seulement 20% des cas commencent la programmation avant l'âge de 16 ans, la plupart d'entre eux se situent entre le 16 et le 20. Mais c'est beaucoup plus facile pour eux d'apprendre, maintenant c'est beaucoup plus accessible.

Conclusions


Je n'ai pas trouvé de réponse concrète renforcée à la question de savoir si un développeur débutant de backend web SQL est nécessaire aujourd'hui, mais il a corrigé son idée de la population moderne de programmeurs.

La prochaine génération de développeurs - des gens ordinaires, qui rappellent quelque peu le problème du logement précédent ne les a que gâtés . Ils satisfont la demande créée par les employeurs. Le seuil d'entrée dans la profession est devenu plus bas en raison d'outils et de cadres plus pratiques qui vous permettent d'obtenir rapidement des résultats. De plus en plus de gens deviennent programmeurs, la génération numérique (génération Z) vit dans la technologie depuis sa naissance, pour eux c'est un métier régulier, pas pire que les autres.

Ceux qui savent que le cache Lensi L1 dure environ 4 cycles et qu'il vaut mieux ne pas tirer inutilement sur les lignes du cache deviennent plus petits en pourcentage de la taille totale de la population. Cependant, ils ne devraient pas s'inquiéter de l'emploi, à la fin, quelqu'un devrait écrire des choses de bas niveau là où cela est encore nécessaire. Tout comme vous ne devriez pas vous inquiéter, ceux qui ont des connaissances fondamentales approfondies en conception de systèmes et les ont acquis dans des batailles sanglantes et pratiques, et pas seulement suivre le culte du cargo. Parce que ceux qui pourront "simplement écrire du code" et "simplement" utiliser les cadres en équipe deviendront plus nombreux et afin de "ne pas être atrocement douloureux pendant des années sans but" (c), ils devront être équilibrés par de telles personnes.

Les compétences générales de la catégorie des souhaitables migrent progressivement vers obligatoires (pour le confirmer, je n'ai pas de données objectives, juste une observation pratique). Le nombre de programmeurs augmente, et tous doivent être dirigés pour atteindre un résultat, bien que par un contrôle direct, quoique indirect, mais pour cela, il suffit d'avoir des compétences générales.

«Enter IT» me semble être une histoire régionale locale, caractéristique des lieux où le revenu d'un programmeur est significativement différent du revenu d'un spécialiste comparable en qualification à «not IT». À Minsk, où j'habite, il s'agit généralement d'un mouvement de masse, chaque jour je vois des publicités pour les prochains cours sur la façon d'accéder à l'informatique convoitée, et les entreprises de nettoyage ciblent les programmeurs avec le message «Comprenez-vous le code de cette image? Vous pouvez donc vous permettre de ne pas nettoyer l'appartement, nous ferons tout pour vous. » La même chose se produit apparemment dans une sorte d'Inde. Pour le prouver, je n'en ai pas non plus.

En général, la population de programmeurs n'est pas à mon avis menacée. Cela ne vaut pas la peine de dire que les vrais programmeurs ne sont pas satisfaits du jour et de la nuit, et que les candidats ne "savent rien" tout le temps. Ils sont tout aussi intelligents et capables, peut-être même plus intelligents et plus capables que les «vrais programmeurs», ils acquièrent simplement les connaissances qu'un marché en plein essor exige d'eux et mettent de côté pour plus tard ce dont ils n'ont pas encore besoin et n'apporteront aucun avantage pour le moment. Ils apprendront si nécessaire, car ils veulent toujours apprendre. Probablement, tout le monde n'en sera pas capable, mais tout le monde n'en aura pas besoin, le marché permettra dans un avenir prévisible d'accepter facilement des personnes capables d'assembler rapidement un autre concept d'application sur un cadre.

Source: https://habr.com/ru/post/fr469843/


All Articles