In a few days, on 1/7/2018, I’m going to start a 3-month batch at the Recurse Center. I am beyond excited. I’ve written previously not getting in on my first try, and you may have stumbled on this post while googling everything you could find about RC – I know I did! I’ll be blogging weekly about my journey for the next 12 weeks, so I hope you find this helpful.
In this post, I want to cover what I plan to do, hope to achieve, and expect to experience RC. I imagine I’ll be hilariously inaccurate with my predictions, so this should be fun to read in a few months
Here are my programming goals for Recurse, roughly by priority:
- Pair program and learn from others as much as I can!
- Get hired as a software developer. The fundamental goal of RC is to help me improve as a programmer. A promise I made myself is that if I dedicated 3 months to this, I’d come out with a career I can depend on (which has been my biggest source of stress for a while). I see getting hired both as a financial imperative, and as validation that I’ve become a better programmer, to the point I can depend on my craft financially.
- Gain a deeper understanding of how code works when it’s run. I want to deeply understand what happens from when you run code to the point it becomes machine code. I’ve heard many reasonable explanations for why different languages are suitable for different tasks, but I don’t think I’ll really understand this until I trace how syntax becomes machine code.
- Learn design patterns, and practice data structures and algorithms. I think there are usually study groups that form at RC to do this, so I’m excited to explore with fellow Recursers.
- Learn a new language with a new paradigm: Scala, Rust, Go. Both my RC interviewer and alums I’ve spoken to gave me the advice to learn something with a _totally different_ paradigm from what I’m used to.
- Stretch goals: use D3.js, build a project using the [WebAudio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API), build a MacOS app with Electron or Swift, learn React and build a small Rails app. I really don’t think I’ll have time for these things, but who knows!
Here are things I expect to be hard:
1. Learning so much complex information in a dense, short period of time
2. Learning to work with people from multiple backgrounds/communication styles
3. Prioritizing what exactly I should work on on a daily basis
4. Balancing my own projects with collaborating with other people
5. Prepping for interviews and learning algorithms and data structure questions
6. Balancing writing code with learning from/socializing with others
7. Writing and thinking about code 8-10 hours a day, non-stop
Here are things I’m really looking forward to:
1. Collaborating and learning from engineers from all walks of life
2. Being in a supportive, welcoming environment geared towards learning
3. The constraint of solely focusing on code for 3 months
4. Learning material that I’m genuinely excited to learn, and knowing that my trade can reward me with financial stability.