“Come back with your shield or on it” my doctor advised before I moved across the country to work at Amazon.
I was on the retreat with my proverbial shield just 18 months later.
I envisioned Amazon as a stepping stone on the road to becoming an amazing programmer -- someone who could turn imagination into reality. Instead, I left feeling burnt out, stagnant, and like I had taken a step to nowhere.
Then, I had one of the most amazing experiences of my life at the Recurse Center (RC), a “writer’s retreat for programmers.” The kind when described that can only sound like I’m trying to convince you to join some cult.
I first encountered RC a couple of years earlier while visiting a friend in New York City. I met Rudi, whose passion for programming and wisdom left a deep impression on me. He had gone to RC and gave a glowing recount of his experience which sparked me to do further research. By the time I was feeling burnt out at Amazon, I was daydreaming about the amazing people I could meet at RC and the opportunity to explore my curiosity.
As for the actual RC experience, everything is self-directed. There isn’t a curriculum to work through or deadlines to meet. This raises the question, “What’s the difference between going to RC and taking a sabbatical to work on yourself?”
The answer lies in the vibrant RC community. Participants are incredibly diverse, a medley of game developers, machine learning Ph.D. students, industry veterans with 20+ years of experience, people who had dropped out of high school to work at Google, visual artists, musicians, and so much more.
People are also generous in sharing what they’re learning. I remember sitting down with a Video DJ from Montreal and working with him on upgrading his custom software for creating light shows in different venues. I spent time working with a graduate student from the UK on writing a compiler. I paired up with other Recursers to build a chess engine. Programming began to feel incredibly creative.
Some of my fondest memories are from the 30+ “coffee chat” 1:1s I had with other Recursers. Each conversation left me with a new perspective. I learned about growing up in India, what other large tech companies are like, grad school, pursuing passion vs. doing the work, working as a chemical engineer in rural Missouri, leaving high school to work at Google, and so much more.
I left RC feeling rejuvenated, like I’d regained my shield. While I had moved to work at Amazon alone, I now felt like I had the support of an entire community.
Here were some insights I had at the Recurse Center.
The power of a strong community cannot be overstated
Everyone has an incredible story to tell and learn from
Working towards things out of joy and curiosity still requires hard work and intentional practice
Sometimes radically changing your environment can radically change the way you think
Seek out the places that make you feel the most alive
I’m regularly in touch with dozens of the Recursers I met during the retreat and still regularly attend online and in-person events. Looking back now, the Recurse Center feels like an experience I had waited for my whole life.
Selected Reading (from a Recurser)
Things unlearned, Jamie Brandon
This is one of the excellent posts Jamie wrote as part of Reflections on a decade of coding. The prompt for the post is: “what are some things that you used to strongly believe but have now changed your mind about?”
There were three particular points that resonated with me:
“Whenever I ran up against something that was ugly or difficult, I would start looking for a simpler solution” - There’s the temptation to try and find an “elegant” solution. This bit me as a novice programmer. Anytime I’d run into something ugly or difficult, I would spin my wheels trying to simplify the problem and solve the puzzle. Sometimes it's better to just get something working and move on.
“If you have a mountain of shit to move, how much time should you spend looking for a bigger shovel? There’s no obviously correct answer … The answer absolutely cannot be 100% of your time” - Part of the temptation here is avoiding tedious work. The best approach I’ve found is to try doing some shoveling and evaluate how that works before trying to upgrade your shovel.
“If I could go back and do it again, I would spend the majority of my time trying to solve hard/interesting problems, using whatever were the mainstream languages and tools in that domain.” - There’s a constant temptation to try out the shiny new tools that will make everything before them obsolete. I’d expand on this and say we should try to minimize the number of directions we’re expanding in and try to go deeper on fewer. I’ve failed to complete some personal projects because I tried to learn a new programming language, framework, and domain all at the same time.
Jamie strikes me as a pragmatist and someone whose reflections are coming from hard-earned experience rather than philosophical musing.