Life after the Recurse Center

My batch at the Recurse Center finished last week. This seems like an appropriate moment to reflect on what I’ve learnt, and what I want to prioritise over the coming months.

Past three months

Technical

I learnt:

  • How programming languages work
  • C
  • x86 Assembly
  • JavaScript
  • Scheme
  • Forth
  • Principles of web security
  • P5.js
  • Algorithms + data structures
  • A large amount of ‘osmosis’ knowledge from being around so many talented people

I wrote:

  • A Lisp interpreter
  • A Forth interptreter
  • A chrome extension
  • A web game
  • Blog posts
  • Solutions to the first couple of chapters of SICP
  • A ray tracer
  • Sceptre features

Non-technical

  • Met a brilliant community of amazing people
  • Spent summer in NYC
  • Travelled to fun places: New York, San Francisco, Boston, Montreal, Napa, Virginia Beach
  • Started reading more often

Next three months

Technical

  • Monzo. I’m starting a new job as a backend developer at Monzo in two weeks. I’ll be working with a new technology stack (Golang microservices on Kubernetes - how de rigeur) and industry (banking). I expect to learn a lot over the next couple of months, and I’m not worried about planning specifics.
  • Scheme compiler. Since learning Golang, I’ve been interested in the convenience of compiled languages. I’m toying with the idea of writing a Scheme to Golang transcompiler. It should be an interesting learning experience as I’ve not written a compiler before. Targeting Golang rather than something like the LLVM simplifies the task, as Golang natively supports Lisp-ey constructs like first class functions. An implementation of something similar already exists, which I can use as my spirit guide.
  • Haskell. I’ve been meaning to learn Haskell for a while. Some of my favourite elements of Python are borrowed from functional languages and I think it makes sense to learn the canonical functional language.
  • Keep blogging (roughly) weekly.

Non-technical

  • Alumni checkins. RC has a checkin (similar to Agile stand ups) thread on its IM. Checkins are a useful tool for accountability and keeping in touch with the community. I didn’t regularly write checkins when my batch was running, but I hope to do so now.
  • Continue reading.
  • Exercise regularly.
  • Go to more theatre/art.
  • Go clubbing more often.

I’m not sure what my Monzo workload will be like. It’s possible Scheme or Haskell won’t happen, but I’m alright with this. I think I’ll be learning enough in the first months either way.