Why do I code? Because I couldn't not do it...

Why do any of us do this stuff? Why do we read so many books on the subject? Go to user group meetings? Fly across the country to hear people talk?

Why do you code? Seriously. I want to know.

Rory Blyth - Neopoleon.com - WHY DO YOU CODE?

Because I have to?

I code because I can. I code because I couldn’t not code.

I feel so at peace when my mind is immersed in building executable abstractions. Complete concentration and focus. I get pleasure from conjuring working software from nothing but my mind and an understanding of the problem. I enjoy getting down and dirty with complex, poorly documented, overly complex, APIs and making them simple for other people to use. I like pushing my thinking to its limits, striving to understand stuff that I find hard and searching for simple, elegant solutions. I like the way it makes me learn and makes me examine my working practices and continually look for ways to improve. I find myself looking for perfection and symetry and structure in the most chaotic places. I long for those ‘AHA’ moments when suddenly the batch job I fired into my head completes and the answer arrives without effort.

It’s easier to seek the kind of simplicity, elegance and perfection that I seem to strive for in something as intangible as software. The alternative, trying to achieve those kind of results with physical materials is just too hard, time consuming, and expensive. Trust me, I know.

I got interested in programming from a TSR-80 basic programming manual when I was 13. I worked through it all and was fascinated, even though I couldn’t type any code into anything as we didn’t have a computer. Then Dad bought me a Sinclair ZX-80 and we were off… I did a lot of basic programming on the ZX-80, dabbled with machine code and then moved on to a ZX-81 and then a Spectrum.

My coding died down a little at that point. There were too many games available on the later machines and I fell in with a bad crowd who spent their weekends locked in the lounge with bottles of coke playing role playing games

Meanwhile… Dad got an ACT Sirius for his business and I taught myself Turbo Pascal. Then an Apricot Xen-i 386 where I taught myself C. Next came a home made 486-25 where I taught myself C++, Windows SDK programming, writing multi-user games and UNIX.

While all that was going on I’d finished school and left to work for the family building company. I did an apprentiship as a plumber and worked with Dad for 10 years… It’s actually only in the last couple of years that I’ve realised just what I gained from that time. My entire work ethic was molded then, working with someone who knew exactly what they wanted and who wasn’t prepared to compromise on quality. All this time I was teaching myself to code and coding every evening.

Eventually I got a job writing code, continued to learn and here I am…

Comparing building physical structures with mental ones I definitely find it far easier and more pleasurable building with my mind.