Three years ago I decided to get back into programming, not for school this time so that I could get a passing grade or augment a project. It was something I did to become more marketable, to have a fresh and profitable skill, aside from the advantages of building up problem-solving know-how and beefing up logical thinking. There was no downside.
I had heard of this language called Python, so I had a look at it. It has a scary name but once I realized its cognitive load was less than the other languages I had come across, Java, C# and The God Language C++, I took to it, and kept at it for a little more than two years.
I was so into it, I went back, after a fashion, to the Java I had run away from and I was thinking of building an Android app. What kind? Well, you will see why this never took off in a bit. That is how much I latched onto coding.
I cannot exaclty pinpoint when it was, but something changed. I could not seem to focus anymore. I found myself daydreaming whenever I opened my code editor, and simple errors took hours to find and fix. Implementing simple logic turned into a chore and I found myself getting lazier with each passing day and turning to online searches for things that previously I could conjure up in minutes.
I remember helping an intern with a simple download program: set it to download a file from a given server a certain number of times while showing the progress, find the average download time taken and then delete the downloaded file. I knocked it down in under half a day, from start to finish, bug fixes included.
I looked at the code again a while back and I felt like an impostor. Did I really write this? It was getting harder to find Python articles interesting and to finish tutorials. There was an emptiness inside me and I could hear echoes of a past I felt that I could never attain again ring hollowly and hauntingly in my head. The thrill was gone.
I shifted away from programming, to reading (for and not school) and writing and watching cartoons, and in the moments in and between these activities, it occurred to me that I had never clearly defined what I wanted to achieve while coding. Most people I have interacted with want to build things (apps, infrastructure, websites) and automate regular and tedious tasks (systems administration). They have clearly defined objectives and thus know exactly how to go about attaining them. I did not.
To a significant extent none of this was clear before but even then I knew something was off and it had a lot to do with what my intentions were. I slogged through for a few more weeks until about four months ago when I quit out and out. I was done.
Even as I set up virtual environments and installed the packages I thought I might need on the new operating system running on my machine, deep down I knew I was done. I had had my fun and it was time to grow up and admit, much like my redefined feelings for Subarus, that this was not such a bad thing.
Working at tech company, it was inevitable that conversations about programming would come up. And they did, and I gave the excuse I usually give – I did my best and it just never stuck. People would nod understandingly because, I guess, we all have those things we have shot our shot at and missed, over and over, to the point of a resigned comfort.
In a world in which we are constantly reminded we can be anything and do anything, only if we work really hard, the knowing that this is not always true is hitting home a good one, as the cool kids say these days.
My father is fond of saying that excuses are like armpits: everyone has them and they all stink. Mine was not good enough. It was as smelly as they come, so I looked beneath the surface. I was scared I would never be a good programmer, not like the guys and girls I looked up to. It might be a carry-over from my uni days. I was never good in class. My grades were wanting. Programming made me feel as if I was in class again, that I was in a place where there was immense potential to fail spectacularly.
More than that, I work with some really hotshot engineers. There is no way my stuff, that against theirs looks like “Hello, World!”, would match up to their cloud architectures, Arduino code and shell scripts.
Even through all this, I had attained something, a certain peaceful patience. It was at the tip of my brain, as it were, and about a week ago it came to me. It was not the sensation of falling and scrambling to attain some kind of balance that comes with not knowing what you are doing and why you are doing it. It was a warm glow, a feeling of connectedness that I recognized as empathy. It might look like some new age brouhaha, that one can become more empathic from programming, but bear with me.
When I set out to code, I was using tools built by other programmers, from the text editor, to the compiling tools that ran quietly in the back, to the actual programming language, to the operating system on top of which all these run. Until I attempted to build my own tools I had not fully grasped just how daunting and challenging it is to create a particular class of software.
I was jolted into a new awe of programmers and programming and with this came a patience that I did not believe I was capable of. We are fast to judge and deem certain apps or websites horrid. To some degree, this is true. But, if you were to step back you would realize no one sets out to build a bad product on purpose. Even the ones that slow down our phones and computers and occasionally crash them were mostly created with the best intentions.
And this may be another reason to learn how to code: to better appreciate computers and software, the things that we take so much for granted that we never stop to think just how much work has gone into them. Now when I
lovingly harass our engineers to get fixes out, I also want to hug them (no, really) and tell them what a fantastic job they are doing, aware of the challenges they overcome with each of their keystrokes, of the sheer hard work and experience that goes into building even something as simple as a spinning error icon. Sembuse video games, operating systems, photo and video editing software?
And it is not just where the raw lines of seemingly incomprehensible text are concerned. There is a syntax and artistry to the best code that takes on the flavour of poetry, and I will go so far as to say that programming is an art form. You are creating something from nothing, something that moves and makes you feel and seems to have a life of its own. How many are the times you feel that you can talk to your phone or computer, that they
How many are the times you feel that you can talk to your phone or computer, that they get you, and you cannot seem to recall a time before them? (Of course, this may also be because your phone and computer are watching you in a sense. To the builders of the software, you are just another data point to collect information from in order to later sell to).
This is an ode to those brave women and men who dare to talk to the machines that make our lives that much more bearable, the ones who build the software that often seems like it has taken away some of our cognitive functions. I tried to do this and I fell short.
To further extrapolate, we all need to put ourselves in such situations, to take risks to better discover ourselves and to fully grasp the kind of effort that goes into making something, anything. Undertaking a challenge such as programming, writing, learning a musical instrument, things that seem easy from the outside, may help us become more patient, kind and understanding with others, and more so, with ourselves. Here is to learning a skill, even if it only has cool value.
Undertaking a challenge such as programming, writing, learning a musical instrument, things that seem easy from the outside, may help us become more patient, kind and understanding with others, and more so, with ourselves. Here is to learning a skill, even if it only has cool value.