Recurse Center - Day 1

Today was the first day of the Winter 2, 2024 batch at Recurse Center (RC).

I was recently admitted and will be participating for six weeks—a half batch. When I was applying, I thought six weeks sounded long, but now that I’m starting, it feels a bit short and kinda wish I could be here for the full 12. Interviewing team—thank you so much for getting me through the process so quickly!

I have a few ideas of what I want to learn and work on. I’m unlikely to get to it all, especially since I hear it’s easy to get pulled into various projects. But right now, I do hope to focus on:

  • AI/ML. Until recently, I didn’t see much value in diving into this topic since it’s unlikely that I would really ever contribute to the field; it’s more likely that I’d integrate with pre-built AI systems. But computers that think, computers that are wrong—that’s interesting! And so I would like to understand this a little.
  • iOS/Swift. I have a lot of experience building web apps, but very shallow experience building other kinds of applications. And I like my iPhone. So I’d love to broaden my horizons a bit and learn to build a working, shippable iOS native app with cloud syncing.
  • Threads and processes. I’m building Disqualified, a background job processor, and there are a few features I want to build. Right now, it runs on a single-process, but it is multi-threaded. I’d like I to be multi-process and multi-threaded. I think that the main challenge here is to get each process to understand how many other processes exist. Since I’m using an ACID database store, I should be able to do it safely, but I need to think a little bit about how to do this.
    • I should mention that I programmed it to be multi-threaded, but that I’m not 100% sure if it is multi-threaded. I’m not really sure how to test this. I’d be happy to dive into this, as well as benchmarking this.
  • Something hardware related? I have a typewriter and some dongles/converters that I can use to connect it to my computer. I tried it and it works, but I don’t have fine control over it. I have two goals here. Firstly, to make the printed output a little prettier (adding margins to the output, etc). I’ll probably have to read a lot about CUPS. And secondly, to inspect what the dongle is doing and see if I can get rid of them from my printing flow.
  • Data structures and algorithms. There are some topics I know pretty well, and there are some topics I’m pretty bad at. I’d like to study the ones I’m bad at and hopefully get a good understanding of them. I don’t really like cramming, so I’d like to be good enough where I can use LeetCode to practice, not to study.
  • Some side projects. I’ve been interested in Textile recently and have a project in mind for that. I also want to add cron jobs and other features to Disqualified. My side projects tend to be within my comfort zone though. But since RC encourages people to work at the edge of your abilities, I do hope to avoid working on Rails apps and other things I’m already knowledgeable about.

But yeah, that’s six large topics points for six short weeks. I’m not very likely to get through all of this. We’ll see what I do end up spending my time on! There are definitely some topics that are directly useful in the job market or its application process. And there are definitely some that are less so, but potentially more interesting to me. I do hope to find a good balance between them, but again, we’ll see how it goes. This’ll be interesting to keep in mind throughout.

I’m definitely a bit nervous, but I’m also pretty excited to be around so many people who want to learn more about building software.

Posted on 2024-01-03 05:09 PM -0500
Contact
  • hello(at)zachahn(dot)com
  • connect(at)zachahn(dot)com (Recruiters)
© Copyright 2008–2024 Zach Ahn