Article original : How to Learn Python The Easy Way (And Not the Way I Did)
Par Charlie Custer
Python est censé être l'un des langages de programmation les plus faciles à apprendre. Savoir cela m'a fait me sentir 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 je l'ai appris à la troisième tentative — que Python peut être vraiment accessible, même pour un amateur d'humanités non-codeur comme moi. Il suffit d'aborder cela 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 une décennie. Je n'étais pas vraiment sûr de ce que je voulais faire avec — peut-être automatiser une partie de mon travail, peut-être écrire une petite application. Cela semblait simplement être une compétence utile à connaître.
J'ai donc pris une copie du PDF alors gratuit Learn Python the Hard Way et j'ai commencé à essayer de le suivre.
Le premier obstacle que j'ai rencontré a été l'installation de 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 tout comprendre.
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 réussi à tout installer, je pouvais écrire du code avec le livre. Et je l'ai fait, pendant un moment, en assemblant lentement un jeu d'aventure texte très simple.
Mais quand j'ai rencontré le premier vrai défi — ces moments qui arrivent toujours en codage où quelque chose ne fonctionne pas et où vous ne comprenez tout simplement pas pourquoi — j'ai abandonné.
J'avais des choses plus importantes à faire que de me cogner la tête contre le clavier et de m'arracher les cheveux devant des messages d'erreur incompréhensibles. Surtout quand mon objectif final était de créer un jeu d'aventure texte dont je ne me souciais pas, et que personne ne jouerait jamais.
Comment j'ai échoué à apprendre Python… la deuxième fois
Quelques années plus tard, j'ai réessayé. À cette époque, je travaillais comme journaliste, et je m'étais intéressé au journalisme de données, et en particulier au web scraping.
Je savais que posséder des compétences en codage Python serait nécessaire, alors j'ai trouvé une plateforme d'éducation en ligne — je ne dirai pas laquelle — et j'ai commencé un cours de Python pour débutants.
Comme la plupart des MOOCs, ce cours était basé sur des vidéos. Je regardais une conférence sur un sujet lié à Python, je répondais à un quiz sur le site du cours pour confirmer que j'avais appris le matériel, puis je passais au module suivant.
Les programmeurs expérimentés peuvent probablement déjà deviner ce qui s'est passé ensuite : quand j'ai essayé d'écrire du code Python par moi-même, je n'ai pas pu faire grand-chose.
En regardant quelqu'un d'autre coder dans des vidéos et en écoutant leurs explications, je pensais que j'apprenais à le faire par moi-même. Et les quiz à choix multiples et à remplir les blancs que je réussissais à 100 % semblaient confirmer que j'avais compris le matériel.
Mais bien sûr, quand il a fallu l'appliquer par moi-même, je n'ai pas pu. Je pouvais parcourir les vidéos et copier ce que le conférencier faisait, mais j'avais beaucoup de mal à appliquer quoi que ce soit que j'avais appris à mes propres projets.
C'était aussi 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, je luttais pour comprendre les conférences vidéo sur le concept de la programmation orientée objet (POO). Quel était le rapport avec mes objectifs ? Je n'en étais pas sûr, et cela a rendu facile l'abandon. Encore une fois.
Pourquoi j'ai échoué
En rétrospective, ce n'est pas trop difficile de comprendre pourquoi j'ai échoué. La première fois, mes grandes erreurs étaient :
- Ne pas avoir un objectif clair. Pourquoi apprenais-je Python ? Je ne le savais pas vraiment. Cela rend très facile l'abandon quand les choses deviennent difficiles — ce qui arrivera toujours, tôt ou tard.
- Trop de défis dès le début. Tôt ou tard, j'aurais dû comprendre comment installer Python sur mon système, mais le faire avec zéro expérience pertinente, avant d'avoir écrit ne serait-ce qu'un
print('Hello world!')était une recette pour la frustration et l'échec.
Quand vous apprenez quelque chose de difficile, surtout en tant que débutant complet, vous avez besoin de petites 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 a garanti que je n'ai pas obtenu ces petites victoires motivantes et affirmantes.
La deuxième fois, j'ai évité ces erreurs, mais j'en ai fait de nouvelles :
- Je n'apprenais pas en faisant. Regarder des vidéos et passer des quiz me faisait penser que je pouvais coder, mais je ne codais pas réellement. Quand j'ai essayé (et échoué) d'écrire du code, c'était encore plus frustrant parce que je pensais que je comprenais déjà. Et parce que je devais cliquer dans chaque vidéo pour revoir différentes sections et réapprendre des choses.
- J'avais un objectif clair, mais pas un chemin clair pour l'atteindre. Je savais que je voulais faire du journalisme de données et du web scraping, mais je suivais un cours d'initiation générique à Python. Cela signifiait que j'apprenais des leçons qui auraient pu être cruciales pour le développement logiciel mais qui n'étaient pas aussi pertinentes pour le journalisme de données. J'avais souvent du mal à connecter les fondamentaux que j'apprenais en classe avec ce que je voulais vraiment faire avec le code.
Tout au long de cela, je faisais aussi une autre grande erreur mentale. Je pensais à l'apprentissage de Python en termes très noir et blanc. Soit j'avais « appris Python » — tout Python — soit je ne l'avais pas.
Cela rendait la perspective d'apprendre vraiment intimidante. Chaque fois que je rencontrais un défi, cela était aggravé par le fait que je pensais à une mythique ligne d'arrivée Python qui était encore très, très loin.
C'est bien sûr une erreur. Comme une langue parlée, Python (et les autres langages de programmation) n'est pas quelque chose que vous finissez vraiment d'apprendre. Et comme une langue parlée, vous n'avez pas besoin d'être fluent en Python pour accomplir des choses.
Comme tout étudiant en échange de première année vous le dira, savoir simplement demander « Combien cela coûte-t-il ? » et « Où sont les toilettes ? » dans la langue locale peut vraiment affecter votre qualité de vie.
Il en va de même pour Python. Vous n'avez pas besoin de savoir tout — ou même tant que cela, nécessairement — pour faire une réelle différence dans votre propre vie.
Mais c'est une leçon que j'ai apprise par accident.
Comment j'ai réellement 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 nouveau travail ne nécessitait aucune compétence en codage, mais j'ai pensé que je devais quand même essayer la plateforme d'apprentissage. Je devais comprendre notre produit, et ce que nos apprenants ressentaient. Peut-être, ai-je pensé, je pourrais même apprendre assez pour faire un peu de web scraping, comme je l'avais prévu auparavant.
Avec une certaine appréhension, j'ai créé un compte et j'ai commencé notre parcours de cours Python pour la Science des Données.
À ma surprise, c'était amusant et facile. Et à ma plus grande surprise, il n'a pas fallu longtemps avant que je me sente capable de construire quelques projets par moi-même.
J'ai écrit un petit script pour trier des emails. J'ai utilisé Python pour analyser rapidement des données d'enquête. Et, par à-coups, j'ai construit le grand projet de web scraping et d'analyse dont je rêvais quand j'étais journaliste.
J'utilisais — et j'utilise toujours — réellement Python pour faciliter mon travail et améliorer ma vie. Quelques années plus tard, je suis toujours un codeur novice, mais je peux assembler de petits scripts pour faciliter les choses et résoudre des problèmes d'analyse de données que j'ai au travail en utilisant Python.
Cela s'est produit parce que, plus par hasard que par conception, j'avais découvert une manière d'apprendre Python qui évitait presque toutes les erreurs que j'avais faites avec mes tentatives précédentes :
- Je suis entré avec un objectif clair — apprendre assez de Python pour pouvoir faire un peu de travail de données afin de mieux comprendre nos clients.
- J'ai évité le défi initial de l'installation de Python entièrement, car Dataquest vous permet d'apprendre et d'écrire du code directement dans une fenêtre de navigateur.
- J'apprenais à coder en codant réellement plutôt qu'en regardant quelqu'un d'autre coder.
- J'apprenais sur un chemin conçu spécifiquement pour le travail de données Python, donc tout ce que j'apprenais et chaque exercice que je faisais semblait pertinent.
- J'essayais simplement d'apprendre ce dont j'avais besoin, sans essayer d'apprendre tout Python.
Comment rendre l'apprentissage de Python plus facile
En regardant mes erreurs, puis mon succès accidentel, je pense que cela se résume à quelques conclusions simples :
Tout d'abord, entrez avec un objectif. Pourquoi voulez-vous apprendre Python ? Qu'est-ce que vous voulez construire avec, spécifiquement ? Si vous n'avez pas une bonne réponse à cette question, il sera vraiment difficile de rester motivé.
Deuxièmement, trouvez un moyen d'apprendre en faisant la chose que vous voulez vraiment faire. Si vous pouvez trouver une ressource d'apprentissage ciblée, comme une plateforme qui enseigne Python spécifiquement pour le développement de jeux, c'est génial. Mais les ressources d'apprentissage générales peuvent aussi fonctionner tant que vous appliquez ce que vous apprenez avec quelques projets Python pour débutants pendant que vous étudiez.
Votre apprentissage du codage doit inclure l'écriture réelle de code, et cela doit être l'écriture réelle de code qui fait quelque chose qui vous intéresse.
Troisièmement, évitez le défi initial de l'installation de Python et de ses diverses bibliothèques sur votre système local.
Il existe de nombreuses plateformes en ligne maintenant 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 notebook sur Google Colab ou une plateforme similaire. Essayez simplement de rendre le démarrage aussi facile que possible pour vous. Vous pourrez vous soucier de votre installation locale plus tard.
Quatrièmement, n'essayez pas d'« apprendre Python ». C'est un objectif à long terme massif qui est probablement assez inaccessible — même les meilleurs développeurs Python ne savent pas littéralement tout à ce sujet.
Essayez plutôt d'apprendre à utiliser Python pour construire une version simple de votre projet objectif, ou une partie de ce projet. Ensuite, apprenez à utiliser Python pour rendre ce projet plus grand, ou pour passer à l'étape suivante.
Décomposez les grandes tâches en morceaux plus petits, et concentrez vos objectifs sur la construction de quelque chose afin que vous obteniez la récompense psychologique d'avoir construit quelque chose lorsque vous en terminez un.
Suivez ces directives quel que soit votre raison personnelle d'apprendre Python et je n'ai aucun doute que vous pourrez atteindre vos objectifs sans avoir à échouer et abandonner deux fois en cours de route !