Pourquoi je recommande le cours en ligne CS50X de Harvard ' à tous les développeurs autodidactes

Introduction à l’informatique du CS50 est un cours en ligne gratuit basé sur l’un des cours les plus populaires sur le campus de l’Université Harvard. Dans ce cours, vous pouvez en apprendre davantage sur les concepts de base de l’informatique, tels que:

  • Algorithmes – recherche binaire, tri à bulles, tri par fusion, etc.
  • Structures de données – listes chaînées, tables de hachage, etc.
  • Pile de mémoire et tas

Les langages utilisés sont C, Python, SQL, ainsi que d’autres en fonction de ce que vous choisissez pour la piste finale. Il existe une myriade de cours CS gratuits disponibles en ligne, mais c’est le plus agréable et le plus engageant que j’ai trouvé jusqu’à présent.

J’ai écrit « développeur autodidacte » dans le titre parce que je pensais que ceux qui n’avaient pas d’éducation CS formelle étaient moins susceptibles d’avoir eu la chance d’être exposés à ces sujets en profondeur. Mais bien sûr, je le recommanderais à tous ceux qui s’intéressent à ces sujets.

Voici trois points que j’adore dans ce cours, et deux inconvénients potentiels.

Pros

  1. Leur philosophie
  2. Les conférences sont un plaisir à regarder
  3. Les devoirs sont créatifs

( Potentiel) Inconvénients

  1. Peut ne pas être utile pour votre travail quotidien
  2. Vous ne voyez pas les solutions mises en œuvre par le personnel pour les affectations

Avantages

1. Leur philosophie

Ce cours s’adresse aux personnes de tous niveaux de programmation. Ils vous le disent dans la première semaine:

ce qui compte en fin de compte dans ce cours n’est pas tant l’endroit où vous vous retrouvez par rapport à vos camarades de classe, mais celui où vous vous retrouvez par rapport à vous-même lorsque vous avez commencé.

Juste pour référence, j’ai 1 an d’expérience professionnelle, mais aucune en C ou Python. Certaines des tâches étaient encore très difficiles pour moi, et une semaine de cours me prenait environ 10 heures à compléter, selon le matériel (En tant que développeur Ruby, les choses en Python étaient beaucoup plus intuitives que C!).

Le cours fait un excellent travail en étant à la fois convivial pour les débutants et stimulant, car les conférences vous guident bien à travers le contenu, mais les devoirs vous obligent à vraiment réfléchir et à faire plus de recherches. De plus, ils vous donnent souvent le choix entre deux tâches, selon que vous êtes « plus à l’aise » ou « moins à l’aise ».

2. Les conférences sont une joie à regarder

En plus d’être informatives, les conférences du professeur David Malan sont bien rythmées, animées et créatives. Regardez l’un d’eux, et vous serez probablement d’accord (disponible sur Youtube aussi).

3. Les devoirs sont créatifs

Plutôt que des tâches ennuyeuses comme « parcourir ce tableau en C », vous pouvez implémenter des programmes tels que des filtres photo, des vérificateurs orthographiques, des systèmes de vote et des bases de données d’étudiants de Poudlard, en utilisant des concepts que vous avez appris en cours de route.

Une autre chose que j’aime est leur système de test appelé Check50, qui vous donne un retour instantané lorsque vous soumettez votre code. C’est gratifiant quand vous obtenez enfin tous les tests pour renvoyer un smiley vert 🙂

Exemple:

( Potentiel) Inconvénients

1. Peut ne pas être utile pour votre travail quotidien

Pour le meilleur ou pour le pire, ce n’est pas un cours intensif. Si vous souhaitez apprendre rapidement un sujet spécifique, comme React par exemple, il existe de meilleurs tutoriels en ligne (digression complète, mais je recommande fortement Scrimba pour l’apprentissage des langages / frameworks frontaux, y compris React).

Cela étant dit, je pense que l’apprentissage de ces concepts fondamentaux de l’informatique sera bénéfique pour tout développeur d’une manière ou d’une autre.
Par exemple, j’utilisais des hachages Ruby (dictionnaires) depuis longtemps, et je savais que trouver une valeur à partir d’un hachage par sa clé était beaucoup plus rapide que de trouver une valeur à partir d’un tableau. Mais avant de suivre ce cours, je ne comprenais pas comment les hachages étaient implémentés sous le capot. Apprendre à connaître les tables de hachage et en implémenter une m’a également permis de mieux comprendre les hachages Ruby.

2. Vous ne voyez pas les solutions mises en œuvre par le personnel pour les affectations

Comme je l’ai mentionné, lorsque vous soumettez une affectation en ligne, votre code est testé via un système appelé Check50. Vous ne pouvez pas voir la solution que le personnel avait en tête ou faire une comparaison côte à côte avec la vôtre.

Ce n’était pas toujours un problème et je comprends leurs raisons, mais il y a eu une occasion particulière où j’ai souhaité voir des solutions implémentées par le personnel: lorsque j’écrivais des requêtes SQL. Mes requêtes ont fonctionné et ont réussi les tests Check50, mais il n’y avait aucun moyen de savoir si elles auraient pu être optimisées davantage. Voir des réponses mises en œuvre par le personnel aurait aidé là-bas.

Si ce cours vous semble intéressant, je vous recommande fortement de le consulter sur edX. Et si vous décidez de le prendre, bonne chance à vous.

Je suis également toujours inscrit, sur le point de démarrer la piste iOS. Souhaite-moi bonne chance!

Mise à jour – 2020-12-28

Le projet final m’a pris du temps, mais j’ai terminé le cours 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.