Comment apprendre Python en toute simplicité (et pas comme je l'ai fait)

Python est censé être l'un des langages de programmation les plus faciles à apprendre. Sachant cela, je me suis senti assez mal la première fois que j'ai essayé et échoué à l'apprendre. C'était encore pire la deuxième fois que j'ai échoué.

Mais il s'avère - et j'ai appris cela au troisième essai - que Python peut être vraiment accessible, même à un non-codeur épris de sciences humaines comme moi. Il suffit de l'aborder de la bonne manière.

Comment j'ai échoué à apprendre Python… la première fois

La première fois que j'ai essayé d'apprendre Python, c'était il y a presque dix ans. Je n'étais pas vraiment sûr de ce que je voulais en faire - peut-être automatiser une partie de mon travail, peut-être écrire une petite application. Cela semblait juste être une compétence qu'il serait bon de connaître.

J'ai donc pris une copie du PDF Learn Python the Hard Way, alors gratuit, et j'ai commencé à essayer de travailler dessus.

Le premier mur que j'ai touché a été de configurer Python sur mon propre système. Surtout à cette époque, la plupart des instructions sur la façon de le faire étaient écrites pour des programmeurs expérimentés, et il m'a fallu une éternité pour parcourir tout cela.

Je voulais apprendre à écrire du code Python, et ma première étape a été de passer cinq heures à me battre avec la ligne de commande? J'étais démotivé avant même de commencer.

Une fois que j'ai enfin mis les choses en place, je pourrais écrire du code avec le livre. Et j'ai fait, pendant un certain temps, en ralentissant l'assemblage d'un jeu d'aventure texte très simple.

Mais quand je relève le premier vrai défi - ces moments qui viennent toujours dans le codage où quelque chose ne fonctionne pas et vous ne pouvez tout simplement pas comprendre pourquoi - j'ai arrêté.

J'avais des choses plus importantes à faire que de me cogner la tête contre le clavier et d'énigrer des messages d'erreur impénétrables. Surtout quand mon objectif final était de créer un jeu d'aventure textuel auquel je ne me souciais pas et auquel personne ne jouerait jamais.

Comment j'ai échoué à apprendre Python… la deuxième fois

Quelques années plus tard, j'ai réessayé. À ce moment-là, je travaillais en tant que journaliste, et je m'étais intéressé au journalisme de données, et au web scraping en particulier.

Je savais qu'il serait nécessaire d'avoir des compétences en codage Python, alors j'ai trouvé une plate-forme d'éducation en ligne - je ne dirai pas laquelle - et j'ai commencé un cours Python.

Comme la plupart des MOOC, ce cours était basé sur la vidéo. Je regardais une conférence sur un sujet lié à Python, répondais à un quiz sur le site du cours pour confirmer que j'avais appris le matériel, puis passais au module suivant.

Les programmeurs expérimentés peuvent probablement déjà deviner ce qui s'est passé ensuite: quand je suis allé essayer d'écrire du code Python pour moi-même, je ne pouvais rien faire.

En regardant quelqu'un d'autre coder dans des vidéos et en écoutant ses explications, j'avais pensé que j'apprenais à le faire moi-même. Et les quiz à choix multiples et à remplir les blancs sur lesquels j'obtenais à 100% semblaient confirmer que j'avais bien saisi la matière.

Mais bien sûr, au moment de l'appliquer moi-même, je ne pouvais pas. Je pouvais parcourir les vidéos et copier ce que le conférencier avait fait, mais j'avais vraiment du mal à appliquer tout ce que j'avais appris à mes propres projets.

Il était également difficile de rester motivé, car je travaillais sur des choses qui ne semblaient pas pertinentes.

Je voulais apprendre le web scraping. Mais au lieu de cela, j'avais du mal à comprendre les conférences vidéo sur le concept de programmation orientée objet (POO). Qu'est-ce que tout cela a à voir avec mes objectifs? Je n'étais pas sûr, et cela a facilité l'arrêt du tabac. Encore.

Pourquoi j'ai échoué

Rétrospectivement, il n'est pas trop difficile de comprendre pourquoi j'ai échoué. La première fois, mes grosses erreurs ont été:

  1. Ne pas avoir d'objectif clair . Pourquoi ai-je appris Python? Je ne savais pas vraiment. Cela rend très facile d'arrêter lorsque les choses se compliquent - ce qui sera toujours le cas, tôt ou tard.
  2. Trop de défi à l'avant . Tôt ou tard, je devrais trouver comment intégrer Python sur mon système, mais configurer cela sans aucune expérience pertinente, avant que j'écrive autant, print(‘Hello world!’)était une recette pour la frustration et l'échec.

Lorsque vous apprenez quelque chose de stimulant, en particulier en tant que débutant, vous avez besoin de victoires précoces pour vous aider à croire que vous pouvez vraiment le faire.

Commencer par un défi frustrant qui n'impliquait même pas de codage m'a permis de ne pas obtenir ces gains motivants et affirmés.

La deuxième fois, j'ai évité ces erreurs, mais à la place j'en ai fait de nouvelles:

  1. Je n'apprendais pas en faisant. Regarder des vidéos et passer des quiz me faisait sentir que je pouvais coder, mais je ne codais pas vraiment. Quand je l'ai fait essayer (et FAIL) d'écrire du code, il était encore plus frustrant parce que je pensais que je l' ai déjà compris. Et parce que je devais faire un tas de clics dans chaque vidéo pour revoir différentes sections et réapprendre des choses.
  2. J'avais un objectif clair, mais pas un chemin clair pour y parvenir. Je savais que je voulais faire du journalisme de données et du web scraping, mais je suivais un cours Python générique débutant. Cela signifiait que j'apprenais des leçons qui auraient pu être essentielles pour le développement de logiciels, mais qui n'étaient pas aussi pertinentes pour le journalisme de données. J'ai souvent eu du mal à relier les fondamentaux que j'apprenais en classe avec ce que je voulais réellement faire avec le code.

Dans tout cela, je faisais aussi une autre grosse erreur mentale. Je pensais apprendre Python en termes très noirs et blancs. Soit j'avais «appris Python» - tout Python - soit je ne l'avais pas fait.

Cela rendait la perspective d'apprendre vraiment intimidante. Chaque fois que je relevais un défi, cela était aggravé par le fait que je pensais à une «ligne d'arrivée» mythique de Python qui était encore très, très loin.

C'est mal avisé, bien sûr. Comme un langage parlé, Python (et d'autres langages de programmation) ne sont pas quelque chose que vous avez vraiment fini d' apprendre. Et comme une langue parlée, vous n'avez pas besoin de parler couramment Python pour faire avancer les choses.

Comme tout étudiant d'échange de première année vous le dira, il suffit de pouvoir demander «Combien cela coûte-t-il?» et "Où est la salle de bain?" dans la langue locale peut vraiment affecter votre qualité de vie.

La même chose est vraie pour Python. Vous n'avez pas besoin de tout savoir - ni même autant, nécessairement - pour faire une réelle différence dans votre propre vie.

Mais c'est une leçon que je n'ai apprise que par accident.

Comment j'ai appris (un peu) Python

En 2018, j'avais abandonné l'apprentissage de Python. J'avais essayé deux fois et échoué deux fois! Mais ensuite, j'ai été embauché chez Dataquest, une entreprise qui enseigne les compétences en science des données - y compris la programmation Python - en ligne.

Mon nouvel emploi ne nécessitait aucune compétence en codage, mais je me suis dit que j'avais encore besoin d'essayer la plate-forme d'apprentissage. J'avais besoin de comprendre notre produit et ce que nos apprenants ressentaient. Peut-être, pensais-je, que je pourrais même en apprendre suffisamment pour faire du web scraping, comme je l'avais prévu auparavant.

Donc, avec une certaine appréhension, j'ai créé un compte et commencé notre parcours de cours Python for Data Science.

À ma grande surprise, c'était amusant et facile. Et à ma plus grande surprise, il ne m'a pas fallu longtemps avant que je me sente capable de construire certains projets par moi-même.

J'ai écrit un petit script pour trier les emails. J'ai utilisé Python pour analyser rapidement certaines données d'enquête. Et, par à-coups, j'ai construit le grand projet de web scraping et d'analyse dont je rêvais à l'époque où j'étais journaliste.

J'étais - et encore suis - en utilisant Python fait pour faciliter mon travail, et d' améliorer ma vie. Quelques années plus tard, je suis encore un codeur novice, mais je peux pirater de petits scripts pour faciliter les choses et résoudre les problèmes d'analyse de données que j'ai au travail avec Python.

Cela s'est produit parce que, plus par hasard que par conception, j'étais tombé sur un moyen d'apprendre Python qui évitait presque toutes les erreurs que j'avais faites avec mes efforts précédents:

  • Je suis arrivé avec un objectif clair: apprendre suffisamment de Python pour pouvoir faire un peu de travail sur les données afin de mieux comprendre nos clients.
  • J'ai évité le défi initial d'installer entièrement Python, car Dataquest vous permet d'apprendre et d'écrire du code directement dans une fenêtre de navigateur.
  • J'apprenais à coder en codant plutôt qu'en regardant quelqu'un d'autre coder.
  • J'apprenais sur un chemin spécialement conçu pour le travail de données Python, donc tout ce que j'apprenais et chaque exercice que je faisais me semblait pertinent.
  • J'essayais juste d'apprendre ce dont j'avais besoin, pas d'apprendre tout Python.

Comment faciliter l'apprentissage de Python

En repensant à mes erreurs, puis à mon succès accidentel, je pense que cela se résume à quelques simples points à retenir:

Tout d'abord, allez-y avec un objectif. Pourquoi voulez-vous apprendre Python? Que souhaitez-vous en particulier construire? Si vous n'avez pas de bonne réponse à cette question, il sera très difficile de rester motivé.

Deuxièmement, trouvez un moyen d'apprendre en faisant ce que vous voulez réellement faire. Si vous pouvez trouver une ressource d'apprentissage ciblée, comme une plate-forme qui enseigne Python spécifiquement pour les développeurs de jeux, c'est parfait. Mais les ressources d'apprentissage générales peuvent trop fonctionner tant que vous appliquez ce que vous apprenez avec certains projets Python pour débutants pendant que vous étudiez.

Votre apprentissage du code doit inclure l'écriture de code, et il doit s'agir d'écrire du code qui fait quelque chose qui vous intéresse.

Troisièmement, évitez le défi initial de configurer Python et ses diverses bibliothèques sur votre système local.

Il existe maintenant de nombreuses plates-formes en ligne qui vous permettent d'écrire et d'exécuter du code dans un navigateur Web, ou vous pouvez écrire et exécuter du code dans un bloc-notes sur Google Colab ou une plate-forme similaire. Essayez simplement de vous faciliter la tâche le plus possible. Vous pouvez vous soucier de votre configuration locale plus tard.

Quatrièmement, n'essayez pas «d'apprendre Python». C'est un objectif énorme à long terme qui est sans doute inatteignable - même les meilleurs développeurs Python ne savent littéralement pas tout à ce sujet.

Essayez plutôt d'apprendre à utiliser Python pour créer une version simple de votre projet d'objectif, ou une partie de ce projet. Ensuite, apprenez à utiliser Python pour agrandir ce projet ou à passer à l'étape suivante.

Décomposez les grandes tâches en petits morceaux et concentrez vos objectifs sur la construction de quelque chose afin d'obtenir la récompense psychologique d'avoir construit quelque chose lorsque vous en avez terminé un.

Suivez ces directives quelle que soit votre raison personnelle pour apprendre Python et je suis convaincu que vous pourrez atteindre vos objectifs sans avoir à échouer et à arrêter deux fois en cours de route!