Quel premier langage de programmation choisir ?

Quand on débute en programmation on se pose énormément de questions. L’une des plus courantes est : quel langage dois-je choisir ? Lequel me permettra de faire le plus de choses ? Sera le plus facile à apprendre ?
Je pense que l’on a tendance à surestimer l’importance du premier langage de programmation. Je vous explique ici pourquoi, et surtout, je vous propose une autre manière de choisir qui est, à mon sens, plus utile 😉 !
Comme tout le monde, j’ai débuté un jour en apprenant un premier langage. Voyons lequel, et lesquels ont suivi, et ce que cela m’a appris, ce que j’en ai fait.

Mes premiers langages

J’ai débuté avec le turbo pascal, qui est un très bon langage pour apprendre. Je l’ai découvert à la Fac, pendant mon DEUG A, et j’ai appris l’algorithmique en même temps.
Ensuite, pendant ma première année en école d’ingénieur j’ai appris à programmer en C. Je trouve qu’une année sur le C est plutôt une bonne chose. Surtout que cela m’a servi à renforcer mes connaissances en algorithmique.
En fin d’année j’ai découvert le Perl et le développement web pendant mon stage. Cela a été chaud, très chaud ! Surtout que je travaillais sur une station Next donc je devais aussi me former au système en même temps !
La deuxième année nous avons découvert le C++ et ensuite nous sommes passés au Java, au Scheme et au Prolog.
J’ai fait mes stages de 2e et 3e année en Java, donc j’avais une meilleure connaissance de ce langage.
J’ai donc débuté ma carrière professionnelle en Java me direz-vous ?
Eh non, c’était sans compter le hasard ! X)

Un peu de hasard…

En effet, Gemplus, où j’étais en stage, me proposait de partir à Singapour en VIE. J’y aurais probablement continué le Java.
Le hasard a voulu que l’armée tarde à signer un papier, ce qui retardait mon VIE de 2 mois, sans emploi ni rémunération, et un petit risque de partir au service militaire.
En parallèle une startup, Beemind, me proposait un job très intéressant, en C++.
Voilà comment j’ai fait du C++ pendant 6 mois. Je m’y suis remis et finalement j’ai réussi à avancer dans les projets et délivrer des choses.
L’aventure Beemind s’est arrêtée violemment en avril 2001 avec l’explosion de la bulle internet.
J’ai alors participé à la création d’une entreprise où j’ai programmé des sites web en PHP et JavaScript, que j’ai donc appris sur le tas !
En effet, mes cofondateurs utilisaient ces langages, notamment via des CMS comme SPIP. C’était donc naturel d’aller dessus.
Ensuite, lors d’un changement de société après 4 ans d’expérience, j’ai retrouvé le langage Java.
J’ai repris le Java après 4 ans sans en avoir fait, vous imaginez bien que j’avais quasiment tout oublié !
J’en profite pour remercier Lilian qui m’a rapidement remis sur les rails 😉 !

Un premier langage pour être recruté ?

Déjà, comme vous venez de le découvrir, mon premier langage de programmation n’a pas du tout été celui que j’ai utilisé lors de mon premier emploi. Donc si vous pensez que ce choix est extrêmement important, vital, pour votre premier emploi, je ne suis pas d’accord : mon expérience personnelle démontre que le contraire est possible.
Jusqu’à présent, les 3 langages que j’ai le plus utilisés dans le monde professionnel sont, par ordre d’importance, le Java, le JavaScript et le PHP.
Ma formation initiale n’inclut que le Java, et j’ai appris beaucoup d’autres langages qui, au final, ne semblent pas m’avoir été utiles (Turbo Pascal, C, C++, Scheme, Prolog). En fait, c’est très utile pour apprendre à voir les choses sous un autre angle. Découvrir plusieurs langages est très formateur ! Je vous le recommande. Peut-être pas autant, mais je pense qu’un minimum serait 3 langages dont 1 fonctionnel (Scheme, Lisp, Scala, …).
OK, dans mon cas le premier langage n’a pas été si important.
Et pour vous, si vous apprenez à coder pour en faire votre métier, ce point a-t-il de l’importance ?
Les recruteurs vont-ils attendre que vous connaissiez les langages qu’ils utilisent ?
Oui, et non.
Oui, car un futur employeur aime les choses simples ! Il préfère prendre quelqu’un qui a déjà toutes les compétences requises !
Mettez-vous à la place d’un employeur, il cherche un développeur, il a 4 candidats aux capacités équivalentes par ailleurs sauf sur les langages, seulement 2 connaissent le langage qu’il utilise.
A votre avis, est-ce que ce point va influer son choix ?
Bien sûr que oui !
À sa place vous feriez pareil, non ?
Nous préférons tous travailler avec des personnes maîtrisant ce qui doit être fait !

Le secteur est en forte pénurie !

À moins d’être une grosse entreprise ou une startup très en vue, les candidatures ne sont pas si nombreuses !
Je parle de candidatures maîtrisant le développement, donc peut-être un autre langage que celui attendu.
Vous seriez surpris de voir à quel point un grand nombre de soi-disant développeurs ne sont pas à l’aise avec l’algorithmique, même après plusieurs années d’expérience. C’est à se demander ce qu’ils ont fait pendant ces années.
Attention, les autres entreprises sont tout de même sélectives : elles ne vont pas travailler avec vous sans avoir senti que vous étiez capable de délivrer, c’est sûr !
Par contre, ces entreprises ne sont pas forcément exigeantes sur le langage maîtrisé lors de l’embauche. En particulier lors des premières embauches.
De plus, il est important de vous prévenir qu’il y a une forte différence entre apprendre à programmer sur des exercices et programmer sur un vrai projet.
En effet, seul le temps et la pratique vous permettent d’acquérir des connaissances durable et de l’expérience, comme pour tout autre domaine. Rappelez vous de l’adage, c’est en forgeant que l’on devient forgeron.
En sortant de votre apprentissage, vous aurez 3 mois à 1 an sur le langage. C’est très très peu (oui, même 1 an en intensif !). Ayez conscience qu’après votre apprentissage, vous débuterez, et vous aurez encore beaucoup de choses à apprendre ! Et ça, le recruteur le sait bien !
Toutefois, si vous restez convaincu que vous devez débuter par un langage directement utile à votre futur poste, je vous recommande de faire des recherches sur les attentes des entreprises.
J’aimerais tout de même attirer votre attention sur quelques points importants :
  1. Même de vieux langages comme COBOL, Fortran, Perl ou Turbo Pascal sont encore recherchés par certaines entreprises (sisi !!!). Certes le marché est plus petit, mais pour des langages plus récents comme Python, Scala, Go, vous aurez beaucoup d’opportunités. De toute façon, choisir c’est renoncer. Malheureusement il n’y a pas de choix parfait.
  2. Faites attention aux sources des benchmarks que vous utilisez pour connaître les attentes des entreprises, et tentez de les croiser. Vous devriez découvrir que l’ordre de popularité des langages change en fonction des benchmarks. En effet, chaque source analyse le marché selon son propre point de vue. Cela inclut des biais qui influencent le résultat.
  3. Lisez cet article jusqu’au bout, je vais vous donner ma manière de choisir si je devais le faire aujourd’hui.

Le choix que je vous recommande

La programmation c’est beaucoup de concepts abstraits et beaucoup de détails. Pour coder, vous devez maîtriser les deux.
Les concepts abstraits sont facilement réutilisables d’un langage à l’autre, d’une techno à l’autre, d’un projet à l’autre.
Les détails sont beaucoup plus difficiles à réutiliser. Il faut être dans la même situation, avec un cas d’usage identique, le même langage et les mêmes librairies.
Vous aurez toujours de nouveaux détails à apprendre ! Même après 18 ans dans le domaine, j’apprends encore très régulièrement.
Tout cela pour dire que c’est long et compliqué.
Je ne souhaite pas vous décourager, juste vous prévenir pour éclairer votre choix.
Sachant cela, ma recommandation est de débuter par le langage qui vous est le plus utile immédiatement.
Vous faites quelque chose aujourd’hui, je ne sais pas si vous êtes en poste, étudiant, sans emploi, toujours est-il que vous faites de nombreuses choses chaque jour.
Posez-vous cette question : qu’est-ce que je peux faire en programmation dès aujourd’hui pour simplifier mon quotidien ? Car en fait, pour apprendre quelque chose de nouveau, l’idéal est de le rattacher à un objectif pratique, à quelque chose qui vous est directement et concrètement utile, au quotidien.

VBA pour Excel

Par exemple, j’ai un collègue qui souhaite apprendre à programmer et qui utilise tous les jours Excel. Plutôt que de partir sur du développement de sites web avec du HTML, du CSS, du JavaScript, du C#, du Java, du Python ou du PHP, je lui ai proposé de simplement débuter avec du VBA dans Excel. Cela lui permet déjà d’apprendre en créant régulièrement des choses qui lui sont utiles. Il a plus de motivation à faire des recherches pour solutionner tous ses problèmes !
Le VBA c’est du Visual Basic for Application qui s’exécute dans Excel. Cela permet de rendre de nombreux services au quotidien et de faire un bon en avant très important sur l’algorithmique, qui est le pilier fondateur de TOUS les langages. Vos autres apprentissages seront plus simples !

Automatisez votre système

Autre exemple, si vous êtes sur Linux, vous pouvez apprendre à faire des scripts en Python, en Bash ou en Perl. Ou peut-être, développer des applications avec IHM en Java, cela aura l’avantage d’être exécutable sur Windows comme sur Linux. Sous Windows vous pouvez également faire des scripts Power Shell.
Vous pouvez également utiliser des applications pour votre smartphone pour automatiser certaines tâches. Attention, ce n’est généralement pas un langage de programmation en tant que tel, mais vous allez déjà manipuler les notions de base de la programmation, dont l’algorithmique ! J’en ai déjà parlé dans les précédents articles, l’algorithmique est très importante, c’est un aspect fondamental de chaque langage. Automatiser votre smartphone avec ces applications est donc également utile !

Jouez…

Autre possibilité, utilisez un site comme CodinGame, CodeCombat ou HackerRank. Ils vous permettent d’apprendre avec un aspect très ludique et vous pouvez même tester plusieurs langages (attention de vous concentrer sur un seul !).

… ou participez à un projet open source

Enfin, vous pouvez également participer à un projet open source. Certes, il vous faudra un minimum de connaissance pour proposer du code et qu’il soit accepté.
Mais prenons le problème différemment. Trouvez un projet open source sympa qui vous intéresse. Regardez quel est le langage utilisé et apprenez à coder avec ce langage. Ensuite, comme exercice, choisissez une des fonctionnalités à implémenter, choisissez en une simple de préférence, et idéalement déjà implémentée, vous allez comprendre 😉. Tentez de la coder de votre côté et comparez avec le code qui a été proposé. Vous allez doublement progresser, d’une part en pratiquant sur un projet réel et d’autre part en comparant votre solution avec celle qui a été mise en place. Vous devriez rapidement améliorer vos capacités. Au bout d’un moment, quand vous vous sentez prêt, vous pouvez proposer votre code.
Attention de bien regarder et respecter les règles de fonctionnement du projet Open Source. Il s’agit d’une communauté de développeur. Comme toute communauté, elle a ses propres règles ! Il faut les respecter si vous voulez contribuer.
Si je devais débuter la programmation aujourd’hui, je prendrais cette dernière solution. Je pense que c’est vraiment la meilleure manière pour progresser rapidement.

En conclusion

Enfin, souvenez-vous que “fait” est mieux que “parfait” !
Souvent nous réfléchissons trop longtemps et au final nous n’avançons pas (ce blog en est un exemple, cf mon article défi).
Prenez le langage le plus utile pour vous, votre apprentissage n’en sera que plus simple.
Crédits photo :
Partager l'article
  •  
  •  
  •  
  •  

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.