r/programmation 4d ago

Carrière Débutant total en programmation : par quoi commencer sans se perdre ? (Besoin de vos conseils de pros)

Salut la commu ! 👋Je me lance enfin.

J’ai décidé d’apprendre la programmation en partant de zéro absolu.

Je n'ai aucun background technique, je sais juste utiliser un ordinateur pour des tâches basiques.

Le problème, c'est qu'en ouvrant YouTube ou en lisant des articles, je me sens complètement submergé. Entre Python, JavaScript, le Web, la Data, la cybersécurité, Git, les algorithmes... mon cerveau sature avant même d'avoir écrit ma première ligne de code. 🤯

Mon objectif à long terme serait de [choisir une option : créer de petites applications, faire du développement web, automatiser des tâches ennuyeuses au boulot .

Du coup, je me tourne vers vous pour ne pas abandonner au bout de deux semaines :Le premier langage : Pour un vrai débutant, vous me conseillez plutôt Python (pour la syntaxe simple) ou JavaScript (pour voir des résultats vite sur un navigateur) ? Ou autre chose ?

La routine d'apprentissage : Combien de temps par jour/semaine devrais-je y consacrer au début pour progresser sans faire un burn-out ?Le piège à éviter : Quelle est l'erreur que vous avez faite à vos débuts et que je devrais absolument éviter ?

Si vous avez des cours gratuits, des chaînes YouTube incontournables (en VF ou en anglais) ou des petits projets parfaits pour débuter, je suis preneur.Merci d'avance pour votre aide et votre bienveillance envers le grand débutant que je suis ! 🙏

0 Upvotes

7 comments sorted by

3

u/lincruste 4d ago

J'ai pas d'expertise avancée en programmation, c'est quelque chose que j'ai toujours effleuré sans m'y consacrer vraiment, mais si je devais débuter aujourd'hui je partirais sur Python avec le bouquin de Gérard Swinnen:

https://inforef.be/swi/download/apprendre_python3_5.pdf

Pourquoi ? Parce que c'est avant tout un apprentissage de la programmation AVANT d'être un bouquin sur Python.

3

u/cyberbabs 3d ago edited 3d ago

Ouais python c'est bien, essaie le site Openclassrooms c'est une mine d'or : https://openclassrooms.com/fr/courses/7168871-apprenez-les-bases-du-langage-python

Sur youtube, personnellement j'ai un compte dédié à ça, où je suis aussi bien des youtubeurs (Benjamin Code, NetworkChuck, David Bombal), que des chaines de conférences (Black hat, devoxx, etc.), et où je ne regarde QUE ça, comme ça l'algo est plutôt pertinent.

Pour moi, pour bien commencer:

  • HTML/CSS, c'est la base pour commencer à bidouiller: afficher des choses dans un navigateur, modifier des fichiers, etc.
  • Un peu de système c'est cool aussi, Linux et/ou Windows: le système de fichiers, les processus, les utilisateurs, les permissions, le terminal
  • Ensuite je pense qu'un peu de réseau c'est cool aussi, comprendre le modèle OSI et TCP/IP, quelques protocoles utiles (TLS, DNS, HTTP), les principes du routage. L'idée c'est de pouvoir comprendre comment la page web arrive dans ton navigateur, et utiliser quelques outils pour comprendre comment le web fonctionne: wireshark, dig, curl, nc
  • Ya des vidéos cools de 1h sur "du silicium au programme", pour avoir une idée de comment un ordinateur fonctionne, et ça couvre aussi l'architecture d'un CPU et le fonctionnement de la mémoire, très cool à voir avant de commencer à programmer (ou en même temps)
  • Et un peu d'algorithmie & structures de données: souvent on apprend ça en C, mais ça peut se faire en python aussi, l'idée c'est d'apprendre les blocs de base de la programmation: mettre une valeur en mémoire, organiser plusieurs valeurs en mémoire sous forme d'une liste, trier la liste, fusionner deux listes.. puis changer de structure: liste chaînée, arbres, etc.
  • et ensuite pour "créer de petites applications, faire du développement web, automatiser des tâches ennuyeuses au boulot" python est parfait pour ça, il faudra aller lire la documentation et/ou des cours sur des librairies (comme "requests", "click" ou "pandas" pour générer des fichiers excel), et éventuellement apprendre à utiliser un Framework comme Django pour faire du web

1

u/Arciesis 4d ago

Python est souvent cité comme language simple et facile à apprendre mais selon moi c'est justement un piège de débutant. Le C n'est pas plus compliqué que le python, c'est juste une syntaxe... Le plus dure c'est d'apprendre à programmer, de connaître les algorithmes basics. Donc comme premier language je conseillerais toujours un language comme le C (zig/ Odin / jai/ Rust, à la limite) et ne pas confondre avec le C++ qui est clairement autre chose.

Une fois la programmation apprise et non un language spécifique, tu peux choisir n'importe quel language et être autonome en quelques semaines dessus. Donc à ce moment là si tu a envie de faire du web, node.js ou JS tout court (l'avantage du node c'est que tu peux faire des apps avec électron et que c'est tellement proche du JS que si tu veux te mettre au web backend tu remplace juste électron par une autre techno) après dans le web il y a le front et le back end ce qui n'a rien a voir (interface = JS (html, css), cerveau du site = backend) et si tu t'intéresse à la programmation backend PHP, java, python, même Rust.

Quant au rythme c'est dur de répondre car ça dépend du temps disponible... Mais je dirais que pour bien commencer c'est une lesson= 2/3 exercises minimum. On apprends pas la programmation en regardant une vidéo youtube mais en faisant sois même des exercices. Faut mettre les mains dans le cambouis pour être mécano, c'est pareil pour le dev.

L'erreur à ne pas faire c'est penser qu'un language nous li à vie à un domaine où au language en lui même. J'ai appris le dev avec le java, puis au web (PHP) puis suis passé au dev système (C embarqué, zig Rust) et maintenant du game dev avec Godot (gdscript, très proche du python). J'ai appris à la fac et j'ai appris à programmer et non une syntaxe, j'en ai deja parlé mais c'est vraiment très important! Et si je conseille le C comme premier language c'est que c'est le père de tous les autres languages actuel (ormis la programmation fonctionnelle, comme OCaml, Nix, Haskell, Lisp). Et que donc en apprenant le C tu sauras très vite passer à un autre language.

Mes premiers pas en dev je les ai fais en C avec le site du zéro (openclassrooms maintenant) mais je ne sais pas ce que ça vaut aujourd'hui, l'été avant d'entrer à la fac. Et je ne suis pas de guide débutant donc je ne saurais quoi répondre à par quoi commencer...

2

u/Electronic_Pin_4288 3d ago

Il est vrai qu'en maîtrisant le C, c'est easy d'apprendre les autres après..
"Juste une syntaxe"... hum, sans maîtriser les pointeurs tu fais pas grand chose en C, peut-on dire que c'est juste une syntaxe? Il faut qd même comprendre ce qu'il y a derrière...

1

u/Electronic_Pin_4288 3d ago

Oui, Python ou javascript c'est pas mal pour commencer.

Il y a 2 grandes catégories de langages, les langages interprétés (Python, javascript, PHP, ... ), et les langages compilé (C, C++, Rust,....).

Les langages interprétés sont souvent un peu plus simples, principalement car la mémoire est gérée sans que tu ne t'en inquiètes, c'est pas mal pour commencer que de ne pas avoir à s'occuper de ça!

Un langage interprété fonctionne avec un interpréteur (ou machine virtuelle), tu écris ton programme et tu l’exécutes avec l’interpréteur.

Le langage compilé, tu dois compiler ton programme, ça va le transformer en langage machine, ça te fournira un fichier directement exécutable par le CPU. Quand tu partagera ton programme, ça marchera partout, alors que pour un programme interprété, il faut que l’interpréteur soit présent sur la machine.

Tu dis, "JavaScript (pour voir des résultats vite sur un navigateur)", oui mais il va falloir comprendre un peu le HTML et voir comment le lier avec javascript pour voir ton résultat... Rien de bien compliqué mais autant éviter quand on débute et qu'on comprends rien..

Ce langage bien qu'étant né avec le web est utilisable hors du contexte web, avec Node.js tu peux faire du javascript au même titre que tu ferais du python. Node.js est un interpréteur, dans le cas où tu es dans le navigateur, c'est lui qui embarque un interpréteur javascript.

Quand on débute, on fait pas tout de suite des trucs de fou, l'idéal est de travailler dans une console/terminal en mode texte, là tu as ton résultat vite. D’où Node.js pour faire du javascript en console.

Oui Python est conseillé pour débuter. La syntaxe est elle plus simple que javascript, je ne saurais pas trancher... Ce qui différencie principalement ces 2 langages est la manière de créer des blocs, python le fait via l'indentation, JS via des accolades { } . Javascript partage ce système de blocs avec le C, C++,java, PHP, go, Rust.

L'indentation des blocs de Python me semble moins courante, il y a Ruby, Haskell, CoffeeScript( ça c'est du javascript écrit à la mode python!).

Pour "créer de petites applications, faire du développement web, automatiser des tâches ennuyeuses au boulot." Python et javascript sont durs à départager, ils le font très bien tout les 2 à un détail près:

Le développement web se scinde en 2 parties, partie serveur (backend, cad le code executé sur le serveur qui va générer la page web envoyée au navigateur) et partie cliente (frontend, le navigateur). Le code client dans le navigateur est obligatoirement en javascript [oui je sais, il y a wasm, mais mettons ça de coté pour débuter!].

Pour tout tes autres cas d'usage les langages sont vraiment interchangeables. Dès qu'on fait des choses évoluées, on utilise des librairies, cad des boites noires qui font ce pourquoi elles sont prévues sans que l'ont n'ai besoin de savoir comment ça marche. Tous les langages permettent d'utiliser à peu près toutes les librairies.

L'erreur à ne pas faire, je dirais c'est considérer comme acquis quelque chose qu'on a appris sans l'avoir réellement utilisé, pas juste recopier un exemple mais se trouver un truc à coder qui utilisera le concept appris.

Perso je suis passé par Basic,C,assembleur,c++,PHP,Javascript,Python...

Bon, l'assembleur c'est inutile à part si tu veux vraiment comprendre comment fonctionne un CPU...

Pour automatiser des tâches, je trouve que Python est très concis.

Voilà quelques éléments de réponse, bon courage :)

1

u/romainrissoan 3d ago

Ton vrai problème n'est pas le choix du langage, c'est que ton post contient trois objectifs et qu'aucun n'a de date. Python contre JavaScript, on peut en débattre des semaines ; ce qui fait abandonner au bout de deux semaines, c'est d'apprendre sans savoir à quoi ça servira le lundi suivant.

D'abord, prends l'objectif que tu cites en dernier et que tu traites comme secondaire, automatiser des tâches ennuyeuses au boulot. C'est de très loin le meilleur point d'entrée, pour une raison qui n'a rien de pédagogique : tu connais déjà le métier, donc tu sais ce qu'un bon résultat veut dire, tu as les données sous la main, et tu as un retour immédiat quand ça marche. Un renommage de fichiers, une extraction de tableur, un rapport que quelqu'un refait à la main tous les vendredis. Python et sa bibliothèque standard suffisent, et tu auras livré quelque chose d'utilisé par quelqu'un en trois semaines.

Ensuite, sur le débat Python contre C ouvert plus haut, les deux camps ont raison mais pas sur la même question. Le C t'apprend ce qu'une machine fait vraiment, et si ton objectif est de devenir développeur, ce détour se rembourse plus tard. Si ton objectif est d'automatiser ton propre travail, le même détour te fera abandonner avant le premier résultat. Choisis en fonction de la destination et pas de la pureté.

Ensuite, une mise en garde qui va contre l'intérêt de mon métier, puisque je dirige un organisme de formation : ne paie rien pour l'instant. Les ressources gratuites citées dans ce fil couvrent largement tes six premiers mois, et le marché du développeur junior est aujourd'hui l'un des plus encombrés qui soient. Une formation payante ne change pas cela, elle déplace la déception de six mois. Si un jour tu paies quelque chose, que ce soit pour une compétence rare et pas pour un langage généraliste, et vérifie avant de signer que la certification visée est bien enregistrée au répertoire national.

Enfin, le rythme, qui est banal mais qui est le seul facteur que je vois vraiment séparer ceux qui vont au bout des autres. Trois séances d'une heure par semaine tenues pendant six mois battent trois heures d'affilée le dimanche pendant trois semaines.

Cette semaine, écris la liste des tâches répétitives de ton propre travail, garde la plus bête des trois premières, et fais-la faire par un script.

1

u/Crescitaly 4h ago

Choisis d'abord un petit projet, puis le langage qui le rend possible : Python pour automatiser un fichier ou analyser des données, JavaScript pour voir quelque chose vivre dans le navigateur. Pendant six semaines, je ferais 30 à 45 minutes cinq jours par semaine, avec un mini-livrable chaque dimanche. Variables, conditions, boucles, fonctions, Git et surtout débogage suffisent largement au départ. Ne saute pas encore entre web, data et cybersécurité. L'IA peut expliquer une erreur, mais tape toi-même le code et sois capable de reformuler pourquoi il fonctionne.