Pourquoi apprendre à programmer ? C'est une bonne question à se poser avant d'attaquer l'apprentissage en tant que tel. Avant tout, il faut savoir ce qu'est la programmation. Ce post vous aidera à faire votre choix. Je suis John, 22 ans, étudiant en info, tellement passionné que j'apprends de nouveaux langages en dehors de mes cours (voir ma page sur Rust).
La programmation est la discipline qui désigne le fait d'écrire des lignes de code afin qu'elles soient comprises par un équipement informatique (navigateur internet, ordinateurs ou machines pour des programmes). Le code est une suite d'instructions utilisant des variables, des boucles, des fonctions permettant d'enrichir ce que le codeur veut faire faire à l'équipement ciblé. La programmation permet de réaliser presque tout ce que l'on veut avec un peu d'entrainement et de pratique. Des programmes réalisants des actions précises, des programmes avec des interfaces utilisateurs. Des sites web, du plus simple ou plus élaboré. On peut également réaliser des applications mobiles (ce terminal étant le plus courant de nos jours, tout le monde a un smartphone en poche). On peut aussi interagir avec les objets connectés.. bref, impossible d'être exhaustif avec ce qu'il est possible de faire avec du code, sans compter les usages créés chaque jour à travers le monde.
Les domaines d'applications de la programmation sont divers et variés. Traitement de données, des plus simples, les chiffres, au plus complexes avec le traitement du signal (transformer des données du monde réel en données informatiques plus simplement compréhensible par les ordinateurs), dans tous les domaines possibles (finance, médecine, mathématique, ...). L'art peut aussi être un domaine d'application avec l'émergence de l'intelligence artificielle qui est désormais capable de créer elle même des images, du texte ou même des vidéos.
A notre époque, tous les pans de la société sont digitalisés. Certains jobs exigent de croiser des données de sources différentes à des fins de reporting à travers l'exploitation de fichiers excel. Si ce besoin est récurrent, alors automatiser cette tâche avec un script VBA semblerait une bonne idée. La programmation est donc nécessaire, même pour un assistant de direction. Un artisan/commercant lui aurait besoin d'un site vitrine pour assurer sa présence en ligne et utiliser le marketing local, et pas seulement un site lambda, mais un site plus costaud qui lui permettrait de gérer ses prospects, ses clients et ses stocks, tout ca à un seul endroit. Même le coiffeur pourrait avoir son logiciel sur mesure pour gérer toute sa boutique (rendez vous client, commande de produits, stock, ..). L'agriculteur aussi, pour les mêmes raisons. Tous les métiers sont concernés ! Biensur, il existe des spécialistes qui vont vendre des produits calibrés pour chacun, mais pas toujours adaptés aux besoins précis. Mais une fois le produit livré, à moins de payer un forfait, aucune chance de voir évoluer son produit en fonction des nouveaux besoins.
Le marketing digital a également fait ses preuves pendant les confinements, où personne ne pouvait sortir et le seul moyen de consommer était internet, drainant une nouvelle cohorte d'options : marketing automation, reciblage marketing, CRM, PRM, ...
Le SEO est un métier récent, consistant à optimiser les sites web afin de les rendre plus visibles sur les moteurs de recherche. Mais là encore, une personne sachant coder pourra aller plus loin et créer lui même ses propres outils, adaptés à un besoin ponctuel.
Les blockchains en sont à leurs balbutiements mais sont l'avenir, d'une part pour la gestion des monnaies numériques, d'autre part pour les contrats intelligents qui permettront d'entrer dans une nouvelle ère : le web 3.0. Tous les systèmes applicatifs pourront communiquer à travers le monde réel grâce aux oracles qui transmettront les données du monde réel automatiquement dans les systèmes informatiques.
La plupart des métiers du tertiaire, l'économie des "services", sont en rapport direct avec l'informatisation de la société. C'est la raison pour laquelle chacun devrait avoir des notions de programmation. Pouvoir utiliser du code informatique facilite la vie à tous les niveaux dans le monde professionnel.
Et plus simplement, apprendre la programmation pour être en mesure de comprendre l'évolution de la société en temps réel, de saisir les opportunités et pas seulement comprendre à posteriori les révolutions qui se lancent.
Qu'on soit salarié, au chomage ou encore étudiant, apprendre à programmer en 2023 est le must. Ne nous le cachons pas, il y aura quand même des personnes pour qui cela apportera un réel plus : les plus jeunes, nés dans le digital, n'ayant pas connu une époque sans téléphone mobile, sans internet, seront beaucoup plus favorisés dans l'apprentissage de la programmation, déjà par le fait qu'ils maitrisent les outils (ordinateur, mobile, internet, ..).
Le langage informatique est un langage comme les autres, qui possèdent donc ses codes et ses règles à suivre pour acquerir une maitrise parfaite.
Comme la langue française, il convient avant tout de maitriser les bases des langages de programmation. Tout d'abord la syntaxe qui expliquera comment sont formulées et désignées les instructions (variables, boucles, appels de fonction avec paramètres optionnels) avec la bonne orthographe. A cette étape, il y aura forcement des tatonnements dont résulteront des erreurs de syntaxe dans le code.
Une fois les concepts de bases maitrisés, on peut alors alors passer à l'étape suivante qui est l'algorithmie et qui correspond à la sémantique du langage. L'algorithmie illustre la manière dont il est possible de faire des choses complexes avec les éléments de base du langage. Ainsi, la sémantique d'un algorithme correspondra à ce que l'ensemble des instructions contenues dans cet algorithme est censé faire. Cette partie est la plus cruciale car elle permettra par la suite de changer de langage de programmation comme on change de langue. La sémantique étant acquise, il ne restera que la partie syntaxe du nouveau langage avec laquelle se familiariser. La sémantique en programmation est donc la manière structurée dont seront agencés les composants de bases et qui permettra à la logique d'interpréter l'algorithme mis en place.
Enfin, l'utilisation de composants standardisés (les packages) se fera au travers d'une grammaire et d'une conjugaison précise. Tel package est appelé de telle manière et pas autrement. Les composants de ces packages sont listés et leurs utilisations décrites précisement et il faut donc se conformer à leurs contraintes. C'est également le cas avec les API dont les usages sont normés et standardisés. Cette rigueur est un pallier à passer, il faut intégrer l'exigence d'utilisation de ces composants, comme dans la pratique d'une langue orale.
Enfin, il est nécessaire d'avoir un bon environnement de travail. Pour commencer, il faut un ordinateur, c'est logique mais certains tenteraient quand même d'apprendre à coder sur un téléphone ou une tablette.. très mauvaise idée. Donc il faut un ordinateur (sur un bureau c'est mieux pour la posture, passer des heures à coder dans une position inconfortable ne serait pas bon pour le dos). Il faut ensuite un traducteur de langage informatique en langage bas niveau compréhensible par l'ordinateur. Ce traducteur se retrouve sous la forme d'un compilateur ou bien d'un interpréteur, selon le type de langage choisit. Pour terminer, il existe des outils permettant de faciliter l'écriture de code informatique. Les IDE (pour integrated development environment) sont des environnements de développement intégrés. Pour les développeurs confirmés souhaitant gagner du temps, ce type de boite à outils est très utile pour accélerer le codage. Un IDE permet l'auto completion (on commence à écriture une instruction et l'IDE auto complète la saisie, évitant ainsi de nombreuses erreurs de syntaxe, d'orthographe ou de grammaire). Un IDE met en couleurs les différents composants d'un programme (variables, boucles, fonctions, ..) donnant ainsi à son auteur une meilleure vision du contenu de son code.
Le choix est vaste à l'heure du web. Vous pourrez en trouver pour tous les gouts : des formations gratuites, payantes, des tutos vidéos, des tutos sur des blogs, du mentoring éventuellement.
Tout d'abord, le circuit classique : l'éducation nationale. Il existe des filières d'études spécialisés dans l'apprentissage du code : des filières universitaires ou des école d'ingénieurs, mais aussi des filières courtes (BTS / DUT).
Sur internet,on peut trouver de tout. Les tutos sont des guides d'apprentissage pratique qui montrent la manière d'atteindre un objectif clairement défini, étape par étape. Il existe des tutoriels sur les blogs en mode texte ou bien des tutoriels vidéos sur les grandes plateformes de partage vidéo (Youtube notamment). Les tutos ne seront pas d'une grande aide pour débuter dans la programmation car ils concernent essentiellement des sujets précis et donc forcément plus évolués.
Les formations disponibles sont nombreuses. Il existe des formations gratuites de type MOOC (massive open online course). Ces formations se déclinent sous la forme de modules portant sur des points spécifiques. Elles peuvent être en vidéo ou non.
Il existe enfin des formations payantes. Les choix sont compliqués car prendre la mauvaise personne pour apprendre à programmer peut se révéler désastreux et amener à abandonner la programmation au terme de la formation. Pour choisir la bonne formation, il faut prendre une personne qui a de la compétence (qui a donc pratiqué la programmation au niveau professionnel et pas seulement durant ses études ou bien durant une formation gratuite ou payante). Il faut un bon formateur ayant une vision de ce qu'est la programmation et la technologie en général. De plus, il vaut mieux préférer un programme mentoré où le formateur suivra ses élèves et où il n'est pas seulement le créateur et le vendeur de la formation, sans suivi réel derrière l'achat.
Pour les formations payantes, il existe des formules qu'on appele "bootcamp". D'origine militaire, les bootcamps sont des entrainements intensifs en groupe à une pratique, ici la programmation. Malheureusement, les prix y sont également intensifs avec des montants qui peuvent dépasser le millier d'euros facilement.
Au niveau du prix au global, on peut trouver des cours à moins de 10 euros sur certaines plateformes de cours en ligne, mais à ce tarif là, on en a pour son argent, c'est à dire pas grand chose. Il y a à l'opposé du tableau les bootcamps à plusieurs milliers d'euros. Entre les deux, il existe un éventail de formations pour apprendre à coder à tous les prix. De moins de 50 euros à 200 euros. Le prix est un indice du contenu. Plus un cours va être cher, plus on peut supposer que l'auteur cherche à maximiser son revenu. On ne peut pas apprendre à coder avec un seul cours, ou même 4. Il faut vraiment suivre une formation dans le temps et s'investir également à coté car la pratique est la clé de la réussite.
Maintenant que la décision d'apprendre à coder est prise que faire ? Choisir son langage de programmation est un élément mais pas forcement le plus important. Le premier langage de programmation appris ne sera certainement pas le dernier. Lorsqu'on se lance dans ce domaine par passion, une fois les bases acquises (cf III), on a de grandes facilités pour aller plus loin, apprendre de nouveaux langages, découvrir de nouveaux domaines, .. Un mentor durant une formation permettra justement d'orienter l'élève vers ce qui l'intéresse. Le choix du langage est malgré tout un point à prendre en compte car certains langages sont un peu trop rebutant pour le débutant et pourrait le dégouter et le stopper net dans son désir d'apprendre la programmation.
Apprendre à coder en français est la meilleure solution lorsque le français est votre langue natale. Apprendre à programmer seul peut être une bonne option, seulement si vous avez déjà un certain niveau de programmation dans un langage et que vous souhaitez en découvrir un nouveau. Le cas contraire, là aussi le résultat risque d'être un abandon pure et simple.
Maintenant que vous avez lu ces explications, il n'y a plus de mystère aux questions "à quoi sert la programmation", "pourquoi apprendre à programmer", "comment apprendre à coder" et "avec qui apprendre à programmer" :)
Le plus simple est donc de réflechir et de déterminer en son fort intérieur ce que l'on souhaite faire et pourquoi. Apprendre le codage pour les nuls et bien apprendre à coder pour un débutant n'est pas compliqué, c'est surtout de franchir le fossé qui sépare l'envie du passage à l'acte qui est la marche la plus dure à monter.