Bonjour,
Je retranscris une question que j’ai posée sur le Discord non-officiel pour pouvoir en discuter plus confortablement. Tous les types de programmation sont concernés, mais il a bien fallu choisir un forum.
Quand on apprend à programmer, on nous dit tout le temps de commencer par des projets facile et d’augmenter progressivement en difficulté. Quel est l’intérêt par rapport à commencer par un projet difficile, mais de le découper un parties de difficulté croissante ?
Et quand on débute, on ne sait pas encore où on va bloquer, et ce qui sera compliqué pour quelqu’un, juste que ça se produira à un moment, donc même définir la difficulté des projets, c’est pas trivial. Des suggestions ?
J’ai aussi eu une réponse par @Aabu, que je copie ici
Ça me parait une question complexe. Je pense que c’est important d’avoir des projets/exercices bien calibrés pour en voir le bout et garder une certaine motivation. Découper un projet difficile en parties faciles (avant même de le réaliser) me paraît déjà difficile en soi pour un débutant.
La difficulté des projets me paraît plus facile à quantifier dans beaucoup de cas. Pas forcément par l’apprenant cependant. Tu as différents curseurs objectifs : complexité architecturale, des algorithmes, du problème en tant que tel (simulation numérique subtile par exemple, ou apprentissage profond), criticité de la performance, etc.
Ça permet de dire que faire un morpion, ou une calculatrice c’est plus simple que de faire un RTS 3X en 3D qui permet de jouer en réseau et avec une IA à l’état de l’art (à savoir qui commence à battre de bons humains sans tricher)
Du coup, j’en remets une couche. J’ai une éducation scientifique assez solide, donc j’ai beaucoup moins peur de devoir implémenter un modèle où il va falloir choisir comment calculer une différentielle par rapport à des trucs qui pourraient être traditionnellement vus comme plus simples (i.e. faire un front, ou gérer des connections multiples, ou mettre à jour un modèle de base de données, ou … la liste serait longue).
C’est pas du tout évident pour moi de savoir comment partitionner pour ne pas avoir l’impression de me retrouver face à une montagne. Dès que je commence quelque chose, même facile, il faut utiliser git, et un environnement virtuel, et choisir un langage/framework, et parfois choisir la bdd, etc. Et je ne sais pas trop si ça vient du fait que mes projets sont trop ambitieux pour l’état de mes connaissances et compréhension, ou si ça vient du fait que je ne les découpe pas correctement.