Comment apprendre le codage (et à partir de CS50x).

Dec 15 2022
Quelle est la meilleure façon d'apprendre à coder ? Comment dois-je m'y prendre pour tirer le meilleur parti des cours que je prends ? Cet article a une explication détaillée qui répondra à ces questions et plus encore ! Lorsque vous apprenez à coder, si vous débutez, vous aurez probablement quelques idées fausses. J'espère que les points de ces articles aideront à dissiper ces idées fausses et vous empêcheront de commettre les mêmes erreurs que moi.

Quelle est la meilleure façon d'apprendre à coder ? Comment dois-je m'y prendre pour tirer le meilleur parti des cours que je prends ? Cet article a une explication détaillée qui répondra à ces questions et plus encore !

Lorsque vous apprenez à coder, si vous débutez, vous aurez probablement quelques idées fausses. J'espère que les points de ces articles aideront à dissiper ces idées fausses et vous empêcheront de commettre les mêmes erreurs que moi.

I. Comment aborder l'apprentissage du code (et l'apprentissage du cours CS50x) :

1. Ne vous précipitez pas :

C'est peut-être le conseil le plus simple mais le plus crucial que je puisse donner aux apprenants.

Quand j'apprenais le C, comme la plupart des étudiants, j'étais compétitif. Je voulais être le premier parmi mes pairs et camarades à « terminer » le C. J'ai essayé d'accélérer les cours et de terminer les séries de problèmes dès que possible.

À la fin de la 3ème semaine de cours (en CS50x), je suis devenu frustré par mon incapacité à résoudre en douceur les problèmes posés en une heure (un objectif irréaliste). J'ai dû faire une pause pour me vider l'esprit et ne pas être poursuivi par l'objectif de « terminer » C dès que possible.

C'est plus tard, quand je m'y suis remis et que j'ai patiemment résolu le problème 4 (dans CS50x), que j'ai réalisé que je m'y prenais dans le mauvais sens.

Vous ne "complétez" pas le C ou tout autre langage de programmation comme vous le feriez pour un sujet dans une matière scolaire. Les connaissances que vous acquérez en apprenant le C vous aideront pendant assez longtemps, et vous devez l'aborder en gardant cela à l'esprit.

De plus, ne plongez pas dans un exercice de codage ou un ensemble de problèmes, en le comparant à un problème. La vitesse à laquelle vous terminez un ensemble de problèmes n'indique pas non plus une meilleure compréhension du sujet.

Les ensembles de problèmes dans CS50x ne sont pas des problèmes. Chaque ensemble de problèmes vous apprend quelque chose, de la construction logique à la compréhension des représentations bitmap des images (et comment les manipuler).

Les ensembles de problèmes sont censés être des programmes ou des projets donnés aux apprenants pour qu'ils apprennent - une conférence en soi. Essayez d'apprendre quelque chose de nouveau à chaque exercice de codage que vous faites. Vous serez surpris de voir à quel point ces ensembles de problèmes apparemment petits peuvent vous apprendre.

Le codage n'est pas quelque chose que vous apprenez plus rapidement en vous entraînant de plus en plus vite. Cela nécessite une pratique constante, de la patience et de la concentration. Vous ne pouvez pas vous attendre à concevoir des codes de solution pour des ensembles de problèmes très rapidement simplement parce que vous comprenez assez bien un concept.

Alors, apprenez et codez patiemment. Parcourez le contenu qui vous a été fourni dans CS50x (ou tout autre document auquel vous faites référence) plusieurs fois si nécessaire pour que vous compreniez quelque chose.

Lorsque vous faites un exercice de codage, ne cherchez jamais de solutions simplement parce que vous ne pouviez pas penser à une réponse ou que votre programme a échoué plusieurs fois. Essayez le programme plusieurs fois. Si vous ne l'obtenez toujours pas après quelques tentatives (et que cela commence à devenir frustrant), je vous suggère de faire une pause dans ce problème. Passez au sujet ou à l'exercice suivant.

Plus tard, revenez au même problème. Si vous ne parvenez toujours pas à trouver une réponse, vous pouvez chercher une solution. Cependant, vous devez lire et comprendre le code de la solution, et une fois que vous l'avez compris, revenez en arrière et essayez de coder le programme par vous-même, sans regarder la solution.

Vous pourriez terminer les sujets plus rapidement si vous vous précipitez. Cependant, vous aurez toujours des doutes erratiques et vous n'aurez peut-être pas pleinement confiance dans les sujets que vous avez appris. Pour moi, cela semble désastreux, et je ne recommande à personne d'apprendre de CS50x ou de tout autre cours de cette manière.

2. À l'infini :

Un certain nombre d'ensembles de problèmes nécessitent une lecture de fond afin de vous aider à mieux les comprendre. Vous devriez faire beaucoup de recherches pour ceux-ci.

Les tâches complexes que les ordinateurs pourraient effectuer nous semblent difficiles à imaginer. Comment un humain a-t-il pu créer un ordinateur, une machine dotée d'une puissance de traitement aussi énorme ? Les efforts et les connaissances déployés pour construire ces choses semblent incroyablement complexes et compliqués. Nous n'osons pas penser que nous pourrions jamais être capables de le comprendre dans le court laps de temps dont nous disposons.

Cependant, toutes ces fonctions complexes que les ordinateurs sont capables de réaliser de nos jours sont le résultat d'une logique développée et appliquée par les humains. Cette logique et les connaissances qui la sous-tendent sont à notre portée, et nous sommes capables d'apprendre et éventuellement de comprendre ces connaissances. Lorsque vous réalisez ce changement mental, le désir d'apprendre et de comprendre davantage se développe.

Cette étape contribuera à expliquer comment j'ai réussi à obtenir ce changement et comment j'en suis venu à voir le codage comme je l'ai fait.

La connaissance commence à se sentir à portée de main à mesure que vous menez des recherches et une éducation plus indépendantes. Nous réalisons que nous sommes, en fait, capables d'apprendre et éventuellement de comprendre des choses que nous ne pouvions jamais comprendre auparavant. En effet, vous obtenez une perspective plus large sur le codage, la façon dont il a été développé (avec ses propres erreurs lors de sa création telle qu'elle a été faite par des humains) et les impacts réels que chaque concept que vous apprenez peut avoir.

Recherchez "problème Y2K" sur votre navigateur, lisez-le, et ce sera peut-être la première étape de votre démarrage dans la recherche indépendante. Une fois lu, qu'en pensez-vous ? Les ordinateurs sont finalement développés par des humains comme nous, ceux qui sont capables de faire des erreurs (comme l'illustre le problème de l'an 2000), ceux qui apprennent et grandissent. Ressentez-vous maintenant une connexion plus forte avec le code que vous apprenez ? Avez-vous une idée de l'impact potentiel immédiat que cela pourrait avoir sur votre vie et celle des autres ?

Une illustration succincte des effets de la catastrophe de l'an 2000. Source de l'image : pourquoisurfswim.com

J'ai appris cette leçon lorsque je faisais la série de problèmes 4. Elle permet de coder un programme capable de différencier des objets dans une image. J'avais toujours cru qu'une tâche difficile comme celle-là dépassait sans aucun doute mes capacités avant de commencer ce programme. J'avais supposé que cela nécessitait des "trucs" sophistiqués d'intelligence artificielle qui feraient probablement frire mon cerveau si j'essayais même de le comprendre. Cependant, j'ai fait le programme, j'ai compris la logique derrière et je me sentais tellement plus proche du codage à ce moment-là.

Lors de l'apprentissage - le ciel est la limite! Source de l'image : https://lovepik.com/images/png-book-hills.html

Une fois que vous serez conscient de combien vous êtes capable d'apprendre et de comprendre, vous ressentirez un zèle pour étudier et acquérir de nouvelles connaissances.

3. Soyez fastidieux et développez votre boîte à outils :

Une fois que vous en avez terminé avec un ensemble de problèmes, essayez toujours de rechercher des solutions plus efficaces sur Internet. Bien que cela puisse sembler fastidieux, cela vous apprendra de nouvelles perspectives et logiques pour le même programme. Cela agrandit la "boîte à outils" dont vous disposez lorsque vous codez des programmes.

Au fur et à mesure que votre «boîte à outils» s'agrandit, vous pourrez visualiser plusieurs chemins vers votre code de résultat ou de solution. Semblable aux mathématiques, vous pouvez résoudre des problèmes plus rapidement et plus efficacement si vous pratiquez davantage.

Connaître plusieurs solutions peut être utile lorsqu'il s'agit de problèmes particulièrement difficiles qui ne peuvent être résolus qu'en utilisant une approche particulière.

Par conséquent, «faites-vous ennuyeux» et vous l'apprécierez certainement plus tard!

4. Prenez des notes :

Bien que prendre des notes tout en écoutant des cours soit complètement facultatif et une question de préférence personnelle, cela rendra votre apprentissage plus productif et comme s'il progressait. Cela vous fera regarder la conférence avec une plus grande concentration.

Vous pouvez prendre des notes compactes. Faites une liste de toutes les questions que vous vous posez ou des informations que vous avez trouvées particulièrement nouvelles et intéressantes. Ensuite, faites des recherches et essayez de dissiper les questions ou les doutes que vous avez notés.

Lorsque j'apprends, prendre des notes me rend plus productif et j'aime le faire.

Résoudre tous les ensembles de problèmes avec diligence, en accordant à chacun une quantité de temps significative

II. Étapes à suivre lors de l'apprentissage à partir du CS50x :

  1. Apprenez patiemment de chaque conférence, ne vous précipitez pas. Facultativement, prenez des notes lorsque vous écoutez des conférences.
  2. Ne sautez jamais les courts métrages vidéo avant de jeter un œil à leurs sujets. Parcourez les courts métrages et si vous pensez qu'ils valent votre temps, regardez-les. Les courts métrages contiennent souvent des explications plus approfondies. Parfois, les courts métrages couvrent également des sujets qui ne sont pas couverts dans la conférence principale.
  3. Résolvez tous les ensembles de problèmes avec diligence, en accordant à chacun un temps considérable et essayez de les résoudre par vous-même. Si vous ne comprenez pas, passez en revue les conseils qu'ils ont donnés. Si cela ne suffit pas, regardez la procédure pas à pas (cela facilite grandement la compréhension du problème). C'est bien de ne pas comprendre le problème, vous n'avez pas besoin de vous sentir mal. Je n'avais pas non plus compris tous les problèmes lors de mon premier essai. Une fois que tout ne fonctionne pas, recherchez la solution, puis codez la réponse sans regarder la solution une fois que vous l'avez comprise.
  4. Si vous rencontrez des erreurs dans votre programme et que vous n'êtes pas en mesure de les identifier, utilisez 'check50' ou 'submit'. Ces deux commandes donnent un lien une fois le programme exécuté, et les informations du site auxquelles le lien s'ouvre sont très utiles pour résoudre les erreurs.
  5. Si vous n'avez toujours pas réussi à résoudre le problème posé, faites une pause. Passez à la prochaine leçon ou à la prochaine série de problèmes et revenez plus tard à la même série de problèmes.