Do Hard Things
I'm a big fan of the idea of constantly improving your craft. As software developers, we should be learning new tools, languages, methods, and constantly evolving and refining the way we do things. I believe that to get really good at something you need to keep developing and pushing yourself. Often, we don't get enough of that with the projects we work on -- we can be focused on long-term projects or maintaining legacy software. I've gained a lot from working on my own projects with the freedom to try out new things.
One might think that spending some extra time improving your craft doesn't leave much time for life. But that doesn't need to be the case. In fact, I think it would be a terrible thing for a developer to spend all of his or her free time thinking only about software.
The goal of practice isn't to use up all of your time, it's to consistently and gradually get better. A small amount of consistent focused time should be enough.
I believe that every person should have at least one hobby that is difficult -- something that takes years, decades, or a lifetime to master.
Looking back, I've gained immense value from choosing to do things that seemed difficult and required a lot of patience and investment in time practising.
After high school, I decided that I wanted to learn how to play guitar. I had no idea how to start, but I met a few people, learned some basics, and spent a few years practising. I never became that great, but I can play basic chords, some blues scales, and learn songs using tablature notation. I did, however, learn a lot about how to learn something new - starting from scratch, patience, hours of practice... it is possible to learn anything if we want to. I don't play as much as I used to, but I still think every second spent was well worth it. When I want to relax, I'll still pull out the guitar to tinker once in a while. If I hadn't spent the time practising, pushing through the frustration of being a beginner, that wouldn't be an option for me today.
When I was in my early twenties, I started learning martial arts. I had wanted to learn since I was a child, but was never given the opportunity. I spent some time looking for a place to learn, and by chance I met an amazing teacher that agreed to teach me weekly from his home. I started on a journey of learning traditional Chinese Gong Fu and this experience thoroughly changed my outlook on life. Although I had played lots of sports before (basketball, skiing, snowboarding, golf, etc.), they were all just fun to me. I had never put in disciplined effort to practice something daily. I had never learned something where skill seemed to come so slowly. But after several years, I started to understand how consistent practice and patience pays off. I was also exposed to people and a culture that I hardly knew anything about and exposure to a different philosophy opened my mind to new ideas and new ways of thinking.
A few years ago, a friend convinced me to try training Brazilian Jiu-jitsu and I immediately fell in love with it. I was again starting from scratch in one of the most difficult things I had ever encountered. Even the warm-up seemed difficult for the first few months. I was learning how to move in new ways and feeling extremely uncoordinated. Rolling (sparring) with anyone who'd been there longer than me was just survival. Months and years passed and consistently putting time in on the mats has paid off in tiny incremental improvements. Starting from the beginning in something so difficult requires a lot patience and the will to abandon the ego, but is incredibly rewarding. Training requires your immediate attention and focus. There is no room in your mind to worry about work or the other things that constantly occupy our minds. It's been 3 years so far, and now I just can't see life without it. I've learned so much and grown as a person since I've started.
The hobbies I've had so far have taught me so much about myself, given me regular time to clear my mind and refocus, and given me more confidence to learn and try other new things. They've helped me to be more patient, and improved the way I interact with and view other people.
I can't imagine life without the hard things. It's no coincidence that the things that require patience, focus, and a stubbornness to keep going when things seem hard are also the things we're most proud of when we look back. It's incredibly gratifying to overcome days, weeks, months, or years of being a beginner and see yourself develop and progress. Spending time to become better at something has a funny way of improving your overall outlook and seeping into other areas of your life.
I know I've become a better programmer indirectly as a result of my other activities. Learning new languages and tools isn't unlike trying a new hobby. It's a good thing to have the ability and awareness to embrace the initial frustration of learning something new and be able to push through it, surfacing on the other side with a new skill in the toolbox.
I definitely don't think that everyone has to learn or experience the same things that I have, but I think it's crazy (and maybe wasteful of life) to not have any hobbies or skills outside of work. There are tons of things that you could try, and any one of them would bring immense benefit.
If you don't already have anything that you do regularly, go out there and try something new.
It might seem like it's too late right now. It would be so much easier if you started when you were 4. But you're actually as young as you will ever be, right now. Imagine yourself after 10 years of practice.
Trying new things has a way of leading you to places you never knew you wanted to go, meeting new friends, and evolving you into a better version of yourself.