I have loved my career as a dev so far. It has fulfilled all of the expectations I had before I started on the long slow journey from boring office job to grizzled senior dev. But in order to make a career out of being a dev you do have to commit to keeping your skills fresh. If you're lucky then you work in an environment where the latest technology is always being used so you're always learning new things on the job.
In my experience it's more likely that most of the time you'll be doing maintenance task on a mature codebase which isn't due to have any major overhauls anytime soon. If you're like me this is when the urge to learn something new kicks in. Learning new skills is a challenge at the best of times, but one thing that definitely makes it harder is being a parent.
Disclaimer: I love my kids. I really do. But I have three kids under 5 and raising them is harder and more exhausting than dealing with 1,000 unsolicited calls from recruiters or failing hundreds of whiteboard interviews. And it doesn't let up.
Why does this matter? How is this related to being a developer? The answer lies in two things: attention and time. Kids demand a lot of attention, and a lot of time. These are two key resources you need plenty of in order to keep up to speed with the skills you need in your career as a dev. I simply don't have the free time that I used to have to code. When I do have time I'm not always able to give coding my undivided attention and I miss it.
At the end of a long day I'll put the kids to bed, walk the dog, then sit down and think "time to work on that nice little side project idea" or "maybe tonight's the night I finally get hands on with PACT testing". Often I don't get as far as opening my laptop. The enthusiasm I have for playing with some new tech is washed away by the deep tiredness that can only come from the cumulative effect of sleep deprivation, exposure to screeching at unsafe decibel levels and changing many, many nappies.
I have, however adopted some strategies to try and keep on top of new developments, such as:
- scrolling through this site
- listening to coding related podcasts while walking the dog
- listening to Pluralsight courses while walking the dog
- following influential devs on Twitter
- making the most of downtime at work to tinker with the codebase I work on. This usually results in me creating speculative branches that shoehorn in the latest approach I read a blog post about. The code won't be merged but at least it will be written!
There's no real substitute for getting your hands dirty and writing some code but the above do help me to feel like I'm not drifting too far from the pack. What's more I feel like they'll prove to be useful once I get some free time back.
If anyone else has productivity tips for time-poor parents then please comment!