Mathieu Agopian : Apprendre à faire, et faire

Quelle est la meilleure méthode d'apprentissage?

Scénario: "moi, j'apprends"

J'apprends.

  1. Je commence par le tutoriel, que je lis de fond en comble
  2. Je continue par les concepts annexes
  3. J'approfondis quelques sujets qui me paraissent importants, utiles, bons à connaître

Malheureusement, très rapidement

  1. Je prends du retard sur mon projet
  2. Je m'éparpille, je me documente sur des concepts qui ne me serviront peut-être jamais
  3. J'approfondis trop, au détriment d'une vue d'ensemble
  4. 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.

  1. J'essaie de comprendre les concepts de base, peut-être le début du tutoriel
  2. Je me lance, je débute mon projet, et je défriche au fur et à mesure
  3. Quand j'ai besoin d'un nouveau concept, j'épluche rapidemment la documentation, et j'applique mes acquis

Malheureusement, très rapidement

  1. Je passe à côté de concepts très utiles et intéressants
  2. Je ne possède pas assez de bases pour développer mon projet intelligemment
  3. Je ne connaît pas les outils qui me simplifieraient la tâche
  4. 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".

  1. Je commence par le tutoriel, que je fais
  2. A chaque étape du tutoriel, je met en pratique ce que je viens d'apprendre en faisant quelques modifications/améliorations
  3. 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 :

  1. Je démarre le projet par la partie la plus simple
  2. Dès que j'en ai besoin, j'approfondis un concept/outil nécessaire à l'étape en court du projet
  3. Quand je rencontre un concept/outil adjacent, qui pourrait m'intéresser dans l'avenir, je le marque comme "à lire"
  4. 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é:

  1. Je me réserve une heure le matin, pour me documenter sur des sujets généraux, des outils...
  2. puis j'avance sur le projet, et ne me documente que si nécessaire pour résoudre un problème précis
  3. si je rencontre un sujet que j'aimerais approfondir, j'ouvre un onglet dans mon navigateur pour le lendemain matin

Quelques ordres de grandeur :

Selon le sujet à apprendre, ces ordres de grandeur varient:

  1. Plus d'apprentissage pour un nouveau langage de programmation (par exemple, Python)
  2. Plus de mise en pratique pour un nouvel outil (par exemple, Mercurial)
  3. Environ 50/50 pour un framework (par exempe, Django)

Et vous?

quelle est votre méthode? Avez-vous des astuces à partager?