Optimizing the fun of Programming
“What I cannot create, I do not understand” - Richard Feynman
I’ve always been a builder. Whether it was Lego sets or writing stories, there’s something about creating that has always pulled me in. For the better part of the last decade my primary tool for building has been programming. I remember trying to teach myself Unity in 5th grade to finally make my dream game, or even shoving a Python predictor into a probability paper just so I’d have an excuse to code.
I love programming because it makes building accessible. I grew up being infatuated with the stories of the 90s programmers in garages, building because they cared about the craft. When I first started at Georgia Tech, however, I found myself focusing less on that spirit of building and more on optimizing for internships, big tech jobs, and the kinds of signals that look good on a resume.
I began using generative AI to speed through development and building projects I didn’t care about simply to list another framework or library. Although I was following advice from accomplished engineers, I had ruthlessly optimized the thrill out of programming. My coursework felt unexciting, and I found myself increasingly uninterested in the full-stack work I was doing at my internship. It didn’t satisfy the builder’s itch that had originally drawn me to programming.
Over time, that realization left me feeling increasingly disillusioned with computer science as a field. In an attempt to get out of this rut, I decided to take what is often considered to be one of the hardest classes in the undergraduate computer science program (and one that was completely out of my scope of expertise), Systems & Networks.
I felt incredibly lost in the first few weeks. The terminology seemed alien, and the concepts felt completely beyond me. But the theory behind what was happening was so alluring that I couldn’t help but spend hours combing through the textbook and looking up concepts. In understanding the design of a computer I felt as though I gained a profound insight into the mindset required to build complex systems. I couldn’t help but continue to pull on the thread in this dauntingly tangled ball of yarn, because in doing so I rediscovered the thrill of building: of taking something apart and reconstructing it, of feeling the bitterness of struggle and the euphoria of understanding.
This discovery galvanized the builder within me. Before taking the class, I felt disconnected and disinterested, but afterward I found myself building a Rust virtual machine in my free time, reading blogs, and digging deeper into systems and programming concepts. Rediscovering that process reminded me why I started programming in the first place. Systems gave me back the thrill of struggling with something difficult and slowly understanding it. Graduate study feels like the natural next step in continuing that pursuit.