Daniel Friedman

Week 1 at the Recurse Center

May 22, 2018

It's the week of the 21st of May, 2018, meaning I've officially begun my 12-week stint at the Recurse Center in New York City!

The Recurse Center (RC) describes itself as a "self-directed, community-driven educational retreat for programmers in New York City". It's like a writer's retreat, if instead of writing prose, the attendees write code. Mostly, it's a place to stretch out and learn new skills as a programmer. There are no prescriptive curricula nor teachers, and you're the one responsible for your own learning.

I find RC's model both liberating and difficult; liberating because I can work on anything I'd like to, and difficult because I have to actually pick what to spend my time on, which is tough when there are many subjects/projects vying for my attention.

What to do?

As I applied to RC, I knew that I was interested in roughly three discrete areas of focus: digital signal processing (applied to music), visualization (applied to data), and decentralization (applied to personal data). But where do I start with these subject areas and applications? How will I pick projects for which I can write code?

RC advises folks to work at the edge of their understanding. To that extent, I'm framing my interests as questions I don't yet have answers for (acknowledging that there will be plenty of presently-unknown questions that pop up over time).

  • Digital signal processing

    • What are the foundational concepts & techniques of DSP?
    • How do I implement DSP in realtime? On an embedded system?
    • How do I combine analog and digital hardware to create instruments/effects?
  • Data

    • How do I use statistical techniques to account for sampling bias, margins of error, and other issues?
    • How do I extract narratives from data sets?
    • How do I determine which type of visualization to use given a particular narrative?
  • Decentralization

    • What are the various theoretical models for decentralized networks, and examples/implementations of them?
    • What are some of the problems that arise in decentralized networks, and what are techniques for mitigating them?

My plan moving forward is to answer these questions by way of reading books and writing code. I'm going to begin with the area of focus which is the most alien to me - DSP - and see how far I can get in the next couple of weeks. Hopefully my velocity will indicate how much I should plan to get done for the following 10 weeks.