How I Learn
By doing. It is as simple as that.
I can?t go to sleep unless I have read for 30 minutes or so first, but I typically don?t read technical books during this time.
I have been carrying technical books to my kid?s wrestling practice, though and I do a LOT of reading on meet days where I wait 6 hours for 4 matches to occur while sitting in the bleachers. Books are important and choosing them carefully is a big deal because our technical books are so darn expensive. Anyone want to form a book exchange club?
Books are great, but they typically convey ideas without complete understanding. Understanding for me comes only through practice. For me, creating software is just like playing an instrument.
Reading about a technique doesn?t give it to you. You must actually practice and fail before earning it.
I use blogs as filler in my day. I read on the train (no train in Boise) and while waiting at the airport, etc. I probably spend 30 minutes a day reading blogs on my iPhone via the Feeds application tied to my Google Reader. It?s great.
It can get overwhelming quickly, though. So I have backed off to a manageable number of blogs that resonate with me.
Blogs hold a wealth of information, though. I often find new ideas in blogs where books offer only well presented rehashing of existing ideas. Blogs also tend to be very context specific, so I have a better chance of finding someone who shares my pain than to read about it in a book.
I firmly believe in coding katas. From Wikipedia:
Kata (? or ?, literally: "form") is a Japanese word describing detailed choreographed patterns of movements practiced either solo or in pairs.
Note ?practiced either solo or in pairs?. Wildly appropriate for learning a new technology isn?t it?
Katas are prescribed movements, like following a detailed Hands on Lab. They don?t get you to mastery and they aren?t intended to. Practiced over and over, katas and labs are powerful tools to introduce muscle memory so that when the time comes for sparing or writing the actual application, the technique is in your head.
It is also my experience that like katas, repeated passes through technology tutorials will produce deeper understanding with each successive pass.
Learning by Doing
The thing about any craft is that it is not enough to understand it. This is the difference between the academic and the practitioner. One must have both a fundamental understanding as well as the muscle memory of execution to be considered a master of any craft. I can read until I am blue in the face about carpentry, but if I try to cut a straight line, the first 10 will be crooked.
For me, the motion of performing the exercise may take a repetition or two until it sticks, but once it does I am able to proceed to the next level of understanding: The ability to intelligently question the technique. I don?t dare open my big mouth like this, until I have worked with the system enough to understand what I am questioning.
The repetition in the motion of doing is required for fundamental understanding beyond unapplied theory. That?s why ?non-coding architect? is a derogatory term.