We often talk about what makes a good developer and how to deal with things specifically in and around the tech industry, but I believe that most of it really comes down to how we live our life.
Hobbies
I came across this tweet that I feel is really important to acknowledge
i feel like my generation lost hobbies.
— Kashia (@kashia) December 31, 2019
everything doesn’t have to be a hustle, side hustle, or money making enterprise. sometimes it’s just fun to do something because it brings you joy, peace, relaxation, or allows you to be creative.
let’s rediscover hobbies in 2020.
This pinpoints something that I've been struggling to put into words as I've developed this post. At 16 I started my first real job the day after my birthday because I had always wanted to work and have my own money. I proceeded to work more than I should as a general rule, even as my only actual bills were a cell phone and my car insurance. I found myself voluntarily working more shifts and later than a minor should. The idea of having my own money, and thus freedom, was too attractive. It's only recently that I have noticed that I spend little time living in that freedom. I was dedicated to work, romance, and social gatherings.
I found myself in interviews at the age of thirty struggling to answer 'what do you like to do with your free time?' which is absurd. I was unclear of my own likes. I started into gaming before my son was born (and long periods of free time disappeared). I focused on vape culture in researching, maintaining my devices, and even mixing my own liquids. More recently I've dipped my toes into traditional wetshaving, mechanical keyboards, and fountain pens. It was after I picked up fountain pens and started doing writing with them for pleasure that I finally realized how much of my life was spent previously without any real hobbies. While this seems like a minor detail, life becomes really stressful when you don't allow yourself something to enjoy.
I had actually acquired some hobbies that I hadn't even really registered as such until I pressed into writing this post. Not long after I began my first programming job I made the decision to stop smoking and start vaping. At the time there was a very large community for vaping in my area and I would go on to learn how to use and maintain my vaping equipment even to the extent of building my own coils and mixing my own liquid. My wife and I had also made an effort to get back into gaming after Fable was re-released to 360. I played through all three games in reverse order and a few other big world games for hundreds of hours over a few years. One of the friends that I made in the vaping community actually made me aware of traditional wetshaving and I wound up doing a good bit of research into that and wound up really enjoying it. More recently My local tech community got me into both mechanical keyboards and fountain pens and I have really come to enjoy using them everyday at work.
After this epiphany I reflected on my career as well; how I had taken a very passive approach to advancement. It thrills me to see younger and younger people finding programming as a hobby and teaching themselves to ther point of hireability without a degree. At the same time, I reflect on the difficulty that I've experienced finding work even with a BS in computer engineering. I want to discuss how you can more actively approach enrichment of your career. This is intended as a guide for myself and I hope that somebody else finds it helpful as well.
Code
How we treat our code is much like how we think of our world.
Is the glass half full or half empty? Our general feeling about this probably relates closely with how we feel about our code base. If you love your code then that's great, but I don't know many people who do. Most developers seem to feel that there is much improvement that can be done on their code, but few feel they have time to correct it.
Much of what developers like to talk about is shiny and new, but most of us are working with legacy cruft. While I agree that playing with new things is great, I think that you can find lots of interesting things in your own stack to play with. Green fields are nice, but they always wind up filled with cruft eventually, and getting hands on with that cruft can be the best way to minimize its creation. A legacy system tends to have lists of known issues that provide more direction than a blank page. Issues cause us headaches, but if you make yourself take the time and improve/standardize/automate your process then you will find pride in the improvement everytime that you use the process. Ultimately we find ourselves slowly touching every last bit of code in a system over time and if you make the effort for ongoing improvement it then the resulting ownership and pride make the work of legacy code maintenance more fulfilling than moving a green field project into production.
This post is part of a series about life, community, and learning.