Un guide pratique pour apprendre les bases de la programmation Web

Comment apprendre à coder gratuitement en tant que «personne non technique»

L'été dernier, j'étais dans les derniers mois de ma maîtrise avec une spécialisation en entrepreneuriat. Tout le monde autour de moi parlait constamment de «startups technologiques» et en était très excité. Les gens ont continué à mentionner des termes cryptiques comme «wireframes HTML & CSS» et «SaaS» - et je n'avais aucune idée de ce que la plupart de ces choses signifient.

Ce que je savais, c'est que je voulais en savoir plus. J'ai donc décidé d'en apprendre davantage sur le «code» et la programmation.

Dans un premier temps, j'ai demandé à la personne la plus compétente que je connaisse: Google. J'ai tapé `` apprendre à coder '' et j'ai obtenu 396 000 000 résultats de recherche en 0,54 seconde: un nombre fou d'articles, d'e-books, de cours et de toute autre forme de contenu imaginable sur la programmation.

Je n'avais absolument aucune idée de comment et par où commencer.

© Wikimedia Commons.

J'ai pensé que toute cette entreprise nécessiterait beaucoup de temps et d'efforts, et j'ai donc décidé d'écrire la thèse de mon maître sur le sujet. J'écrirais sur les moyens qui existent pour les personnes non techniques - comme moi et la plupart des entrepreneurs - pour apprendre à coder de la manière la plus efficace. J'espérais que la recherche aiderait certains entrepreneurs à acquérir les connaissances dont ils ont besoin pour pirater un prototype ou faire de meilleures embauches techniques, et j'acquérirais des compétences utiles en cours de route.

Quelques mois plus tard, j'en avais fini avec la thèse. Très excité, je l'ai partagé dans l'un des forums de freeCodeCamp, où j'ai récupéré beaucoup de ce que je sais sur le code (merci ❤).

Quincy Larson, le fondateur de Free Code Camp, m'a donné une réponse honnête:

Ce fut une excellente rétroaction: cela n'a aucun sens de demander à quelqu'un de lire un document complet de 67 pages rédigé pour se conformer aux exigences académiques. Mon objectif était d'être rigoureux - certains pourraient dire ennuyeux - assez pour apparaître comme un érudit «sérieux» (voici le lien au cas où vous voudriez essayer de toute façon).

Les commentaires de Quincy sont la raison pour laquelle j'ai écrit ce post: pour partager l'apprentissage condensé que j'ai obtenu en passant au crible d'innombrables articles, articles, livres et articles de blog sur la façon d'apprendre la programmation par vous-même de la manière la plus efficace et gratuite - sans étant ennuyeux et prenant 67 pages, et après avoir appliqué toutes les connaissances sur moi-même.

J'espère que ce message vous aidera à éviter de perdre votre temps comme je l'ai fait au début avec des ressources de faible qualité et des approches d'apprentissage inefficaces. J'ai décomposé l'ensemble du processus d'apprentissage de la programmation en sept étapes - voici ce que j'ai appris.

# 1 Établir un objectif d'apprentissage solide.

Un objectif d'apprentissage efficace pourrait être un projet personnel que vous êtes motivé à construire: un prototype d'une idée que vous avez, votre site Web personnel, vous l'appelez. Évitez de vous lancer directement dans des didacticiels ou des MOOC avec la vague aspiration de «l'apprentissage de la programmation». Avoir un objectif d'apprentissage bien défini rend vos progrès d'apprentissage mesurables, augmente la motivation et vous aide à persister lorsque les choses se compliquent.

# 2 Obtenez un aperçu du matériel d'apprentissage avant de commencer.

«Programmation» est un terme large, c'est pourquoi je vous suggère de le limiter au développement Web en tant que débutant. Avant de commencer à apprendre quoi que ce soit, obtenez un aperçu de ce que la «pile complète» englobe afin de pouvoir faire un choix éclairé de langue et de technologie. Voici mon coup de couteau pour le faire:

Mon approche est basée sur la vidéo de LearnCode.Academy sur YouTube - merci!

# 3 Commencez avec JavaScript, Python ou Ruby comme première langue.

En général, il n'y a pas de «meilleur» choix d'un premier langage de programmation. Je recommande ces trois langues car toutes sont couramment utilisées dans le développement web, elles ont des perspectives d'avenir prometteuses et les experts les considèrent généralement comme adaptées aux débutants.

Je recommanderais ces trois endroits pour commencer:

  • JavaScript est sexy (JavaScript)
  • Apprenez Python à la dure par Zed A. Shaw (Python)
  • Tutoriel Ruby on Rails de Michael Hartl (Ruby on Rails)

# 4 Établissez un programme pour guider vos efforts et utilisez plusieurs ressources en parallèle.

Il existe un nombre impressionnant de ressources gratuites de haute qualité, et il est presque impossible de les comprendre toutes au début. Pour cette raison, choisissez un ou plusieurs programmes qui guideront votre apprentissage. Notez qu'il n'y a pas de ressource «à guichet unique» qui vous apprendra tout - vous pouvez et devez utiliser plusieurs ressources en parallèle qui se complèteront.

Voici quelques programmes que j'ai trouvés particulièrement utiles:

  • Camp de code gratuit (JavaScript)
  • Le projet Odin (Ruby)
  • Bento.io (Python / Flask) ou Lifehacker (Python / Django)
  • Baccalauréat en informatique

# 5 Optimisez votre apprentissage en utilisant des techniques découvertes par la recherche psychologique.

La recherche sur l'apprentissage a mis au point une multitude de techniques faciles à suivre et à mettre en œuvre. Utilisez-les et adaptez-les à vos besoins pour améliorer vos capacités de résolution de problèmes, votre compréhension des concepts difficiles, votre rétention de nouveau matériel et pour maîtriser la procrastination.

Voici des stratégies courantes pour améliorer vos compétences en résolution de problèmes:

  • Utiliser la réflexion en mode à la fois focalisée et diffuse
  • Morceaux de connaissances que vous apprenez
  • Embrassez l'échec et apprenez-en
  • Utilisez des métaphores et des analogies

Voici des techniques pour améliorer la rétention du matériel nouvellement appris:

  • Utiliser le rappel au lieu de relire
  • Utilisez la répétition espacée
  • Entrelacer différents types de pratique
  • Mémorisez un vocabulaire de mots-clés et de concepts qui seront utiles pour résoudre des problèmes (au lieu d'essayer d'apprendre la syntaxe par cœur)

Quelques conseils pour éviter la procrastination:

  • Trouvez un ami pour apprendre avec
  • Concentrez-vous sur le processus, pas sur le produit final
  • Essayez la technique Pomodoro
  • Fixez-vous des objectifs réguliers (soyez SMART)

# 6 Apprenez en faisant: pratiquez vos compétences en programmation et construisez de vrais projets dès que possible.

L'apprentissage de la programmation est un effort pratique - regarder des vidéos et résoudre des tests à choix multiples ne sera pas suffisant. Vous devriez passer la plupart de votre temps à construire des projets. Voici quelques endroits où vous pouvez trouver l'inspiration pour construire:

  • Les 180 projets de programmation de Jennifer deWalt
  • Zero to front-end hero par Jonathan Z. White (Part I & Part II)

Et voici quelques endroits où trouver des ensembles de problèmes de programmation pour une pratique délibérée:

  • Liste complète des ensembles de problèmes de programmation sur GitHub
  • 17 Défis de codage de Codecondo

# 7 Apprenez des conseils des programmeurs, des enseignants et d'autres auto-apprenants.

Le principal conseil que vous trouverez est que l'apprentissage de la programmation prend beaucoup de temps. Ne vous laissez pas intimider par les «programmeurs de génie» et habituez-vous au débogage.

Voici mes deux collections de conseils préférées:

  • 97 conseils de programmation par O'Reilly
  • Conseils du programmeur pragmatique

Mon dernier conseil est le plus important:

Les principaux prédicteurs de réussite lors de l'apprentissage de la programmation sont de nature humaine - votre motivation et votre persévérance.

De nombreux débutants tombent dans le piège de s'inquiéter longuement des questions techniques: quelle ressource choisir? Quelle langue dois-je choisir? Quelle technologie dois-je utiliser? Cette approche a de bonnes chances de perdre votre temps. Tant que vos choix restent dans les normes de l'industrie, ils n'auront pas autant d'importance que d'avoir un objectif d'apprentissage solide et global pour rester motivé et de coder régulièrement.

Apprendre à coder n'est pas chose facile. Cela prend beaucoup de temps et de persévérance. Lorsque vous voulez atteindre votre objectif global, prenez-le un problème à la fois - et commencez simplement! Vous ferez des progrès continus, puis il vous faudra rester motivé et persévérer jusqu'à la fin.

"Si vous voulez construire un navire, ne battez pas les gens pour ramasser du bois et ne leur assignez pas de tâches et de travail, mais apprenez-leur plutôt à aspirer à l'immensité infinie de la mer." - Antoine de Saint-Exupéry

Et avant de partir…

Connaissez-vous des conseils, des techniques ou des ressources supplémentaires qui manquent dans ce message? Veuillez les partager dans la section des commentaires ci-dessous.

PS: Voici quelques autres collections de ressources pour différents styles d'apprentissage:

  • 33 chaînes YouTube organisées (que j'ai trouvées très utiles)
  • Listes de livres de programmation (ici, ici et ici)
  • Introduction aux cours d'informatique de Harvard, Stanford et MIT
  • Liste complète des cours en ligne sur Class Central
  • Liste «impressionnante» de ressources en ligne sur GitHub