Having just finished an incredible, eight week long hike through the French Alps (https://gravelshoes.tumblr.com), I’m now moving into an apartment in Brooklyn and am midway through my first day at the Recurse Center, a shared space dedicated to self-improvement and collaborative learning (focused on software and programming). We’ve gone through a few introductions/logistical talks, and everyone is settling in: the mid-batch folks returning to their work, the new folks (me) still mingling and figuring out this new environment. It’s an exciting place, for sure.
Advice from Recursers
The people who’ve been here a few weeks offered some advice to us from their experience working here. Here’s the ones I remember:
- “Pair as much as you can. You’ll still wish you’d paired more.” (This advice reminded me of Hofstadter’s Law of time estimation)
- “Spend the first two weeks exploring, then pick two projects and focus on those.”
- “Meet with people, make new friends! Otherwise you’ll be very lonely these next three months.”
- “Ask people to go to lunch/coffee/events; chances are they’re looking to meet people as well. It’s also a great way to learn peoples’ names.”
- “Write down your goals/interests now, then revisit them at the end of the program.”
- “Write down one to three objectives each week, and stick to them.”
- “Take notes on what you learn.”
- “Work, don’t just read. You’ll learn more by doing.”
Per the advice from several Recursers, I’m going to write out my objectives as they stand today. It’s a means to identify my goals and to make them concrete–these will almost certainly change by the end of the program, so it’s important to write them out today. Unsorted lists.
- Nontrivial contribution(s) to Rust, possibly within the type system
- Progress on mezzo: memory allocator, task scheduler, shell
- Study and implementation of fundamental algorithms and data structures (http://www.keithschwarz.com/interesting)
- Strengthen mathematics background: survey fields and study one
- Cryptography: http://cryptopals.com, https://microcorruption.com
- Pet programming language using LLVM
- Pair program! At least once a week, work on something with someone.
- Organize regular meeting for study of algorithms and math. Possibly lead a workshop discussing what I’ve learned during the week, or presenting on a topic I know from prior experience.
- Keep a blog/journal of the RC experience and anything I’ve learned.
So that’s it for now. In addition to writing informally about the experience, as with this entry, I want to write some more formal articles about what I learn. The intent is to document the new concept, for myself and anyone interested. Beyond sharing the knowledge, teaching others is a fantastic way to discover the missing pieces of what you thought you knew.
Excited for the next few months.