Between January and March 2021, I spent three months at the Recurse Center. In this post, I’ll reflect on my experience at RC during that time.
The Recurse Center is a self-directed, community-driven educational retreat for programmers based in New York City and currently operating online.From RC’s website
I’m quite new to programming and I felt quite intimidated about joining something like a bootcamp with more experienced programmers. In fact, when I first heard about RC from a friend, I thought it could be very helpful for me, but that I hadn’t enough experience as a programmer to be accepted.
Regardless of those lingering doubts, I decided to give it a shot. While my first application was rejected, I tried a second time and was accepted. Quite happy about the results but still nervous about the experience, I joined RC at the beginning of January 2021.
Among my first difficulties was the simple act of communicating with other people. Since English isn’t my first language, I had some insecurities on that matter. All in all, I decided to give my best and try getting the most out of RC.
A community of programmers
As a self-taught programmer, I hadn’t had much contact with other people in the field. One of my main goals at RC was just getting to know other programmers, what they worked on, and learn about their knowledge and experience. I can say that RC is a perfect place for this goal.
One of the concerns of RC is for it to be like a community. In that regard, they are very careful about making people feel comfortable about interacting with one another. That’s also part of the selection process to enter RC, they look for people that are easy to collaborate with.
The results are very clear. I haven’t met an overall more friendly and helpful community of programmers.
It took me some time to adapt. My previous contact with programmers had been shaped by my experience at Stack Overflow: very helpful, but beware of asking the wrong question. At RC, on the other hand, I could feel more at ease with the fact of “not knowing” and “asking for help”. This is very helpful in a learning environment.
Collaborating with other people
In the beginning, RC can be overwhelming. There are so many activities and so many new people. The first week or so, most of your time is spent meeting them and getting used to the environment. After this initial wave of social interactions, you are left free to devote more time to programming-related activities.
At this stage, if you’re willing to, you can decide to reach out to other people. It could be by joining a study group that you’re interested in. Or maybe you read a message on Zulip (the chat platform used at RC) about a project that interests you and decide to contact that person.
This is one of the most valuable aspects of RC. You will have plenty of opportunities to learn from other people.
Early on, you’ll also learn about “pair programming“. It could be about asking for help on a bug and requesting an extra pair of eyes on the matter. Maybe you decide to add a new feature to one of your projects with the collaboration of some else’s input. Or it could be just taking turns with someone else to write any sort of program you’re interested in. Anyhow, pair programming is definitely worth trying out and it can be an excellent means to learn more.
Finishing some projects, abandoning some others
RC does not come with any type of curriculum. During your time at RC, you’re your own master. You decide what to work on. For this reason, most people come to RC with some sort of plan or goal. The funny thing is that oftentimes those plans change.
In my case, I didn’t have any fixed learning path. I wanted to have the freedom to work on whatever struck my interest while being at RC. In that sense, I did a lot of investigation of different subjects. I also just tried to keep myself available to work on different project ideas (either alone or with other people).
This lead to different experiences. I found several topics that interested me. Some led to new ideas of my own or to collaborations with other people. Most of the time, I couldn’t dig very deep into those areas, but at least I know about them to explore them later on.
My desire of being available for new experiences also led me to abandon some projects or activities. There was only so much I could take at the same time, so I had to empty my stack from time to time. While sometimes it was hard to make this decision, I don’t feel that it affected my goals negatively. I guess I just opted for breadth rather than depth.
Some learning outcomes
Some of the projects that I participated in:
- Front-end development of an e-commerce site.
- A wav file utility.
- An ant colony simulation.
- A dictionary extension for Mozilla Firefox.
Some topics I was able to explore:
- Functional programming.
- Type theory.
- Binary exploitation.
- Game development.
- Generative art.
As the title of this post suggests, the most relevant aspect about RC, for me, is its community. Beyond all I was able to learn and the fun I had while participating in different projects and activities, what I value the most in RC is its community. There are so many different people coming from different backgrounds, most of them being very friendly and helpful. That’s huge.
RC might not be for everyone. As it was mentioned, it doesn’t come with any sort of curriculum, and it has a very open structure, which might dissuade some people. But for most people I have met, including myself, RC has been more than worthwhile.
A huge thank you to RC’s community and to the wonderful team behind it.