Quelle est la meilleure méthode d'apprentissage?
Scénario: "moi, j'apprends"
J'apprends.
- Je commence par le tutoriel, que je lis de fond en comble
- Je continue par les concepts annexes
- J'approfondis quelques sujets qui me paraissent importants, utiles, bons à connaître
Malheureusement, très rapidement
- Je prends du retard sur mon projet
- Je m'éparpille, je me documente sur des concepts qui ne me serviront peut-être jamais
- J'approfondis trop, au détriment d'une vue d'ensemble
- Et surtout, je commence à oublier ce que j'avais appris au début, je perds le fil, je me rappelle à peine du tutoriel...
Scénario: "moi, je fais"
Je me lance.
- J'essaie de comprendre les concepts de base, peut-être le début du tutoriel
- Je me lance, je débute mon projet, et je défriche au fur et à mesure
- Quand j'ai besoin d'un nouveau concept, j'épluche rapidemment la documentation, et j'applique mes acquis
Malheureusement, très rapidement
- Je passe à côté de concepts très utiles et intéressants
- Je ne possède pas assez de bases pour développer mon projet intelligemment
- Je ne connaît pas les outils qui me simplifieraient la tâche
- Et surtout, je me rends compte que mon projet mériterait un refactoring, alors qu'il débute à peine
Scénario: le juste milieu?
J'essaie de trouver le juste milieu entre "j'apprends" et "je fais".
- Je commence par le tutoriel, que je fais
- A chaque étape du tutoriel, je met en pratique ce que je viens d'apprendre en faisant quelques modifications/améliorations
- Je me fais ensuite (rapidement) une vue d'ensemble des différents concepts et outils disponibles
Ensuite, j'entamme le projet. Le déroulement d'une journée de travail pourrait être :
- Je démarre le projet par la partie la plus simple
- Dès que j'en ai besoin, j'approfondis un concept/outil nécessaire à l'étape en court du projet
- Quand je rencontre un concept/outil adjacent, qui pourrait m'intéresser dans l'avenir, je le marque comme "à lire"
- Une fois rentré chez moi, ou avant de commencer le travail le lendemain, je passe un peu de temps à me documenter sur ce que j'ai marqué comme "à lire"
Ma méthode
J'essaie de suivre au mieux le scénario "le juste milieu" : Apprendre chaque jour un peu, et faire. Voici un ordre d'idée du déroulement d'une journée de travail, une fois que le projet est démarré:
- Je me réserve une heure le matin, pour me documenter sur des sujets généraux, des outils...
- puis j'avance sur le projet, et ne me documente que si nécessaire pour résoudre un problème précis
- si je rencontre un sujet que j'aimerais approfondir, j'ouvre un onglet dans mon navigateur pour le lendemain matin
Quelques ordres de grandeur :
- Un tutoriel doit prendre quelques heures (au maximum une journée)
- Le temps passé à le mettre en pratique en faisant quelques modifications/amélioration ne doit pas dépasser le temps passé à le suivre (donc durée totale "tutoriel + mise en pratique" < 2 journées)
- Une fois le projet démarré, se documenter sur un outil/concept doit prendre (en moyenne) moins de 50% du temps de travail (ce ratio doit évaluer en faveur du développement au fur et à mesure de la maîtrise du sujet)
Selon le sujet à apprendre, ces ordres de grandeur varient:
- Plus d'apprentissage pour un nouveau langage de programmation (par exemple, Python)
- Plus de mise en pratique pour un nouvel outil (par exemple, Mercurial)
- Environ 50/50 pour un framework (par exempe, Django)
Et vous?
quelle est votre méthode? Avez-vous des astuces à partager?