![Les podcasts de Programisto Les podcasts de Programisto](https://programisto.fr/wp-content/uploads/2023/11/Podcast-Programisto-Cover-Carre-280x280.jpg)
D’abord classée 81ème puis 79ème au Spring Challenge CodinGame suite à une sombre histoire de copier / coller chez nos adversaires 😬, l’équipe Programisto s’est battue farouchement face à de très grands groupes et techniciens.
Sur cet épisode, @Florian revient sur ce format de challenge qui aura aussi permis de révéler les préférences de langages de programmation au sein de l’équipe.
Quel est votre langage de programmation préféré ? Et celui sur lequel vous êtes le plus expérimenté ? Mais aussi, comment apprendre plusieurs langages de programmation et quel est le prochain pour lequel vous souhaiteriez monter en compétences ?
Les questions sont nombreuses mais elles sont toutes reliées à un autre grand mythe de la tech : faut-il apprendre plusieurs langages de programmation ?
Classement final du CodinGame Spring Challenge ici
De l’école à l’entreprise tech : une boîte à outils diversifiée pour apprendre plusieurs langages de programmation
Au cours des études en développement informatique, des fois spécialisées comme La Horde, plusieurs phases vous invitent à découvrir progressivement l’univers de la tech. Généralement, un cursus digne de ce nom vous aura fait passer ces quelques étapes clés pour devenir développeur, dans l’ordre chronologique :
- Appréhender l’aspect procédural de la programmation
- Développement orienté objet avec du back (PHP, Java, C++, C#) et du front (HTML/CSS, JavaScript & JQuery puis de l’Angular et du React et pourquoi pas du dev mobile en Android ou Flutter) en passant bien sûr par la gestion de bases de données relationnelles, noSQL…
- Et surtout, on vous appris à faire de l’algorithmique et de la conception propre aux processus techs
Quand on voit passer des profils junior on sent que vous êtes aptes à travailler sur plein de technos différentes. C’est sûr que quand vous étiez étudiants vous passiez d’un projet à un autre et d’une techno à une autre facilement.
C’est avec ce profil multi-tâches et surtout prêt à se spécialiser que la plupart des devs sortiront de l’école pour trouver leur premier poste.
Pourquoi subitement se spécialiser dans une ou deux technos après les études ?
Tout comme de nombreuses raisons poussent les écoles à vous faire découvrir un maximum de paradigmes, d’autres arguments jouent en la faveur de la spécialisation. À la sortie de l’école, il s’agit souvent de faire un choix.
Pourquoi ? Plusieurs éléments de réponse.
Les entreprises tech recrutent des postes spécialisés sur leurs technologies
D’abord, les entreprises imposent leur environnement technique dans leurs recherches de profils. Vous n’êtes pas étrangers aux fiches de poste listant l’ensemble de l’univers technologique de l’entreprise – ce qu’on appelle sa stack.
Un développeur devra donc orienter ses recherches bien sûr mais aussi adapter ses compétences pour postuler à ces offres – c’est nécessaire.
Côté entreprise un gain de temps et de formation considérable est assuré simplement par le fait que tout nouvel entrant dans l’équipe est compétent sur l’environnement technique.
Cette « étiquette » qui vous est imposée l’est parfois pour toute une carrière, mais c’est de moins en moins le cas (on vous explique pourquoi plus bas).
Un marché délimité par les stacks techniques des entreprises
La composition d’un univers tech dépend de nombreux facteurs, dont la taille de l’entreprise, de l’équipe qui l’anime, des besoins en terme de sécurité, etc. Ce choix déterminant oriente l’ensemble des développements pour une période donnée. Ces critères de choix révèlent donc une possibilité de segmenter le marché par stack, ou environnements techniques.
L’exemple du secteur public
Java est le langage de programmation le plus répandu dans le secteur public. En effet, l’état est friand d’Open Source pour des raisons évidentes. Également, ce langage permet de créer des expériences adaptées à ses services et sur des petites machines.
Le C# et l’environnement .Net dans le privé
Historiquement, le fait d’avoir besoin de serveurs 2iS pour faire fonctionner l’environnement .Net et programmer en C# – et donc de licences Microsoft assez honéreuses – a eu pour effet d’éloigner le public de cette stack au profit du privé.
Et le reste du web ?
PHP représente 80% du web public. Malgré tout, c’est un langage traditionnellement interprété et non compilé et donc que tardivement orienté objet. Il est souvent choisit pour débuter et aller vite : sa souplesse est privilégiée face aux éventuelles failles de sécurité.
C’est d’ailleurs le secteur early stage incluant les fameuses startups qui va principalement le déployer.
Apprendre plusieurs langages de programmation : entre tactique court terme et stratégie pour l’avenir
Vous l’aurez compris, être spécialisé sur une techno largement répandue au sein de l’entreprise et pour les missions que vous visez vous permettra d’avoir un avantage au moment de postuler.
Cependant, il s’agit de ne pas oublier que la technologie est en constante évolution et il ne faudrait pas rater le prochain train pour un langage révolutionnaire. De plus, qui sait, si vous n’appreniez rien de neuf vous pourriez finir par vous ennuyer, non ?
Changer de techno : la fameuse montée en compétences au sein de l’entreprise
La tech a bien changée depuis que @Florian a commencé a codé. Si les applications « monolithes » des années 2000 ont laissées une large place aux containers, c’est la perméabilité entre les technologies (front et back) qui a remis en question le plus de dogmes.
Aujourd’hui, c’est le cas chez Programisto, les entreprises techs sont conscientes qu’il est possible de passer qualitativement d’une techno à une autre tout en gardant toutes ses compétences. Les programmes dédiés implantés au sein des plans RH de l’entreprise sont des outils efficaces pour permettre un accès facilité à des cours pensés pour apprendre plusieurs langages de programmation.
Malheureusement, beaucoup d’entreprises continuent de surestimer ces montées en compétences craignant de perdre en productivité ou plus dangereusement – en compétences.
La veille technologique pour apprendre plusieurs langages de programmation et définir ses objectifs de carrière
Les libertés que vous pourrez trouver au sein de votre entreprise concernant le temps consacré à la veille est bien souvent, encore une fois, orienté sur la stack de l’entreprise. Il ne s’agit pas de changer complètement de paradigme mais plutôt de version de langage implémenté ou de certifications au sein de cet univers.
Auquel cas il est crucial de pratiquer une veille en parallèle de son activité.
Même si beaucoup de devs le font naturellement, il est essentiel de maintenir une activité de veille permanente concernant les nouveautés du marché. Un nouveau langage / framework peut prendre le dessus sur votre zone de confort à tout moment – et vous devrez vous y adapter.
Un moyen efficace de réaliser une veille active reste de pratiquer ces nouveautés sur vos side projects. Gardez en tête que chaque nouvel essai est un pari sur l’avenir et vous pourriez gagner énormément de temps lorsque ce langage se démocratisera.
Faites de la veille intelligente, optimisée pour vos objectifs de carrière (renseignez-vous en amont!) et vous vous assurerez la place que vous convoiterez.
Back ou front ? Ou Full-Stack ?
Le web aussi a bien changé depuis que @Florian a commencé a codé ! Et un autre de ces changements qui a tout challengé est la diversification des frameworks ; côté back certes mais surtout côté front.
Il est possible de se spécialiser back, front ou les deux. Quand un dev pratique les deux, que ce soit sur plusieurs langages ou non, on lui attèle la légendaire étiquette Full-Stack.
Il est de plus en plus difficile de définir cette étiquette (et donc de l’assigner) étant donné la complexité croissante des langages utilisés en front comme en back.
Quand il s’agit du front, c’est l’évolution la plus parlante et impactante des dernières années. Les frameworks dédiés les plus modernes fonctionnant en approche composants deviennent infiniment complexes.
La distinction entre back et front n’a cessée d’augmenter au fil des nouveautés du marché. Apprendre plusieurs langages de programmation devient de plus en plus difficile.
Pour conclure, comment apprendre plusieurs langages de programmation ?
- Choisissez votre titre et l’étiquette que vous allez atteler à votre CV en fonction des entreprises et missions que vous ciblez en plus de vos affects naturels avec les technologies
- Faites de la veille technologique pour ne rien rater et vous former sur des technos qui vont monter à l’avenir