Quand apprendre un nouveau langage ou outil de développement

Ah cool, c’est possible que j’y jette un oeil alors.
Petite question que je me pose : quand est-ce qu’il est opportun pour vous de passer sur un nouveau langage plutôt que de se baser sur les connaissances que l’on a déjà ?
D’un côté, on se dit que ça va nous prendre du temps de rapprendre quelque chose vs. l’efficacité de ce que tu maîtrises déjà.
Est-ce que vous gérez ça par rapport à la taille du projet, aux fonctionnalités qui sont déjà présentes dans le nouveau langage, etc. ?
Ça m’intéresse de savoir :slight_smile:

1 J'aime

Je me suis permis de créer une nouveau sujet pour ta dernière question @schtipoun car elle est intéressante et elle va probablement générer pas mal de discussions :slight_smile:

1 J'aime

Salut @schtipoun
Effectivement rester sur ses connaissances, développer toujours dans le même langage ferait des nous des « experts » dans notre domaine. Avoir 20 ans d’expériences en php assure une maitrise du sujet.
Ben en faite je dirais que oui et non . Pour l’exemple, mon père qui développe en php depuis le début du php maitrise effectivement très bien le sujet et te sortira des dev hyper fonctionnel qui font très très bien le café. Mais durant toutes ces années il n’a fait que très peu de veille technologique sur l’évolution de php et des fois je le vois faire des trucs archaïques alors qu’il y a des fonctions php prévu pour ça.
Donc il n’y a pas de moment opportun et il est même primordiale de continuer d’apprendre son langage de base. Et là je ne parle que de faire de la veille sur un langage qu’on connait, mais je pense qu’on peut avoir un peu la même approche avec le fait de découvrir un nouveau langage.

Perso je suis toujours très curieux de découvrir des langages ou des outils que je ne connais pas. Mais sans perdre mon temps non plus. Et puis un moment tu vas te retrouver à devoir faire un dev et tu te diras : Tiens j’ai vu tel ou tel langage et il me permettra d’être plus efficient et en plus je vais gagner en compétences, c’est donc le bon moment pour apprendre.
Le piège dans lequel il ne faut pas tomber c’est de vouloir apprendre un maximum de langage possible : c’est plutôt contre productif, au final tu connais tout mais tu ne maitrise rien.
2 langages maitrisés pour 5 langages utilisés c’est pas mal. Perso les 2 langages où je me balade c’est le SQL et le php mais en plus de ces 2 tous les jours j’utilise HTML, CSS, JavaScript, C#.
J’ai un peu la même philosophie en ce qui concerne les frameworks mais je suis encore plus strict.
Je fais et resterai sur du Symphony encore pour très longtemps par exemple.

Un autre exemple, j’ai débuté le dev en php aux alentours de 2005, il y alors 3 ans j’aurais pu choisir ma reconversion en passant par du php (facile) mais non. L’univers mobile était pour moi essentiel car aujourd’hui tout le monde à un smartphone. En plus je suis tombé par curiosité sur un gars avec un accent qui faisait des vidéos vraiment pédagogiques et là je me suis fait happer par le langage Swift et la POO.
J’ai donc appris un nouveau langage et ce que j’ai appris je m’en ressert aujourd’hui même si je n’ai pas fait de Swift depuis un moment. Mon style php est orienté objet maintenant.
Après le Swift, j’ai suivi les cours de Kotlin car je voulais avoir la capacité de développer à la fois pour iOS et Android. Malheureusement j’ai trouvé l’univers Android moins sexy et j’ai commencé à avoir des dev costaud qui mon pris beaucoup de temps du coup j’ai mis ça de côté.
Mais depuis quelques mois que je suis de retour sur le forum j’ai vu que Swift avait évolué et qu’il était temps de revenir dans le game.
Mais ayant un peu plus d’expérience métier et étant sur le terrain en cdi je me suis dis qu’il fallait que je sois capable de proposer un développement d’outils plutôt orienté Android car très présent en entreprise mais qu’il fallait aussi que ça puisse tourné sur du web. Et vu que mon boss est fan d’Apple (comme moi d’ailleurs) il fallait également que ça soit compatible iOS… C’est là où, j’ai commencé à regardé les différentes solutions cross-plateform, d’où mon sujet de discussion.
Ah oui et je n’ai pas une équipe de 15 devs avec moi pour faire du natif…
Finalement Flutter m’a le plus séduit.
Et là… MAGIE ! à croire que je suis en communication réelle extrasensorielle avec @mbritto j’apprend que le Professeur sort un cours sur Flutter+Dart ! Quelle joie.

Comme dirais Droopy : You know what ? I’m happy…

Et si tu es curieux il y a une super étude de Malte qui date de l’année dernière sur les différentes technos, un peu long à lire mais très intéressant.
Malt Tech Trends 2019
j’ai mis une ancre dans le lien ci-dessus sur les tendances des langages.

Aller sur ce je vais poursuivre la vidéo que je regardais…

3 J'aime

@schtipoun d 'ailleurs en relisant l’étude de Malte citée dans mon précédent commentaire je voulais te partager un paragraphe qui colle à ce sujet de discution :

L’EXPERTISE ET LA POLYVALENCE

Comprendre l’ensemble de la stack sera toujours un avantage, tant pour trouver des missions que pour la qualité de votre fonctionnement avec les équipes. Être Full-Stack est de moins en moins possible, l’expertise est nécessaire à mesure que les possibilités techniques s’étoffent. Le profil en T est l’idéal : des compétences générales larges associées à une compétence ciblée experte.

Effectivement c’est une question complexe et je pense que les pratiques de chacun sont très variées :

  • Certains vont rester avec la même techno et se spécialiser pour devenir des experts
  • Certains vont se diversifier et toucher à plusieurs technos autour du même thème (full stack)
  • Certains vont changer de technos comme de chemise et apprendre de nouveaux outils tous les ans

Chacune de ces solutions a ses avantages et inconvénients.
Si vous devenez un expert dans une niche, tout dépend si vous avez bien choisit votre niche et à quel point vous êtes bons dans ce que vous faites. Ca peut être extrêmement rémunérateur car des entreprises trouvent difficilement des personnes pour maintenir d’anciennes solutions (Le meilleur exemple est le COBOL). C’est aussi une voie moins fun car le travail sera surtout de la maintenance et il y aura peu de nouveautés.

A l’opposé, si tu adoptes directement chaque nouvelle techno en vogue, tu vas souvent passer plus de temps à apprendre qu’à réellement produire (surtout que les projets jeunes ont tendance à être instables et à demander de grosses migrations d’une année sur l’autre).

Personnellement je me situe plutôt dans la tendance du milieu : quand un nouvel outil (langage, framework, etc.) sort et commence à gagner en popularité je le surveille pendant 1 ou 2 ans pour voir si ça vaut le coup de m’y investir. C’est ce que j’ai fait par exemple pour Swift pour le serveur ou encore Flutter. Il y a pleins d’autres projets que j’ai surveillé sans vous en parler mais que j’ai finalement choisi de laisser de côté (React, Angular, Xamarin, etc.)

Après il y a les exceptions que je suis persuadé qu’un nouvel outil représente l’avenir, j’accélère son adoption comme j’ai pu le faire pour le langage Swift (je bossais en ObjC a l’époque de sa sortie). Mais ça reste très rare pour moi et avec le recul j’aurais gagné beaucoup de temps à attendre 1 ou 2 ans avant de passer à Swift.

1 J'aime

Très intéressantes vos réponses :slight_smile:

Il y a deux choses sur lesquelles je vais essayer de travailler :
• l’adoption de SwiftUI car je suis encore resté à UIKit pour le moment donc il va quand même être temps que je jette un coup d’oeil ^^
• Flutter car je pense que dans une approche démarrage de projet pour tester avant de passer sur des développements plus longs, c’est certainement super pertinent

Je suis dans un environnement de startups donc j’ai souvent l’occasion de discuter avec des créateurs non tech qui cherchent ce genre de compétences. En ce moment, c’est souvent Ionic 5 qui est proposé par les freelances donc ça m’intéresserait de comparer.
J’ai mes projets aussi, peut-être que j’en testerai un en Flutter pour le fun et voir jusqu’où ça peut amener afin de pouvoir bien conseiller son utilisation derrière.

Mais, pour l’instant, les inscriptions pour le cours de @mbritto sont fermées donc j’attends patiemment :eyes:

1 J'aime

J’ai vraiment du mal avec les technos du web. Pourtant j’en ai fait pas mal dans ma carrière mais je n’ai jamais vraiment accroché au trio JS/HTML/CSS.

Oui, je vais bientôt ouvrir les inscriptions pour les personnes hors abonnement :wink:

Je patiente alors :wink: