how to succeed at coding
Wed, Feb 9, 2011
It happens all the time. You sit there with a cup of coffee, daydreaming about all the projects you want to do. Then the coffee runs out and the ideas pile up. Eventually you get round to actually choosing one to implement. You do some light research and before you know it, you’re confronted with a huge pile of technology skills that you either don’t have or have become rusty over time. So you read some more and procrastinate some more. You make some more coffee and go think. And so the cycle repeats.
This is what I was confronted with when I started Guanxi. Shibboleth? Wot’s that? SAML? eh? Digital signatures, XML encryption/decryption, PKIX, the list was endless. Eventually I just sat down, stopped going to meetings about talking about things and started coding. The more I coded the more I learnt and the more I learnt the deeper I could shine a light into unknown areas. Big problems crumbled into collections of smaller problems I’d already solved. I started to read APIs instead of tutorials and before I knew it, I’d written a SAML Service Provider and Identity Provider.
Well, it turns out I was exposing myself to the Zeigarnik Effect, which basically states that once you take the first step, the rest will follow.
I follow a fairly predictable pattern when learning a new programming paradigm. The latest is iOS. I start with books and tutorials, lots of them. I read and type code and endlessly debug it to work out why it won’t work. Eventually I learn the programming patterns. I read less books and start to read the API instead. Eventually it becomes second nature to bolt the boiler plate stuff together and I start to get creative in the code department. I start to form opinions I can defend. It’s only after that process has completed I can claim to have become an iOS developer.
So the smell of freshly ground coffee and the soft hum of the machine should remind you to just get started and get coding.