Wednesday, September 03, 2008

Observations on how we learn

So I have a 4 year old...

She's pretty smart if I do say so myself, she is right at that cusp of learning to read - she knows her alphabet very well.  She recognizes some words and can spell simple ones.  She is getting pretty good at typing her name (and it is a long one).  The interesting thing is, that as she types her name she repeats the letters in her name as she types it starting over each time.  So if her name was Elizabeth (which it isn't) she would type E and then say out loud "E-L" and type the L.  Then she would say "E-L-I" and type the I.  She would do this over and over and just about spell her name for every letter in her name.

This is interesting to me because I see myself following these same patterns when I learn new things...  Specifically learning python, I typically don't talk out loud (unless it's been a bad day) but mentally I am constantly repeating to myself what I've learned - "Watch the indention, no semi-colons, parenthesis aren't necessary in conditionals" almost every line of python code has the same chant.

Which confirms the old adage about bad habits learned early are almost impossible to break.  If you repeat to yourself the same mantra 1,000 times a day and find out it's wrong it is very difficult to correct yourself and not make the same mistakes over and over even though you know better.

I wonder if that is what makes great programmers early feedback from mentors who know what they're doing.  I think it was Suzuki Roshi who wrote a book on Beginner's Mind.  Basically once we believe that we have figured out what is going on we limit ourselves by our current knowledge base.  We see this over and over, historically a simple example is the one time wide spread believe that the world was flat.

I think continuing to cultivate a beginner's mind in our work helps us become better at whatever it is we're doing, but especially with programming.  I don't know how many times junior developers have come to me with solutions that I would never have thought of.  It is also impossible to have a big ego when you are maintaining beginner's mind.  It also doesn't fill peers and business partners with confidence all of the time but it keeps us honest and to me that is a fair trade.