There is a popular saying amongst writers that goes “sometimes you have to kill your babies”. It is a truly terrible saying but nevertheless, delivers a very important message that any writer worth their salt knows to heed. The message, in less horrific terms, is that when creating a piece of work, one must know when to let go of the things we hold dear for the greater good of the whole. This is a lesson that I’ve had to learn and relearn countless times over the years of writing scripts and screenplays. Now that I’ve begun the transition from writing dialogue and scene action to writing functions and Boolean conditions, I’ve noticed this sage nugget of wisdom rearing its head yet again.
Any creator, whether they be writing a novel, painting a mural, or programming an application, is faced with a seemingly endless string of choices. It often feels like the act of making decisions is the most important, and frequently the most frustrating, aspect of these job descriptions. Simply put, it’s hard to let things go. I’m sure most people can relate to that in some capacity. Sometimes we grow attached to certain aspects over the course of a project, whereas other times the entire impetus for an endeavour might be a single idea that blossomed into something greater. And those are the aspects that tend to be the fodder for our most difficult and yet most important decisions. The idea behind “killing your babies” is that as creators we must sometimes be cold-blooded with our creations. Our fondness for any singular idea, concept, or feature is not reason enough for it to survive. If it does not contribute to the greater good, then it must be cut loose or else it will inevitably drag the whole project down with it.
It has been a fascinating and unexpected discovery to come across this all-too-familiar conundrum again in this (seemingly) radically different field. I now find myself regarding features and functions with the same parental love that I have held countless times in the past for characters and moments. And sure enough, I have once again been faced with that terrible decision where the feature that I once thought would be the cleverest and most innovative part of my application is now the main thing holding it back. It always seems so unbelievable at first when the thing that I thought was the very core of my project is now trying to force its way into places that it doesn’t belong. I am now dulling the things that shine the brightest in order to squeeze in some concept simply because I like it. It is easy to lose sight of the fact that writers shouldn’t be writing for themselves but rather for their readers. And likewise, programmers shouldn’t be building applications for themselves but rather for their users. So, no matter how precious that clever little feature is to me, if it does not benefit my program and therefore does not benefit my user, then it must be put out to pasture. I can weep for it, but I cannot let it live.
One of the most interesting facets of my journey into coding has been discovering these unexpected parallels with my previous endeavours. I admit that I’ve always been partial to finding the hidden patterns in life, yet I cannot help but see these fundamental pillars springing up over and over across different fields. I must also admit that there is tremendous comfort in the realization that all creators seem to travel down similar paths with similar pitfalls and similar rewards. Whether we create with ink or paint or logic, we all share the desire to make something from nothing and this is what truly makes me feel at home amongst the functions.