Vous avez décidé d'apprendre à programmer et je vous en félicite! La demande pour des programmeurs de qualité ne fait qu'augmenter, c'est donc un excellent choix de votre part :)

Il existe de très nombreux langages de programmation et le choix du langage pour débuter est important. J'enseigne la programmation depuis plus de 10 ans en école d'ingénieur informatique et j'ai plusieurs recommandations concrêtes à vous faire.

Première bonne nouvelle : les langages de programmation ont beaucoup de points communs entre eux. Une fois que vous saurez programmer dans un langage il vous sera plus facile d'en apprendre un autre 👍

Langage interprêté ou langage compilé ?

Aujourd'hui j'aimerais me concentrer sur 2 types de langages de programmation :

  • les langages compilés (C++, C#, Swift, Kotlin, etc.)

  • les langages interprêtés (PHP, JavaScript, Python, etc.).

Si vous ne connaissez pas la différence entre les langages compilés et les langages interprétés, lisez dès maintenant ce court article qui vous expliquera l'essentiel :

Programmation : comprendre les concepts de compilation et d'interprétation

Maintenant que vous savez ce qu'est un langage compilé et ce qu'est un langage interprété, nous pouvons parler de cas de l'apprentissage.

Langage compilé : strict de nature

Le compilateur ne vous fera pas de cadeau sur la syntaxe de votre code : vous devrez respecter le langage à la lettre près.

Tant que cette syntaxe ne sera pas respectée, le compilateur sera incapable de vous générer une app. Une erreur de compilation est souvent simple à corriger car un message d'erreur vous explique la cause exacte, le fichier ainsi que le numéro de ligne concerné ; si vous avez un logiciel sympa vous aurez même le code concerné souligné en rouge directement dans votre éditeur.

Autre caractéristique essentielle des langages compilés : la gestion de la mémoire. Plus ou moins complexe en fonction des langages, elle est toujours présente dans les langages compilés.

Pour ces 2 raisons, un langage compilé est un petit peu plus difficile à apprendre au départ, mais vous donnera d'excellentes habitudes de programmation que vous conserverez à vie.

Langages interprétés : souples mais risqués

Il faut comprendre que les problèmes que pourrait rencontrer un interprète seront découvert par l'utilisateur au moment de l'exécution (bug, crash, etc.). L'objectif de l'interprète est donc que l'app fonctionne quoi qu'il arrive, quitte à ignorer des erreurs de programmations qui traineraient dans le code...The show must go on!

L'interprète sera beaucoup plus tolérant avec les erreurs de syntaxe et essaiera toujours de faire fonctionner l'application même si elle est imparfaite dans sa forme.

En conséquence, vous risquez d'avoir une app qui tourne avec un code rempli de problèmes et personne ne vous le dira.

La gestion de la mémoire est souvent inexistante dans ces langages, c'est confortable pour vous ; mais si vous devez un jour créer une app native en langage compilés vous n'aurez aucune notion utilisable à ce niveau.

Pour ces raison, je vous conseille d'opter en priorité pour un langage compilé dès que vous le pouvez, et encore plus si vous débutez.

Mon avis est que les langages interprétés sont valides pour des programmeurs aguéris principalement.

Ai-je vraiment le choix du langage si j'ai un projet précis ?

En fonction de ce que vous souhaitez réaliser vous n'aurez pas toujours le choix du langage.

Par exemple si vous voulez créer un site web interactif, vous devrez savoir programmer en Javascript, qui est un langage interprété.

Inversément, si vous voulez créer une app iOS native, vous devrez le faire en Swift qui est un langage compilé.

Par contre, si vous débutez, je vous conseille vivement de commencer par apprendre avec un langage simple et strict jusqu'à avoir un niveau suffisant. Puis, vous pourrez utiliser le langage de votre choix pour réaliser le projet qui vous trotte dans la tête.

Conclusion

Si vous débutez choisissez un langage compilé moderne comme Swift, Kotlin ou C#. Ils peuvent tous les 3 être utilisés sur Windows, macOS ou Linux pour votre apprentissage.

Une fois que vous saurez programmer dans un de ces langages, vous pourrez facilement basculer sur un langage interprété si c'est requis pour le projet de vos rêves :)

Happy coding!

Maxime