La (très grande) confusion du débutant

Bonjour,

J’ai testé un peu de codage en Python avec PyCharms et un tutoriel en ligne mais au-delà du langage lui-même, je suis totalement dans la confusion sur le choix d’une configuration Windows adéquate pour le développement. Je ne saisis pas bien la différence entre environnement, environnement virtuel, IDE, gestionnaire de paquets et surtout comment tous ces éléments s’articulent. Je vois passer les noms Conda, Anadonca, Miniconda, VSStudio, PyCharms, notebooks, et au plus je lis à ce propos au plus c’est la confusion, d’autant que pas mal d’articles sont implicites sur l’OS utilisé.

Tout ce bazar avant même d’avoir écrit la moindre ligne de code me décourage.

Je précise que je ne suis absolument pas professionnel du développement. J’ai quelques bases en C, Javascript et j’ai fait un peu de Python au travers du logiciel de modélisation 3D CadQuery. Je suis maintenant intéressé par Python essentiellement afin de pouvoir utiliser des outils d’intelligence artificielle dans le domaine du son mais je sais à peine utiliser git.

Avez-vous des conseils à me donner afin d’avoir un environnement de développement stable, ouvert et évolutif, et dont je puisse comprendre comment il est organisé?

Merci d’avance.

1 « J'aime »

Bonjour et bienvenu !

C’est une excellente question à laquelle j’ai envie de répondre « fais avec ce qui marche pour toi » (j’ai aussi très envie de répondre « Bannis Windows, c’est ni stable ni ouvert », mais non, fais avec ce qui marche pour toi, pour commencer.).

Si tu as commencé avec PyCharm, et que ça te plaît, continue avec, c’est un bon outil. PyCharm s’occupera de te créer un venv (un nom qui fait peur, alors que c’est juste un dossier dans lequel Python installe ses paquets), et il me semble que PyCharm te permet d’installer des bibliothèques depuis l’interface, laisse-le faire tant que ça marche pour toi.

Oui il existe des alternatives à tout comme tu as constaté (c’est une forme de liberté, on ne va pas s’en plaindre) mais non tu n’as pas besoin de toutes les connaître pour débuter : garde les choses simples.

2 « J'aime »

Merci pour la réponse.

Tout de même, j’aimerais mieux comprendre ma configuration, avec PyCharm ou autre.

Je laisserai un utilisateur de PyCharm te répondre alors :slight_smile:

Le conseil qu’on m’avait donné c’était de ne surtout pas commencer avec pycharm pour justement comprendre les environnements virtuels, pycharm fait pleins de trucs magiques tout seul mais dès que tu en sort tu es perdu.
En gros trouves un tuto sur les venv et lance ton code par la console pour les premiers exos que tu fais, après tu pourras goûter les joies de l’IDE en sachant ce qu’il fait.
Pour Windows, si tu as l’habitude et pas forcément la volonté de passer sur un autre OS ce n’est pas bien grave, on s’en sort (je m’en suis sorti au boulot car pas le choix, et avec des soucis de proxy pour installer les paquets…).
Fais bien attention ce n’est pas la même commande pour activer le venv sur Windows. (venv\Scripts\activate.bat il me semble) [Modif modérateur pour mettre le bon chemin]
Un truc que je n’ai jamais trop compris c’est les histoires de “py3”, j’ai comme réflexe d’installer python via pyenv et du coup tu lances avec “python”
(Pyenv te permet d’installer plusieurs indices de python différents et de basculer suivant le besoin)
N’hésite pas si tu as des questions

2 « J'aime »

C’est là où en tant que débutant je pense qu’il peut être très bénéfique de participer à une ou des rencontres…
Pour ma part (de moins en moins débutant mais quand même), je trouve les conseils de @mdk ci dessus très intéressants. Tu peux aussi faire quelques exercices python sur https://www.hackinscience.org/ et t’affranchir du coup de toute problématique de plateforme ou autre.

Fipaddict (débutant utilisateur de pycharm :wink: )

2 « J'aime »

Salut salut!
Je suis dans la position exactement inverse!

Je fais du python depuis 20 ans. J’ai commencé quand python était simple, et que c’était même son grand argument de vente! Il se disait qu’un programmeur connaissant les langages objet pouvait apprendre python en 20h.
À chaque fois que le trempe le pied dans Windows, je m’en mors les doigts. Mais certains y arrivent, et python essaie d’être “windows friendly”, et adresse très correctement les spécificités de chaque OS.
Depuis quelques semaines, j’essaie d’initier ma petite fille à python. Elle est sous Windows, et je n’ai pas encore réussi (on est en remote) à lui construire un environnement correct.
En tout cas, cette initiation provoque une prise de conscience de la complexité, non pas tant du langage, que de l’écosystème. ipython, jupyter, venv bien sur, mézossi git, donc ssh, le terminal, la complétion de commandes, oy oy oy!
On va se voir en présentiel bientôt, et j’aurai une chance de lui installer un environnement décent. En attendant, on utilise un jupiterlab, déployé sur une vm.

Pour appréhender l’écosystème, il faut se lancer dans “la pêche aux infos”:

  • googler le terme que tu ne comprend pas.
  • décider si c’est un concept que tu dois appréhender.
  • siwi, chercher les tutoriaux existants, et les parcourir.
  • choisir le tuto qui te permet de rentrer le plus vite dans le sujet: comme l’eau qui suit naturellement la plus grande pente.
  • garder ces tutos ouverts (et donc faire exploser ta consommation mémoire), tu ne peux pas de toute façon épuiser le sujet en une fois.

À la communeauté:
Le problème que nous présente notre ami est probablement très répandu. Quand on essaie de s’initier à une technique, et qu’on échoue, on reste souvent silencieux: on se trouve con, on se dit c’est ma faute, et du coup le problème passe sous les radars; tiens, il y a eu, cette semaine ou la semaine dernière tout un reportage sur france culture, sur les gens qui échouent au permis de conduire. Assez fascinant. Et typique d’un problème “sous le radar”.
Et ça soulève des problèmes pas que pour débutants. Par exemple, je me (re) mets à Pandas. En tête des tutoriaux, je trouve le “10mn to pandas”, c’est exactement ce que tu veux, passer 10mn à comprendre le truc, et pas te noyer dans les détails!
Sauf que ce tuto, tu le lis, tu te grattes la tête. Tu le relis, tu te regrattes la tête. Et c’est seulement quand tu décide d’aller voir ailleurs que tu commences à comprendre. Le mèque qu’a trouvé le titre, ça ferait un publicitaire de génie, mais l’auteur du tuto, c’est pas un bon pédagogue! Ou du moins c’est pas celui qui me fait avancer.
Quelle est notre démarche cognitive? Comment l’améliorer? Comment aider les nouveaux entrants à grimper la (steep) learning curve? Et combien repartent en courant?

2 « J'aime »

Je pense que le soucis n’est pas tant du côté de l’écosystème qui fourmille de multiples solutions de gestion de l’environnement mais d’une absence de réel guidage.
Pour débuter avec Python il n’y a nul besoin de connaître pip / venv / conda / jupyter / git ou autres, simplement de pouvoir installer l’interpréteur et un éditeur de texte (ou se contenter d’IDLE) et de commencer avec eux, en suivant la trame donnée par un cours.

Toutes les considérations relatives au fait d’installer des modules complémentaires devraient venir bien après.
On ne commence pas « pandas en 10 minutes »> si on n’a jamais fait de Python, tout comme on ne se lance pas dans la réalisation d’un site web avant d’avoir consolidé quelques bases de programmation.

“Googler” les termes que je ne comprends pas est ma démarche habituelle. Le problème est qu’avec Python, chaque recherche mène à plusieurs recherches, qui elles-mêmes en déclenchent d’autres et l’on ne s’arrête jamais.

Je note par ailleurs que Windows semble compliquer les choses. Vous conseillez donc de développer plutôt sous Linux? J’ai peu d’expérience avec ce système, mais si c’est vraiment plus facile, je pourrais installer une distribution sur un autre disque dur.

Cela dit, participer à une rencontre serait sans doute bien, mais y en a-t-il sur Bruxelles ou dans les régions proches (jusqu’à Lille éventuellement) ?

1 « J'aime »

Je doute que ce soit spécifique à Python, je pense que chaque domaine de connaissance est une « fractale » comme tu décris.

Je note par ailleurs que Windows semble compliquer les choses. Vous conseillez donc de développer plutôt sous Linux?

+1000. Je pense qu’on évite de te donner ce conseil dès ta première question, et qu’on essaye plutôt de répondre à la question. En tout cas j’ai volontairement évité alors que j’étais tenté. Je pense que pour beaucoup de monde, commencer à apprendre trois lignes de Python et entendre « utilise Linux » à chaque réponse de chaque question est peut-être fatiguant voire effrayant.

Mais OK puisque tu tends la perche, je te conseille fortement de passer sur Linux, surtout quand tu parles d’ « environnement stable et ouvert ». Et aller on lance le débat du choix de la distrib’ ? Moi j’utilise Debian (comme j’aime bien dire « sur mes serveurs, mon desktop, mon laptop, et mon téléphone »).

J’ai peu d’expérience avec ce système, mais si c’est vraiment plus facile, je pourrais installer une distribution sur un autre disque dur.

J’ignore si c’est « vraiment plus facile », une fois sur Linux tu verras tu auras aussi belle quantité de nouvelles questions, chaque réponse ouvrant de nouvelles questions, encore une fractale ! Mais libre.

Cela dit, participer à une rencontre serait sans doute bien, mais y en a-t-il sur Bruxelles ou dans les régions proches (jusqu’à Lille éventuellement) ?

@matrixise @debnet des conseils de rencontres Python dans la région ?

Pour @nesdnuma et @pierre.imbaud : au boulot (windows obligé) j’ai installé Debian en WSL (Windows Subsystem Linux ou un truc dans le genre). C’est rapide et on se retrouve avec un environnement linux largement suffisant pour faire du python “sous linux” sans avoir à jouer avec des systèmes différents et Cie.

1 « J'aime »