Back to Top

Quel langage pour débuter en programmation?

Les meilleurs langages pour débuter, selon VOS besoins!

Voici une question qui revient souvent sur les forums, « quel langage qu’il est le plus fort ? ». Evidemment, on vous répond qu’il n’y a aucun langage fondamentalement meilleur que les autres, et c’est vrai. Pourtant, on retrouve bon nombre de classements de langages sur internet, avec au choix en première position Python on Javascript. Cet article est différent, il n’a pas pour ambition de fixer un classement arrêté. Je vais plutôt tenter de vous aiguiller, selon votre profil, selon ce que vous souhaitez faire, que ce soit en projet de développement ou en étude par exemple, vers un ou plusieurs langages. Et oui, je parle de projet d’études car d’après moi, dans certains cas, tous les critères de choix ne concernent pas exclusivement le langage en lui-même.

Langage de programmation pour débuter

Quand on est un jeune lycéen

Plein de fougue, vous aimez l’informatique. Vous n’avez pas forcement encore conscience de l’immensité de l’océan qu’est ce domaine, mais vous aimez ça. Les algorithmes, les implémenter, réfléchir à leur efficacité, tout ça c’est votre dada. Je ne saurais vous proposer autre chose que le Python. En effet, il est relativement facile d’accès, mais il vous permettra d’aller très loin dans sa maîtrise, avec le temps. De plus, selon ce qui vous plaira plus tard, il y a fort à parier qu’il vous soit utile. Ce peut être le cas en analyse de données, en web ou pour de petites applications par exemple.

Pour ceux aimant plutôt comprendre comment fonctionne la logique des ordinateurs, vous voulez tout contrôler, le C est recommandable. Dans ces deux langages, tout ce que vous apprendrez sera assez général pour vous servir tout au long de votre vie dans l’informatique. Par ailleurs, on peut aussi accélérer du Python en le « mixant » avec du C. De plus, Python est le langage utilisé dans l’enseignement jusqu’au Bac, parfois même plus tard, donc c’est tout bénef.

Quand on rentre dans le supérieur

Là les choses deviennent sérieuses, et vous voulez être le crack de votre fac/école d’ingénieur. Le point commun de toutes les formations, c’est l’orienté objet et l’algorithmique. Pour l’algo, c’est rarement sur papier, et la je ne peux rien pour vous, désolé. Sinon c’est très souvent du Python, qui permet des implémentation rapide d’algorithmes divers et variés, comme les tris. 

Bien que Python soit intégralement orienté objet, il est rarement utilisé comme langage pour initier a ce paradigme. Je pense que cela s’explique par la liberté qu’offre le langage (règle de porté privé/public absente, accesseur/mutateur inutile, héritage multiple possible mais déconseillé, surtout pour une initiation etc). Les cours ont donc quasi intégralement lieu en Java. C’est un langage très puissant, reposant sur la JVM. On peut un peu tout faire, du back-end de web aux application lourde, en passant par le traitement de données massives. Le C reste une base solide qui vous permettra aussi de mieux comprendre beaucoup de concepts. C’est notamment le cas pour les copie ou les passages par valeur et par adresses. 

Débuter dans le web

Vous ne voulez faire que ça, et surtout tout faire. Front, Back, vous êtes un multitâche. Pauvre fou! Bon, qui suis-je pour juger… Ce choix a le mérite de faciliter le choix des technologies: du Javascript, partout, tout le temps. J’ai dis que le choix était restreint, pas que le choix était formidable.. désolé ? .

Pour le coté Back par contre, Javascript est un choix beaucoup moins évident. S’il vous plaît, ne passez pas du côté obscur de la force. En effet, pour du full stack, un argument majeur est qu’ « avec un langage on peut tout faire », ce qui évite de se disperser dans l’apprentissage. Ici nous n’avons plus ce soucis. C’est pourquoi je recommanderais plutôt Python pour quelqu’un voulant pouvoir faire autre chose, tout en faisant très bien du web. Si vous voulez vous engager dans une technologie récente, avec les avantages et inconvénients que cela comporte, Go peut être adapté pour du développement concurrent par exemple. Quand aux besoin du marché du travail, PHP reste un grand champion.

Les langages pour le bas niveau

La lingua franca de l’informatique reste le C. Avec ce langage, vous pourrez toucher a des Kernels, des Pilotes, et autres joyeuseté du bas niveau. Moins accessible, le Rust me semble néanmoins très prometteur. A tenter avec un minimum d’expérience à mon sens.

Quels langages pour le mobile?

Commençons par Android. Il y a peu, j’aurais recommandé Java. Cela a le mérite de boucler avec les enseignements du supérieur. Néanmoins, il y a une léger imbroglio entre Oracle et Google. Bien que ne remettant pas en cause l’utilisation de la technologie, cela pourrait avoir un fort effet sur la confiance des société en Java. Donc pour uniquement du développement Android, Kotlin me semble un meilleur choix si vous n’avez aucun background. Ce langage est plus récent et possède une bonne dynamique. Si vous avez déjà un passif en Java par contre, restez sur Java.
Pour ce qui est iOS, vous n’aurez pas d’autre choix que de passer par Swift, aucun débat sur le sujet!
Enfin, il vous est aussi possible de faire du cross-platform. Dans ce cas je ne peux que vous conseiller de vous intéresser à C#, utilisé avec Xamarin.

Développer des clients lourds

Pour du Windows pur, j’aurais tendance a vous envoyer de nouveau vers C#. Néanmoins, ce type de logiciel est très souvent utilisé dans de grandes sociétés, et le passif est très souvent en Java. De nombreuses bibliothèques existent aussi en Python, pour des projets personnel cela peut-être un bon choix, surtout si vous avez déjà de l’expérience dans ce langage.

Débuter dans le jeu vidéo

Alors oui, ça fait rêver de se voir développeur d’un incroyable compétitif en réseau, certes. Mais le développement d’un jeu complet et abouti est quelque chose de réellement complexe, et loin d’être à la portée de quelqu’un qui débute dans la programmation. De plus cela nécessite un ensemble de compétences très varié, allant de la programmation au level design en passant par le sound design. Ceci étant dit, les deux principaux moteur de jeu que sont Unity et UnrealEngine nécessitent un bon niveau respectivement en C# et en C++ pour être réellement opérationnel sur un projet d’envergure correcte.

Vous remarquerez l’absence de C++ dans les précédent paragraphe, c’est un très bon langage, la n’est pas le soucis. Je trouve par contre le langage beaucoup trop velu, en masse en concept, pour être recommandé à un débutant. La norme est immense, les concepts nombreux et complexe, et on peut vite avoir l’impression de ne jamais en voir la fin. Mais c’est un langage extrêmement puissant qui vous permettra d’absolument tout faire de manière très efficace, vous voilà prévenu. Python possède aussi un petit nombre de bibliothèques spécialisées dans le jeu tout à fait qualitative, bien que l’ont soit loin d’un équivalent d’Unity, vous pourrez aisément vous faire la main sur quelques projets relativement simples.

Pelle mêle

Si vous n’avez pas encore trouvé votre bonheur ou d’inspiration, vous pouvez regarder du coté des langages fonctionnels. Nouvelle manière de résoudre les problèmes, code plus sûr par la réduction des effets de bord et usage massif de la récursivité sont au programme. Je recommande ici le langage Haskell. Quitte à changer de paradigme, autant le faire vraiment non ? Il y a aussi Scala, reposant comme Java sur la JVM, ce langage peut-être particulièrement adapté a du traitement parallèle pour le BigData, et permet un mix entre fonctionnel et objet, aussi présent dans l’Ocaml par exemple. Une connaissance de Java peut être un plus, les deux langages pouvant, grossièrement, « se parler ».

Enfin, il y a bien évidemment de nombreux autres langages de programmation, et chaque développeur aura sa raison d’en préférer un plus que les autres. Que ce soit pour l’optimisation, la beauté du code, le marché du travail ou une quelconque appétence, chacun aura sa préférence! Je n’ai d’ailleurs même pas parlé de bases de données! (foncez sur MySQL ?). Bref, j’espère avoir pu en éclairer au moins quelques-uns parmi vous!

Quand à ceux qui se demandent pourquoi je n’ai pas parlé d’HTML … Vous avez la réponse ici.

Par Clément Caffin


Random_content()

Rechercher:





Suis-nous sur les réseaux sociaux!

Instagram

S'abonner