Ce réflexe est relatif à THP et à notre pédagogie d'apprentissage. Les exercices sont parfois difficiles, c’est voulu par THP 😉 pour que vous vous dépassiez. Imagine-toi il y a une semaine tu ne savais pas ce qu’était un terminal et là tu écris du code ! Par exemple, les exercices d'hier (jeudi 9 avril) étaient hyper durs c'est incroyable que tu les aies faits ! Si THP vous propose des exercices aussi difficiles c'est dans un objectif de dépassement de soi, d'aller plus loin. THP c'est l'armée : faut se serrer les coudes et avancer ensemble, parce que tout seul ce sera dur. Ça vous force à vous impliquer dans la communauté.
Vous proposer des exercices à la frontière de l'impossible permet deux choses :
- de vous forcer à faire appel à la communauté et à vous serrer les coudes ensemble. Ainsi, sans avoir donné de cours à ce sujet, tout le monde hier s'est glissé le mot des Regex, solution très puissante pour l'exercice
- de vous donner un sentiment de puissance quand vous réussissez. Vous venez de faire l'impossible. Impossible qui a rebuté plus d'une personne qui diront "THP c'est pas fait pour les débutants en informatique". Et bien si, car tu l'as fait alors que tu débutes toi aussi ! Et tu peux être fier de toi !!
Ne commence pas à travailler avec ton éditeur de texte dans un coin de l'écran ou avec un bureau bordélique. Utilise l'environnement de travail qui te plait le mieux. Tu peux par exemple séparer ton écran en deux et avoir ton terminal à droite et ton code à gauche, ou vice-versa. Tu peux également utiliser des workspaces pour alterner directement entre ton navigateur et ton éditeur de texte, comme Grid Workspaces. Travaille efficacement avec un éditeur qui fait des arbres, avec des thèmes aux couleurs que tu aimes.
Voici les raccourcis claviers pour Sublime Text :
- Tab / Maj Tab : pour indenter et désindenter
- Shift + flèche : sélectionner des lignes (Control + L sur Visual Studio Code)
- Ctrl + L : sélectionner une ligne (Ctrl + C sur VSC)
- Ctrl + P : un finder pour naviguer rapidement entre les fichiers
- Control + Maj + flèche haut/bas : déplacer une ligne (ou plusieurs)
- Mettre plusieurs lignes en commentaire en sélectionnant les lignes puis MAJ + CTRL (CMD pour Mac) + /
C’est difficile, et parfois voulu par THP pour que tu te dépasses. Il y a une semaine tu ne savais pas ce qu’était un terminal et là tu écris du code ! L’important est de tout découper en petits bouts. Tout d'abord, au moment de lire l'exercice, dis-toi « c'est bon, je peux y arriver » (ça aide, promis !). Commence par comprendre ce que la consigne demande. Puis essaye d’identifier ce que tu veux faire. Par exemple dans les exercices d'hier : Combien y a-t'il de journalistes => combien il y a d'éléments dans cet array Et si tu galères, demande à la communauté, ou sur StackOverflow.
Mais Jamy, dis-moi, où puis-je faire mes recherches ?
Tu l'auras deviné, Google est ton ami ! Mais pour bien en profiter, il faut lui donner des mots clés.
Pour reprendre l'exemple de l'exercice des journalistes hier, et répondre à la question du nombre de journalistes je tape : "count elements array ruby". Je vois que y a un truc .count
qui existe et qui a l'air pas mal, je décide donc de le tester :
- Je tape irb dans mon terminal pour tester du code Ruby
- Je veux faire un array avec 1, 2, 3, 4 comme valeurs (juste pour tester)
- Je tape donc :
my_array = [1, 2, 3, 4]
my_array.count
=> 4
La fonction fait ce qui m'intéresse pour l'exercice. Maintenant, j'essaie de l'utiliser sur mon fichier de journalistes. Et paf : 379 journalistes, ça m'a l'air bien ! Youhou, tu as résolu la 1ère question !
Là ça a marché du premier coup, mais c'est rarement le cas. N'hésite pas à tester beaucoup de solutions pour voir ce qu'elles font et comment tu pourrais répondre à ton problème
Ecris en anglais dans tes codes, tes recherches, tes commentaires … et sans accent, car certains ordinateurs ne les reconnaissent pas. L’univers informatique est principalement anglophone. De même fais-tes recherches en anglais, tu auras beaucoup plus de réponses. Google is your friend !
Si tu arrives à coder 10 lignes sans erreurs, tu peux sortir le champagne parce que c'est très rare ! Ne baisse pas les bras, c’est parfaitement normal ! Le but du jeu, c’est d’apprendre à lire les erreurs et à les comprendre. Il faut bien vérifier les lignes d’erreur que le terminal renvoie. Aussi, mettre un max de puts
permet de faire apparaître les résultats, et ainsi d'identifier plus facilement d'où vient le bug.
Un bon programme doit être aéré et agréable à lire, pour que toi ou tes collègues puissiez le relire. Pense à bien indenter ton code (deux espaces dans Ruby), sans trop de sauts de lignes (une seule entre chaque méthode), ni trop de commentaires. N’utilise pas de variable globale dans ton code, ce n’est pas une bonne pratique et ça risque de faire bugger. Tes méthodes doivent faire un maximum de 10 lignes, elles doivent aller à l’essentiel, et tu dois les nommer de manière équivoque : au lieu de "method_1", préfère "journalists_names" par exemple.
- Tips: dans ton éditeur de code (avec Sublime ou VSC), en bas à droite il y a l’onglet « Spaces », choisis Indent using spaces ou +2 pour changer le type d’indentation
L’école traditionnelle nous a appris que pour un problème A, il y a une solution A. Mais dans la vraie vie, ça ne marche pas comme ça. Il n’y a que des choix qui impliquent des conséquences. La meilleure solution est celle qui fonctionne pour toi, et que tu comprends suffisamment.
Le pseudo-code, c’est ton code écrit littéralement en anglais. C’est très pratique pour décomposer ton programme, et ça permet de le traduire facilement dans le langage qui te convient (Java, Python …). L’informatique, c’est transformer du pseudo-code en code ! La méthode de décomposition du travail est donc la même systématiquement, et seul le langage diffère, ou presque.
Apprends les règles, comprends les règles, mais casse les règles ! Prends des libertés pour avancer ! Dans certaines entreprises, il existe par exemple des « guidelines » de syntaxe qui ne suivent pas forcément les règles officielles.
En liens, les guidelines officielles de Ruby, de Airbnb sous Ruby on Rails et de Shopify :