In Defense (sort of) of Side Projects
About two months ago, I got into a minor twitter war with a coding celebrity of some stature over the nature and neccessity of side projects. At issue was the question of whether developers should have some sort of “Side Projects” that they work on, some extra-curricular activity associated with programming that they do in their free time. My answer to this was an emphatic yes, the internet weighed in on both sides, and the whole thing was a useless distraction.
But in the process, I was forced to ask myself what good all my side work, the blogging, the meetups, the presentations, etc, were doing. Was this time well spent? I could be spending more time with my family. I could be writing a novel. I could be exercising more, or learning to cook French cuisine, or getting more sleep.
So I stopped. Not on purpose, but out of a just general sense of ennui. I lost my motivation to side job. And for two months, I haven’t written a blog post or worked on my coding chops or generally done anything like that.
And you know what? I didn’t spend more time with my family. I didn’t work on my novel. I didn’t exercise more, I didn’t learn French cooking, I didn’t get more sleep. I did watch more TV. I did read a lot of fiction. I did gain ten pounds. I’m not happier, and I’m probably actually less useful at work.
I don’t think that this is a general lesson for everyone. It just is for me, which is this: I like puzzles. I like typing. I like writing code, and I like sharing it with other people. There’s a certain kind of side project that appeals to someone like me, and if I’m not working on that I stop working on other stuff too. For me, personally, not working on coding projects means that parts of my creative brain aren’t running, and I’m not working on anything else, either.
Of course, I’m speaking of myself here, and not in the general sense. In the general sense, the question is “Should coders, in general, have some sort of side projects going on?” And you know what? I’ll say no. It’s fine if you aren’t involved in the community, or don’t have anything to show on GitHub, or aren’t going to meetups or presenting at conferences or whatever. Especially if you have a lot of experience, and there are plenty of people to recommend you for the job I’m interviewing you for.
But if you don’t have that experience, ask yourself what seperates you from the person I’m interviewing next. If it is that they met me at a meetup and impressed me into going to my boss and saying “HIRE THIS PERSON”, than that might not be great for you. If it’s that the person I’m interviewing next ran a startup in college and can show me how they learned from that experience, and you didn’t, that might not be great for you. If it’s that the person I’m interviewing next got some documentation pull requests into a project I’m familiar with and you didn’t, that might not be great for you.
After you’ve been working for a couple of years, this stuff is less important. Because honestly, the industry is savagely hungry for talent and once you’ve shown you can do the job, you’ll probably get another job. But hiring is hard, and expensive, and people are pretty reticent about hiring unknown quantities.
I think that this is the core of this whole debate. If you have been working as a coder for a decade, you don’t need my advice. You’ve got this. But if you’re still trying to move into or from your first junior job, it can’t hurt to put in some extra effort.
As for me, I’m just happier when I’m working on my own stuff in my spare time. It’s become a habit, and it’s not a bad habit to have.