Skip to main content

Julia Evans

How I spent my time at the Recurse Center

I went to the Recurse Center a while ago now (4 years ago) but I’m interested in the topic of “how do I accomplish a lot in a short amount of time” again so I wanted to revisit how I spent my time there because I learned a lot. I don’t know if this will be interesting to anyone but me but I often think about things by blogging, so here you go :)

The Recurse Center is a place where you go for 12 weeks and spend all your time working on getting better at programming. To learn more about it I recommend the user’s manual.

The days are numbered 1-46 because when I was there Monday-Thursday were the only “mandatory” days. So 12 weeks is 48 days, minus 2 for some reason.

Here’s how I spent those 46 days (in order). (I know this because I wrote a blog post every day I was there). Some of this is probably retconned at least a little bit :)

Overall:

adds up to a Recurse Center batch!

To be clear I don’t think that it’s necessary to spend all your time working on a Specific Project. My partner went to RC and spent most of his time not working on any specific project and still got a lot of out of it. People spend their time at RC in totally different ways and that’s okay!

some observations:

  • I wrote maybe 50-100 lines of code a day on average.
  • I didn’t like it when I wasn’t working on a “project”.
  • I was pretty comfortable with web development / machine learning basics before RC, so I completely avoided working on those things. I focused on stuff I thought seemed hard/scary (networking/security/operating systems/writing a shell/compression). Clojure / the git visualization tool were exceptions to this, those I just thought were fun.
  • The stuff I learned about at RC 4 years ago is still a lot of the same stuff I’m excited about today.
  • There were a lot of things I worked on for only 2-3 days (like “write kernel modules”). Some of those things I learned a LOT from.
  • I spent almost all of my time (all except 5 days) working on projects I could demo and talk about easily. But nothing I made was really that polished or anything.
  • I was pretty concerned with getting a job after, a big part of why I blogged about what I was learning was that I wanted to get a cool job after the Recurse Center and so my blog was my “media strategy”. I spent 1-2 hours a day writing (which was a lot) but I did get a cool job after.
  • on the other hand I was lucky that I didn’t really need to get a job immediately after RC, I could have easily afforded to spend a few months job hunting. So I had space to focus on learning/programming.
  • all the people at RC were really amazing (other recursers / residents / facilitators). For example Lindsey encouraged me to work on writing an OS in Rust and that turned out to be a great idea. And the facilitators were always extremely enthusiastic/positive about helping me debug weird problems I had.
  • Today I have a really positive attitude about debugging (what are we going to learn TODAY?!). I think I learned that from the RC facilitators <3 (like I’d ask Allison “hi can you help me debug this weird thing” and she would be SO HELPFUL)

I think this media strategy approach (“everything I do has to be a cool thing I can demo and write about”) thing is pretty weird and I don’t know that I recommend it. It worked for me though, I think it maybe helped keep me focused/motivated. I think “blog every day” isn’t actually an approach that works for most people though :).

RC is awesome

looking back I think some of the most important things I learned at RC were:

  • debugging is fun and interesting
  • systems/networking/linux are extremely cool and not really that hard to get started with even if you only know a little bit of C. Like Tom told me about netcat on Day 2 and I am still VERY EXCITED about networking :)
  • I learned some about unknown-unknowns – things that I didn’t know existed and wouldn’t really have thought to ask about (strace! netcat! system calls!)
  • writing about what I’m learning is really fun

Cool vim feature: sessions! How to answer questions in a helpful way