Guide pour apprendre à coder en autonomie étape par étape - Quand on veut apprendre l'informatique, on se retrouve devant deux problèmes : un embarras du choix qui décontenance, ou des formations en ligne avec des projets pas intéressants.
1. 👽 L'avis des développeurs et l'analyse des problèmes d'apprentissage ?
Avez-vous déjà essayé de demander à des dévs comment apprendre à coder ? En général les réponses ressemblent à ça :
Fais l'école 42 pendant 2 ans
Surtout, n'apprends pas [tel langage], car il est en perte de vitesse !
On s'en fout du langage, ce qui compte c'est d'apprendre
Le langage le plus hype du moment c'est JavaScript, commence par JavaScript
Prends un bouquin à la biblio et commence par la théorie
Avance en faisant des projets concrets
La même question, tout le monde a une réponse différente. Comment faire ? 😱
1.1. 😍 Apprendre à coder : cette découverte magique
Je me souviens la première fois que j'ai vraiment appris à coder. L'univers de l'informatique était pour moi un brouillard nébuleux et j'avançais à tâtons.
Petit à petit le brouillard s'éclaircissait : quelle joie de rencontrer tous ces outils et d'enfin passer de l'autre côté du code ! On se retrouve devant l'éditeur de texte, à se battre contre des points-virgules oubliés, parfois en perdant des heures sur un programme qui ne veut pas marcher 😏
Mais des fois notre programme marche. Des fois on comprend enfin ce que tel concept qu'on a entendu plein de fois avant veut dire. Et à ce moment, nous sommes invulnérables.
Je me suis dit que j'allais créer une ressource gratuite qui essaierait de reproduire au maximum l'émulation de l'apprentissage du code. La joie de la découverte, mais aussi ses galères et les joies immenses qui en décousent 🥰
Quand on veut apprendre l'informatique sans s'impliquer dans une grosse formation, on se retrouve devant deux problèmes : un embarras du choix qui décontenance, ou des formations en ligne avec des projets pas intéressants.
1.2. 📬📬📬 Problème 1 : l'embarras du choix
Lorsque vous demandez à des dévs comment apprendre à coder, vous vous retrouvez avec autant de pistes différentes que de réponses.
Si vous regardez ou écoutez des témoignages, vous aurez une foultitude de conseils impossibles à suivre. Il faut commencer par tel langage, surtout ne pas commencer par tel langage, apprendre de cette façon. On s'y perd 😬
Lorsque vous demandez à Google comment apprendre à coder, vous vous retrouvez avec des articles ayant gagné la guerre du SEO. Ces articles sont en général des listes remplies de ressources sur comment apprendre à coder parlant des sempiternels Udemy, Openclassrooms, Codecademy et j'en passe.
Bref, tout cela pour dire que vous avez l'embarras du choix. Vous passez plus de temps à concevoir un programme d'apprentissage qu'à le réaliser. Votre apprentissage ne commence jamais 😪
Et si jamais vous avez réussi à concevoir votre parcours, ce dernier n'est pas allé bien loin : les projets sont nuls et n'arrivent généralement pas à reproduire ce sentiment si spécial quand on touche au code.
1.3. 👎 Problème 2 : les projets sont nuls !
J'imagine que si vous lisez cet article, c'est que vous avez déjà essayé un cours en ligne à l'informatique. J'imagine que vous avez aussi dû vous dire que ce n'est pas fameux.
Vous avez dû vous retrouver face à deux ou trois cas :
L'exercice est trop vague. (ex.: "faites n'importe quelle page web, vous avez toute la liberté du monde"). Votre objectif est d'apprendre le code, pas de faire le boulot du prof. Vous passez plus de temps à imaginer ce qu'il faut faire plutôt que de faire. Vous ne savez pas par où commencer et vous avez le syndrome de la page blanche 🤔
Le syndrome CodeCademy : vous avez fait un cours dans leur outil en ligne de console en faisant des trucs inutiles (ex.: compter jusqu'à 10), puis on vous a donné la certification. Maintenant vous ne savez pas comment faire un programme pratique (ex.: un générateur de playlists Spotify) 😅
Les tutos pas-à-pas : vous avez suivi le tuto d'une personne qui fait un site web par exemple une boutique de montres. Le tuto est bien fait, mais vous ne sauriez pas reproduire à votre sauce, en faisant une boutique de livres. C'est juste un pas-à-pas qui n'explique pas ce qui se cache derrière ! 🤯
1.4. 👋 Une autre approche
Laissez-moi vous proposer une autre méthodologie : la méthodologie des projets complexes, mais réalisables et concrets. Nous vous donnons des ressources (ex.: CodeCademy Python), puis des exemples de projets concrets (ex.: un bot Discord).
Ça vous tente ? Alors, allons-y !
2. 📝 Notre méthodologie d'apprentissage du code en autodidacte
2.1. 🙇♂️ Ma mission : vous faire découvrir différentes facettes de l'informatique
Dans cet article, je vais vous donner un parcours pour que vous puissiez découvrir réellement l'informatique.
L'objectif est de vous donner les sensations évoquées plus haut via des projets. Ces projets ne seront pas faciles, mais c'est cette adversité qui vous donnera les sensations de l'informatique 💪
C'est une excellente introduction à l'informatique et vous saurez si vous aimez ce domaine avant de vous lancer dans des études plus sérieuses.
Vous ferez des projets dans différents champs d'action :
- le front avec HTML / CSS 🪄
- les outils de ligne de commande et Git 🏗️
- des petits programmes de scripting avec Ruby / Python 💻
- un peu plus de front avec JavaScript 💫
- découverte de l'univers de la data et des bases de données 📊
- des pistes pour aller plus loin ➡️
Cet éventail qui se veut global vous donnera différentes facettes de l'informatique. Vous pourrez piocher dans ce qui vous fait plaisir à partir de là !
2.2. 🔧 Méthodologie
J'aime fonctionner par la technique du projet concret. C'est gratifiant, challengeant, et on apprend plus par la pratique passionnée que par un vieux tuto trouvé sur les internet.
Nous allons vous donner une liste de ressources que l'on aime bien (ex.: un tuto Codecademy). Ces ressources sont sélectionnées par nos soins lors de nos recherches et sont pour la majorité accessibles gratuitement. Puis nous vous donnerons des projets concrets pour mettre en pratique ces ressources 🧰
Je ne vous le cache pas : contrairement à un tuto YouTube qui fait vous sentir bien mais qui n'enseigne rien, vous allez devoir travailler. Votre cerveau va chauffer et vous aurez des moments de blocage. Vous douterez. Mais les exercices sont réalisables et à la fin vous aurez la meilleure des récompenses : le sentiment d'avoir appris réellement quelque chose et d'avoir dompté le code.
Et qui sait, si vous avez adoré vous battre contre un ordinateur récalcitrant, peut-être que vous allez découvrir une nouvelle carrière !
2.3. 🔑 Principes clés
Afin d'attaquer ce parcours, voici quelques principes clés :
2.3.1. 🤔 Curiosité et exploration...
Nous encourageons vivement les gens à explorer de nouvelles choses. Le code est avant tout un outil au service des dévs et non pas l'inverse.
Si le projet Google est trop barbant, car vous détestez Google, faites une autre page !
2.3.2. 🗺️ ...Mais ne pas se perdre
Attention : il est facile de se dire "de toute façon tel langage ne m'intéresse pas" en plein milieu d'un exercice et de repartir à 0 en passant à un autre langage.
On s'en fout des moyens, la fin est : découvrir les fondamentaux de l'informatique.
Évitez de partir dans tous les sens et suivez ce programme. Sinon vous allez perdre la motivation et arrêter.
2.3.3. ⌛ Ne pas s'attarder sur la théorie
L'école traditionnelle dit qu'il est important de tout connaître par cœur avant d'aller plus loin.
Le monde du travail n'est pas de cet avis : les meilleurs profils sont les personnes qui expérimentent, agissent et apprennent sur le tas.
Vous connaissez le pire ? C'est que quand quelqu'un fait quelque chose à la lettre et essaie de tout apprendre par cœur avant de comprendre, on dit que cette personne est trop scolaire !
Ne soyez pas scolaire, pas besoin d'apprendre par cœur. Moi même je ne sais pas ordonner des nombres en informatique et pour le savoir je fais une recherche Google (et beaucoup de dévs vous diront la même chose).
La pratique est la meilleure façon d'apprendre.
Ne soyez pas scolaire.
2.3.4. 😅 Google est votre meilleur ami
Un problème, un blocage ? Googlez ! Des millions de dévs en herbes sont passés avant vous et ont eu vos mêmes problèmes.
Une simple recherche Google vous débloquera la majorité du temps.
C'est d'ailleurs une blague récurrente chez les dévs : la majorité considère que leur travail est de faire des recherches Google pour se débloquer sur des bugs.
Un peu comme vous pendant ce mini-parcours 🙃
3. 🔖 Sommaire du parcours
Voici ce que nous vous avons concocté avec amour ❤️
3.1. 📔 Prérequis
Le programme n'a pas de prérequis, tout le monde peut y participer. C'est plus sympa de le faire à plusieurs donc n'hésitez pas à vous chauffer entre potes et le faire au même rythme !
On vous demandera simplement d'avoir :
- un ordinateur.. 🖥️
- ..relié à Internet ⚡
- savoir faire des recherches Google 🔎 (vous en aurez besoin)
- comprendre les bases de l'anglais, ou ne pas avoir peur d'utiliser un outil de traduction automatique (on conseille Deepl) 🇬🇧
3.2. 🪄 HTML CSS - 20h
HTML et CSS sont deux langages informatiques qui permettent de faire des pages web. Ils sont extrêmement bien pour commencer l'informatique puisque chaque ligne de code que vous ferez est très visuelle.
Le projet sera de réaliser une page web du plus gros site mondial. Oui, vous en serez capables. Non, ce ne sera pas facile 😱
3.3. 🕵️♀️ Command line - 5h
Que serait un apprentissage à l'informatique sans utiliser l'écran noir des hackeurs ? Nous allons vous montrer le terminal, un outil qui fait peur, mais qui est très sympathique.
Le projet sera d'utiliser le terminal pour créer votre dossier de travail et d'installer des logiciels de pro.
3.4. 🏗️ Git & GitHub - 5h
Git et GitHub sont deux outils extrêmement utilisés dans le monde de l'informatique qui permettent de faire du contrôle de version.
Le projet sera d'utiliser GitHub pour mettre en ligne le projet précédent. Comment votre grand-mère saura que vous êtes pro de l'informatique si le projet n'est pas en ligne ? 😉
3.5. ⌨️ Programming - 40h
Ce sera la partie intense de la formation : la programmation informatique, les bugs, les prises de tête sur des programmes qui ne veulent pas marcher, la joie que ce programme marche finalement.
Malheureusement, comme dit l'adage : "si vous voulez faire un programme qui envoie automatiquement 100 emails, il faut d'abord créer un programme qui compte jusqu'à 100" 💯
Si vous voulez faire un programme qui envoie automatiquement 100 emails, il faut d'abord créer un programme qui compte jusqu'à 100
Les projets seront donc une liste de petits exercices informatiques qui vont vous faire compter jusqu'à 100. Ce sera pas très gratifiant, car vous aurez l'impression de faire des trucs inutiles. La bonne nouvelle est que nous augmenterons la difficulté jusqu'à arriver à un certain point où l'on pourra vous donner des exemples de projets concrets.
3.6. 📊 Bases de données - 10h
Qu'est-ce que serait l'informatique sans les Bases de Données ? Nous allons voir ensemble qu'est-ce qui se cache derrière ce gros mot.
Pour le projet vous prendrez le rôle de Data Analyst et l'on vous donnera une base de données que vous devriez explorer et analyser, comme dans la vraie vie !
3.7. 🔮 JavaScript - 20h
JavaScript, le fameux langage dont tout le monde parle dans le web. Nous allons vous montrer ce langage qui permet d'animer des pages web.
Le projet sera de créer une petite boite à rythme en JavaScript.
3.8. 🤖 Linux - 5h
Dernière étape dans votre parcours : Linux. Linux est un système d'exploitation (comme macOS et Windows) très plébiscité par l'univers des dévs.
Projet : installer Linux en Dual Boot sur votre ordinateur.
3.9. 💸 Après ?
On vous donnera des pistes pour aller plus loin :)
Projet : décider de continuer d'apprendre l'informatique et/ou paramétrer ses outils de veille du numérique.
4. 💪 Le parcours
4.1. 🪄 HTML CSS
Dans ce premier projet, vous allez voir HTML et CSS, deux langages qui vous permettront de faire votre première page web.
4.1.1. 📝 Projet
Voici le projet : votre mission est de recréer la page d'accueil de Google en HTML et CSS.
Ce site mondialement connu est à votre portée ! Bon, ça a l'air simple comme ça, mais en vrai ça va vous prendre du temps de la réaliser 😅
L'objectif n'est pas de reproduire au quart de poil près, mais d'avoir une page qui ressemble à s'y méprendre avec l'originale. Pas besoin non plus de faire les animations : vous en ferez plus tard avec JavaScript
4.1.2. 📚 Ressources
Pour les ressources, voici ce que nous proposons. Il y a 3 choix :)
Évidemment, vous n'avez pas à tout faire. On conseille de consacrer 5-6 heures à la découverte de HTML / CSS puis de bucher sur le projet.
4.1.2.1. 🐴 Openclassrooms
Le cours HTML / CSS d'OpenClassrooms est une légende dans le monde de l'apprentissage de l'informatique. Bien que beaucoup de monde trouve les projets barbants (faire un CV en HTML / CSS ? Sérieusement ?), nous étions obligés de le mettre en ressource tellement de dévs aujourd'hui ont parcouru ce cours et ont de l'affection pour Zozor. Parcourez ce cours sans faire les exercices jusqu'à la partie Faites votre mise en page avec Flexbox.
4.1.2.2. 📼 FromScratch
Si vous préférez le format vidéo, j'aime bien la chaîne d'Az de FromScratch qui explique en 3h les bases de HTML et CSS. Vidéo sur le HTML, vidéo sur le CSS.
4.1.2.3. 📔 Learn to code HTML CSS
Enfin, j'aime bien aussi le site de Shay Howe qui donne un tutoriel pas à pas sur HTML et CSS. Suivez-le jusque-là partie 6 : Working with Typography
4.1.3. ⚙️ Rappel de la méthodologie
Notre méthodologie consiste à vous faire bûcher sur des projets, pas besoin de tout connaître par cœur, il existe d'ailleurs des tonnes de Cheat Sheet qui recensent les cours vus plus haut.
Dans les projets, vous aurez des points de blocage et/ou vous vous demanderez comment faire telle ou telle chose. On ne le répètera jamais assez : Google est votre ami. Si pendant les cours votre prof vous disait qu'il faut tout connaitre par cœur et pas le droit à Internet, dans la vraie vie il en est tout autrement 🎒
Vous ne savez pas comment centrer un div
? Rentrez dans Google html how to center a div
et à vous la gloire !
4.2. 🕵️♂️ Command line
Le terminal est le fameux écran noir des hackers. Dans ce cours, nous allons vous montrer à quoi il sert et comment s'en servir.
Pas la peine de tout connaitre par cœur : on conseille de consacrer 2-3h aux cours puis d'aller directement au projet.
4.2.1. 📝 Projet
Voici le projet : avec l'outil du terminal, créez un dossier contenant vos différents projets pour ce mini-parcours.
Le projet doit ressembler à quelque chose comme ça :
4.2.2. 📚 Ressources
Voici quelques ressources qui expliquent comment se servir du terminal.
Si jamais vous utilisez Windows, nous vous recommandons d'installer Git pour Windows et d'utiliser le Git Bash : pour l'usage que nous allons faire du terminal, cela sera amplement suffisant 😊
Si jamais vous êtes sur macOS, vous avez juste à ouvrir l'application Terminal. Si jamais vous trouvez la couleur trop blanche, il est possible de la changer dans "Préférences".
4.2.2.1. 📚 Cours officiel Ubuntu
L'organisation qui gère Ubuntu, la plus célèbre des distributions Linux a sorti un tutoriel pour le terminal qui explique c'est quoi ainsi que les commandes de base.
Ils disent que leur tutoriel a besoin d'Ubuntu, mais toutes les commandes qu'ils donnent sont compatibles avec Git Bash / le terminal macOS.
Vous pouvez suivre le tutoriel jusqu'à la partie 5 (Moving and manipulating files).
Si le tutoriel vous demande d'ouvir Ubuntu pour lancer votre terminal, vous avez juste à lancer Git Bash / le terminal macOS.
4.2.2.2. 📼 Une vidéo faite par moi
J'ai réalisé une vidéo tutorielle pour notre formation à l'informatique.
Cette vidéo donne les bases du terminal en une vingtaine de minutes.
4.2.2.3. 🔨 Linux Journey
Le site LinuxJourney est un super site qui explique de manière interactive Linux. C'est très avancé comme niveau, mais pour les personnes qui veulent lancer leurs serveurs Linux je recommande :)
Bref, le site a un tutoriel qui explique les bases du Terminal que je recommande.
Vous n'avez qu'à le suivre jusqu'à la partie 13 (rm - Remove) et vous aurez le niveau de faire le projet.
4.3. 🏗️ Git & GitHub
Git et GitHub sont des outils extrêmement utilisés par les dévs. Ils permettent en gros de travailler à plusieurs sur des dossiers contenant des fichiers.
Dans ce projet, nous allons vous demander de mettre en ligne votre projet Google sur GitHub.
4.3.1. 📝 Projet
Mettez votre projet dans un repository sur GitHub.
Partie optionnelle : mettre en ligne son projet sur GitHub pages, un puissant outil qui permet de mettre son projet en ligne.
4.3.2. 📚 Ressources
Voici quelques ressources qui peuvent servir d'introduction à Git.
4.3.2.1. 🔖 Un tutoriel
Vous pourrez trouver ce tutoriel par Maxime Jumelle qui explique les bases de Git.
4.3.2.2. 📼 Vidéo explicative
J'aime beaucoup cette vidéo de Sébastien Saulnier qui explique Git et GitHub en 1h30.
4.3.2.3. 🕹️ Jeu vidéo
Pour les personnes qui aiment bien apprendre en s'amusant, il existe un jeu vidéo gratuit et open source pour apprendre Git 🕹️
4.4. 💻 Programming
Nous arrivons dans le dur du dur : la programmation. Durant cette partie, vous allez devoir faire des petits programmes informatiques. Ce ne sera pas aisé. Nous avons prévu d'augmenter la difficulté et de finir avec des programmes concrets.
4.4.1. 🤔 Quel langage ?
Vous avez pu rencontrer des gazillions de vidéos qui vous disent de commencer par [tel langage], car il recrute plus que [tel autre langage] avec un concours de bite digne des plus gros championnats de tuning sur telle ou telle pertinence du langage. Le pire est de perdre plus de temps à lire des articles de Jean-Michel CodeurDuDimanche qui vous dit "blabla tel langage recrute blabla 75% du web en PHP blabla" qu'à apprendre à coder.
Notre politique sera donc : OSEF du langage, faîtes les projets. Vous pourrez toujours changer en cours de route. Le plus important est de mettre le pied à l'étrier et de faire ses premiers programmes 📈
Nos projets sont faisables en C, en Python en PHP, en Java, en JavaScript, voire même en binaire 0️⃣1️⃣
Cependant, si vous ne savez pas par quoi commencer, nous recommandons 2 langages qui sont très puissants pour faire nos programmes de scripting et sont idéaux quand on démarre l'informatique : Python ou Ruby.
4.4.2. 📝 Projet
Voici les projets. Ce sera coupé en 2 parties : une partie avec des petits exercices, une autre avec des programmes plus concrets.
4.4.2.1. ✏️ Des petits exercices
Nous allons commencer par une suite d'exercices inspirée de Simple Programming Problems, un excellent concept d'Adrian Neumann : donner une suite d'exercices pour apprendre la programmation.
4.4.2.1.1. 👋 Bonjour monde
Créez un programme qui affiche "Bonjour, monde !".
4.4.2.1.2. 🌊 Un programme qui dit bonjour
Écrivez un programme qui demande le prénom de l'utilisateur, et qui salue l'utilisateur avec "Bonjour, prénom !"
4.4.2.1.3. 🎂 Un programme qui calcule des âges
Écrivez un programme qui demande son année de naissance à l'utilisateur, puis qui ressort l'âge que l'utilisateur a eu en 2021.
4.4.2.1.4. 🧓 Un programme centenaire
Écrivez un programme qui demande son année de naissance à l'utilisateur, puis qui ressort l'année où l'utilisateur aura 100 ans.
4.4.2.1.5. 🗣️ Un programme qui répète
Écrivez un programme qui demande un nombre à l'utilisateur, puis qui écrit autant de fois "Salut, ça farte ?"
4.4.2.1.6. 🗣️ 🗣️ Un programme qui répète (bis)
Écrivez un programme qui demande un nombre à un utilisateur, puis qui écrit autant de fois -1 "Bonjour toi !". Ainsi, si l'utilisateur rentre 10, le programme devra écrire 9 fois "Bonjour toi !"
4.4.2.1.7. 💯 Compter
Écrivez un programme qui demande un nombre à l'utilisateur, puis qui compte jusqu'à ce nombre.
4.4.2.1.8. ⏳ Compte à rebours
Écrivez un programme qui demande un nombre à l'utilisateur, puis qui affiche un compte à rebours à partir de ce nombre, jusqu'à 0.
4.4.2.1.9. 📅 Afficher les années
Écrivez un programme qui demande son année de naissance à l'utilisateur, puis qui va ressortir chaque année depuis son année de naissance jusqu'aujourd'hui.
4.4.2.1.10. 🎂 Afficher tous les âges
Écrivez un programme qui demande son année de naissance à l'utilisateur et qui va afficher chaque année depuis son année de naissance jusqu'aujourd'hui. Pour chaque année affichée, le programme devra annoncer l'âge que l'utilisateur avait cette année-là.
4.4.2.1.11. 🎁 Virer les années
Le programme précédent est cool, mais on peut l'améliorer. Écrivez un programme qui va demander son âge à l'utilisateur, et qui, pour chaque année depuis sa naissance, dira "Il y a X ans, tu avais Y ans".
4.4.2.1.12. 🤔 Annoncer l'âge, option BG
Écrivez un programme qui va faire la même chose, sauf que si X et Y sont égaux, il dira "Il y a n ans, tu avais la moitié de l'âge que tu as aujourd'hui".
4.4.2.1.13. ✉️ Une liste d'email
Écrivez un programme qui va créer une liste de 50 faux emails et les stocker dans une array. Voici le format que devront avoir les faux emails :
4.4.2.1.14. 📨 Afficher les bons emails
Prenez le programme précédent et créez un programme qui va reprendre l'array des emails créés, et n'afficher que les emails avec un nombre pair.
4.4.2.1.15. 🇪🇬 La pyramide
Construisez un programme qui va demander à l'utilisateur un nombre entre 1 et 25 et qui va sortir une pyramide à descendre d'autant d'étages que ce nombre. Voici un exemple :
4.4.2.1.16. 🙃 La pyramide, dans l'autre sens
Reprenez le programme précédent et faites un programme qui montera au lieu de descendre :
Bien que légèrement différent dans l'énoncé, ce programme est bien plus dur que le précédent, donc c'est normal de devoir réfléchir à comment le faire 😎
4.4.2.1.17. 😱 La pyramide, version expert
Créez un programme qui va demander à l'utilisateur un nombre entre 1 et 25 et qui va sortir une pyramide qui monte et qui descend, comme montré ci-dessous :
4.4.2.2. 🤖 Des programmes concrets
Pour la seconde partie, nous avons prévu des programmes plus concrets. Nous essaierons de vous donner quelques énoncés, puis nous vous laisserons faire (ou pas !) ceux qui vous semblent les plus intéressants.
L'objectif étant de vous montrer qu'avec un peu de recherche, vous êtes capables de réaliser ce genre de programme.
4.4.2.2.1. ⭐ Générateur de mots de passe
La meilleure façon de se protéger contre les fuites de mots de passe est d'avoir pour chaque site un mot de passe généré de manière complètement aléatoire.
Dans ce projet, nous allons donc vous demander de faire un programme qui génère un mot de passe complètement aléatoire.
Le programme va générer une suite de caractères. Voici les spécificités :
- la suite aura entre 10 et 20 caractères
- elle devra être aléatoire
- il doit y avoir au moins une lettre en majuscule
- il doit y avoir au moins un chiffre
- il doit y avoir au moins un caractère spécial
4.4.2.2.2. 🤖 Bot Discord
Nous allons faire un bot Discord. Vous avez un serveur Discord dans lequel vous avez différents types de membres qui viennent d'invitations différentes. Vous aimeriez donc faire un système simple : quand une personne envoie un code secret à votre bot, cette personne recevra un rôle spécifique.
Par exemple, si quelqu'un utilise le code kickstarter_2023_top_tier
en l'envoyant en message privé au bot, cette personne recevra automatiquement le rôle Membre top tier
.
Nous vous conseillons de suivre l'un des nombreux tutos existants à ce sujet puis de l'adapter à votre sauce.
4.4.2.2.3. ⏬ Scrapper le web
Avec l'informatique, il est facile d'automatiser des tâches simples, comme par exemple récupérer des données en masse sur des sites web. Cela'appelle le scrapping.
Le site Annuaire des mairies recense les adresses email des mairies de France 🌃
Votre mission est d'écrire un programme qui vé récupérer tous les emails des mairies de Gironde.
4.4.3. 📚 Ressources
Pour les ressources, nous avons pris des ressources qui montrent les bases de l'informatique avec une approche "programmes automatisés"
4.4.3.1. 🙀 Learn the Hard way
Zed Shaw a sorti une série de livres intitulés "Learn XX the hard way".
OK, le nom fait peur, mais en vrai c'est une excellente ressource pour apprendre les langages concernés : avec une approche interactive et à difficulté progressive, vous allez prendre du niveau sans même vous en rendre compte 😺
Il existe une version Python (Learn Python the Hard Way) et une version Ruby (Learn Ruby the Hard Way). Je vous recommande les deux sans hésiter.
4.4.3.2. 😆 Automate boring stuff with Python
Al Sweigart a sorti un livre avec un titre très vendeur : Automate Boring Stuff with Python. Comme son titre l'indique, le livre vous donnera des bases en informatique avant de vous faire faire des programmes qui demandent de remplir automatiquement un Excel, de scrapper le web, ou encore de faire une recherche Google à partir d'un programme Python. C'est une excellente ressource pour apprendre l'informatique 🐍
SI vous cherchez l'équivalent Ruby, vous le trouverez dans The Bastards Book of Ruby, un site animé par Dan Nguyen où il donne des tutos qui lui ont servi à faire des programmes pour ses enquêtes journalistiques (pour scrapper les données web comme un fifou 💁♀️). Le hic est que cela a tellement bien marché qu'il est parti en 2015 à l'Université de Stanford monter la chaire en Journalisme Informatique en mentionnant qu'il ne sera plus proactif sur les tutos proposés.
4.5. 📊 Bases de données
4.5.1. 📝 Projet
Dans cet exercice, nous allons vous demander de récupérer une base de données existante, et de faire des requêtes SQL dedans, afin de récupérer les datas qui nous intéressent. Nous allons travailler sur le fichier suivant, qui contient la BDD complète pour faire les requêtes. Pour faire les requêtes, vous pouvez utiliser par exemple l'outil SQLite3
Je vais vous demander de retrouver les informations suivantes dans la BDD que vous avez téléchargée. Il faudra rédiger les requêtes en langage SQL 😏
Rédigez les requêtes SQL ayant les fonctionnalités ci-dessous. Consignes importantes : la requête doit se faire en une seule ligne de SQL et ne doit pas s'appuyer sur d'autres requêtes (notamment pas les requêtes précédentes).
- Récupérer tous les albums
- Récupérer tous les albums dont le titre contient "Great" (indice)
- Donner le nombre total d'albums contenus dans la base (sans regarder les id bien sûr)
- Supprimer tous les albums dont le nom contient "music"
- Récupérer tous les albums écrits par AC/DC
- Récupérer tous les titres des albums de AC/DC
- Récupérer la liste des titres de l'album "Let There Be Rock"
- Afficher le prix de cet album ainsi que sa durée totale
- Afficher le coût de l'intégralité de la discographie de "Deep Purple"
- Créer l'album de ton artiste favori en base, en renseignant correctement les trois tables albums, artists et tracks
4.5.2. 📚 Ressources
4.5.2.1. 🎓 Khan Academy
J'aime beaucoup le tutoriel de SQL de Khan Academy qui explique les bases d'une base de données relationnelle en 1 heure. Un fondamental pour découvrir l'univers de la base de données.
4.5.2.2. 📖 SQLBolt
SQLBolt est un super site qui permet d'apprendre le SQL de manière interactive.
4.6. 🔮 JavaScript
On est presque sur la fin. Pour cet avant-dernier projet, nous vous proposons de manipuler JavaScript, un langage primordial quand on fait du web.
4.6.1. 📝 Projet
Le projet sera simple. Je vais vous donner JavaScript30, un site composé de 30 projets pour apprendre le JavaScript.
Votre projet sera de réaliser le premier projet : JavaScript Drum Kit.
4.6.2. 📚 Ressources
4.6.2.1. 📖 Wes Bos
Wes Bos est un formateur en JavaScript. Il a donné un cours de JavaScript qui est un peu exhaustif, mais très bien pour commencer.
Vous pouvez le faire jusqu'au module 9 - Loops.
4.6.2.2. 📚 JavaScript.info
JavaScript.info est une fantastique ressource pour apprendre le JavaScript moderne.
Pour faire le projet, vous pouvez faire les parties :
- dans le module The JavaScript language :
- dans le module Browser: Document, Events, Interfaces :
4.7. 🖥️ Linux
Ce dernier projet vous demandera de faire un tour dans Linux, un système d'exploitation hyper connu dans le monde des dévs.
L'objectif est que vous puissiez avoir un aperçu des entrailles d'un ordinateur.
4.7.1. 📝 Projet
Le projet est très simple : installez Linux sur votre ordinateur.
Vous pouvez le faire en Dual Boot ou (plus simple) en machine virtuelle.
Nous vous recommandons de prendre la distribution Ubuntu, qui est la plus connue (et considérée par beaucoup comme l'une des meilleures).
4.7.2. 📚 Ressources
4.7.2.1. 📼 Quelques vidéos
J'aime bien cette vidéo qui explique qu'est-ce que Linux de manière simple avec des exemples.
Ensuite je vous propose :
- ce tutoriel qui explique comment installer Linux sur une machine virtuelle
- ce tutoriel qui explique comment installer Linux sur un dual boot
4.8. 🔥 La suite ?
Et voilà ! En environ 100 heures de travail acharné, vous avez pu avoir un joli aperçu de l'informatique. J'espère que vus avez apprécié et que cet univers est moins nébuleux qu'à l'entrée 😊
Nous allons finir l'article par des propositions pour aller plus loin.
4.8.1. 📰 Se tenir au courant des actualités
Déjà, on vous recommande de suivre les actualités informatiques pour être au top du game.
Vous pouvez commencer par les sites de blagues de dév que vous pouvez enfin comprendre : les joies du code ou /r/ProgrammerHumor sont d'excellents sites pour rigoler sur l'univers du dév 😄
Ensuite, pour les actualités informatiques, j'aime beaucoup la chaine de Micode qui vulgarise avec brio l'informatique.
The Hacking Project tient une newsletter quinzomadaire qui parle des actualités de l'univers Tech. Vous pouvez voir les anciens épisodes et vous y inscrire ici.
4.8.2. 💰 Aller plus loin dans l'informatique
Vous avez adoré l'informatique et vous voulez aller plus loin ? J'ai ce qu'il vous faut.
Voici des formations que l'on recommande si vous voulez aller plus loin :
Si vous êtes du genre à travailler en solo en suivant un programme souple et malléable, Developer Roadmaps est un excellent site qui propose des cartes de route éducatives avec des ressources. Ça manque cruellement de projets, mais si vous avez la rigueur de faire des projets, c'est une très bonne solution 📚
Si vous voulez plonger dans l'ingénierie informatique et la théorie avant d'aller potentiellement plus loin, je ne peux que recommander l'excellent cours cs50 de l'université de Harvard : avec des projets et un programme robuste, il vous donnera des fondements solides dans la théorie informatique puis ira plus loin dans le web. Ce qu'aurait dû être la piscine de 42, en quelque sorte !
Si vous en avez marre d'apprendre en solo, vous pouvez faire les formations de The Hacking Project, qui propose des parcours avec un système de projets / ressources et une communauté en béton armé pour s'entraider dans les moments difficiles 🥰