Software Identity
These days I find my hands on a keyboard more than anything else, my eyes riveted to a twilight screen, and my skin untouched from the sun. The following is a reflection from the past to the present, starting when my software journey had just begun.
I entered software when I left behind manufacturing automation, and envisioned myself as a hacker. Code pieced together quickly, and I loved connecting dots. Parachuting into challenges, and armed with Stack Overflow, I charged the green field. I didn’t know what a unit test was, but with enough iteration and grit, the code would always run.
One and a half years later, the depth and breadth of my thought had expanded. I’ve heard chess grandmasters ponder over twenty moves ahead; I too started thinking deeper. The more code I read, the faster my comprehension. Project after project, I witnessed the impact of my decisions. I came to have confidence when informing my peers “I am a software engineer.” Fascinated by design patterns, I tweaked my approach with every implementation. I took pride in this compliment: the software works because it must work.
With the passing of another two years, I entered a new era, one of minimalism. The docstrings I once cared for began to seem ugly, the classes felt cumbersome. I ran into too many typing limitations, and finally admired duck typing. If the code didn’t feel lightweight, I would restlessly envision solutions at night. I would not say I was implementing faster, but I definitely felt I was implementing better. Attending PyCon for the first time, I realized how far I had come, and glimpsed the road ahead. I now considered myself a senior software engineer, though in actuality the corresponding promotion was premature.
Over four years into work as a software professional, my beliefs became fuzzy, more philosophical. The meditative article The story of Mel was impactful to me. Taking place around me was a decline in the global economy, and the sun set on my program of the last three years. The code I’d spent thousands of hours forming went unrealized. After much reflection, I can state our misgivings were mostly beyond the technology under development; building well is only part the battle.
Ascending the Dunning-Kruger effect’s slope of enlightenment,
a fourth shift in identity took place: I was a programmer.
I appreciated a saying reminiscent of the Zen of Python:
“done is better than perfect.”
The tech stack didn’t matter so much any more,
developed instincts guided me.
I finally embraced vim
, revisiting my fundamentals.
I knew the way things could be,
though I’d still get hung up on how they should be.
Ironically, this mindset was not far from my starting headspace years ago.
I am reminded of a Dr. Seuss title “Oh, the Places You’ll Go!” To think software is just one of many subsets of computer science, I’m so glad I got out of mechanical engineering.