Bienvenue à la semaine 0 de code

Your first 30 hours of code

Ah le code, un univers merveilleux plein de bonnes surprises. Le découvrir pour la première fois c'est s'aventurer dans les eaux inconnues tel un Christophe Colomb des temps modernes. Le soucis est que dans l'ignorance, on ne sait pas trop par où commencer, et le nombre de résultats Google différents pour "Apprendre à coder" nous laisse plus que dans le désarroi. Heureusement, à The Hacking Project nous voulons être exhaustifs tout en étant le plus introductif plossible.

Nous avons donc créé un programme d'une semaine qui donne des bases en informatique, et qui permettront de découvrir cet univers merveilleux. Tu verras ainsi le fameux écran noir du terminal, les outils de pros tels que Git et Github, tu feras tes premiers sites web, et des petits programmes qui te simplifieront la vie de tous les jours.

Prêt ? En avant !

Déroulé

1. Le programme complet

1.0. Avant la semaine : installations

Comme tu pourras le voir dans la seconde partie, tu devras te procurer le matériel de la formation. La durée de cet élément est très aléatoire, nous ne le compterons donc pas dans le temps compté de la semaine 0.

Voici un aperçu de l'amplitude du temps des installations :

  • 0mn pour une personne disposant d'un ordinateur compatible avant de commencer (OS à coeur Unix déjà installé)
  • 15mn pour une personne qui est très à l'aise avec l'environnement Linux et qui fait son installation sans problème
  • 10mn pour une personne qui décide d'acheter un ordinateur compatible avec la formation
  • Une demi-journée pour une personne qui découvre une installation Linux et qui n'a pas de soucis
  • Une journée pour une personne qui a un pépin de type "normal"
  • De plusieurs jours à une semaine pour la personne qui aura THE problème qui fait tout galérer (c'est rare, mais cela arrive)

Nous te conseillons de t'y préparer à l'avance, car il suffit que tu tombes sur un pépin de type "normal", et c'est une journée qui saute.

Pour information, Charles a récemment changé d'ordinateur. Comme cela faisait un an qu'il tournait sous Linux, il a bien entendu installé l'OS sur son nouvel ordinateur. Malgré le fait qu'il est très à l'aise avec les changements d'OS et qu'il a monté son ordinateur fixe tout seul, il a eu un problème de driver à l'installation qui lui a pris une bonne cinquantaine d'heures à résoudre.

Tu trouveras la procédure pour l'installation un peu plus bas dans le parcours.

1.1. Lundi

La journée de lundi sera consacrée à l'introduction au monde de l'informatique, avec notamment une visite dans le terminal, et Git/GitHub. Ainsi, tu découvriras l'univers du fameux écran noir, et tu auras obtenu des compétences du meilleur outil de gestion de projet au monde.

1.2. Mardi

Rien de tel que de faire sa première page web pour se mettre dans le bain du code. Ce jour là, nous allons te donner des cours de HTML / CSS, et tu pourras recréer une belle page web. Bonus : tu mettras cette page en ligne pour la faire profiter à tout le monde.

1.3. Mercredi

Et si tu reprenais ta belle page de mardi pour lui donner des animations avec JavaScipt ? Mercredi tu vas apprendre à donner un peu de peps à une page avec JavaScript.

1.4. Jeudi

Après avoir vu le front, tu vas plonger dans le backend, avec Ruby, un langage de programmation très célèbre. Tu découvriras l'univers des variables, des incrémentations, et des algorithmes conditionnels.

1.5. Vendredi

Vendredi tu vas continuer Ruby, pour être au top de la forme dans les langages de programmation, et nous allons te donner des petits programmes amusants à réaliser. Ainsi, avec ces notions acquises lors des deux premiers jours, tu commenceras à comprendre les bases du monde du code.

2. Durée estimée

La semaine 0 a une estimation de travail d'une semaine (sans compter les isntallations). Certains vont prendre mettre 20h, d'autres vont mettre 60h. La durée moyenne est une quarantaine d'heures. Le vendredi est la journée la plus longue.

La semaine 0 donne un aperçu du code de manière globale. Il y a des boucles, du front, de la recherche Google, du terminal, et bien d'autres. Elle permet de te donner une indication quant à ta capacité à t'intéresser à l'informatique. Sache que si tu mets plus de 70h pour la réaliser, il y a de grandes chances que l'univers du code n'est pas pour toi, et que tes chances de terminer une formation comme The Hacking Project proches du néant.

3. Notre méthodologie

Voici comment sera notre méthodologie : chaque jour nous allons te donner des ressources (vidéo, article, cours) que l'on considère comme bonnes. Nous essaierons de trouver un maximum de ressources différentes pour qu'il y en ait pour tous les goûts.
Les ressources serviront à réaliser des projets, qui te feront mettre les mains dans le cambouis. Nous avons remarqué que la meilleure façon d'apprendre est le Learning by Doing, donc nous avons fait en sorte que les projets prennent une grande partie du temps, et que tu trouveras dans les ressources l'apport théorique pour faire les projets. Notre recommandation est : ne passe pas trop de temps sur les ressources, mais consacre ton temps à faire les projets.

4. Conseils pour demander de l'aide

4.1. Fais la semaine de préparation avec un ami

Faire ce parcours avec des amis est bien plus convivial : déjà ces compétences sont indispensables aujourd'hui, de plus vous serez à plusieurs à vous pencher sur les problèmes.

4.2. Google est ton ami

Chercher l'information est une compétence extrêmement importante au XXIème siècle. Sache que quand tu seras bloqué, Google aura la solution à ton problème 😉

Alerte bonne astuce : quand tu fais une recherche Google, tu trouveras beaucoup plus d'informations et de réponses à tes problèmes en faisant la recherche en anglais.

4.3. La communauté

Tu pourras demander à la communauté sur Facebook si tu as des questions.

Savoir demander de l'aide est une compétence très importante. Arriver avec un message du genre "mon code il marche pas" et bien on ne pourra pas t'aider. Voici ce qu'il faut faire pour demander de l'aide :

  • Dire ce que tu comptes faire avec ton code
  • Dire l'erreur que tu as avec ton code. Pour avoir un format visible de l'erreur, tu peux passer par Gist
  • Dire ce que tu as tenté jusqu'à présent. Une personne qui arrive et qui dit "mon code marche, et le programme me donne l'erreur can't add integer to string", sans avoir cherché sur Google, ça ne donne pas envie d'aider
  • Copier-coller le code qui plante est aussi une bonne idée : sans celui-ci, dur de savoir ce qui ne va pas. Tu peux utiliser Gist pour avoir des blobs de code lisibles

Avant de commencer

Voici ce qu'il va te falloir avant de commencer cette semaine de préparation.

1. Un ordinateur portable

Pour une formation à l'informatique, il te faudra un ordinateur portable. C'est le prérequis.

Pour le hardware, et pour ceux qui se demandent : "j'ai [vieux_modèle], c'est assez puissant ?", sachez que Charles a fait la formation avec une pire bouse, achetée 150€ à l'arrache. Le processeur est tellement pourri que l'autocollant du processeur ne décrit pas le modèle, mais mentionne juste qu'il y a bien un processeur à l'intérieur. Donc à partir de là, nous pensons que tout modèle devrait faire l'affaire.

Enfin, pour le software, il faudra installer un OS à coeur Unix sur son ordinateur. Cela veut dire qu'il faut sur son ordinateur soit Linux, soit macOS.

Pourquoi pas Windows ? L'environnement Windows marche très mal avec l'environnement Rails, donc il faudra passer par un OS à coeur Unix. De plus, connaître Linux est un atout non négligeable quand on veut connaître l'univers des développeurs.

1.1. macOS

N'importe quel ordinateur Apple avec une version de OSX pas antérieure à 2011 fera l'affaire.

1.2. Linux

La bonne nouvelle est que Linux n'est pas si dur que cela à installer, et il y a plein de techniques différentes pour le faire. L'autre bonne nouvelle est que Linux est gratuit, donc avec un peu de bidouille, tu auras sûrement rien à dépenser. Enfin, la dernière bonne nouvelle est qu'il y a un petit côté explorateur en installant Linux sur son ordinateur : déjà le sentiment de liberté d'utiliser un nouveau système d'exploitation, de plus les joies de se sentir un Bill Gates des temps modernes et d'aller dans le BIOS de ton ordinateur pour lui mettre Linux. C'est un sentiment unique qui mérite les quelques manoeuvres à exécuter pour le faire.

Linux est un système d'exploitation créé en 1991 par Linus Torvald. C'est un système d'exploitation à coeur Unix, contrairement à Windows qui se base du MS-DOS. Tu pourras retrouver un peu plus d'informations sur Linux dans l'excellent cours de Mathieu Nebra à ce sujet.

Linux a plein de versions différentes, nommées distribution, qui ont chacune leur intérêt. Par exemple il existe des distributions idéales pour faire tourner des serveurs. Pour toi, nous te conseillons de passer par Ubuntu, ou Mint, excellentes distributions stables, modifiables, robustes, et très sécurisées.

Nous allons voir comment obtenir un ordinateur avec Linux.

1.2.1. Acheter un ordi avec Linux

Si tu penses que tu vas galérer, ne te prends pas la tête. Une simple recherche LeBonCoin "portable Linux" ou même sur CDiscount te fera trouver ton bonheur pour une ou deux petites centaines d'euros.

1.2.2. Le only boot

Cette technique consiste à tout virer sur l'ordinateur actuel que tu as, et de mettre Linux. C'est assez simple, puisque tu as plus ou moins juste à faire "oui je veux tout effacer pour y mettre Linux" et hop à toi la gloire. De plus, tu peux facilement acheter un ordi portable sur LeBonCoin, et tout effacer pour lui coller Linux.

Voici un tutoriel qui explique comment installer simplement Linux sur son ordinateur.
À un moment, le vidéaste dira qu'il faut graver Linux sur un CD (lol), et booter son ordinateur avec le CD. Puisque nous sommes en 2018, les graveurs sont passés de mode, et il est très facile de le faire avec une clé USB, voici un tuto qui permet d'avoir une clé USB bootable Linux. Puis il faut redémarrer son ordinateur pour qu'il utilise la clé USB, et non pas Windows, pour faire l'installation de Linux. Voici un tutoriel qui explique le démarrage du BIOS. Comme démarrer son ordinateur sur le BIOS est différent pour chaque carte mère (des fois c'est F2, des fois F8, etc), fais une recherche Google access bios [modèle_ordinateur] et tu devrais trouver la bonne combinaison.

1.2.3. Le dual boot

L'installation est assez similaire à celle où tu effaces tout. Elle consiste à avoir deux OS sur ton ordinateur : Windows, et le Linux que tu vas installer. Il te faudra diviser ton disque dur (ou SSD) en deux partitions : une pour Windows, et une pour Linux. Voici une vidéo tutoriel qui explique comment installer Linux en dual boot.

1.2.4. Autres

Il existe deux autres méthodes pour faire tourner Linux sur son ordinateur :

  • Une machine virtuelle : cette technique est déconseillée, étant donné qu'il n'y a pas de corsaires qui ont fini la formation avec leur machine virtuelle. La machine virtuelle est très gourmande et l'ordi ramera beaucoup trop
  • Windows Subsystem for Linux : c'est une bonne aternative, mais on ne la recommande pas aux grands débutants. Le manque d'interface graphique n'est pas très encourageant. Si tu ne connaissais pas WSL avant de lire ces lignes, on te conseille d'aller sur l'installation normale