RC Week 1: Getting Unexpected Extrovert Energy
Saturday, September 24, 2022
The first week of my batch at Recurse Center (RC) just finished, and it was an intense week! I'm planning to write a blog post each week about my experience at RC. They'll vary, but it'll probably be a mixture of what I did and my feelings about everything. There won't be too much technical content—I'm planning to write individual blog posts on specific things I'm learning.
If you're wondering why I'm attending, take a look at my blog post announcing my sabbatical.
How was the week?
The week was really great, and also a lot.
I am normally very drained by socializing, and this week had a ton of that. I was expecting to be very drained, because I identify as an introvert, and yet... I got this weird extrovert energy from all my conversations! I'd come out of each one charged up and ready to keep going and doing more and more! When I talked about this, I found out this is an experience shared by some others.
For me, I think it's the culture, the people, and just the sheer excitement of being here, but I'm not really sure at all. I want to learn two things: How can I capture this energy outside of RC at a day job? And how do I create this sort of culture in other places? I'm looking forward to seeing if this continues, wears off, or changes.
Here's what I did this week:
- Had 7+ coffee chats
- Went to 2 mixer meet and greets
- Had 4 pair programming sessions
- Attended a ton of events
- Formed a home lab discussion group
- Formed a Red Book reading group
- Stood up a process for my KV store (it does hardly anything, but it parses requests and responds with errors!)
- Started on my chess engine and detoured into GUI programming to make something visual
- Implemented a couple of initial dummy chess strategies (first-legal-move and random-move)
- Started using Obsidian to take notes, and enjoyed it a lot
- Ordered a new-to-me used server (technically, a workstation) for use in my performance testing
- Figured out the source of my arm pain and resolved it. I can use a keyboard full time again! 🎉
- Got a cold and used a ton of tissues 🤒
My week was very weighted toward social things. I wanted to meet as many people as possible and try out all the events before focusing more. Next week I'm going to pare it down a little and dig deeper into my projects.
I learned a few things this week.
Pair programming is hard. It's really freaking hard. If you're not careful (and, reader, I'm not careful) it can turn into performance, and that is not what it's supposed to be! I'm working through some feelings of needing to be right, needing to not flail around or be ignorant when I'm the driver. Fellow Recursers have given me some really great advice on how to work on this. Next week, pairing will be a focus, and I am looking forward to the practice!
Recurse Center is a magical place. Yeah, I know, everyone says this. It's true, though. This is an amazingly supportive environment and I cannot imagine a better place to learn. But check back in with me in 11 more weeks. If there's a honeymoon phase, I'm still in it!
Plans are helpful, as long as you're flexible. This was advice given to me by some RC alumni: Come in with a plan, but be willing to deviate as you discover what you're interested in. I am so glad that people told me that, because I do have a tendency to stick to a plan and I can get anxious if I don't follow through. This week, the main way I bent my plan was by leaning into GUI programming. I've never made a native GUI before, and it was a very different and very fun experience. If someone hadn't told me explicitly to be flexible in my plans, I may not have done that!
GUI programming is really fun! I'm using egui, an immediate mode GUI library for Rust. It has been more intuitive for me than Qt or GTK were when I tried those, but that was also... over a decade ago. (Yikes.) It's definitely more intuitive for me than React. We'll see if it remains that way when state gets more complicated in my application!
What's next week?
Next week I'm going to cut back on the social side to make more time for pair programming. I'm going to go to the groups that are most relevant to what I want to learn at RC, and skip those that aren't as relevant.
I want to have a coffee chat with someone each day, and I want to pair program each day. These are "best effort" attempts. If I don't hit daily I won't feel bad, but that's the goal.
For my KV store, my goals are:
- Implement the ECHO, GET, and SET Redis commands
- Run a benchmark of those commands and compare to Redis
- Start learning how to figure out why they're slower than Redis! (Just going to assume they will be haha.)
For my chess engine, my goals are:
- Make the GUI interactive, so we can play the engine. (I think this will be easier than implementing UCI, but I'll do that eventually as well.)
- Implement a slightly-better search algorithm (requires implementing evaluation as well), like minimax
Along with those, I have a few ancillary things I'm going to work on:
- Install Proxmox on my server and set up my home lab so I can drag race databases. I'm probably going to learn Ansible to manage it.
- Write a blog post on the paper I'm reading for the Red Book reading group
- Finish up a blog post draft I have sitting in my backlog, and maybe give a presentation on it at RC (it's about coding by voice!)
I think that's all I wanted to say about this week! If you read this and you're curious about RC, or you want to say hi, my email is down below.