Faut-il apprendre plusieurs langages de programmation ?

Faut-il apprendre plusieurs langages de programmation ?
Les podcasts de Programisto
Les podcasts de Programisto
Faut-il apprendre plusieurs langages de programmation ?
icon loader
/

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 :

  1. ApprĂ©hender l’aspect procĂ©dural de la programmation
  2. 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
  3. 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 ?

  1. 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
  2. Faites de la veille technologique pour ne rien rater et vous former sur des technos qui vont monter Ă  l’avenir