I've recently started at the Recurse Center (RC), a self-directed, three-month coding program based in New York. The main objective of the course is to improve as a programmer, but the way that's gone about is left up to the individual. Having the opportunity to build anything for an extended period of time in an encouraging and nurturing environment is a privillage offered to few, and it's important to make the most of it.
When considering how best to organise time, it's useful to think of RC's unique offerings. RC offers a space to work:
- deeply on a few subjects
- broadly on many projects
- collaboratively, by pair-programming with other students
- individually, but with the ability to draw on the experience of fellow students, allowing you to tackle harder problems
Some of these offerings are mutually exclusive. Talking to RC alumni, I've met people who are deeply focused on one or two 'solo' projects, and others who collaborate, follow their curiosity, and work on many topics. All ways seem valid, and people change their methodology throughout their time at RC.
I've decided to try and work alone on a few long-term projects, interspersed with multiple, quick (2-3 day), collaborative projects. I'm relatively early in my development as a computer scientist, and at this point I feel I have lots of unknown unknowns. I think a broad approach will expose me to lots of ideas and allow me to work out which areas I'm most interested in.
Long term projects:
- Work through the Structure and Interpretation of Computer Programs
- Work on Sceptre
- Implement common algorithms and data structures
Ideas for quick collaborative projects:
- Finish the interpreter I started
- Build a pico-8 game
- An embedded Arduino project
- Learn about operating systems at a high level
- Implement Forth
- Study lambda calculus
- Study discrete maths
- Implement a simple dockerised CI/CD system
- Write a text editor