Recurse Center - Then and Now

The first time I attended the Recurse Center was in the fall of 2019, shortly before I moved from the east to the west coast. The timing was very now-or-never, as I felt like I'd never have another substantial break between jobs to dedicate time to self learning (and also live in one of the most expensive cities in the world). Fortunately, that was not the case, as I am currently in my second batch at the Recurse Center; this time through their entirely remote experience. As I'm coming up on nearly the halfway point (how time flies!), I thought I'd do a bit of an overview of how the experience differs, and how I'm approaching my batch this time around.

During my first batch, I had several nebulous project-type goals and one very clear one -- to figure out if I really liked programming. Outside of Recurse, I had a long-term goal to see I could merge my engineering experience with software, but I felt that the development I was doing was too trivial to really make a go of it. I didn't have enough time to focus on the picky details of software development (and I could see the cracks in my knowledge). In that regard, Recurse Center gave me the perfect environment to focus on just that and get a much better understanding of how I could build the tools and software that I wanted for my design job, as well as the vast potential of other software fields that I just hadn't ever been exposed to.

A lot of the learning goals that I had the first time around are similar this time, and I brought two projects to work on (one that was already under development, and one I've built from scratch since my batch started). I have much more of an idea of how to get from A to B, and I've come into this batch already knowing what had worked for me the first time, though sometimes it's been a challenge to apply those lessons to the virtual space!

I was heads-down focus time for most of the the first half of my in-person batch, which meant that I largely spent time on the second floor of the physical space but would meet up with people for coffee chats and lunch. Being heads-down focus in a virtual space is hard to do and still be "engaged", since it can largely look like you just aren't there. I've been experimenting with "sitting" in a room in the RC virtual space and just streaming music from this feed as a kind of virtual co-working space (with additional sound effects from my Kailh Box Whites :P).

Some of the typical meetings are still in effect in the virtual RC space. There are daily check-ins at the start of the official RC hours (8 am - 2 pm my local time), which are a good excuse for me to grab a coffee and write up what I want to work on for the day. As always, there are no real required meetings, and all study groups are entirely self-organized as people coalesce around similar learning goals and interests. This time around there's a lot of enthusiasm for Go, Rust, and Python. A number of people (myself included) are working through the FullStackOpen curriculum, and there's daily Leetcode practice and weekly book clubs for books like Understanding Computation.

While I had specific learning goals for my time, I've also tried to be flexible to get as much out of the experience and the people in my batch as possible. I've gotten "distracted" with CRDTs, Webassembly, AR, and quantum computing, which I wouldn't have anticipated prior to my batch, but it's a lot easier to work on a topic when you have other people interested to help hold you accountable.

Some of the things I've noticed about virtual RC that are in some ways better than the in-person batch are pair programming is much more common, the batch is very geographically diverse, and people are documenting more of their RC experience on Zulip.

While we had pair programming stations in the physical space, I see a lot more people using the pairing stations in virtual than I think happened in person. Pairing with other people is a great way to get perspective on what you're working on, hacking on something new, and getting to know someone.

With virtual RC, there are people participating from all over the world, a lot of whom wouldn't have been able to take the time or deal with the logistics of living in NYC for three months. In addition to geographic diversity, I've also seen more diversity in the age of participants, which has been great to meet and learn from very experienced programmers (and younger ones!).

During my first batch, Zulip wasn't as actively used by people in the physical space, particularly for check-ins (though events and announcements are posted there just as they were in-person). The best aspect of this is that a lot of people drop links to what they're learning, which is useful for me as a perennial tab hoarder (I'll get around to reading it all eventually!)

While replicating some of the late night social aspects of physical RC is hard, there are certain things that work in the online space that I don't think I would have done in person. One longstanding virtual RC group (that was originally in the physical space, but established after my in person batch) is Music Consumption Group, where people are able to load up tracks to a common playlist and listen to music together over Zoom. It's a great way to wind down after a day of work and hear a bunch of new music.

So what's next? I've still got a lot of work to do on my projects, and I'm excited for the next batch people starting in a week and a half. I think I've got my workstation to a happy place in terms of organization (I keep the virtual RC space open on my ipad to see what people are up to), and I updated tinky-care to notify me about upcoming events from the RC calendar.

RC at Home