L'envie d'apprendre quelque chose de nouveau est un grand sentiment, et si vous jouez avec l'idée d'apprendre à coder – considérez-vous de façon chaleureusement encouragée à le faire. Mais quand il s'agit d'étudier, le démarrage peut être une vraie lutte, et je le sais par expérience. Certaines personnes sautent tout de suite et commencent à pirater des choses ensemble jusqu'à ce que cela fonctionne, mais ce n'est pas moi.
L'ouverture vs Code semblait effrayante – et plus que cela, inutile. Bien sûr, je pourrais probablement faire l'impression de l'ordinateur « Hello, World » en copiant quelque chose que j'ai vu sur Reddit, mais quel est exactement le point si je n'ai pas le moindre indice pourquoi cela fonctionne ou comment cela s'est produit? La programmation est un sujet aussi étranger à un non-Techie comme moi, et plonger sans rien savoir comment il ou les ordinateurs fonctionnent sont fous.
Donc, après quelques longements généraux et procrastinant, j'ai décidé d'approcher les choses dans une direction différente.
La façon amusante est la meilleure façon
J'aime étudier beaucoup, et comme c'est un peu un passe-temps à mes yeux, il est naturel pour moi de faire tout ce qui semble le plus amusant. Il est cependant assez courant que les gens aient valu dans la direction opposée et ne veulent faire que ce qui est le plus efficace. Dans chaque communauté d'apprentissage que je fréquente, je vois tout le temps ces questions débutantes sur «la meilleure façon d'apprendre».
À mon avis, la manière amusante est toujours la meilleure façon. La personne qui réussit à apprendre une nouvelle chose n'est jamais la personne qui «étudie la bonne façon», c'est juste la personne qui continue. Même si vous manquez quelque chose d'important dans les premiers stades, tant que vous continuez, vous aurez un point lorsque vous aurez besoin de combler cet écart pour progresser. Vous le remplisserez donc et vous avancerez – et à la fin, le comment et quand n'aura même pas d'importance.
Lorsque j'ai pensé pour la première fois à apprendre à coder, je me sentais plus sûr de la façon dont je ne voulais pas le faire plutôt que 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 a fait fonctionner ces programmes. Je savais que le mystère de cela me harcelerait simplement et me distrait, et je pensais également que la compréhension un peu des ordinateurs aiderait également ma compréhension de la programmation.
J'ai donc trouvé un livre intitulé «Code: la langue cachée du matériel et des logiciels informatiques» de Charles Petzold. Il y avait de bonnes critiques des étudiants et des programmeurs expérimentés, et cela semblait commencer dès le début, ce que j'ai aimé. Mais quand j'ai regardé les sujets abordés dans les différents chapitres (codes binaires, logique avec commutateurs, octets et hexadécimaux, en ajoutant avec des portes logiques, des registres et des bus, des signaux de contrôle du processeur, etc.), je me sentais toujours un peu dépassé. Je savais que je voulais le lire, mais j'avais toujours l'impression que je devais commencer un peu plus dans ma zone de confort.
Heureusement, il y a un sujet qui est juste dans ma zone de confort et peut être appliqué à à peu près n'importe quel sujet: l'histoire. Je l'ai apprécié à l'école, je l'ai étudié à l'université et j'adore un bon livre d'histoire ou un drame historique. Il y a aussi des chiffres assez connus mélangés à l'histoire des ordinateurs dont 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 de code de côté et de m'infirmer 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 il est disponible en Ebook via Amazon. Si vous êtes dans l'histoire, je recommande en profondeur de lui donner une lecture, mais il y a aussi une utilisation pour la lire même si vous n'êtes pas vraiment un buff d'histoire. Si vous ne pouvez pas sembler commencer avec tout ce truc de programmation, ramasser un livre sur le sujet est un excellent moyen de commencer techniquement à étudier sans vraiment vous sentir comme si vous étudiez.
Le livre devient assez mathématique à des points car il se concentre beaucoup sur les mathématiciens dont le travail est finalement fait partie intégrante de l'invention des ordinateurs. Je ne suis pas du tout une personne mathématique, je suis vraiment terrible avec les chiffres, mais les mathématiques sont l'un de ces sujets où comprendre à quel point vous comprenez peu de choses en soi utile.
Partinons sur une tangente ici. Je pense que les mathématiques présentent une barrière aux gens lorsqu'ils pensent aux ordinateurs et à la programmation. Cela peut certainement ressembler à un domaine dans lequel vous ne devriez même pas prendre la peine d'essayer de vous lancer si vous n'êtes pas bon en mathématiques – et il y a probablement eu un moment où c'é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 ce qui construit des ordinateurs – il n'y a aucun doute à ce sujet. 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 de cela peut se résumer à un mot que vous entendrez probablement beaucoup si vous commencez à étudier: l'abstraction. Comprendre les ordinateurs consiste à gérer différents niveaux d'abstraction – ce qui signifie essentiellement mettre des choses dans des boîtes et les oublier. Cela ressemble à une blague, mais c'est vrai.
Par exemple, tout livre de programmation ou cours d'informatique va probablement commencer par expliquer ce qu'est le binaire – les petits 1 et 0 de la matrice. Vous apprendrez ce qu'ils sont, pourquoi ils existent et pour quoi nous les utilisons – et ensuite vous metterez toutes ces connaissances dans une boîte et fermerez le couvercle. Parce que lorsque vous commencez à taper le code, vous ne penserez pas au binaire. Vous ne le tapez pas, vous ne faites pas de calculs binaires, et vous ne penserez vraiment que par des octets (groupes de 8 chiffres binaires) plutôt que par des bits (un chiffre binaire).
Travailler avec le binaire est un travail super spécialisé que la plupart des programmeurs ne feront jamais – ils ferment donc le couvercle de la boîte binaire et se concentrent sur d'autres choses. L'utilisation de mathématiques dans la programmation est similaire – les personnes qui sont douées prendront en charge les mathématiques pour vous et la mettront dans une boîte appelée «fonction».
Vous pouvez jeter un œil à l'intérieur de la boîte et voir ce qui se passe si vous le souhaitez, mais vous n'en avez pas besoin. Vous «appelez» la fonction lorsque vous souhaitez l'utiliser. Dites que vous voulez savoir combien de caractères sont dans une série de texte – il faut beaucoup plus d'efforts pour faire fonctionner un ordinateur par rapport à un humain à regarder et à compter «1, 2, 3». Mais vous n'avez pas besoin de penser à tout cela – appelez simplement le strlen() (Longueur de chaîne) Fonction et il fera le comptage pour vous. C'est ce que la fonction est appelée en C, de toute façon. En python c'est len() Et en java c'est length(). Langue différente, différents mots.
Le fait est que les calculs sont pris en charge d'une manière ou d'une autre. Il est caché dans les fonctions et les bibliothèques, et si vous pensez que vous pourriez avoir besoin de quelque chose de mathématiques pour résoudre votre problème, c'est une pratique standard pour trouver les informations en ligne.
Si vous détestez vraiment, vraiment, vous pouvez également vous en tenir à une programmation de haut niveau. Plus le niveau est élevé, plus vous êtes loin des 1 et les 0, et moins vous devez penser aux mathématiques. Tout cela est à dire – ne laissez pas les mathématiques vous effrayer de la programmation. Vous pouvez l'éviter tout en codant comme vous pouvez l'éviter dans la vie!
Donc, de toute façon, 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 comprendre une chose sur les mathématiques réelles, bien sûr – et je me suis vraiment apprécié.
Code: la langue cachée du matériel informatique et des logiciels


Ensuite, je devais obtenir un peu plus pour les affaires – ce qui signifiait lire le livre sur le fonctionnement des ordinateurs. Comme je l'ai déjà dit, ce livre se sentait un peu effrayant au début. C'est grand et c'est détaillé – et je ne vais pas prétendre que j'ai compris chaque mot que je lis. Mais nous n'allons nulle part en laissant le «bon» être l'ennemi de «parfait». Comprendre 80% d'un livre est bien meilleur que de comprendre 0% parce que vous avez décidé de ne pas le lire.
De plus, ce n'était pas si mal à la fin. Il est écrit d'une manière amicale, bavarde et humoristique, ce qui aide vraiment les bits compliqués plus faciles à passer. Il dispose également d'un site Web avec des diagrammes interactifs et des versions de travail des «mini-ordinateurs» qu'il fait tout au long du livre. Et, plus important encore, cela ne commence pas par les choses compliquées.
Il ne commence même pas par des ordinateurs – les premiers chapitres couvrent des sujets assez aléatoires comme Morse Code et Braille. Ou, au moins, ils se sentent aléatoires pendant un certain temps jusqu'à ce que vous alliez plus loin et que je réalise que M. l'auteur vous ait agitée sournoisement pour vous faire fouiller les concepts que vous devrez savoir plus tard dans le livre.
C'est certainement l'une de ces expériences de «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 bits durs vous sont difficiles, vous repartirez toujours 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 remplir toutes les informations à l'intérieur – parce que nous n'avons pas vraiment besoin de penser à «comment un ordinateur fonctionne» lorsque nous codons. Cependant, maintenant que vous avez ces informations cachées quelque part, cela sera parfois utile. Certains concepts de programmation vous auront naturellement plus de sens pour vous, et lorsque les connaissances sont pertinentes pour ce que vous faites, elle sortira commodément pour vous pour que vous puissiez utiliser.
Et la meilleure partie? 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 donnera également beaucoup de nouvelles informations, mais avoir ce contexte existant dans votre tête aidera les choses à se sentir un peu plus familières et gérables. Cela vous aidera à vous concentrer sur la programmation, plutôt que de vous distraire par chaque nouveau concept et de vous demander si vous devez le comprendre ou non.
C'est comme ça que ça me faisait, de toute façon, et je suis à peu près aussi mal conçu pour la programmation que possible. J'ai sucé les mathématiques à l'école, j'ai étudié l'histoire et la littérature anglaise à l'université, j'écris pour vivre, j'étudie le japonais comme un passe-temps, et jusqu'à récemment, je n'avais même jamais possédé de PC de bureau – et pourtant ça va bien. Si je peux le faire alors, honnêtement, n'importe qui le peut.








