Schedule


It’s the start of week five at Hacker School, and I think I’ve managed to get myself into a pretty productive rhythm. I’m a big believer in structuring time effectively, and I thought I’d share the schedule that’s been working for me so far.

Monday to Thursday

These are my “working” days.

10:00 AM – 10:30 AM: Plan for the day. This usually involves making a list of the two or three things I definitely want to accomplish by day’s end (e.g., add an admin-only view to an application and implement the correct authorization for it; create a template for e-mails to be sent to users when they first sign up for an application; fix a bug in an API call).
10:30 AM – 10:45 AM: Check in. We have short small-group meetings each morning at Hacker School, during which we update members of our group on what we did yesterday and what we plan to do today. I like these meetings for a number of reasons: they keep me accountable, they provide a forum to communicate small victories or frustrations, and they’re great for finding someone who’s been exactly where I’ve been before. (“Oh man, I had that same trouble with Express middleware—grab me after check-in and I’ll show you how I fixed it.”)
10:45 AM – 12:45 PM: Program. I find I work best in uninterrupted two- to four-hour blocks, and I usually get three of these in a day. I try to go in order of the items I wrote down for myself in the morning, but I allow myself to be sidetracked slightly or reorder priorities if I learn something new or find something interesting to test out. (Flexibility is really key.)
12:45 PM – 2:00 PM: Lunch! I usually eat at Mahmoun’s or Rafiqi’s, which are both really good and really inexpensive.
2:00 PM – 4:00 PM: More programming. Sometimes I do a plan/program/plan sandwich where I write out in detail what feature or functionality I’m working on & how to implement it, add it in, then plan out the next one.
4:00 PM – 4:30 PM: Snack/stretch/walk. Sometimes I skip this if I’m really on a roll, but I find I usually need a short break around this time.
4:30 PM – 6:30 PM: More programming, but by this point in the day I’ve usually accomplished most of what I set out to do, so I tend to do more planning than programming (e.g. pick out articles or blog posts to read for the weekend, experiment with a library I’m thinking of using, &c). I try to pair program a few times a week, and this is generally when I do it. (I find I’m much too predisposed toward tunnel vision to pair in the middle of the day, when I’m really in the flow.)

On Thursdays, we do short presentations from 5:30 PM to 6:30 PM. These allow members of the batch to demonstrate projects they’ve been working on, share ideas, and get people interested in working with them.

6:30 PM – 8:30 PM: On Mondays, we usually have dinner and an event. These events are generally talks/presentations, and topics have covered everything from lattice-based data structures for deterministic parallelism to flying robots with Clojure. (This is as awesome as it sounds.)

Tuesdays and Wednesdays, I usually go home, eat dinner, and read or write poems (sometimes I continue to program if I’m really trucking on something, but I try not to do this). On Thursdays, I practice Hung Ga kung fu.

Fridays to Sundays

These are my “off” days. (I kind of wish four ten-hour days were the normal work week, rather than five eight-hour days.)

10:00 AM – 10:30 AM: Plan for the day. I try not to do any programming Friday to Sunday (or at least, as little as possible). If do programming-related things, I reserve these days for reading documentation, watching lectures, or reading books (since I feel my time at Hacker School is better spent programming and talking to all the cool people there). My weekend planning is a lot less formal than my weekday planning.
10:30 AM – 1:00 PM: My wife and I usually get brunch somewhere in here. If it’s Friday and she’s working, sometimes I go to the diner or pick up a bagel.
1:00 PM – 5:00 PM: It really depends on whether we have errands to run, family to see, friends to hang out with, &c, but if we don’t have any of those things, usually we just stay in. I try to get the bulk of my writing (mostly poems) done in this window. This is also when I read (either poetry or programming stuff), watch video lectures, catch up on Hacker News, &c. I also fit kung fu in here somewhere (usually Sunday).
5:00 PM – 8:00 PM: Dinner is somewhere in here.
8:00 PM – 11:00 PM: Evenings are really open. Sometimes I get sucked into programming or writing, but this is when we’ll hang out with friends, see a movie, watch TV, whatever. I really believe in structuring your time, which I think necessitates building in blocks of unstructured do-whatever time.

And that’s it! I’m sure when I start work again this will all change a bit, but I think the important parts will stay the same: separate work from play; make sure work time includes time for planning, working, and taking breaks; set aside time to exercise; sleep enough; eat well; make time for friends, family, and fun; include unstructured do-nothing time.