I love to program. Of all the activities I enjoy, I truly believe it is the truest "passion" that I have. But programming is not the only thing I enjoy doing. I have a lot of different hobbies -- some creative, some competitive -- that I divulge time into when I have that time. Lately, I've been thinking: how do these hobbies factor into my role as a developer? Is there any kind of influence at all? If so, is that influence positive or negative?
In this post, I'd like to come forward and discuss some of the activities I enjoy outside of work, and how these activities might be inadvertently contributing (or not) to my professional life.
I've been playing the guitar in some capacity for about 15 years. It's my go-to hobby when I need to unwind and decompress from the hardships of life.
In terms of the influence it has on me as a developer, I'd say that the number one benefit that tangibly transfers over from one domain to another is perseverance through delayed gratification.
What do I mean? I mean the will to push through doing something even though you're not seeing immediate (or even semi-long term) benefits. For example, I've been working on a chord transition for a few weeks now (G Major -> F Major Barre). It's one of the harder chord transitions as it requires you to dramatically shift all four of your fretting fingers. Although I've been practicing this transition for weeks, I still haven't quite gotten it down. As you can imagine, this is pretty frustrating! But despite the frustration, I continue to push through because I know that eventually, I'm gonna get it.
Programming can be frustrating for the same reasons. We study, try, fail, practice, try, fail... and sometimes it seems as though we'll never make it out on top. It's pretty much required that you embrace the delay of gratification to persevere and succeed. Just remember: if it were easy to do, everyone would do it.
Bet you didn't see this one coming.
Writing is one of my favorite activities and quite possibly the skill in which I am most confident in my abilities. I've always loved reading books and creative writing and even majored in English literature in college. If there is one hobby that I recommend any developer take up to supplement their job as a developer, it's writing.
Although they may seem starkly different, writing code and writing English (or any communicative language) have a lot in common. The goal is to convey meaning through expressions. And just as a programming language's compiler will throw an error if it can't reason about your code according to its rules and syntax, the readers of your writing will struggle to reason about your ideas if you don't properly convey said ideas.
Additionally, writing is used abundantly within the field itself. We write comments in our code, documentation for our software, Git commit messages, etc., and we all know the follies of bad writing in any of the aforementioned examples. I can't tell you how many times I've read code documentation that fails to provide ample/sufficient examples and practical applications. Some commit messages are so contextually ineffective that they may as well not even exist at all. And if you're coming back to your codebase after months of disuse, and your comments give you little to no guidance on your process at the time of writing the code, you'll find yourself in a world of pain with only yourself to blame, not to mention everyone else that has to reason about your code, too.
It's for these reasons that writing is the one hobby I'd strongly advise you to take up. Good writing skills go a long way in the world of software.
Gaming has been in my life since I was about 5 years old. A much more niche activity once upon a time, nowadays, gaming is a huge, multi-billion dollar industry that's increasingly gaining the hearts and interest of mainstream audiences. We all know a few (or many) people who play video games, and the hobby seems to be especially popular among programmers and other tech-savvy individuals.
I often find myself clinging to the more competitive side of gaming, and am a long-time speedrunner of games. Speedrunning challenges players to complete a game (or parts of a game) as fast as possible. It often takes hundreds (if not thousands) of attempts to achieve a new personal best time, and frustration is common among runners. Similar to how playing an instrument requires you to persevere in the face of seemingly unfruitful efforts, speedrunning requires you to push through and keep going despite failure. Runs often die when you're hours into the game, and you have no choice other than to push reset and try again. This carries over extremely well into coding, where your entire approach to a problem may prove futile and you're forced to go back to the drawing board and begin an entirely new thought process from scratch.
To be perfectly honest, I haven't been playing many games lately. In fact, I haven't played any in the last month at all. Why? Well, It's a mixture of things. For one, I'm starting a job hunt soon so I can break into a junior developer role, and haven't had time for much of anything else. Competitive gaming is time-consuming and requires diligence and practice to not only be good but to maintain your skills. Right now, my priorities have shifted greatly and that's fine because another important aspect of hobbies is knowing how to balance them with the more important parts of your life.
So, that's my side of things. What are some of your hobbies? How do they translate to your professional life?