On December 15th, 2016, my time at the Recurse Center came to an end 😔.

Since then, I’ve been home with friends and family who have been asking to summarize the experience.

Did you like it?

Was it what you expected?

Was it worth it?

So to better collect my thoughts and summarize the experience - I’m going to write this post!

Applying to the Recurse Center

When I applied to the Recurse Center I was in Lima, Peru.

My plan for the year had been to travel the world and code (7 months in South America and 5 months in Europe). Live out of a backpack, meet locals, get off the beaten path… all that jazz.

It was fun for a while, but I eventually started getting really burnt out.

Reasons for that included:

  • Never-ending uncertainty about where I would sleep/eat.
  • Constant turnover of people.
  • Lack of people with similar goals/interests.
  • Lack of settings where I could explore my interests.
  • Pressure to be continually moving.

I decided I was tired of chasing cities and instead wanted to focus on meeting interesting people and becoming a better programmer. Some options I considered:

  • Flying somewhere with more nomadic programmers (eg. Southeast Asia)
  • Getting a full-time job
  • A conference for remote workers
  • The Recurse Center

After exploring the options, I decided the Recurse Center seemed like the best fit.

Expectations for the Recurse Center

When I decided to go to the Recurse Center, this is what I was looking to get out of it.

  • Work environment
    • Wifi wasn’t great on the road.
    • Hostels were hard to focus in.
    • People regularly warned against carrying a laptop in public, which discouraged me from going to coffee shops.
    • A city/space with more opportunities to pursue my interests.
  • People
    • Interactions that would last for more than a week.
    • Guidance on my projects from more experienced people.
    • Exposure to new ideas and encouragement towards personal growth.

Things lacking from these lists:

  • Dedicated time to program: I took a lot of time while travelling to focus on coding. Being at RC gave me a 3 month block of time to code, but I was already dedicating time to code.
  • Build/Learn X: While I did come to RC to learn new things, I didn’t have some grand vision for what success would look like. I was mainly looking to collaborate with others and learn from those experiences.

The environment at the Recurse Center

Coming in, I had a certain set of expectations for the environment at RC:

  • Room full of programmers.
  • Talk about technical stuff.
  • Work on technical stuff.
  • Programming nirvana, please discuss your non-technical interests elsewhere.

This was reinforced by what I read in the RC Manual:

You should be here primarily because you want to become a better programmer and spend the majority of your time here programming and doing things directly related to programming.

Well, we could ask you to be respectful of speakers and keep conversations on-topic in the Recurse Center space during the day (i.e. if you want to take a break and chat about your weekend, go grab a coffee).

That wasn’t my experience of the space.

How I came to see it:

  • Room full of curious, friendly, wonderful people from all all walks of life.
  • Talk about technical stuff. Talk about emotional stuff. Talk about what excites you.
  • Work on technical stuff during the day. Attend events and explore non-technical interests in the evenings.
  • Educational nirvana, with a primary focus on programming and a secondary focus on everything.

It was the best learning environment I’ve ever been in ❤️.

Best doesn’t mean perfect though. Working at RC was at times inspiring and exciting. At other times difficult and confusing.

Here’s my breakdown of those two sides.

The Hard Parts 😰

Imposter Syndrome

You could probably relate much of what felt “bad” back to imposter syndrome.

Imposter syndrome is normally used to describe people who are doubtful of their programming abilities. My imposter syndrome was more doubting my value as an RCer.

Those people are reading academic papers and reimplementing Raft… but I just want to build silly web apps.

Those people just finished their bittorent clients… but I spent my entire day writing a presentation on Non-Violent Communication.

That person just shared a tech meetup and everyone seems excited… I just shared a concert and nobody wants to go.

The comparisons started making me wonder.

Am I working on what I’m supposed to?

Am I less technical than these people?

Is my presence distracting?

The first time I applied to RC I was rejected. Thinking about that didn’t help calm the worries that maybe I wasn’t a good fit.

Logically, I knew it was silly. RC has lots of other people interested in the same things that I am. I gained a ton from putting my ideas out there and finding others to collaborate with.

But the imposter syndrome was always lurking in the back of my head - ready to flare up if things weren’t going the way I wanted.

People v.s. Projects

People and projects were two opposing forces that took a lot of energy to keep in balance.

Projects:

I have 3 months to focus on whatever I want!

I’m surrounded by knowledgeable people who can give project advice and help me progress.

I need to code as much as possible because I’m here to be a better programmer.

People:

There’s so many interesting people! I just want to talk to them all day.

I can code anytime and anywhere. Being here is special because of all the people around me.

There’s so many things to do in New York and so many curious people willing to do them with me.

I definitely leaned a lot more towards the people end of the spectrum. At the end of my batch I felt so excited about all the interactions I had, but disappointed about the amount of programming I had done.

Other people leaned a lot more towards projects. I didn’t see them at many events, but by the end of their batch they’d built some really cool things.

It was interesting talking to the project people.
I lamented not having accomplished as much as them. They lamented not getting to know more people.

Grass is always greener 🐄.

I don’t regret anything, but it’s definitely a balance I worried about during my batch.

RC Bubble

It’s easy to get immersed in RC.

Coming from Toronto, I didn’t really have any social group when I arrived in New York. If I wanted to be social I could:

  1. Hang out at RC, where everyone is friendly and willing to chat.
  2. Go out to things by myself.

Option 1 was always the easiest/default. But always being in RC would tire me out. It meant constantly talking about projects and programming.

Interacting exclusively within RC also made the relationships feel RC dependent… context dependent.

Sure, we could talk and hang out… but I felt like we were hanging out as RCers, not friends.

People would always be keen on hanging out at RC, or going as a group to do things. It was a lot more rare to hear:

“Hey Harold, I’m hosting a thing and wanted to invite you!”

I fell victim to this too. It just felt easier to put general invitations out rather than try and make time with individuals. It’s also something that takes a while to happen… 12 weeks isn’t a lot of time to navigate all the people and opportunities within RC.

Nevertheless, getting to know people as friends as opposed to batch mates was something I frequently craved.

(Thanks to all the people who did put themselves out there and made stuff happen outside of RC. It was very much appreciated ❤️.)

The Awesome Parts 😃

Learning from others

RC provided so many opportunities to learn from others.

The diversity of experiences meant that whatever you were learning, there was someone who knew it.

People would pair together, answer questions on Zulip and share their favorite resources.
People would organize reading groups, presentations and viewings of screencasts.
People openly talked about their failures, their struggles and their 4 hour debugging sessions.

The whole environment at RC made learning collaborative and fun.

RC also hosted a variety of residents - experienced programmers who were willing to sit down and provide insight on a wide range of topics.

Outside of RC there was all of New York. A bustling city full of interesting events and meetups.

So grateful for all the learning that was shared!

Redefining “Programmer”

Before RC, I had this idea of “tech culture” that I didn’t feel comfortable identifying with.

In tech, I’ve felt like my interactions with others had to be technical or not happen. Asking questions about interests and hobbies drew blank stares. Not knowing about the latest framework or tool meant you were a bad programmer.

Other friends had felt it too. We’d even talk about tech as some other entity we just had to deal with.

The people at RC wiped all those assumptions away.

“Nerdy sweethearts” is how one RCer described the group. Thoughtful, passionate, empathetic and friendly are other adjectives that come to mind… but that’s all pretty vague.

To put it in more concrete terms - “programmer” was redefined for me:

  • At non-technical talks, when people talked about Brexit or “How did blue/black become the most used inks?”.
  • During feelings checkins, where everyone would sit and share their emotional state from that week.
  • At after hour events, which ranged from RCers doing improv together to learning hip hop dance.
  • On Zulip, where alumni from 2012 still hang around to share and ask advice.
  • In the homes of RCers who organized potlucks to bring everyone together (and seeing the culinary talents of coding accomplices 😋).

…and so many other wonderful moments.

All moments which were created/proposed/executed by RCers. People willing to put out there ideas, and people excited to support those ideas and run with them.

I once again feel excited to call myself a programmer.

Spirit of experimentation

The curiosity at RC makes it such a great place for experimentation.

  • Should we do in person checkins? Zulip checkins? End of day checkouts? Try them all and choose for yourself!
  • Want to try being nocturnal? The space is accessible 24/7!
  • Interested in academic papers? Start a reading group!
  • Want to get into meditation? Join the meditation sessions!

Anything you could want to experiment with, there’s a way to do it at RC. There’s also probably a handful of curious individuals willing to try it out with you.

It’s so much fun getting to try all the things!

Being myself

At RC, I felt like I was working on more parts of myself than in any other community.

Any interest I had, there was someone equally curious about it and willing to chat.
Any feeling I was experiencing, I could share without fear of judgement or shame.

It was a pretty awesome feeling.

I should note that it’s something that took time to feel. At first I definitely came in with worry and imposter syndrome:

Omg, these people are so much more socially aware than I am… I’m going to screw this up… I’m going to break a social rule.

Is this thing I’m writing going to offend someone? Did I just say something -ismy? Oh god oh god 😬.

Oh god, I just wrote a blog post that was 90% feels… I’m not programmer enough to be here 😨.

But with each interaction and conversation, I felt more and more at home.

Overall

So…

Did you like it?

YES ❤️

Was it what you expected?

NO ❤️

Was it worth it?

ABSOLUTELY ❤️

The Recurse Center provided total freedom to work on what I wanted. It surrounded me with a wonderful group of people to work on those things with.

Did I become a significantly better programmer?

Not through lines of code, or deep dives into new languages.
But I got to work on all kinds of things that left me feeling like a better person.

And becoming a better person makes you a better programmer. 😊


Thanks to all the staff for all the work you do to keep RC running.
Thanks to all the RCers who invested their energy into making RC such a great place to be. ❤️

If you’re looking to become a better programmer, you should apply.