Parallels: Learning to drive & learning to code
Things about learning to drive I wish I knew when I was learning to program
Before I start, fear not! This isn't one of these silly "10 reasons why having a poo is a lot like good software design", you can read my thoughts on those things by reading my post on what The Girl With The Dragon Tattoo can teach us about Web design.
I am currently learning to drive (about 10 years late to the party, but better late than never, right?) and something has recently snapped with me that has made driving so much easier and if I had known it when I was learning to program it probably would have made me a good programmer more quickly.
All I wanted to say was the thing I have learnt recently is that if you can focus on the big problem and see it early enough in advance, all the little stuff kind of takes care of itself and makes a lot more sense.
Instead of thinking about all the little things (when the clutch goes in, when to break, etc. etc.) take it as read that you know how to do them (assuming of course you have had your first lesson) and worry instead about what you can do to get to your destination with as little hassle as possible.
On a driving test you are far less likely to fail by forgetting to change gear than you are to not reacting to a parked car in your lane until it is too late, just like with programming, your project is less likely to fail because some syntax is wrong compared to if you have solved the wrong problem or you have designed the methods poorly.
A quick counter argument is that if you don't know how to express yourself you can't program to match the big picture, but that is rubbish. The hardest part about programming is not syntax or remembering classnames, it is getting good at designing robust solutions, but when you are learning to program you spend way more hours thinking about the small things that are quickly referenced than you do thinking about the bigger problems.
I guess it is similar to the time it takes you to learn your second language compared to the first, and the third compared to the second, you stop worrying about small things and start thinking about solving problems.
Anyway, tenuous programming metaphor over, wish me luck for next week!