Coding After 40
Having celebrated my 40th birthday earlier this year, it dawned on me that I have been professionally coding for exactly 50% of my life. This lead me to reflect on what it is actually like coding as an elderly gentleman.
Hello World
Of course, like most, I did start coding at a fairly early age. I just didn't do it for money until much later in my life. My first experience with coding was in QBASIC. My brother-in-law, being a decade-older engineer, took the time to show me what this programming thing was all about. This was when I was 11. I instantly and irrevocably fell in love with making ASCII art appear on my then-monochrome screen. Nothing could capture my attention, at the time, as much as that soft green glow emanating from my new toy. This is also when I decided that I too would one day have a software company like the one producing this QBASIC marvel. This would become a lifelong devotion and even after all these years, I am still as ambitious as a preteen discovering what a computer can do for the first time.
Fast forward a few years and I am a freshly minted graduate in computer science. It was a dream come true, and at the time, I believed I would have a PhD in computer science before I was 30. I was committed. But as the many years of my masters dissertation slogged by, I realised that I actually despised academia. It didn't help that I just started Retro Rabbit with a group of friends from university and we spent all our time building software "toys" for grownup companies. I mean, it was hard to dispute at the time that all the cool stuff was happening in the private sector, and our little company was playing with as much of it as we could get our hands on.
I got to play with all manner of new and emerging toys. Everything from the shiny new C# language to web services. We built supply chain and mapping systems using GIS, which was wild in the days before Google Maps and its cousins. We built location based augmented reality games for Nokia 3310's, using cellular tower triangulation. This was long before your iPhone X would first ask if it was okay to share your location. We built domain-specific languages that could generate C# libraries based off database models so that engineering teams could also "code". This was long before Entity Framework and dynamic language constructs. Nowadays, we still build magic every now and then, but in this age of enlightenment it becomes ever harder to impress people with the things you can do. Everyone has a little cousin that learned how to code from Youtube. I wonder how long before my 8 year old son is better at this coding thing than I am.
Now, after so many years, I can say "karma is a b!#ch". In my 20's, I believed coding was a young man's game and that I was one of the few with a natural talent for it. I would look at old Cobol developers and think them obsolete. We were smarter, faster and trained better than any generation of coders before us. We could easily dominate technical conversations with programmers decades older than us. It is ironic that my hubris from those heady days would silently sneak up on me. I am the old programmer now and all these newfangled fruits (libraries, frameworks and tools) would only serve to confuse me.
If I had to share my truthful experience of coding after 40, I would have to approach it from 3 different angles. Each represents me with a unique reason to code.
Coding for profit
The thing about hitting 40 is that my experience makes me expensive. For most coding assignments, it makes me too expensive. Unless I am going to be working on the control codes for satellites or nuclear power plants, my extra experience is just not worth it. Sure, I would make less mistakes and possibly be slightly faster than someone with less experience. This is unfortunately not worth the additional cost though. The reality is that opportunities to code become fewer and fewer as you gain more experience. People seem to prefer just having a minute of your time so you can provide direction or advice. You get paid for your wisdom, not your time. On the one hand it's a great gig; but if, like me, you love coding, it becomes less satisfying as time goes by.
Coding for enrichment
Getting paid for advice and wisdom means I need to stay current and have a working understanding of most newfangled fruits. This means I spend a lot of time fiddling with libraries that people have never heard of. I need to know what the difference is between Angular 10 and Angular 11. I need to know why the latest version of Swift is a game changer. I need to read, a lot. This means I almost never get past the trivial "hello world" examples. For me to gain a deeper understanding of a specific fruit, I would need to invest months of my own time. Of course I have a deep understanding of one or two tools, almost everyone masters at least one every 8 years or so, but my broad understanding and grasp of fundamentals is what makes me relevant.
Coding for fun
Luckily I still get to code for fun! Mostly for passion projects that no one else wants to pick up. I love creating new products or playing with little software ideas. This is why I got into coding in the first place after all. In the last year I taught myself Unity, because my son wanted to create a game with me. That was a great way to spend the "great lockdown of 2020". Although the C# parts were easy, the graphics elements were new and challenging to me. I haven't done any matrix transforms in well over 18 years, so it was fun seeing them in action again. I also started work on a productivity platform for teams called SenseFlow. This was an opportunity to play with Blazor. First I tried Blazor Server, which really is pretty cool. Then I tried Blazor Assembly, which conceptually should be cool, but just failed to impress. It mostly reminded me of coding in Adobe Flash, which gave me PTSD. These little projects kept me up late at night and made me jump out of bed early in the morning. I loved discovering answers to platform issues when I have been battling them for a few days. It still is exhilarating to solve coding puzzles.
Passing the baton
What my experience really has allowed me to do is help a whole bunch of younger coders along the way. I get a real thrill teaching someone how to understand code. Code is like beautifully painful poetry after all, so why shouldn't we have a love-hate relationship with this new art form? My appreciation for code has driven me to build an entire company dedicated to the pursuit of squashing bugs with my friends. And I still love it.
Retro Rabbit might just turn out to be the biggest contribution to coding that I make, but who knows, the next 40 years of coding might be even more challenging and fun!