I just finished week 8 of a 12-week "batch" at the Recurse Center, which is a diverse community of people who come together to help each other become better programmers. The community includes both current attendees and "alums" who stay connected in various ways.
Each week I've been here has been better than the last. Yesterday, for example, I learned more than I do on an average day:
- I learned some Python.
- I saw a neat algorithm using matrix multiplication.
- I got an explanation of Markov chains.
- I attended an excellent talk that was an introduction to dynamic programming.
All this learning was unplanned except the talk on dynamic programming, which I had signed up for in advance. For example, yesterday morning I noticed some people were working on a problem on HackerRank. I got the urge to tackle it myself, and used it as an opportunity to practice Python coding, which I've been meaning to "get around to" for years. (In case you're wondering, my solution passed all of HackerRank's automated tests, but only after a bunch of fixing and reworking.)
All learning at the Recurse Center is attendee-driven. There is no lesson plan, there are no formal deliverables, and there is no certification at the end. Indeed, RC's motto is "Never graduate." We attendees show up on day 1 with some idea, possibly vague, of what we want to work on. It is perfectly fine, even encouraged, to change our minds about this over time, as long as we stay ambitious. We spend most of our days coding, studying, "pairing", doing self-organized workshops and presentations, and socializing.
RC occupies an office space in Soho, a stone's throw from Chinatown. It's a quick subway ride from my apartment, and I can walk home in less than half an hour. I think there's about 50-60 of us here during peak hours, including staff.
The interior resembles a typical open-plan tech startup office. I'm generally against open-plan design, but I like it in this case, because it serves one of RC's goals, which is to encourage us to interact with each other. I don't feel like the activity around me is intrusive; on the contrary, I like overhearing what people are talking about. Also, since there is no pressure, competition, or judgment regarding what I'm working on, I don't feel the exposed anxiety I would feel in an otherwise similar workplace setup.
Besides, the space isn't 100% open. There's a library with books on all kinds of programming topics, and there are rooms where people can hold meetings or just sit and program quietly when we don't feel like working in the open area. Every room is named after a famous computer scientist. Right now I'm sitting in Lovelace. The biggest meeting room is called Hopper. Various parts of the open area also have names: Dijkstra, Ritchie, etc.
Another nice aspect of the physical facility is that the WiFi is very fast and reliable. This means one less hassle in our day-to-day lives getting in the way of progress.
The Recurse Center strongly emphasizes diversity and support for groups that have been underrepresented in tech. I've met attendees from countries including Poland, the UK, and Singapore. All experience levels are represented. We skew pretty young, as in like 20's or 30's, but there are middle-aged folk like me as well. The community includes gay people, trans people, and black people — all in small but still, to my mind, significant numbers.
By design, roughly half the attendees are women, and WOW does that make a difference. I've worked with and for women before, but never alongside this many, not by a long shot. It changes things in a way that I'm not sure yet how to describe, except that I feel more comfortable being myself.
Speaking of comfort, there are four gentle "social rules" we're expected to observe:
- No "well actually's".
- No backseat driving.
- No subtle "-isms" (sexism, racism, ageism, etc.).
- No feigned surprise (as in "I'm surprised you didn't know X", which can have the effect of belittling relative beginners).
I suspect I was the first person in my batch to break one of these rules. On the first day, I brought some batch-mates to Chinatown for dim sum. I caught myself assuming I was the only one proficient with chopsticks. Subtle racism — mea culpa.
The Recurse Center selects attendees through an application process that includes two Skype interviews. You don't have to be a genius or a rock star to get in, although there are definitely people here who impress the heck out of me. My application process felt like the best "job interview" experience I've ever had, in terms of both making me feel understood as a person and making me feel like these were people I wanted to work with.
Attendance is 100% free. RC supports itself through job placements for its attendees. There are lots of support activities for people preparing to go job hunting, including interview practice sessions. There's no obligation to go through RC to get a job or even to be on the job market. And job-related activities should not distract from the primary business of learning and improving as programmers.
I hope to keep sharing more about this place. The staff, for example, is terrific. I might try to think of some complaints; nothing's perfect, after all. Until then, I'll just say this is the best thing to happen to me in a long time.