Original Author: Alex Norton
I’m sure this will will bet yet another inflammatory article from me, and for that I apologize, but this is something that I strongly believe needs to be discussed. I’ll try to keep it short, but it is something worth thinking over, if only for a moment.
Firstly, an anecdote. I was at work the other day, and several colleagues were formulating a plan to purchase a crowd-funded coffee machine. They figured that if they got a dozen people to chip in for it, they’d be able to enjoy nice coffees for a small fee. Anyone who didn’t chip in would be stuck using the basic coffee machine. The plan was solid and they got their dozen people, in the end deciding on one of those new pod-based machines you see George Clooney swooning over.
When asked if I’d like to participate in this exercise, I refused, which shocked people, as I am a big coffee drinker and have one or two cups at work every single day. I also like fancy coffee, and, to my co-workers, what they were going in for was as fancy as they could get. I was asked why I wouldn’t participate and I told them that I enjoy making my coffee myself. I grind my own beans, I have a lovely direct immersion brewer and I take as much time making a cup as I do enjoying it. Due to this, I was laughed off as being a “coffee hipster” when I could have easily had the convenience of quality coffee at the press of a button from one of these “pods”.
Am I a coffee hipster? Yeah, a little. But there’s a reason for it, and it has nothing to do with coffee. It is, in point of fact, the topic of this article, as this exchange got me thinking.
The art behind a craft is a beautiful thing, and that art is being lost.
Now, this applies to many, many fields, but in my example above – with the coffee – my argument against pods is not in any way to be taken as my thinking the pods are bad, or that they make bad coffee. My argument is that if everyone relies on a pod and a finished machine to make their coffee, then people will forget – and thus lose – the beautiful art of coffee brewing. But, as I said, this article isn’t about coffee as such.
They exist in virtually every field, but on the topic of software development – my own field – many of you here reading these articles will have come across a coding purist. Many of you may well be coding purists yourselves; people who believe that – as an example – a video game or other piece of software which is not written in Objective C or C++ is not a real application – that it hasn’t been done properly. There are many arguments for this, of course, and I’m not in any way attempting to discredit them. I strongly believe that all programmers should acquire a thorough understanding of not only the “how” behind coding, but also the “why”. When you hit F5 (or equivalent) to compile your code, it shouldn’t be some magical process that one does not understand. The better you understand the underlying “why” of code, the better a coder you will be.
This being said, one cannot allow this way of thinking to be absolute. As the years – and indeed months – roll on, many new technologies are being crafted to make our lives easier. In coffee, there are pods. In video game development, there are development engines such as Unity, UDK, etc, and in other fields there are other technologies. These technologies are, in most cases, created by people who DO have a deep understanding of the “why” behind the field. They are simply creating a guided path through the art for those who would otherwise fear to tread it themselves.
To mock, or otherwise think less of, those who would seek to make use of these tools is to forget the purpose of the art – which is to create beautiful things. It may be a perfect cup of coffee, it may be an exceptionally fun video game, it may be a hand-crafted wooden box. At the same time, however, I believe that to rely too heavily on these tools can be equally as wrong, but I’ll clarify that in a moment.
I was witness to an exchange recently where a young man – relatively new to the field of video game development – was told he wasn’t a “real programmer” because he wasn’t writing his entire project in C++. Some of you may be nodding at this, thinking that these critics are absolutely right, but I ask you this: What does it matter what tools are used if the end result is fun and works well? The language which he used to make the game is merely one tool of many with which the game is made. If the man in question understands the why, the craft, of video game development, and the result is a beautiful thing, then how is his achievement any less wonderful than that of someone who has done everything from the ground up?
Now please don’t misunderstand me. I am a strong believer in learning a craft as thoroughly as possible. I believe that the knowledge of the “why” is too important not to obtain, but if you set out to build a house using only a hammer and a saw, you’re going to have a hard time. It will make the house no less beautiful if you use a power tool or three, and yet you will use those power tools much more accurately if you understand how to perform that same task with only manual hand tools.
In fact, this highlights the double-edged sword that is the topic. If one wants to make beautiful things, one cannot allow themselves to fall too far to either end of the spectrum. At one end you have the purists, who insist that everything should be done manually and traditionally, and at the other end, you have the ignorant (and I mean that not as an insult, but instead in the literal sense) who rely solely on pre-built tools which do their work for them. I propose that both are the wrong way to operate, regardless of the task at hand, regardless of the field. It is for us to find a happy medium somewhere between the two in which to craft our beautiful things. You may lean slightly one way or the other, but that doesn’t make you wrong.
In many cases, the end justifies the means – especially when dealing with a product to be sold. Hard work and thorough understanding show up very clearly in a finished product, and ignorance leads to flimsiness and potential unreliability.
It is for us to focus on the beauty of our craft. Don’t lose it. Think of how far things have come in your field since you were a child, and think what the landscape will be like when our children are our age.