I’ve been doing something similar for a while (my GitHub activity graph).
I’m surprised (although I probably shouldn’t be) at the negative reaction that this post has gotten elsewhere. I haven’t found that this has had a negative impact on my life outside of programming work at all. I’ve got a wife, a young child, and a pretty busy schedule of other things going on (construction project, contract work, and a lot of travel with at least 5 international trips and probably 10 regional trips).
With all that I have going on, the idea of making at least minor progress every day has been key. Some days, I only get to spend a couple of minutes. Other days, I get to spend an hour. Others, 3-4 hours. Sometimes that’s in a single block, other times in multiple blocks. In that time, we’ve made a huge amount of progress on OpenDylan including entirely new features, many bug fixes, documentation improvements, multiple releases (2013.1, 2013.2 and soon 2014.1).
One of the biggest things that I’ve learned is that no matter how much you have to do (and I have a lot), you can almost always make meaningful, incremental progress to get you closer to your goals. There’s almost always something that you can do that fits into your available free time.
While Resig’s dedication is admirable, I’d caution against applying his advice too broadly. He is doing it because he has side projects that he wants to complete. There’s no reason to force yourself to code every day for coding’s sake.
I’ve been doing a lot of side-project hacking the past three months, as evidenced by my Github activity graph, which, admittedly, is not as impressive as Resig’s. However, this week, I finished up my latest side project and found myself at a loss for new ideas. At first, I did feel a bit guilty about not doing any coding, since it had been a long time since I had nothing to work on. But then I realized that there’s more to productivity than a nice contribution graph and sometimes it’s good to take a step back in order to think, reflect, and get inspiration.
I’m currently reading through Patterson and Hennessy’s “Computer Organization and Design” to learn more about computer architecture. I’d also like to practice my saxophone some more, start learning how to draw, help a friend who is still in college find a job, and expand my social life a bit. My Github account will still be there when I am ready to get back into it.
Yeah, I have to admit I started getting a bit weirded out with how far he takes it. I don’t know the background about the specific projects he’s talking about, but if one of my friends said something like the below to me, I’d be very worried.
This has all had the added benefit of communicating this new habit externally. My partner understands that I have to finish this [side project task] every day, and thus activities sometimes have to be scheduled around it.
I don’t see that that is very worrying. If he really wants to see the side project get done, it is good to set aside a specific time to work on it. He clearly believes that the project is important.
I don’t have anything against his advice that “if you want to get a project done, you need to work on it every day”. I’m just saying that you shouldn’t take “code every day” as a mantra of self-improvement as some commenters on HN seem to be doing. That is not at all what Resig is suggesting. There’s no point in coding if you don’t have a specific goal in mind.