FYI.

This story is over 5 years old.

On n'apprend pas bien à coder sans en baver un peu

Il existe des dizaines de méthodes faciles pour apprendre à programmer, mais il vaut quand même mieux prendre le temps de comprendre quelques concepts de base.
7.1.16

Comme à chaque nouvelle année, nous sommes nombreux à prendre des résolutions afin de tenter, juste tenter, d'être de meilleures personnes, ou en tout cas des personnes un peu moins nulles, ou juste un peu plus saines. Bref, des résolutions, quoi.

L'une des résolutions les plus populaires, au moins chez les plus nerds d'entre nous, est (encore) d'apprendre à coder. Avec la multiplication des sites d'e-learning, des stages intensifs et autres entités à but très lucratif qui prétendent apprendre à coder, les incitations ne manquent pas tout au long de l'année. Mais le Nouvel An est une période magique, où les curieux moyennement motivés se ramassent à la pelle. Devenez un pro du code : c'est tout simple !

Publicité

Extrait du site d'edX : « Devenez le génie qui conçoit, contrôle et fait marcher les appareils numériques, les sites web, les applications pour smartphones et toutes ces choses que nous utilisons quotidiennement. » C'est tentant, non ?

J'ai suivi plusieurs cours d'informatique et de programmation chez edX, en général pour me remettre à niveau sur quelque chose ou pour compléter un cours que j'avais eu à la fac, et ils étaient plutôt bons. J'ai aussi pris des cours dans d'autres programmes similaires, comme Coursera, Udacity, Lagunita (un programme associé à Stanford), et l'OpenCourseWare du MIT. Tous ces programmes sont de bonne qualité, et tous sont accessibles pour la modique somme de 0€ (même s'il est possible de payer pour certaines options, comme des certificats ou des « nanodiplômes ».)

C'est vraiment tout simple, il n'y a qu'à s'inscrire. Alors, est-ce que vous devriez le faire ? Est-ce que vous devriez apprendre à coder ?

Non. En tout cas, pas au sens où on entend habituellement « apprendre à coder ». Oui, c'est quelque chose que vous devriez certainement apprendre à un moment ou un autre, mais il ne faut surtout pas commencer avec le traditionnel cours d'introduction à JavaScript qui vous enseignera les bases de la syntaxe, et comment utiliser cette syntaxe pour faire des trucs cools sur des sites.

Il existe des dizaines de cours de ce type, et si vous cherchez « apprendre à coder » sur Google, c'est ce qu'on vous proposera en premier : Introduction à JavaScript.

Publicité

Ne prenez pas ce cours. Si vous tenez vraiment à créer des sites, ok, apprenez JavaScript un jour, mais ne commencez pas par là. Quand vous maîtriserez bien les bases du fonctionnement du code, que vous saurez comment les langages de programmation interagissent avec les ordinateurs et Internet, JavaScript ne sera plus rien, à peine une formalité. Il se peut même que vous choisissiez finalement de ne pas vous y pencher, et même d'éviter tout simplement le développement Front-End.

La différence entre apprendre le code et apprendre ce qu'est le code est de toute évidence assez floue. Pour apprendre ce qu'est le code, vous devez forcément l'utiliser, mais tous les moyens ne sont pas bons. La bonne façon de faire est forcément plus difficile, a moins d'applications immédiates, et demande plus de temps. Je suis désolé de vous le dire, mais croyez-moi, ça vaudra le coup au final.

J'ai appris à programmer en C à la fac, et je ne changerais ça pour rien au monde. Comme souvent dans les cours d'informatique de niveau licence, cette introduction s'étalait sur deux semestres. Au départ, je n'étais pas hyper intéressé par l'informatique – je visais un diplôme en électrotechnique, et les cours d'informatique étaient obligatoires – mais j'ai fini par devenir accro, abandonnant même l'électrotechnique pour m'y consacrer à plein temps, à tel point que j'ai fini par intégrer une école doctorale en informatique.

Si vous tenez vraiment à créer des sites, ok, apprenez JavaScript un jour, mais ne commencez pas par là.

Mais ce ne sont pas la syntaxe de programmation ou les frameworks qui me passionnaient. Je n'étais pas accro à jQuery ou à Bootstrap. Je me défonçais à la résolution de problèmes et aux algorithmes. C'est ce qui fait l'unicité de la programmation : le flux permanent et immédiat de problèmes à résoudre. Pour moi, programmer, c'est comme faire un puzzle (à vrai dire, c'est même exactement ça), ou affronter un boss balaise dans un jeu vidéo pendant des heures. Au bout d'un moment, ça finit par bouleverser votre façon de penser, jusqu'à envahir vos rêves. Ça devient même franchement étrange : vous rêvez d'algorithmes.

Pour apprendre le code, pour comprendre le code, vous devriez apprendre un langage comme C. Idéalement, vous devriez carrément apprendre C, mais C++, Java, Python, ou n'importe quel langage assez généraliste fera parfaitement l'affaire. L'idée, c'est d'apprendre la programmation telle qu'elle fonctionne vraiment, sans fioritures.

Publicité

C'est précisément ce qu'est C : un langage de programmation pur et dur, et toujours éminemment actuel. Mais C est loin d'être infaillible, et la plupart des langages qui l'ont copié n'existent que pour palier ses défauts.

Mais le truc, c'est que ces défauts ne disparaissent pas lorsque vous programmez avec un langage plus facile à utiliser ; ils sont juste mieux dissimulés. Et au fur et à mesure que vous cessez d'apprendre le code et que vous commencez à vraiment le pratiquer, ils finiront par s'avérer utiles.

L'idée, c'est que presque tous les aspects de la programmation tournent autour de concepts fondamentaux : les structures de contrôle, les mécanismes de loop et de répétition, les structures de données. Même si votre ambition se limite à créer le meilleur template qui soit pour votre site, il vaudrait mieux que vous sachiez assembler une liste chaînée (un concept qui n'existe pas dans JavaScript).

Autrement dit, il est essentiel que vous compreniez d'abord les concepts qui sous-tendent le code. Il n'est pas absolument nécessaire d'utiliser C, c'est juste le meilleur exemple pour ce que j'essaie d'expliquer. Certes, vous pourriez probablement construire un superbe pont si on vous fournissait tous les matériaux et un manuel d'instructions détaillé, sans que vous compreniez quoi que ce soit aux lois de la physique les plus élémentaires. Mais personnellement, je ne me risquerais pas à traverser ce pont.

Mon conseil, ce serait donc de suivre un cours d'introduction à l'informatique, que ce soit sur edX ou ailleurs. Vous utiliserez probablement Python, et c'est très bien comme ça (Python est un super langage). À la fin, vous n'aurez pas créé de site super cool. A priori, il y a plus de chances que vous vous retrouviez avec un petit programme constitué d'une ligne de commande capable de déterminer si un nombre donné est un nombre premier ou non. Bref, un truc un peu chiant dans ce genre-là. Commencez par ça, et je vous garantis que vous serez 1000 fois meilleur ensuite, quoique vous ayez envie de faire en termes de code et/ou de programmation. Mais en tout cas, ne vous laissez pas tenter par la facilité, au moins au début. Il faut en baver un peu. Désolé.