Chaque année, StackOverflow mène une enquête auprès des développeurs du monde entier qui se connectent à leur site. Sachant que la plupart des développeurs utilisent StackOverflow au moins une ou deux fois dans l'année (pour ne pas dire plusieurs fois par semaine...) on peut imaginer que les statistiques qui en ressortent sont assez représentatives.
Leur rapport est ensuite rendu public et je dois dire que l'édition 2017 est vraiment intéressante!

Voici un extrait des infos essentielles.

Type et plateforme

La première statistique est essentielle : quel type de développements réalisez-vous ?


On voit clairement que le développement du web est toujours au centre des préoccupations, mais ce qui m'intéresse beaucoup ici c'est que le placement des développeurs mobiles. Il sont maintenant presque aussi nombreux que les développeurs d'app desktop et sont placés en 3ème position du classement général avec 23% des répondants.

Il faut garder en tête que pour cette question, on peut répondre plusieurs réponses, car on se limite rarement à une seule catégorie de développement.

C'est d'ailleurs l'une des explications pour les résultats aussi élevés des développeurs web : en plus des développeurs de sites web, en 2017, la plupart des développements desktop ou mobiles utilisent un web service ou un back office qui assiste les apps natives. Nous sélectionnons donc souvent les 2 cases, et Web developer en fait partie. Je sais que c'est mon cas aussi :)

Si on se concentre sur les plateformes mobiles voici ce qu'on obtient :

Ces résultats suivent en partie la logique du marché des ventes des appareils à l'exception d'Android et iOS : les ventes Android (tout appareils confondus) sont beaucoup plus élevées que celles de iOS, pourtant l'écart est proche au niveau des développeurs.
Quand on sait qu'il est (quasiment) obligatoire de posséder un Mac pour développer sous iOS, on peut s'étonner qu'il y ait une proportion aussi élevée de développeurs iOS.

Formation

Pas de secret, ni de magie, pour programmer il faut apprendre :) Par contre il existe plusieurs façons d'apprendre et lorsqu'on choisit la programmation, on sait qu'on apprendra toute notre vie.
Il y a donc la formation initiale avec plusieurs niveaux :

Et plusieurs types d'études :
Mais il y a aussi la formation continue car ce que l'on apprend à l'école ne suffit pas éternellement. D'ailleurs, je n'ai jamais eu l'occasion de faire de développement mobile pendant mes études qui se sont terminées en 2009 et c'est aujourd'hui ma spécialité.
Voici les réponses sur les autres types de formations :

Les autodidactes sont majoritaires et, en seconde place, on peut voir les cours en ligne avec 45% au lieu des 25% de 2016. Depuis que je fais moi-même des cours en ligne, c'est devenu un reflexe quand je doit travailler sur une nouvelle plateforme : est-ce qu'il existe un cours en ligne qui couvre cette plateforme ?

Par exemple pour Docker, je me suis acheté un cours et en 2 jours j'avais assimilé les bases que j'ai pu approfondir en me référant à la doc officielle. Je gagne un temps énorme par rapport à mes anciennes méthodes d'autoformation, basées essentiellement sur la doc officielle et quelques guides en ligne.

D'ailleurs, lorsqu'il s'agit de recommander à d'autres développeurs le meilleur moyen de se former la majorité oriente vers les cours en ligne :

En termes de ressources supplémentaires d'auto-formation, voici les résultats :
Sans surprise, la doc officielle et Stackoverflow sont les deux principales ressources utilisées. Je recommande toujours à mes étudiants de commencer par la doc officielle, et ensuite de rechercher sur Google/Stackoverflow pour des solutions s'ils n'ont pas trouvé avant. Si on fait bien les choses, on trouve la solution dans la doc officielle dans 80% des cas et on comprend le concept. Si on doit s'en remettre à Stackoverflow, on prend le risque de trouver une solution inadaptée et qu'on ne comprend pas forcément.

Langages

Quels sont les langages les plus aimés par les développeurs ?
Quels sont les langages les plus détestés ?
Autre analyse intéressante : quels sont les regroupements de technos/langages ?

Questions existentielles

Le rapport est vraiment très complet mais il existe des questions qui sont vraiment essentielles pour tout développeur comme la prononciation du format d'image GIF :
- Je n'ai personnellement aucune idée de la façon dont les 2% qui ont choisi "Some other way" le prononcent :)

Ou encore l'ambiance sonore de travail :

Mais, la question la plus importante, reste : "Tabulations ou Espaces ?"
42,9% des développeurs utilisent des tabulation. 37,8% des développeurs pensent que ce groupe a tort. Et 19,3% des développeurs doivent mourrir dans d'atroces souffrances.

N'hésitez pas à aller consulter l'intégralité du rapport car c'est une mine d'or et je n'ai sorti que quelques pépites : https://stackoverflow.com/insights/survey/2017/

Happy coding!
Maxime