J’apprends enfin à coder – et je n’ai pas commencé par un cours de programmation
L'envie d'apprendre quelque chose de nouveau est un sentiment formidable, et si vous jouez avec l'idée d'apprendre à coder, considérez-vous chaleureusement encouragé à le faire. Mais lorsqu’il s’agit d’étudier, commencer peut être un véritable combat, et je le sais par expérience. Certaines personnes se lancent et commencent à pirater des trucs ensemble jusqu'à ce que ça marche, mais ce n'est pas moi.
Ouvrir VS Code semblait effrayant – et plus que cela, inutile. Bien sûr, je pourrais probablement faire imprimer à l'ordinateur « Bonjour tout le monde » en copiant quelque chose que j'ai vu sur Reddit, mais à quoi ça sert exactement si je n'ai pas la moindre idée de pourquoi cela fonctionne ou comment cela s'est produit ? La programmation est un sujet tellement étranger pour un non-technophile comme moi, et plonger dedans sans rien savoir de son fonctionnement ou de celui des ordinateurs me semblait tout simplement fou.
Ainsi, après quelques lamentations et tergiversations générales, j’ai décidé d’aborder les choses dans une direction différente.
La manière amusante est la meilleure façon
J'aime beaucoup étudier, et comme c'est un peu un passe-temps à mes yeux, il est naturel pour moi de faire ce qui me semble le plus amusant. Cependant, il est assez courant que les gens aillent dans la direction opposée et souhaitent faire uniquement ce qui est le plus efficace. Dans chaque communauté d’apprentissage que je fréquente, je vois tout le temps ces questions de débutants sur « la meilleure façon d’apprendre ».
À mon avis, la manière amusante est toujours la meilleure. La personne qui réussit à apprendre une nouvelle chose n'est jamais celle qui « étudie de la bonne manière », c'est simplement celle qui continue. Même si vous manquez quelque chose d'important au début, tant que vous continuez, vous atteindrez un point où vous devrez combler cette lacune pour progresser. Vous le remplirez donc et vous passerez à autre chose – et en fin de compte, le comment et le moment n’auront même pas d’importance.
Quand j'ai pensé pour la première fois à apprendre à coder, je me sentais plus sûr de savoir pourquoi je ne voulais pas le faire plutôt que de savoir comment je voulais le faire. Je savais que je ne voulais pas commencer à écrire des programmes alors que je n'avais aucune idée de ce qui faisait que ces programmes fonctionnaient. Je savais que le mystère de cela ne ferait que me harceler et me distraire, et je pensais également que comprendre un peu les ordinateurs m'aiderait également à comprendre la programmation sur toute la ligne.
J'ai donc trouvé un livre intitulé « Code : Le langage caché du matériel informatique et des logiciels » de Charles Petzold . Il y a eu de bonnes critiques de la part d'étudiants et de programmeurs expérimentés, et cela a semblé commencer dès le début, ce qui m'a plu. Mais quand j'ai regardé les sujets abordés dans les différents chapitres (codes binaires, logique avec commutateurs, octets et hexadécimal, ajout avec portes logiques, registres et bus, signaux de contrôle CPU, etc), je me sentais encore un peu dépassé. Je savais que je voulais le lire, mais j'avais toujours l'impression que je devais commencer quelque part un peu plus dans ma zone de confort.
Heureusement, il y a un sujet qui se situe parfaitement dans ma zone de confort et qui peut s'appliquer à presque n'importe quel sujet : l'histoire. Je l’ai apprécié à l’école, je l’ai étudié à l’université et j’aime un bon livre d’histoire ou un bon drame historique. Il y a aussi des personnages assez connus mêlés à l'histoire des ordinateurs que je connaissais déjà – des noms comme Charles Babbage, Ada Lovelace , George Boole et Alan Turing. J'ai donc décidé de mettre le livre Code de côté et de me plonger dans le monde de l'informatique en lisant ses débuts.
L'ordinateur universel : la route de Leibniz à Turing

Ce livre est de Martin Davis et est disponible sous forme de livre électronique via Amazon . Si vous aimez l'histoire, je vous recommande vivement de le lire, mais il est également utile de le lire même si vous n'êtes pas un grand passionné d'histoire. Si vous n'arrivez pas à vous lancer dans toute cette histoire de programmation, lire un livre sur le sujet est un excellent moyen de commencer techniquement à étudier sans vraiment avoir l'impression d'étudier.
Le livre devient par moments assez mathématique puisqu'il se concentre beaucoup sur les mathématiciens dont le travail est finalement devenu partie intégrante de l'invention des ordinateurs. Je ne suis pas du tout un spécialiste des mathématiques, je suis vraiment très mauvais avec les chiffres, mais les mathématiques sont l'un de ces sujets où comprendre à quel point vous comprenez peu est plutôt utile en soi.
Partons ici sur une tangente. Je pense que les mathématiques constituent un véritable obstacle pour les gens lorsqu’ils pensent aux ordinateurs et à la programmation. Cela peut certainement ressembler à un domaine dans lequel vous ne devriez même pas vous donner la peine d'essayer si vous n'êtes pas bon en mathématiques – et il fut probablement un temps où cela était vrai (même si c'était il y a un certain temps). Quoi qu’il en soit, ce n’est plus vrai.
Les mathématiques et les sciences sont à l'origine de la construction des ordinateurs, cela ne fait aucun doute. Mais la programmation est différente. Lorsque vous écrivez des programmes ou concevez des logiciels, les mathématiques sont plus un choix qu'une nécessité.
La raison en est peut-être résumée en un mot que vous entendrez probablement beaucoup si vous commencez à étudier : abstraction. Comprendre les ordinateurs, c'est avant tout gérer différents niveaux d'abstraction, ce qui signifie essentiellement mettre les choses dans des boîtes et les oublier. Cela ressemble à une blague, mais c'est vrai.
Par exemple, n’importe quel livre de programmation ou cours d’informatique commencera probablement par expliquer ce qu’est le binaire – les petits 1 et 0 de The Matrix. Vous apprendrez ce qu'ils sont, pourquoi ils existent et à quoi nous les utilisons, puis vous mettrez toutes ces connaissances dans une boîte et fermerez le couvercle. Parce que lorsque vous commencerez à taper du code, vous ne penserez pas au binaire. Vous ne le tapez pas, vous ne faites pas de calculs binaires et vous ne penserez qu'en octets (groupes de 8 chiffres binaires) plutôt qu'en bits (un chiffre binaire).
Travailler avec le binaire est un travail ultra-spécialisé que la plupart des programmeurs ne feront jamais – ils ferment donc le couvercle de la boîte binaire et se concentrent sur autre chose. L’utilisation des mathématiques en programmation est similaire : les personnes qui sont douées dans ce domaine s’occuperont des mathématiques pour vous et les mettront dans une boîte appelée « fonction ».
Vous pouvez jeter un coup d’œil à l’intérieur de la boîte et voir ce qui se passe si vous le souhaitez, mais ce n’est pas obligatoire. Il vous suffit d'"appeler" la fonction lorsque vous souhaitez l'utiliser. Supposons que vous vouliez savoir combien de caractères contiennent une chaîne de texte : il faut beaucoup plus d'efforts pour qu'un ordinateur puisse résoudre ce problème qu'un humain qui se contente de regarder et de compter « 1, 2, 3 ». Mais vous n'avez pas besoin de penser à tout cela – appelez simplement la fonction strlen()
(longueur de la chaîne) et elle fera le comptage pour vous. C'est de toute façon ainsi que la fonction s'appelle en C. En Python, c'est len()
et en Java, c'est length()
. Langue différente, mots différents.
Le fait est que les calculs sont réglés d’une manière ou d’une autre. Il est caché dans les fonctions et les bibliothèques, et si vous pensez avoir besoin de quelque chose de mathématique pour résoudre votre problème, il est courant de trouver les informations en ligne.
Si vous détestez vraiment, vraiment les chiffres, vous pouvez aussi vous en tenir à une programmation de haut niveau. Plus le niveau est élevé, plus on s’éloigne des 1 et des 0, et moins on doit penser aux mathématiques. Tout cela pour dire : ne laissez pas les mathématiques vous effrayer de la programmation. Vous pouvez l’éviter en codant, tout comme vous pouvez l’éviter dans la vie !
Quoi qu’il en soit, j’ai lu ce livre sur l’ histoire des ordinateurs . J'ai tout appris sur ces mathématiciens et ce qu'ils ont réalisé – sans rien comprendre aux mathématiques elles-mêmes, bien sûr – et je me suis vraiment amusé.
Code : le langage caché du matériel informatique et des logiciels

Ensuite, je devais me mettre un peu plus au travail, ce qui impliquait de lire le livre sur le fonctionnement des ordinateurs. Comme je l'ai déjà dit, ce livre faisait un peu peur au début. C'est grand et c'est détaillé – et je ne vais pas prétendre avoir compris chaque mot que j'ai lu. Mais nous n’arriverons à rien en laissant le « bon » être l’ennemi du « parfait ». Comprendre 80 % d’un livre est bien mieux que comprendre 0 % parce que vous avez décidé de ne pas le lire.
En plus, ce n'était pas si mal au final. Il est écrit de manière conviviale, bavarde et humoristique, ce qui aide vraiment à rendre les parties compliquées plus faciles à comprendre. Il dispose également d'un site Web avec des diagrammes interactifs et des versions fonctionnelles des « mini-ordinateurs » qu'il fabrique tout au long du livre. Et surtout, cela ne commence pas par des choses compliquées.
Cela ne commence même pas avec les ordinateurs : les premiers chapitres couvrent des sujets assez aléatoires comme le code Morse et le braille. Ou, du moins, ils semblent aléatoires pendant un certain temps jusqu'à ce que vous alliez plus loin et réalisiez que M. Auteur vous a sournoisement nourri au goutte-à-goutte les concepts que vous aurez besoin de connaître plus tard dans le livre.
C'est certainement une de ces expériences de type « confiance dans le processus » – mais je peux vous assurer que c'est un livre bien écrit et bien structuré, et peu importe à quel point les parties difficiles vous semblent difficiles, vous en repartirez en en sachant plus sur les ordinateurs que vous n'auriez jamais cru possible.
Lorsque vous avez terminé, vous pouvez sortir une autre boîte et y insérer toutes les informations, car nous n'avons pas vraiment besoin de penser au « comment fonctionne un ordinateur » lorsque nous codons. Cependant, maintenant que vous avez ces informations cachées quelque part, elles vous seront parfois utiles. Certains concepts de programmation auront naturellement plus de sens pour vous, et lorsque les connaissances seront pertinentes pour ce que vous faites, elles sortiront facilement de la boîte pour que vous puissiez les utiliser.
Et le meilleur ? Lorsque vous commencez votre cours de programmation et qu'il commence à parler de binaire, vous saurez déjà ce qu'est le binaire. Le cours vous fournira également de nombreuses nouvelles informations, mais avoir ce contexte existant en tête aidera les choses à paraître un peu plus familières et gérables. Cela vous aidera à vous concentrer sur la programmation, plutôt que de vous laisser distraire par chaque nouveau concept et de vous demander si vous devez le comprendre ou non.
C'est ce que j'ai ressenti, en tout cas, et je suis à peu près aussi mal construit pour la programmation qu'il est humainement possible. J'étais nul en mathématiques à l'école, j'ai étudié l'histoire et la littérature anglaise à l'université, j'écris pour gagner ma vie, j'étudie le japonais comme passe-temps et, jusqu'à récemment, je n'avais même jamais possédé d' ordinateur de bureau – et pourtant ça se passe plutôt bien. Si je peux le faire, honnêtement, tout le monde peut le faire.