What got me into programming

Back to posts

A friend once told me “I paste your texts into Word to read them before replying because they are so long”. While I appreciated the effort she put in, I took this as a sign to change course with my texting style. Similarly, when a party guest or an interviewer asks me “what got you into programming”, I have learnt that they often don’t want the whole, unfiltered story. Nevertheless, I have often wished for a place to document my real answers, for anyone who might want to fully understand.

Luckily enough, in my recent endeavour to prefigure a post-social-media-fallout return to a more personal, distributed and long-form web, I have created a blog – the exact medium made for imposing your most drawn-out thoughts on a niche few who care for some reason. And so I present to you

What got me into programming

When I was a child I wrote books before I knew how to write. Literally. Somewhere in my archives (my preferred term for clutter) I have “books” about hungry dinosaurs written with gargantuan dots on the I’s, that would surely topple their scrawny stems if they were subject to the real world laws of physics, and a very liberal approach to spelling and grammar. I can only assume one day when watching The Land Before Time, I was moved to think “I can make that”.

Don’t get me wrong, I don’t think this is a particularly unique activity for a small child. I am not quite that conceited. But I think perhaps the persistence and evolution of this trait throughout my life says something deeper about me. When I am captivated by a work of art I am not satisfied with having experienced it from the outside. I am drawn inside it, I want to pick it apart, understand how it works – I do not want the chopped wood, I want to wield the axe.

I have utilised this drive to achieve a lot of things where others do not presume to try. I, of course, did write a lot of stories, winning a lot of writing competitions and selling a serialised comic book to my peers throughout school. Upon becoming fascinated by synthesised sounds I couldn’t stop myself from learning to produce music. And when my love for making art and stories led me to Japanese anime, and eventually literature, I fell so in love with the language that I taught myself enough to take an A-level in it independently – all three writing systems and all. After all, as Anne Michaels says in her harrowing 1996 novel Fugitive Pieces, “Reading a poem in translation… is like kissing a woman through a veil.” [1]

So fundamentally, I am a creative. But where does programming come into this?

To me, computers are the ultimate canvas. In the analogue world perhaps you can create a painting of an alien landscape. In the world of computers you can create an alien landscape you can step into. The aliens can talk and you can talk back to them. It’s a fundamentally interactive medium. Especially in the period of techno-optimism I grew up in, in the noughties (yes, dotcom bubble and all that, but also the video of Steve Jobs unveiling the iPhone still sends shivers down my spine), it felt like anything was possible with computing. It was the new frontier of creativity and business that my generation had inherited. For someone with a mindset like mine, who wants to tinker and create in ways others have not – I was instantly drawn to harness the magic power that made it all work – code.

Cue me, strapped to the computer for days trying to make some version of Crypt Raider in Game Maker 7 at the age of eight. My allocated computer time would eventually get limited, but that only meant I spent the rest of my time very seriously brainstorming with my older cousin about how we were going to work up to creating a two person studio that ran an MMO to rival WoW.

Screenshot of yoyogames.com 2007
Figure 1: yoygames.com GameMaker 7 download page circa; 2007 capture (web.archive.org/web)

I remember distinctly one summer holiday, my uncle driving me down country roads that, in the ephemeral footage of my memories, glisten with the saturated greens of childhood. I vented to him about how swamped I was with work for my new game studio, how I hadn’t even been outside but the work was too important to put off. He listened patiently and did not question the legitimacy of this business.

I certainly wouldn’t have recommended investing in the venture – I hadn’t quite figured out that learning the proprietary Game Maker Language might not be enough to achieve the goal of running a live service game. The complexities of networking, authentication, security and server management went very much over my head at that point.

At around eleven years old I heard through the miasma that is the school rumour-sphere that Minecraft had been made by one man writing Java. I immediately downloaded a tutorial that showed me how to make games in Java and made some kind of frog-based crossy-road. To my endless frustration (it still irks me to this day), IT lessons in school had continued to patronise my internet-native brain with tutorials on how to use PowerPoint for the last three years. I knew I was going to have to teach myself if I was ever to learn to do actually complicated things with computers. Unfortunately, without guidance or even money for books (I begged my mother for a copy of The C Programming Language to no avail, and I was not lucky enough to be afforded pocket money), I did not get very far…

In defence of the computer artist

At this point I’m afraid I’m losing credibility with some readers. I’m talking a lot about being drawn to a field that is ostensibly a science through my love of art. Sure, a lot of children have probably fantasised about making a video game before, but when it comes down to the nitty-gritty of programming – writing algorithms, managing memory, understanding networking concepts, designing distributed systems – is that something an artist’s spirit can be lit up by? Am I a soft soul who wishes only to wax lyrical about the fantasy of programming, unable to face the treacherous depths of its technological complexity?

Luckily, I can point to accomplished computer scientists from an age where personal computing was barely starting to be conceived of, and being a top level scientist was almost a requirement for being a programmer. Donald Knuth, Stanford professor emeritus and winner of the ACM Turing Award for his “major contributions to analysis of algorithms and the design of programming languages” [2], argued for programming as an art form in his 1974 lecture Computer Programming as an Art [3].

Picture of Donald Knuth at IBM 650 console 1960
Figure 2: Knuth at the console of the IBM 650 at Case, with basketball coach Heim; 1960 (www.bhavana.org.in)

A large part of the lecture discusses how we really distinguish art and science. Knuth argues that throughout human history, the words have been used rather interchangeably, but over the course of the enlightenment it seems “the words took on more and more independent meanings, ‘science’ being used to stand for knowledge, and ‘art’ for the application of knowledge” [3]. Knuth raises a quote from John Stuart Mill:

Art in general consists of the truths of Science, arranged in the most convenient order for practice, instead of the order which is the most convenient for thought. Science groups and arranges its truths so as to enable us to take in at one view as much as possible of the general order of the universe. Art… brings together from parts of the field of science most remote from one another, the truths relating to the production of the different and heterogeneous conditions necessary to each effect which the exigencies of practical life require. [4]

Since I am not a researcher on the frontiers of understanding computer science I assume that most potential collaborators would expect me, as a programmer, to be focused on the practice of programming, rather than cogitating about it. Surely, by this definition, a good programmer must be an artist before anything else.

However, Knuth insists he does really mean that programming is an art even in the more modern aesthetic sense. The form of code can be beautiful, the elegance with which a program achieves its function can be beautiful, and it can be pleasurable to read. These factors also have a business function. Elegance of function can also be seen as robust and efficient code and, as many Big Tech proponents of “clean code” and “readable code” can attest to, beautiful, pleasurable to read code allows teams to function more optimally. The very existence of “style guides” in tech companies acknowledges that code can have style and it is beneficial for programmers to have an eye for it.

Generally, I find the best programmers, like Donald Knuth himself, have an appreciation for the aesthetic side of code. Linus Torvalds is certainly one of the most celebrated programmers alive. When he says that no language could ever replace C in the field of operating systems because he likes that when he reads it, he can imagine the exact Assembly it will compile to [5], that is not really an argument for the function of C, it is an argument about style.

On the topic of C, I think we can agree that the lower level a programmer works at, the generally more skilled they have to be. Certainly, some of the most virtuosic programming I have seen is in this video about obfuscated C code submitted to the regular International Obfuscated C Contest. The level of skill that is required to achieve these creations would certainly make you a top 10% programmer. And the creations are full of style and creative whimsy. Amongst winners of last year’s contest you will find people like Adrian Cable, an MIT and University of Cambridge educated software engineer who is the founder of AI company Iridescent Labs. He is undoubtedly successful as well as creative.

Based on these examples, I am satisfied that I have convinced you that artistic inclination is only of benefit to me as a programmer. And thus we may continue my story.

Becoming a professional

As a young adult, my excelling in a Japanese A-level based only on my own teaching led me to receive an unconditional offer at SOAS University of London to study Japanese, and I stumbled down that path instead for a while. However, it did not pull me fully away from code. Learning Japanese is actually what brought me into contact with the open source community for the first time. The Venn diagram connecting hardened Japanese language nerds and programmers is almost a circle. Programs like subs2srs and morphman were fundamental to me being able to make the progress I did in the complex field of language mastery and continued to spark my fascination in learning (and inspire some projects I am creating today like Dokumate). The latter was so bare bones it even required me to start editing the source code to achieve the functionality I wanted (I hadn’t quite figured out that I could actually contribute these changes at the time).

screenshot from kanji kohii forums 2017
figure 3: morphman plugin annoucement posted 2011 on now dead kanji koohii forum - further down it metions struggling to use mecab, which i have now experienced in creating my dokumate application, that is a homage to this homebrew japanese language learnign software culture; 2017 capture (www.bhavana.org.in)

Eventually, I found myself learning Python on the University of Waterloo website in my spare time, while working a job as a Japanese language customer service operative at a games company and becoming increasingly frustrated with obvious bugs in the game that I had no power to fix. I found my love for the intricacies of syntax that I had gained as a student of languages served me well in learning to program. I was able to take in patterns quickly. I found the structure of code fascinating, beautiful even and I learnt to code Python at a similar lightning speed as I had learnt Japanese by myself before university.

However, I honestly thought working as a software engineer was a pipe dream for me at this point. I had made the wrong turn with university and there didn’t feel like any real way to correct course. This was when, in 2021, I got an email from the Bright Network Technology Academy offering a free twelve week coding boot camp. I knew that twelve weeks was a stupidly tight schedule to bring myself up to a professional level. So I dropped all other commitments, moved home with my mother and became the sort of person who only answers texts after 10pm. Never in my life have I worked so hard for something. I programmed well into the night, seven days a week, never shying away from things I did not understand. By the end of it my health was shot, but I also had my first job as a Java engineer.

screenshot from kanji kohii forums 2017
Figure 4: The Ecowhat MP voting habit aggregation site is a project I made with classmates at the bootcamp

My first job was difficult. I did not understand how to be a professional software engineer and completing my tickets in a messy brownfield codebase did not feel nearly as creatively fulfilling as the game projects I had made as a child or the greenfield web dev projects I made with the friends I had bonded with through the hardship of the boot camp. Eventually, however, I started to understand how my aesthetic love of code could be expressed in enterprise software and, furthermore, how it could make me an asset to a company. When I began my second job at Universal Music, I was given more freedom and more responsibility. Mentors encouraged me to take ownership over the whole codebase and see its inelegances as opportunities to improve it with my style and vision. I was no longer just trying to bring about the basic function of a ticket, but design more beautiful systems. I think this is when I really fell in love with what programming truly consists of.

I loved writing code that was concise and clean, pleasurable to read, and that I had used my creativity to make more efficient, secure and fault tolerant than my predecessors in the codebase had considered. And I was rewarded for this attitude. When a senior developer on my team suggested that rewriting the mobile application for umpgwindow.com so that it actually could comply with our security requirements would take more than a year, I said with confidence that it would take less than six months. I had already envisioned how to do it and my manager handed full control of the application over to me. I completed the project in less than five and made the codebase not only more secure, modern and fault tolerant, but, according to the team, much more pleasurable to work on. This all came from my creative mind and obsession over making every line beautiful, and it felt amazing.

Does any of this even matter in the age of AI?

You would have to be living under a rock to have missed the countless headlines in the last couple of years that claim “coding is dead”. In an April 2025 interview for the Special Competitive Studies Project, Eric Schmidt, former Google CEO, claimed “in the next one year the vast majority of programmers will be replaced by AI programmers” [6]. With the advancement of AI in the year since, culminating in the release of Anthropic’s Claude Fable 5, this claim seems certifiably clairvoyant.

Considering these circumstances, you may think that my soliloquising on my love for writing beautiful code is at best irrelevant and at worst proves how out of touch and obsolete I am. Fortunately, I am not stuck in my ways. For me, harnessing tools like Claude Code has opened up opportunities for me as a lover of knowledge and creation. Just as Tim Berners-Lee’s decision to make the web a freely available source of knowledge allowed me to learn a foreign language that was never offered to me in school, the art of music production that was previously hidden behind golden doors and the magic of code that previously only haunted the corridors of top academic institutions, AI allows me to improve as a software engineer at a rate previously unimaginable. The walls that I previously hit are shattered, and I find myself producing some of my best work to date.

Eric Schmidt claims that those who are writing code manually will be left behind. While I maintain that writing some code manually is worth doing if only to keep oneself in shape and alert to the inaccuracies of generated code (and also to write all the less common things that AI has not learnt to do properly – have you ever asked Claude to write a complex Dockerfile?), I agree that investing in other skills is the way to go at this juncture. Mainly now I focus on system design and systems thinking. This was the logical next step as a mid level engineer, but AI is making it both faster for me to grasp and far more vital.

Does this move away from the writing of beautiful code quell my enthusiasm for the field as an artistic soul and previous proponent of beautiful, handwritten code? Not in the slightest. I think the same definition of art that allowed us to see code as an art form earlier can be used to see systems in the same way. Indeed, in my readings about understanding and choosing different database management systems, I was struck with a similar feeling to hearing a beautiful piece of music when I heard about Cassandra’s gossip protocol. I don’t think my spark is dead.

Conclusion

I have gone off on many tangents in this post. Hopefully, you have enjoyed the journey, but it’s time to get back to the point: What got me into programming? Ultimately, I got into programming because I loved creating things. Games, books, songs and software – I just want to be the person who creates works that people are inspired by. I became obsessed with it because I love systems I can take apart and understand, whether they’re languages handed down by culture or design patterns inherited from generations of highly creative computer scientists. I stick with it because there is so much more to create and discover, no matter how the medium changes.

Perhaps my creative drive could be satisfied elsewhere, I currently live in a very creative household full of ceramicists, guitarists, tattoo artists and more who are horrified by the amount of time I spend in a dark room on a computer. But for some strange reason, all I want to do is bathe in the warm glow of a computer monitor for days at a time, living in the world of the computer. It’s the place where I reach the most exalted state of human existence most often – the flow state – and the place where the possibilities feel the most endless. It’s where I’ve lived the most of my life and perhaps by the time I die, technology will even allow me to be buried there too.

Bibliography

  1. Michaels, A. (1997) Fugitive Pieces, Thorndike Press, p. 136.
  2. Association for Computing Machinery (2019) A. M. Turing Award — Donald E. Knuth. Available at: https://amturing.acm.org/award_winners/knuth_1013846.cfm
  3. Knuth, D. E. (1974) Computer Programming as an Art, Communications of the ACM, 17(12), pp. 667–673.Available at: https://dl.acm.org/doi/epdf/10.1145/361604.361612
  4. Mill, J. S. (1843) A System of Logic Ratiocinative and Inductive. London.
  5. Torvalds, L. (2019) Linus Torvalds "Nothing better than C". YouTube. Available at: https://www.youtube.com/watch?v=CYvJPra7Ebk&t=5s
  6. Schmidt, E. (2025) Dr Eric Schmidt, Special Competitive Studies Project. YouTube. Available at: https://www.youtube.com/watch?v=L5jhEYofpaQ