Thursday, July 23, 2009

Can you teach old dogs new tricks?


I am trying to learn a new programming language, Python, the new 'it' language. I taught myself PHP 10 years ago and it's interesting comparing the two experiences. 10 years ago I bought a couple of books on PHP and immersed myself in the language. I had many, many frustrating days trying to do seemingly obvious things with no success. But after six months I was pretty competant and after 18 months I was pretty good. For the last nine months, I have been working on and off with Python and I'd still class myself as a beginner. So what's the difference? Is it just that I'm 10 years older and finding it harder to learn new tricks?

Firstly there's the attention thing. Sometimes I can't remember if I brushed my teeth or not, but when I was a child with only a few hundred brushes behind me I was still a novice, and paid close attention to my brushing. Now with many thousands of brushes behind me I pay little attention, the brain focused on what to do today or tomorrow or what I should have done. So it's hardly surprising, given my lack of attention, that sometimes I can't find the memory of brushing my teeth. So while I've been learning Python for nine months, very little of that time was actually spent concentrating on learning. I have far more distractions than I did 10 years ago, far more different areas of work, and far more horses! So I don't put my attention into learning I put my attention into solving the immediate problems at hand as quickly as I can.

And this is the second point. Youth is for learning, and once we grow up, we are expected to get on with it. Until I moved back to Ireland, I attended evening classes took up new interest and was always learning new skills and new subjects. But there are fewer opportunities here, and seemingly less time every year, so I don't expect to have the time to learn, I just fix. So rather than sitting down and trying to learn Python, I've created websites in Python and fixed problems as they arise. I didn't even buy a book until a month ago! With Google, fixing rather than learning is so easy. You type in the kind of problem you're trying to solve,"python difference between two dates", for example and up comes the solution. You didn't have to work it out you just copy and paste and move onto the next problem. So in a months time you find myself again googling "difference between to dates".

So I don't think that is a problem in teaching old dogs new tricks, as long as the old dogs recognize that they're going to have to pay attention and commit their energy to learning, a skill which may be a bit rusty. I need to bring a different mind to the table, sit down with a different intention and probably uses a different part of my brain. I need to stop being so pragmatic and remember the joy of mastering a new skill and finding a whole new view on the world.

2 comments:

Ed Davies said...

Funny, I'm in exactly the same position.

I've been using a number of languages over the last decade or two: C, C++, Java, XSLT, mostly. More recently I've done a bit of JavaScript and wrote a little Ruby trying to get to like it but deciding I never would (it's too much of an ad hoc heap of ideas to my taste) so for non-browser stuff I thought that Python would be "it".

I keep starting on learning it, reading different online tutorial things and looking at the O'Reilly andpocket reference, the only book I have, and writing a few notes but other than running hello worlds I've just not settled on it. I keep getting distracted and coming back to it a few weeks later finding I need to start at the beginning again. Probably what I need is to write a significant program in it but, like you, I have enough other things to think about that that doesn't happen.

Phoebe Bright said...

Glad to know I am not alone!