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.