Title: After reading a codinghorror article I came across this in a comment:<p><i>Good programmers also figure out their best method of self-learning. I'm one of the oddballs that reads the entire manual.</i><p>That struck me as interesting.  I know I learn in what's probably quite an unusual way.  I'd be interested to know how other people here learn.<p>I teach myself new stuff in a <i>very</i> exploratory way.  For each of the new languages I've learned since starting at justin.tv I've spent probably five or ten minutes learning the syntax.  Then I jump in and start writing a real program that needs to be released within a week or so.  I usually start by writing a "hello world" program, and just add stuff to that until it does what I want (of course, as I learn new tricks I frequently <i>remove</i> a bunch of stuff).  If the language has a REPL I use it constantly.  If not, I fake it by just printing expressions in my program, and working in a tight loop of editing and running the program again and again to see how the output changes.<p>I rarely use a reference at this stage unless it's to achieve something concrete.  For example, I find myself googling things like "actionscript string search", but only <i>after</i> trying a couple of likely-seeming things myself (i.e. I'll actually just write things like trace("foobar".find("bar")) and trace("foobar".index("bar")), etc until the compiler stops whining or I run out of things to try).<p>Funnily enough, after I've written a real program that works, and I feel like I understand the language a bit, <i>then</i> I go back and read the reference books thoroughly.  It doesn't work the other way for me - I need to have had the exploratory phase and built up some context so that I can read the books properly (and it's fun to read the books at that point and remember how I "discovered" each feature that's discussed).
Upvote: