Comment maximisez-vous les connaissances que vous acquérez d'un livre de programmation? [fermé]


26

Non pas parce que je me soucie du temps qu'il faut à quelqu'un pour lire un livre, mais plus parce que je suis intéressé par la façon dont les gens acquièrent les connaissances d'un livre (ou je suppose d'autres sources) dans leur cerveau de la manière la plus efficace et la plus efficace.

Personnellement, je prends une approche multi-pass (de ma réponse à la question d'origine):

  1. Parcourez le contenu, plongez-vous et lisez n'importe quoi avec un titre intéressant et enfin regardez tous les beaux diagrammes et illustrations. Je ne prendrai pas grand-chose à ce stade, mais cela me donne une vision mentale du livre (une heure au plus)
  2. Tout d'abord, parcourez le livre, généralement je vais lire attentivement les premiers chapitres pour un livre qui est soit très lourd soit qui présente quelque chose de complètement nouveau. Pour les livres qui couvrent un sujet que je connais déjà, je vais effleurer ou sauter des morceaux qui semblent triviaux. Le reste du livre je vais passer en revue assez rapidement mais pas si vite que je suis juste en train de feuilleter une page. (environ une semaine)
  3. Tous les livres que j'ai lus ne vont pas aussi loin, mais si je trouve un livre suffisamment intéressant ou utile, je l'étudierai correctement. Je vais parcourir le livre à un rythme plus lent et faire certains ou tous les exemples, essayer le code, etc. Je saute souvent des chapitres entiers ici à moins que le livre ne soit vraiment bon (1-3 semaines selon le livre).
  4. Enfin, quand j'ai fini de le lire et que je lis d'autres livres, je vais souvent y plonger encore et encore pour faire des références croisées, comparer, rechercher, parcourir, etc. poussière sur l'étagère.

Je prends rarement des notes lors de la lecture (bien que je puisse faire une certaine planification sur papier si je travaille sur quelque chose comme un exemple de code). J'ai également envisagé de commencer à utiliser un kanban personnel pour organiser mes progrès, mais je n'ai jamais vraiment utilisé cette technique. Les mindmaps sont une autre chose que j'aime bien mais que j'aime rarement.

Quelles autres méthodes ont les gens? Dans quelle mesure les trouvez-vous? Existe-t-il des techniques couramment recommandées qui, selon vous, sont une perte de temps?


J'essaie personnellement de prouver que l'auteur a tort ou de voir s'il y a des cas de coin qui cassent ou je ne comprends pas. OMI, toute connaissance que vous apprenez mais ne testez pas la fausseté peut être une épée à double tranchant.
Espérons que ce sera

Réponses:


30

Fais les excerises.

S'il n'y en a pas, inventez-en.


3
Et après avoir fait les exercices, réimplémentez-les dans votre propre code à votre manière. Les exemples sont beaux et bien, mais rien de tel qu'une implémentation du monde réel pour comprendre pleinement un concept.
Hugo

+1: vous pouvez ajouter ceci en haut de cette réponse: "Pratique".
Klaim

Tous les livres de programmation de nos jours vers la fin proposent un court projet. Faire cela est la plus grande référence que chacun puisse avoir pour suivre les progrès.
Venki

6

Assurez-vous que vous appliquez certaines des techniques dans votre programmation quotidienne dès que possible.

Je trouve que si je n'applique pas immédiatement les choses que j'ai apprises, je dois les revoir quand j'en ai réellement besoin.


1
Absolument. Je pense aussi que ce n'est que lorsque vous appliquez quelque chose dans un contexte différent de celui présenté dans le livre que vous passez vraiment de la mémorisation à la compréhension. Malheureusement, ce n'est pas toujours possible ... bien que je sois le responsable du développement où je travaille, donc personne ne va vraiment me demander si je peux trouver une raison plausible pour laquelle nous devrions faire telle ou telle chose à Prolog ou autre, c'est parfois tout simplement pas approprié pour apporter des choses dans le travail quotidien. Je suppose que c'est à cela que servent les projets personnels, mais vous perdez alors de nombreux avantages de l'apprentissage cumulatif.
FinnNk

@FinnNk - Je n'ai pas dit que ce serait facile;) C'est le problème que j'ai en ce moment avec WPF. Je fais un projet à la maison, mais je n'ai pas beaucoup de temps à y consacrer, donc je dois constamment réviser ce que je sais.
ChrisF

6

Mettez en surbrillance tout ce qui vous a surpris. Cela facilitera sa recherche à l'avenir.

Écrivez largement dans les marges.

Si vous prêtez votre livre à quelqu'un, demandez-lui de suivre ces mêmes règles, idéalement de différentes couleurs. Cela ajoute de la valeur à votre livre.


2

Allez-y avec un ami. Mieux encore, envisagez de lire le livre comme un exercice comme la programmation par paires, où vous essayez tous les deux de vous l'expliquer. (Et bien sûr, faites les exercices comme cela a été dit ci-dessus)


1

Mettre en place

Mettez en œuvre chaque nouvel algorithme ou technique que vous lisez par vous-même, en utilisant uniquement votre mémoire de la description de l'algorithme ou de la technique comme référence.


1

En raison d'un manque d'attention, j'ai du mal à me concentrer lorsque j'apprends dans une approche traditionnelle, du début à la fin. Je passe à la fin du chapitre et passe directement aux exercices, puis j'utilise une combinaison du livre et d'Internet comme référence pour résoudre les problèmes.

Une fois que je me suis mis dans une position où je dois utiliser le matériel du livre comme un moyen au lieu de l'étudier "parce que je devrais le savoir", les concepts deviennent beaucoup plus faciles à ramasser et à pratiquer.

Mes problèmes de focus signifient également que je ne tape pas directement les exemples de code, et que je pense à mes propres exemples et que j'utilise le code du livre pour m'aider à les réaliser. Être créatif avec le processus d'apprentissage garantit que je m'amuse avec lui, et le caractère unique de tout ce que je crée facilite la mémorisation de ce que je fais.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.