In January 2019, I wrote Ten Minutes a Day, an essay explaining how I wrote Jumping into C++ in less than 200 hours by splitting the work into (you guessed it) ten-minute-a-day chunks. After writing that essay, I (and Hacker News readers) asked whether it could work on more than one project at a time — could the magic of small progress be applied to multiple projects? Would it be unsustainable? Would the value evaporate due to loss of context?
I had doubts, but I thought it worth testing. I already had one daily activity, running through flashcards using spaced repetition learning, to which I added 3 new activities as a test:
- writing code in some way (currently, I’m teaching myself Haskell)
- doing some kind of writing (like this essay)
- modernizing cprogramming.com
This comes out to an 30 minutes/day. It’s not objectively a lot, but this is on top of my day job and other activities.
I’m here to report that this has gone well! It’s not possible to directly compare progress across all three vs what might have happened had I focused on a single one. However, when I ask: “have I made steady progress on each one of these?” the answer is definitely yes.
For example, I’ve consistently found that even when I hit a wall grasping a new concept in Haskell, after applying some consistent effort for a few days, I make a breakthrough in understanding. I’ve fully updated cprogramming.com to have a mobile-friendly layout and cleaner design. And I’ve written a number of Medium posts as well as contributing several chapters to a not-yet-released book.
I’ve also had some major day job work projects going on in parallel. These projects did sometimes distract and reduce the amount of overage time that I might put in to a project (e.g. sticking to exactly ten minutes, rather than running over), I was still able to maintain the routine consistently over the last several months, with only a handful of days where I skipped working on cprogramming.com.
The reason that I didn’t work quite as consistently on cprogramming.com is instructive. For the other two routines, I used a technique from Ten Minutes a Day: gating certain activities (checking personal email, piddling around on the internet) until after I’ve done my projects. I didn’t do that for cprogramming.com, and that made it more difficult to force myself to work on it at the end of a long day — there was no immediate reward.
Those gates had another surprising side benefit: increasing my focus on other work. If I had important one-off work, I would sequence it before the project work, and I wouldn’t fall into distraction patterns. This worked particularly well on workdays — I generally don’t start project work until the evening, ensuring a highly focused workday.
This experiment also underscored the importance of something I didn’t mention in Ten Minutes a Day: roadmaps. When I wrote Jumping into C++, I always had some kind of outline. I noticed that learning Haskell was straightforward because I simply followed using courses, so the next step is always clear.
Not everything has been springtime and kittens. In March, I tried adding a fourth project — a project to practice memorizing faces — but abandoned it after a few weeks. I probably could have sustained it as the only daily activity, but I wasn’t seeing the real world benefit from it, and without some sense of immediate progress, I wasn’t motivated to spend that now-more-precious extra time.
While that suggests one limit, I believe it would be possible to add additional daily activities, as long as they’re clearly motivating. As I find these projects, I will add them — starting out small and treating each one like a new habit. Each will require energy to kick off and some evaluation to decide that I want to keep doing it, but if I can add more small bits of progress to my day, ten minutes at a time, it’s worth it.