From: Craig Maloney Date: Mon, 9 Jul 2018 11:18:24 +0000 (-0400) Subject: Adding more about how to best learn X-Git-Tag: 0.3.0^2~9 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=a9a1aa5b5906b8ee19a0ffdd8467357984ab97bd;p=themediocreprogrammer.git Adding more about how to best learn --- diff --git a/chapter06.md b/chapter06.md index 0c61059..65ea250 100644 --- a/chapter06.md +++ b/chapter06.md @@ -9,4 +9,8 @@ When I graduated college we learned Pascal, Modula2 and Ada. When I started my f Programming requires flexibility. It's difficult to just learn one way of doing things and make that stick for over 20 years. Think back to what the technology was 20 years ago and you'll no doubt notice that things are quite different now. -Instead of learning specific methodologies and technologies we programmers are better served by learning how to learn. That sounds simple: once we've cracked how to learn effectively then we'll be set. Unfortunately there isn't currently a foolproof way to learn that works for all people. +## Learning to learn + +Instead of learning specific methodologies and technologies we programmers are better served by learning how to learn. That sounds simple: once we've cracked how to learn effectively then we'll be set. Unfortunately there isn't currently a foolproof way to learn that works for all people. Different folks learn better when different things are emphasized. Some learn better in a classroom while others learn best with self-directed study (books, video recordings, etc.). If you have the luxury of trying several different methodologies for learning I would encourage you to take them as much as you can. Figuring out what works for you will be key to helping you progress and grow. + +For me I've found that some simple principles work best for me. The first is repetition. I learn better when I continually do something over and over again in small chunks. The second is having a small goal that I can achieve. So for me having some daily practice time on a project where I can see the end goal works best for me. When I was learning Python I enrolled in PyWeek, which is a one week game programming sprint where the theme is announced near the beginning and all programming happens during the week. For that entire week I devoted time to completing a game, and by the end of the week I'd learned more about Pygame (the library that I'd used) and Python than I had in the weeks leading up to PyWeek. Doing a one-week game jam (as they're currently called) is a bit extreme but it gave me a clear goal (a game) and a time-frame to accomplish it (one week). Over the years I've learned more about Python with various projects (both for myself and professionally) that had clear end goals.