J'ai écrit cet article pour celles et ceux qui souhaitent se lancer dans la programmation, notamment Python, sans aucune connaissance de base. Étudiants, salariés en reconversion, ou simplement curieux, cet article a pour but de vous aider à découvrir le monde de la programmation.
À l'heure où j'écris ces lignes, il y a environ 2 ans, j'étais à votre place. Aujourd'hui, en tant que mentor et développeur Python/Django, je m'apprête à partager avec vous mon parcours : stratégie, réussites et obstacles.
Pourquoi apprendre Python ?
Python est aujourd'hui l'un des langages de programmation les plus utilisés de par sa syntaxe simple et sa présence dans différents domaines tels que :
-
Le développement web
-
Les applications de bureau
-
La data science
-
L'automatisation
-
L'intelligence artificielle
Ainsi, sa polyvalence ouvre la voie à de nombreuses opportunités professionnelles.
D'ailleurs, sur Docstring, nous proposons différentes formations :
-
Une formation complète Django sur le développement web
-
Une formation complète sur les applications de bureau
Une syntaxe accessible
Python se distingue aussi par sa syntaxe épurée et intuitive :
# On définit une variable 'age' avec la valeur 20 age = 20 if age >= 18: # Si l'âge est supérieur ou égal à 18 ans print("Vous êtes majeur") # On affiche ce message else: # Sinon (si l'âge est inférieur à 18 ans)... print("Vous êtes mineur") # On affiche ce message à la place
Je rentre assez vite dans le vif du sujet, mais c'est pour montrer à quel point la syntaxe est simple : vous voyez ici probablement l'exemple le plus complexe de "mathématiques" que vous aurez à faire en étant développeur : des opérations de comparaison ou d'addition du niveau de CM2.
Comme vous pouvez le voir, nul besoin de maîtriser les intégrales pour écrire des lignes de code (à part dans quelques domaines très spécifiques que nous aborderons en fin d'article).
La force de la communauté
De par sa popularité, la communauté Python est très importante.
Vous trouverez une multitude de ressources sur le web (articles, tutoriels, exemples de code, etc.).
Pour moi, la communauté Docstring a été très importante dans mon apprentissage. La possibilité d'échanger avec d'autres étudiants et des professionnels sur le discord m'a permis de poser des questions et d'aider d'autres personnes. De plus, la section Questions de Docstring offre un espace d'entraide qui s'est avéré être un véritable atout.
Les évènements tels que la PyCon et les Django Meetup m'ont permis de découvrir de nouvelles perspectives, de renforcer mes compétences et d'élargir mon réseau. J'ai même eu l'opportunité d'être intervenant pour ces deux évènements.
Premiers pas dans la programmation
Point de départ
La programmation m'intéressait déjà quand j'avais 15 ans. Mais étant donné que j'étais "nul en mathématiques", je n'avais pas tenté l'aventure. Grosse erreur : vous n'avez pas besoin d'être fort en mathématiques pour faire de la programmation.
20 ans plus tard, j'ai donc décidé de réaliser ce que je voulais faire. Et petit conseil pour ceux qui hésitent, j'ai commencé à apprendre avec cette vidéo.
Les ressources pour bien commencer
Comme dans tous les domaines, maîtriser les bases est un élément essentiel de l'apprentissage. Il est donc important de commencer par le parcours de base.
Ce dernier permet d'acquérir les bases en combinant théorie et pratique. Tout au long du parcours, il sera demandé de réaliser des quiz, des exercices et des projets. J'ai trouvé que ce parcours m'a permis de comprendre rapidement les fondamentaux.
Il ne faut pas hésiter à revenir sur les concepts que l'on ne maîtrise pas pour bien les intégrer. Aussi, réaliser un maximum d'exercices en fonction de ce que l'on a déjà vu pendant la formation.
L'idéal est de réaliser le plus d'exercices possibles à la fin du parcours de base.
Il est possible de travailler sur tous les thèmes, en augmentant la difficulté au fur et à mesure (débutant, intermédiaire et avancé).
Attention
Si un exercice vous pose des difficultés, ne restez pas bloqué trop longtemps. Le mieux est d'échanger sur le discord ou la section Questions de Docstring.
Apprendre et comprendre avec l'aide des autres, c'est tout aussi formateur.
Domaines et parcours plus avancés
Après avoir acquis les bases, il est naturel d'évoluer et de se diriger vers des domaines plus avancés comme le développement d'applications de bureau et d'applications web.
C'est durant cette période que vous allez développer des projets plus importants. Tout comme la formation de base, les parcours plus avancés permettent de réaliser des projets de plus grande envergure (un blog, un site de e-commerce, un lecteur multimédia, un explorateur de fichiers, etc...).
Choisir sa voie
Comme vu au début de cet article, Python est présent dans une multitude de domaines. Alors comment choisir sa voie ?
Pour ma part, j'ai commencé par étudier les bases du framework Pyside afin de créer ma propre application de bureau. Puis j'ai entamé la formation Django pour le développement web.
Je savais déjà que le développement web était le domaine qui m'intéressait le plus, mais cette formation a confirmé mon attrait pour ce secteur et m'a donné envie d'approfondir cette voie.
Comment faire ce choix quand on débute ?
-
Explorer avant de se spécialiser : consacrer du temps à découvrir différents domaines à travers des tutoriels et des projets simples. Ces expériences vous donneront un aperçu concret et vous aideront à identifier ce qui vous plaît réellement.
-
Le marché du travail : certains domaines offrent plus d'opportunités professionnelles. Une simple recherche des offres d'emploi vous permettra de vous faire une idée précise des compétences les plus demandées et des secteurs qui recrutent.
-
Faire ce que l'on aime : si vous êtes passionné par un domaine particulier, il peut être judicieux de vous y spécialiser. La motivation et le plaisir d'apprendre sont essentiels pour progresser.
Comment garder la motivation
La régularité prime sur l'intensité
Il est bien plus efficace de consacrer 15 à 30 minutes quotidiennement à la programmation, que de se bloquer 7 heures le dimanche.
Les sessions plus courtes et régulières permettent au cerveau d'assimiler et de s'habituer aux concepts.
Être organisé
C'est important de savoir dès le départ le temps que la formation va prendre. Et comme la régularité est importante, il faut prévoir cette formation dans son planning. Pour ma part, tout le long de ma formation je travaillais dans le commerce, j'ai une vie de famille (et avec des enfants en plus 🤯), je fais du sport, et je suis investi dans la vie publique. D'où l'importance d'être organisé et régulier.
Prendre le temps d'apprendre
Contrairement à certaines formations qui promettent un statut de développeur full stack en 3 mois, chez Docstring l'apprentissage est approfondi et progressif :
-
3 mois pour la formation pour acquérir les bases
-
1 an à un an et demi pour la partie web
Prendre le temps nécessaire pour apprendre et construire des bases solides est essentiel.
L'importance des projets personnels
Après avoir terminé une formation, appliquer ses connaissances est essentiel. Les cours et les formations sont une étape, appliquer ses connaissances pour développer ses propres projets en est une autre.
Les projets personnels m'ont permis de :
-
Consolider les concepts acquis pendant la formation
-
Découvrir des problèmes qui ne sont pas forcément abordés durant les tutoriels
-
Gagner en autonomie
-
Construire mon portfolio
-
Apprendre à développer une application du début à la fin.
Mon approche : un projet tous les 1 à 2 mois
Une fois la formation Django terminée, j'ai établi une routine efficace : réaliser un nouveau projet tous les 1 à 2 mois. Cette routine est selon moi applicable à tous les domaines de la programmation : se fixer des objectifs concrets et réguliers.
Cette discipline m'a permis de :
-
Maintenir une progression constante
-
Explorer et approfondir des concepts avec Python et Django
-
Constituer progressivement un portfolio varié
Comme dans tout apprentissage, la régularité est cruciale pour ne pas perdre le rythme et consolider ses acquis.
Diversifier les projets et monter en difficulté
Pour continuer à progresser, il est important de ne pas rester dans sa zone de confort.
J'ai bien fait attention à :
-
Réaliser des projets différents tout en montant en difficulté
-
Alterner en réalisant des projets en Python "pur"
Pourquoi réaliser un projet Python "pur" après avoir travaillé avec un framework comme Django ? Cela m'a permis de revenir à l'essentiel et de renforcer mes fondamentaux.
Quelques exemples
Voici quelques exemples de projets que j'ai réalisé.
Le forum en ligne de commande, avec création de compte (mot de passe inclu), affichage des catégories et sujets, et la possibilité de poster un message.

Inscription de l'utilisateur

Création d'une catégorie

Ajout d'un message sur le forum
Développement d'un livre dont vous êtes le héro en mode internet avec Django.

Jeu de rôle Django : choix des personnages d'une histoire
Développement d'un site professionnel avec Django.

En-tête du site
Développement de mon propre CMS avec Wagtail (un framework basé sur Django).

Administration de mon cms
Documenter et partager son travail
La réalisation d'un projet ne s'arrête pas au code : documenter et partager son travail est tout aussi important.
J'ai compris l'importance de :
-
Présenter mes projets sur les réseaux sociaux et notamment Youtube
-
Créer un site vitrine pour présenter mon portfolio
-
Rédiger des articles techniques et les partager
-
Documenter mes projets
-
Partager mon code
Pourquoi partager ses projets ? D'une part pour démontrer vos compétences, d'autre part pour recevoir des retours constructifs qui vous aideront à progresser.
La rédaction d'articles techniques permet d'approfondir votre propre compréhension des concepts et de démontrer cette compréhension.
À noter
Arrivé à cette étape, avec plusieurs projets documentés et partagés, vous disposez d'un véritable portfolio. Vous êtes désormais prêt à présenter votre travail à de potentiels employeurs. Ces projets constituent une excellente base de discussion lors d'entretiens. Ils démontrent vos compétences techniques et votre capacité à mener un projet de bout en bout.
Valider et approfondir ses compétences : le TOSA
Qu'est-ce que le TOSA ?
Le TOSA Python est une certification reconnue pour évaluer et valider les compétences en Python. Le niveau de maîtrise est mesurable via un score sur 1000. En fonction de votre score, vous obtenez un niveau de maîtrise allant d'opérationnel à expert.
Sur Docstring, nous avons un programme dédié à la certification TOSA. Le TOSA étant reconnu par l'État français et Docstring étant un organisme de formation certifié Qualiopi, la formation sur Docstring peut être financée par le CPF.
Pourquoi revenir aux bases après une spécialisation ?
Que ce soit Django ou un autre framework Python, ça reste du Python !
Après avoir travaillé exclusivement avec Django, j'ai décidé de passer la certification TOSA. Cette décision m'a beaucoup apporté, dans le sens où elle m'a obligé à revenir sur les fondamentaux du langage que j'avais parfois négligés au profit de fonctionnalités spécifiques à Django.
En visant le niveau expert, nous sommes dans l'obligation de pousser et de travailler les concepts afin de bien les maîtriser. Revenir régulièrement aux bases permet de maintenir sa compréhension globale du langage.
Les bénéfices
J'ai considérablement amélioré mes compétences en Python... donc en Django !
-
Écrire un code plus propre
-
Mieux comprendre le fonctionnement interne d'un framework
-
Être beaucoup plus à l'aise de manière générale, et savoir quelle ressource utiliser à quel moment
Il existe plusieurs certifications Python que vous pouvez passer : vous pouvez notre article complet à ce sujet.
Éviter les écueils classiques
L'apprentissage de la programmation n'est pas linéaire. Vous allez rencontrer des difficultés (et on en rencontre toujours) et peut-être faire des erreurs.
Éviter de s'éparpiller : le syndrome de l'objet brillant
Je pense que c'est l'un des pièges les plus courants dans la programmation (je sais de quoi je parle 😅) : le syndrome de l'objet brillant. Le monde du développement propose une multitude de frameworks et langages très attirants.
Un exemple :
-
On apprend les bases de Python
-
On commence à regarder très vite les formations JavaScript qui permettent de faire de "belles" choses
-
On entend parler de React qui permet de faire plein de "belles" choses aussi
-
On voit passer un article sur les langages Go et Rust qui sont "ultra-performants"
Si on voulait apprendre tous ces concepts dès le début et surtout tout en même temps, on se retrouverait avec des connaissances superficielles dans plusieurs technologies, mais sans maîtrise réelle, et donc non valorisables.
L'absence de plan
Si besoin, faites-vous aider, mais ne vous lancez pas dans l'apprentissage sans un plan structuré. La chance, c'est qu'avec une formation de base comme celle-ci, vous êtes guidés, et la structure de la formation est bien définie. Sans plan clair, le risque est de s'éparpiller entre les différentes ressources disponibles.
Le manque d'échanges
Le manque d'échanges avec d'autres apprenants ou développeurs expérimentés peut :
-
Vous faire stagner sur des problèmes simples
-
Être limité à son point de vue et sa façon de faire
-
Réduire votre motivation
-
Être privé de retours constructifs.
D'où l'importance de rejoindre des communautés en ligne et de participer à des événements.
Le perfectionnisme peut être un frein
Faire attention à son code est une qualité, mais poussée à l'excès, cette attention peut vite devenir contre-productive :
-
Ne pas vouloir passer aux étapes suivantes à la suite d'une insatisfaction constante de notre code
-
La peur de partager notre code par crainte des critiques
-
Ne pas partager ses projets par sentiment qu'ils ne sont jamais assez aboutis.
Mon expérience personnelle illustre bien ce point : j'écrivais du code fonctionnel mais pas toujours optimal, et j'ai pris l'habitude de le partager avec des développeurs expérimentés. Grâce à leurs retours, j'ai appris à faire du refactoring.
Alors si je devais synthétiser ma réponse à « comment j'ai appris Python en partant de zéro ? »
Je vous dirais que l'apprentissage de Python repose sur la régularité, une approche structurée de mon apprentissage, la réalisation de projets et le partage afin de bénéficier de retours constructifs.
Et les mathématiques dans tout ça ?
Pour la majorité des domaines, vous n'avez pas besoin d'être un expert en mathématiques.
Certains domaines spécialisés nécessitent des connaissances mathématiques plus poussées : Data Science avancée et intelligence artificielle requièrent notamment d'être à l'aise avec les probabilités, les statistiques ou encore l'algèbre linéaire.
Mais de nos jours, avec l'aide d'intelligences artificielles, il est de plus en plus facile d'apprendre ces concepts en autonomie ou de se faire aider.
Alors une chose est sûre : que vous soyez bon en mathématiques ou pas, rien ne devrait vous empêcher de vous lancer : vous pourrez très rapidement créer des projets concrets, et apprendre au fur et à mesure les notions mathématiques nécessaires, pour peu que vous ayiez besoin des maths tout court ;)
Bon Python !