Intro Part 1 of 8

My 12-week experience at a programming retreat.

The Recurse Center (RC for short) is a programming retreat. Sounds like a load of code-junkies, sashaying about, sharing Jupyter Notebooks and cat pics doesn’t it? Oh, it is!

But wait! There’s more!

RC is about people who love coding and building things, getting together to help each other learn and push their abilities. It’s a lovingly put-together programme of activities, talks and collaborative education.

The physical base of RC is a building (the Hub) in Brooklyn, New York, but you can also do a retreat as a fully remote applicant. There are several 6-week batches every year, and you can apply to do just 1, or do 2 consecutively (like me) for a 12-week batch.

Some people choose to do their entire batch in the hub, some are fully remote (like me), and some do hybrid.

Although there are faculty who provide a calendar of activities and support, generally the work is self-directed. There are few ‘pass or fail’ situations at RC, it’s more about stretching your capabilities than ticking boxes to say ‘done’. It’s a very nourishing environment and everybody involved is kind and generous.

Beyond that: you get out what you put in.

How I Found RC Part 2 of 8

A couple of cool articles with a certain link at the bottom.

I’d not heard of RC until I was browsing Hacker News one day and saw a link to an article which I read and enjoyed, 3D printing my laptop ergonomic setup. At the bottom of the article was a little link to ‘The Recurse Center’. I clicked through. I skimmed a bit. It seemed like an interesting place but I didn’t give it much more thought at the time. I am an internet user, I don’t hang around!

A few weeks later I was on HN again, reading another great article (Making niche solutions is the point) (NB I didn’t notice until writing this post that both of those articles were written by the same person, so thank you to Nicole!). This one was about how 3D printers have opened up new ways of thinking about the making process, and allow niche solutions which wouldn’t be realistic if we had to spin up assembly lines.

Again, I noticed a link to this Recurse place at the bottom of the article. This time I read a bit more, clicked around a little. There seemed to be a lot about this place that would suit me.

But I wasn’t sure if I was computer-sciency enough, as a self-taught coder. I wasn’t sure if I’d be a cultural fit, as a council estate chav from England. I didn’t apply. My negative thoughts got the better of me.

But I did bookmark the site.

A couple of evenings later I was going through some kind of thought process about my career/life situation, feeling like I wasn’t doing enough, wasn’t making any moves. I remembered that Recurse place I’d read about.

So I dug out the bookmark, and got to filling in my application. Why not?

The Application Process Part 3 of 8

"He who has begun is half done; dare to know, begin!" (Horace)

I wanted to take the process seriously, to give myself a fair chance of being accepted. As soon as I decided to apply I had a mindset switch into one I might have when applying for a full-time job, or some other important consideration.

I’d been self-employed for a very long time and had fallen out of practice with this kind of process, so before I’d even started the application this shift was already interesting and useful for me.

The application process has 3 main steps:

1. Written application

This was a bit more involved than just filling out a simple form. Apart from the usual personal details there were also questions that required more of a lengthy response in prose. This created an opportunity to be expressive and tell a story.

It felt like RC wanted to start getting an idea of who I was qualitatively, not just quantitatively. I liked that.

2. Conversational interview

This was a pleasant, informal Zoom call. In my case the interview (just a chat really) was with an RC alum. We had an easy conversation, a bit of a laugh and we had overlapping interests (this pattern repeated throughout RC, everybody was easy to get along with and commonality was… common).

3. Pair programming

I felt a little anxious about this stage. I’d never done pair programming before. I hear so much talk of pair programming… people doing it at work, using it as part of job interviews. I wasn’t sure I’d know how to do it.

Some things I’d read from RC earlier in the application process had made it clear that the pair programming wasn’t a test, that there was no need to stress about it. I gathered that it was more about finding out how I approach coding problems, and how I can communicate about them during collaboration.

You can choose from several suggested ideas about what to pair on. The ideas are diverse, from Computer Science stuff to more what I’d call jobbing, everyday programming tasks. You can also suggest your own. I think the goal is just to show that you are able to write code and to communicate it and your thought processes.

One of the suggestions was to make some form of Space Invaders game. I already had the beginnings of a game engine from another game I’d built, so I took the opportunity to generalise what I had and re-shape it into Space Invaders.

I was paired with another lovely person, another alum who was again kind, supportive and easy to talk to. By chance, and unlike any of the other code I ever write, ever, my Space Invaders had some bugs. So we just worked through a couple of those.

It was a short session and time whizzed by. Actually it was fun.


The application process had been beneficial in itself. Whether I’d be accepted onto a batch or not:

Already, I’d gained from this endeavour. Even if I didn’t get invited to a batch I was still up on the deal.

RC Culture Part 4 of 8

How it feels to be amongst Recursers.

RC really is a beautiful thing to take part in; a very social experience, with lots of like-minded people to meet. The whole project is well thought out by people who are intelligent and have good intentions. They somehow manage to choose applicants that are both brilliant but also kind and welcoming (let’s not worry about how I sneaked in!). Whoever you speak to, you know you’ll be received charitably.

It’s made clear from the beginning that everybody is encouraged to message freely on Zulip, and that cold DM-ing is fine. Even this little detail is important. For some of us who tend towards over-thinking and can worry about being misunderstood, DM-ing somebody out of the blue can be fraught with ambiguity. Knowing that it was ‘accepted’ contributed to a relaxed and friendly atmosphere.

I met people younger than me, and older than me. Some with more experience, some with less. Many were formally educated in Computer Science, some were self-taught like me. Some were currently in education. Some were educators themselves.

I’m not sure, but I wonder if some thinking is applied to creating a mixture of people, per-batch, who are likely to have shared interests. For example on my batch there seemed to be a lot of people who were interested in visual or graphically-creative things. It may that a lot of us arty ones got thrown in together in this way on my batch… or maybe RC attracts those kinds of coders naturally.

Either way, it works.

Being Fully Remote Part 5 of 8

Making the most of RC from a thousand miles away.

I knew there might be some extra challenges with attending remotely. Time zone differences. Communicating solely via Zoom and Zulip (a messaging app a bit like Slack).

During the application process somebody had given me a friendly tip: as a fully remote person I should make sure I put effort into making myself visible by messaging people on Zulip, attending events etc. People who were physically in the hub would naturally bump into each other and chat, get face-to-face time and collaborate on physical/hardware projects. None of that applies to a remote participant.

As expected, I had a little, manageable, trouble with the time zone difference. Your batch is a full-time commitment and you’re expected to be there for full (at least 6 hours) days on average. The calendar events happen on New York time, which for me in the UK meant that the RC core hours started at 4pm and ended at 10pm.

I’m naturally an early riser, usually up around 5am and it’s not a quick or easy task to adjust your sleep schedule. This meant I’d be doing long days. I spent the first week or so finding my footing.

My daily routine

In the UK during my batch we were 5 hours ahead of New York. Eventually I settled on a pattern.

07:00 - 11:15 Morning coding Work on whatever my ‘main project’ was. A good time to get in flow with something I was relatively comfortable with.
11:30 - 12:30 Body doubling While very beneficial in itself, as a daily practice this also became a useful separator between my ‘morning coding’ and my ‘RC day’.
13:00 - 15:00 Food and nap Make a point of laying down with the curtains drawn for an hour. Sometimes I’d sleep, if not I’d at least get a rest from the screen and a little body/mind relaxation.
16:00 - 22:00 Main RC day Activities from the RC calendar, coffee chat and ‘outside my comfort zone’-coding.

Although I wasn’t pushed into it (there’s an understanding that people in different time zones may need to deal with things a little differently), I decided I wanted to be present until 10pm every day. I knew I was putting in the hours in the morning and getting plenty of code written, but still I wanted to aim for a ‘full RC day’ for my own discipline.

I managed to stick to this commitment pretty well, and on the few occasions I bunked off early it was by minutes rather than hours.

The later, evening, hours were sometimes a bit less focused than my morning coding — this core RC time would naturally be broken up by activities or chats, and I’d tend to be working on exploratory stuff, things that were more new and unfamiliar.

One small concession (or at least scheduling compromise) I made was that I avoided Zoom calls in the last few hours of my day. Although I can code ’til bedtime no problem (like most coders!), I did notice that it was harder to whip up the social energy for face-to-face chats in those later hours. This was partly because I worried that through tiredness I might have a flatter demeanour, seem disinterested… or keep yawning!

Ultimately though, everything worked out fine.

Activities Part 6 of 8

Some of the ways you spend time on a batch.

RC is self-directed. There’s a shared calendar full of events every day, but it’s up to you how many you attend — you’re not going to ‘fail’ by missing events. I believe if it seems like you aren’t getting involved at all, faculty will probably chat to you about whether this is the right time for you to be doing a batch. This seems more than reasonable.

I probably should have put more effort into resisting my tendency to be a code hermit and attended a few more non-compulsory events. A common theme in chats with other Recursers though is that time flies really quickly when you’re on batch. I don’t think anybody gets to do everything they’d like to.

There are lots of ways to approach how you spend your time. Some people work on different projects every day while others focus more deeply on one or two projects throughout their batch.

General activities

There are too many of these to mention and they change all the time. Many are organised by faculty, but anybody (including other Recursers) can create events about anything related to programming.

To give a rough idea a few examples are:

Coffee chats

This was one of my favourite parts of being at RC. You can sign up for ‘coffee chats’ for as many days as you like, eg ’every week day’, or ‘Mondays and Thursdays’. On days where you’re signed up to chat, a bot matches you up with somebody else and you have a little informal meeting/chat. As a fully remote attendee this would happen over Zoom for me.

I met dozens of people in thie way during my batch. There’s something magical about the way RC works, in that even though you meet all kind of diverse people with different tastes and interests, you are somehow ‘guaranteed’ that they will be intelligent, kind, and interested in whatever it is you want to talk about. The conversations range from pleasant 15-minute introductions and general chat, right up to multi-hour rambles across all kind of topics when you happen to meet somebody whose interests particularly overlap yours.

For me as a long-time self-employed, remote working, solo developer with a tendency towards introversion, the coffee chats were a valuable experience. Like a lot of people I get a bit socially anxious and I’d sometimes overthink and feel dread at the concept of being thrown into another face-to-face, with another stranger. But I pushed through those feelings and never once regretted it.

I admit that once or twice, I did make excuses to myself and skip a chat — especially towards the end of my batch, when time seemed to be flying so quickly. More fool me though, as it means I missed out on meeting more great people.

Presentations

Every week on a Thursday (night, for me in the UK) there’s an hour or so of short presentations. Here fellow Recursers talk for 5 minutes, with slides and demonstrations, about some code-related thing they’re interested in and/or working on at the moment.

The range of topics is incredible. Most of them were way outside my wheelhouse, but they all still somehow managed to be interesting. The 5-minute length helps with that as it’s a nice bite-sized chunk of time.

Virtual check-ins

Specifically for the fully remote people, a couple of times a week there are virtual check-ins. These are chill meetings with your batch mates to chat over what you’re working on, any problems you might be having and what’s coming up next for you. It’s very friendly and informal but helps you stay focused and get the most out of your time at RC.


Obviously these are things that were available to me as a remote attendee. For people in the Hub there were some other activities available eg:

Extra Benefits Part 7 of 8

Some nice stuff continues even after you finish your batch.

Never graduate

After a batch at RC you are a life long alum. This means you forever have access to the organisation on Zulip to message people, can still give and/or watch presentations, and can join in on lots of activities. You can also get help from the careers department.

Considering I’ve been a programmer for over 20 years, I know surprisingly few other programmers! Early in my career I tended to work alongside designers, with me being the only developer. Later on I was self-employed, tended to work remotely and with much smaller companies. I’d often be called in as an outsider to code something that was without the skill-set of the current employees. I’d finish the project and be on my way.

It was great to meet so many other programmers at RC, and to be able to interact with them in a very socially safe way. There was no competition, just mutual help and interest — we were all on the same team.

It’s now a couple of months since I finished my batch and I’m still in regular contact with a few other Recursers who I think/hope I can now call friends.

Careers help

During and after your time at RC you get access to their careers department. They’re great to work with can help with some important stuff like:

As with the rest of RC faculty, everyone in the careers department is kind, helpful and generous with their time.

If they place you in a job, the employer pays RC for helping them find you. You don’t pay anything, but this means it’s in RC’s interest to help you find work, as it helps fund them when they succeed. I think this is a good and healthy system. It costs money to sustain an organisation like RC and they need to be funded somehow. Doing it this way means people like me get to access RC for free, without any hidden costs or ulterior motives. Everything is out in the open.

return(); Part 8 of 8

What I got out of it.

I went into RC with as few expectations as possible. I hoped I’d meet some people, learn some things, make some things. Achievements unlocked for sure, but more specifically, this is some of what I came out with:

I can say with no exaggeration that I’d have been chuffed with any single one of those gains. To have come out of the process with all of them is way beyond what I might have hoped for. Truly amazing.


During an ’exercising your volitional muscles’ activity, we were asked to note down the thing we were most proud of about our time at RC. We discussed these things in small groups. When we returned to the main group some of us shared what we’d discussed, but I was feeling quiet and kept mine to myself.

For me, considering I nearly didn’t do it, and could have missed out on all those things I gained from RC, one part of the process stood out as most important:

The thing I’m most proud of is that I applied in the first place!

Want to become a better programmer? Join the Recurse Center!