I tap out the command, check the script once more, and smash the enter key. The cursor on the screen pauses, pensively. Then, all of a sudden, it's off. With a flurry, the nondescript black screen buzzes with energy – numbers and characters fly across the terminal. Then the flurry stops, and the cursor returns to its familiar blinking. In mere seconds, my website is a place where people can click, scroll, and type – animated by an incantation of ones and zeros.
The magical apprentice
I’ve always been interested in magic. My youth was steeped in fantastical realms: Middle Earth, The Hoenn Region, and Traverse Town. In every video game, I’ve been the mage, where stringing together spells and incantations has been my specialty.
I never thought that wizardry would be my profession, but in a way, it is.
It took me a long time to realize that I could hold this magic in my hands. While I've only been a professional developer for a couple of years, I've been fascinated with software since I was a child. But, I made every excuse to deny this magic -- telling myself I was "bad at math" and "not technical enough" to wear the wizard’s hat of a software engineer.
I had dreams of building a software business, but I was too scared to write the code myself. Ignorant to how deeply ensnared I was in this fear, I pursued business. By managing the building process instead of building software myself, I thought my creativity would be satiated. Building a business without coding knowledge felt perfectly reasonable. But building a business despite my soul wanting to code was unconscionable.
And yet, with every wild side project I started, I wrote software. Purple Pudding (parody t-shirts), Sondr (a mindfulness app), and Samosa Slingers (a samosa delivery service), were all projects where I wrote custom code. When I was in the flow of creativity, I reached for code as a form of expression. I was just unaware of it.
I was unaware until I had a powerful realization about the nature of language itself.
The power of names
Language is powerful because language shapes reality. What makes us unique as a species is that we are able to give names to things, both tangible and intangible. We can call something "nice" or "fantastic" or "extraordinary" -- and each of these names carries a meaning laced with nuance.
The power of language has never been more obvious than in our digital age. Beyond sharing a common understanding of names among our fellow human beings, we've found ways to talk to machines. In whispered words to silicon, the entire world can speak the language of the internet. Code is the binding thread of the patchwork quilt for our modern lives, and understanding how to sew unlocks something entirely new.
This was a realization that occurred in parts – a product of trusting curiosity and following the trail of breadcrumbs to the full loaf. Eventually, I saw the hidden connection between code and writing. My hands began to reach back out, looking for the childhood wonder that creative technology had sparked.
Modern magic
Software is modern magic. An invocation in a terminal can change someone's day. To get the umbrella we need at our doorstep, to fly from Austin to Taipei, even to grow and transport the food that sustains our bodies -- we're dependent on software.
Software's role is simple. It moves information from one place to another, at times manipulating the information as it travels through a web of wires around the Earth.
But what makes software magical isn't in the movement of bits and bytes. It's the transfiguration of thought to screen where the magic happens. What draws me to writing is the same thing that draws me to software. They both make concrete something that lies deep within our imaginations.
My intention to write software isn't just about creating a business or making money (although that's nice too). When I started writing some code on the weekends, my eyes opened up to a new form of expression.
As I stumbled upon this quote by Fred Brooks in The Mythical Man Month from 1975, I was floored by how much it resonated with me.
"The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures…"
An arcane art
An artisan is someone who manipulates matter to form something which is both functional and beautiful. Every creative pursuit can be artisanal, and building technology is no different.
Code can be expressive, it can be playful, it can be dry, and it can be ugly. It has the same inexplicable (dare I say, magical) properties as a painting, song, poem, or essay.
We might not think twice about what's happening when tapping on the glass of our cell phone, willing it to entertain, inform, or serve us. But behind every tap, swipe, slide, click, and keypress, there's spellcraft.
I'm early in my journey as a builder and a software engineer. I have a lot to learn about the craft of code. Yet, I don't care to be known as a "10x programmer," to learn the most advanced algorithms, or to write code for the highest price. I want to express myself by writing something that makes me smile. Through this expression, I'll create connections where none existed before -- connections between people, servers, and ideas.
The next time you feel a quiet tug of intuition, don’t deny it. Perhaps it will lead you to something magical.