Photo credit: wallpaperup.com (for the uninitiated, the octopus has a long history at Recurse)
It’s been a little over a week since I never graduated, so I’ve had some time to think a bit about my 12-week Recurse experience and what I learned. Here is my return statement about the most important things that came to mind — and be warned, it’s a lot! 🙂
First off, let’s start off with the bad, with things I would have liked to go better:
I didn’t get to pair as much as I would have liked. I paired 36 times, or an average of 3 / week, which sounds like a decent amount, but was heavily front-loaded as the large majority of these were in the first 6 weeks. Next time (and there will definitely be a next batch for me someday!), I’ll pick at least one project using a popular programming language so that pairing works out better. I think, for me at least, 1 pairing / day would be about the right amount. I’m no exception to the observation that most Recursers wish they had paired more.
I went all-in on coffee chats, and by my count, I did 78 coffee chats (including office hours), which is about 6.5 / week and was a lot even for me. I wasn’t too far off what I think would have worked out best for me, though; like pairing, I think striving to talk to one person a day would have been about right.
The online chat platform for Recurse, Zulip, has a bot that posts a few LeetCode problems from the Blind 75 each day. I’d finished those earlier this year (before my time in batch, during my job prep), so I posted my answers when the problems came up each day in the hopes that they might help other people working on those same problems. Since I did them all in Java (which I picked due to it being the language I have the most professional history with), and since Java tends to be fairly readable for many other programmers, I thought it might be helpful to post my answers. But I didn’t receive much feedback on my posted solutions, so I think the effort I spent on that might have been effort I could have better used in other places.
Next, things that worked out well for me:
The most important thing I learned at the Recurse Center was how to listen to myself better. This is such an important skill, and it’s really rare to get a chance to practice it! I’m not sure how to tell other people about how to do that, because even though I’ve tried to reflect deeply a lot in the past, it took me months to do it at Recurse anyway. Shutting out all the other voices but my own was (and is) very hard, at least for me. I think the best guideline I can offer others who are trying to do this too is the mantra that has helped me the most: “What would you do if you weren’t afraid?”
I learned a lot of technical things, some of which I expected, and some of which I didn’t: a good amount about Elixir, a decent amount about Phoenix, category theory (specifically, for programmers), CSS, and interpreters, and a little bit about theorem proving in Lean and Coq.
I also learned a bunch of non-technical things that I didn’t expect to learn:
- Writing (more about this later)
- Listening to myself (as I said earlier, but it bears repeating, because I didn’t necessarily expect that!)
- Art, and about artsy programmers (there are a lot more of them than I expected at RC!)
- Sexism and racism (the diversity at RC makes it an amazing place to learn about those topics!)
- World cultures and food and music and lots of other things (Recursers are from, and in, so many places!)
- Teaching (there are a lot of teachers at RC, it turns out!)
- Baking muffins
- Perfume
- And a bunch of other small things too numerous to listI felt so honored to be able to encourage lots of newer programmers in the batch and help them occasionally with things (and learn lots of cool stuff from them, too!) Especially, it was so nice to be able to encourage many newer female programmers, which has been a core goal of mine for a long time in programming in order to try and make the dismal numbers in my profession a bit better. It was more than I’ve been able to do than in the entire rest of my career to date, actually, so this underscores to me how important the Recurse Center’s mission is!
Mostly I was able to keep work-life balance going during batch. Sometimes I signed off at 6 PM instead of 5 PM, and I didn’t always go running at the time I wanted, but mostly I think I kept healthy and avoided burning out. I think work-life balance is really important for remaining physically and mentally healthy, especially during something that can be really strenuous (mentally) like Recurse.
In a place full of folks I would like to call my people (meaning inclusive, generous, kind, diverse, empathetic, and many other things), it was still very useful to go to lots of meetups and talk to lots of people to find the topics and folks I specifically vibed with. In other words, even though almost everyone was cool and fun to talk to, there were still some people whose interests overlapped with me better and fit better with me than others, and it was worth overloading on events the first couple of weeks and doing lots of coffee chats throughout in order to find them as early as I could (even if, as I said earlier, maybe I did a little too many coffee chats).
Oh, and a Recurser gave me a great piece of advice my last week: use the last week to connect with any batchmates you got along especially well with, because you never know who may drop off Zulip when your batch is done.The pair programming I did do was wonderful for learning to pair with lots of different people (and for feeling more comfortable doing that), and for learning lots of skills and tools I never would have otherwise, and for learning more about mentoring junior programmers. I can’t stress enough how great pairing can be, even for very experienced devs! It didn’t always go perfectly, but it went amazingly well enough times that I can’t emphasize its importance enough.
I got a lot of great writing practice in this blog (and also by writing lots in Zulip). Especially, all that writing helped me write faster (but still to a good standard) by learning to be less precious about what I write. And I got practice putting more of my writing out in public and being vulnerable in it, too. It wasn’t easy, but every time I shared something vulnerable (especially when I was struggling), people responded warmly, and often with vulnerable stories of their own. Both of these things that I got better at helped me build my confidence a lot as a writer and as a programmer.
The last thing that worked for me is something I’d like to talk about at greater length, and it’s this: the Recurse Center reflects your commitment back to you. By which I mean that the level of commitment you come in with largely determines your results, in my experience.
I’ve taught programming a couple of times (once at a for-profit school, and once at a bootcamp), and at those places (as at many other places of learning), I saw how much the effort that people put in would change the learning outcome on the other side. Recurse is no different regarding commitment, but I can see that effect even stronger here. Committing hard to Recurse — as I tried (and I think succeeded) to do myself — really gave me back so much here over my 12 weeks of batch. And I think this is especially important to emphasize because I think this is pretty much the only way to have anything real achieved at the end of your batch. At Recurse, nobody hands you a sheet of paper when your batch ends. There are no classes, no prerequisites (other than knowing a bit of programming), not much of anything formal really. So if you come in with no commitment, and don’t show up to anything, and don’t write anything on Zulip, and don’t pair with anyone, or do other things that require self-directed effort on your part…in my experience you’ll get basically nothing at all back out.
So if you’re considering Recurse yourself, my advice would be to commit to it as much as you can without hurting your wellbeing, or the wellbeing of those you love. If you’re bargaining with yourself and trying to see if you can scrimp some on the fairly-gently-emphasized requirements, I think you’re probably setting yourself up to have a bad batch. Despite my personal large amounts of privilege, I can at least partially understand a lot of the reasons you might be hedging your commitment: maybe you don’t have much money, or maybe you’re caring for others, or maybe you’re afraid to not have a job without actively searching for one, or maybe you don’t think you’re good enough to matter, or maybe you’re a strong introvert that’s not looking forward to a bunch of community interactions, or maybe you’re skeptical of this whole crazy thing, or maybe you live in a time zone where syncing up with Eastern time is really hard, or a bunch of other reasons. And maybe the whole lack of having to pay money, or pass a test, or satisfy any other stringent entrance requirements just might lead you think: “Well, I didn’t have to do too much to get into Recurse, so it’s no big deal if I don’t commit too much to the retreat.”
But the reason I’m trying to encourage you to commit anyway is that Recurse is a place of opportunity, and a rare opportunity at that: the chance to have a bunch of kind, curious people encourage you, help you become a much better programmer, and have some fun along the way. Every time I leaned into the wonderful community with some effort of my own, it was almost always paid back in the form of a really great experience.
So if you find yourself bargaining and trying to reduce the time and effort you’re planning to put in, I think you’re actually narrowing down what you can get back out of RC, which feels very sad to me. When talking to Recursers on the margins (I tried to talk everyone I could during batch), seeing the folks that couldn’t make much use of Recurse inevitably felt very sad. Maybe it was due to factors they couldn’t control, or maybe it was due to factors they could, but either way, the dominant thing I felt each time was sadness. The chance to discover (or rediscover) what you love about programming and become much better at it is a beautiful opportunity that I wish every programmer could experience. You have to pay for it with your time and effort and commitment — the Recurse Center was a surprisingly intense experience for me, actually! — but I think what you get back out is very special.
Wrapping up, I’ll self-grade myself against the three self-directives:
3/4 of the credit for "work at the edge of your abilities". In a technical sense, I think I managed to do that a lot for the first six weeks, but not as much for the last six weeks. Though I do think I managed to push myself in other ways to the edge of my abilities for the whole batch, like with writing, presenting (I did 4 presentations), math (via category theory), scheduling chats and events, and being social. So I give myself 3/4 credit here as a compromise.
Full credit for "build your volitional muscles". I spent months working internally towards the epiphany I mentioned earlier. I’m proud of that and had to work hard for a long time for it.
Full credit for "learn generously", since I wrote every week in here, posted a checkin every day in Zulip, checked in in person every day in the morning, and tried to respond to a lot of people’s Zulip comments (four separate batchmates told me, unprompted, that they were impressed by how much I responded on Zulip, so I think that’s a reasonable assertion).
So I think 2.75 out of 3 is a good score (around 91%). I feel pretty good about what I accomplished! And I had a lot of fun, too. I earnestly hope that the friends I made and had fun with at Recurse, both among my batchmates and among the staff, keep going for a long time! The staff have repeatedly mentioned alumni/alumnae making friends that have stuck together for many years already, even if they never talk about Rust. And I hope I get to see some more new batchmates in a future batch someday!
And what about post-Recurse? I’ll continue to work through my CSS course, the Crafting Interpreters book, the category theory class, and maybe rounding out my movie metadata app. I’m going to keep hanging out in Zulip and chatting with people as well — the community here is wonderful, and I hope I don’t ever lose touch with them! Even after I get a programming job again, I want to stay involved with RC and Zulip, because I really believe in what they’re doing and because there are so many awesome people there!
Thanks for reading! It’s been fun and enlightening to write, but this will be my last post on this blog. If you made it to the end of this, I appreciate you! Feel free to shoot me an email at solamen2 AT gmail DOT com to ask more questions, or just to say hello!
And maybe think about applying to the Recurse Center yourself! It was a profoundly useful and good experience for me, and if you know some programming, I think it can probably be a similar experience for you too!