Honing my craft

Recurse Center Week 4 Day 1

August 31, 2020

Today marks the second half of my Recurse Center batch. It’s something I’ve wanted to do for years, and with the pandemic I had to push off even longer until I felt semi-secure in employment and health insurance options. But wow, am I glad I did it.

Coming into RC, I had a ton of goals. I wanted to write some C. I wanted to write some Rust. I wanted to write a small compiler from scratch. I wanted to contibute to a big open source compiler. I wanted to read a big text book. I wanted to write a ton of blog posts. Looking back, it’s kinda silly just how much I thought I could do, or how much I even wanted to get done in 6 weeks.

When I reflect on what I HAVE done in the last 3 weeks, I’m actually very proud of it. However, it’s pretty clear to me that what I value (reflected in what I do) is very different than what my goals were (reflected in what I said). My goals were diverse, unfocused, and really about greedily touching as much as I could to sate this need for intellectual stimulation. But it turns out, I didn’t really want that.

To date I’ve

  1. Written a ton of Rust (a new language for me) by following Crafting Interpreters
  2. Learned more depth about parsing algorithms from Engineering a Compiler and some videos from Dmitry Soshnikov, an engineer / educator I respect a ton
  3. Worked through some Nand2Tetris
  4. Contributed to Rome, an open source Javascript toolchain

…and that’s it. No distributed systems papers, no Game Boy emulator, just letting my interests and passion guide my focus. That’s not to say I’ll never switch focus - that Game Boy emulator might be fun in Zig! Maybe I’ll spent my last two weeks working towards that.

Two quotes that I like, that might sound a bit too adversarial, are “No plan survives first contact with the enemy” or phrased better by Mike Tyson - “everybody has a plan until they get punched in the mouth”. I had a plan coming into RC. I looked at the calendar, chatted with some folk, and fairly promptly threw that all away for serendipity. I just focused on the few things I’ve wanted to work on for a while…and just did it. For me, for my needs and where I am in my life, this is so much better.

To reflect on values:

Working in web dev for years, and doing a lot of front-end work on business software in particular didn’t really allow me the intellectual stimulation or more me towards my goals of depth over breadth. RC gave me the space to both realize that this was even a goal of mine - that I preferred a sense of expertise over loosely touching many topics - and the time to just dig deep into topics. I’m grateful for the opportunity and the financial privilege, and I think the largest growth opportunity I’ve even had is this realization of my values.

Nikhil Thomas

I work and live in Brooklyn, NY building software.