For a long time it puzzled me how something so expensive, so leading edge, could be so useless. And then it occurred to me that a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match. - Bill Bryson
I love this quote, it beautifully sums up computing. The power that these machines have is incredible and the amount we have come to rely on them is scary enough to generate more than a few Hollywood films over the years. Yet on their own they are next to useless - a serious of mechnical switches that are either on or off at any given time. It requires a human programmer to bring these machines to life and to reach their potential, man and machine working in perfect harmony.
Alas, that is rarely the case, as it turns out programming is actually pretty hard. The more we push what computers can do the more complex the code becomes, even at low levels of complexity humans make mistakes and bugs are introduced, the problems only mulitply as the scale increases.
That then is the challenge for modern day programmers, how do we move beyond the "hacking something together" mentality of those early pioneering geniuses and make software development quicker, cheaper and less error prone?
If you are reading this blog and expecting answers, well I'm sorry to disappoint but you won't find any. What I do hope to do however is document my ideas, thoughts and practices which I believe will push us further towards these goals.