Nurturing a learner’s mindset: A day at RC with David Balatero
What do you do when you want to explore new areas of programming and deepen your knowledge, but your job takes up most of your time and energy? After working as a programmer for a decade – including stints as the first engineering hire at a startup and later as a Team Lead at Stripe – David Balatero decided to take a break to explore his music and programming interests.
He wanted to take advantage of the first break he’d had in a while to dig deeper into CS concepts, as well as to build his confidence and explore new areas of programming – things he hadn’t been able to do when he had a demanding full-time job.
We chatted at the mid-point of David’s batch about how he’s balancing music and study, and how RC provides the space and lightweight structure to help him get the most from his time off.
(as told to Sydney by David)
8:00 am: I wake up at 8 o’clock every day. Ideally, I try to exercise and practice the piano in the morning. Those are the hardest things for me to make sure I do. I use a stationary bike at home and when it’s nicer out, I bike around a lot for transport and commuting. I spend about an hour a day practicing piano, and I supplement my weekly piano lessons with YouTube videos.
I eat breakfast sometimes, but I’m more of a coffee person. I love and hate the weird feeling of drinking coffee on an empty stomach. My friend owns a coffee shop nearby and sometimes I start the day over there. Ritually, I love to go for a little walk to get a coffee and talk to the barista, but I’m trying to curb my spending habits by training myself to cook more and make coffee at home. Many days I make a French press.
10:00 am: I catch up on messages, check email, and read Zulip. I’m also in a few Slacks, so I start by clearing out the inbox a little bit before I sit down and start doing anything.
There are two things I’m doing right now at the Recurse Center. Sometimes I think man, maybe I should be doing 5 things! But I’m more of a depth person — I’m not into buffet-style learning. There are pros and cons to that, and I know I might miss something that I don’t know that I’ll love.
The first thing is that I’m pretty heavily working on data structures, algorithms, LeetCode and that kind of stuff, which is something that I’ve basically put off my entire life. Before, I would just apply for jobs that didn’t require it as part of the interview process.
The other thing I’ve been working through is a Three.js 3D graphics course called Three.js Journey. I’m still getting through the basics of shadows, lighting, shapes, meshes, and textures. I was attracted to it because I was thinking about what I know literally nothing about, and this is one of the topics that jumped out. I’ve done a lot of frontend web programming in the past, and the JavaScript piece I already knew.
I was ambiently aware of RC because I would read blog posts and the authors would mention RC in the bio on their blog or they’d talk about it in the post. I thought it was pretty cool, and it kept coming up in my vision, but before I didn’t have the time because I was working. I ran into my friend Sara, who’s in an orchestra with me and is also an alum, and she encouraged me to apply. This was the first time I’ve had time off in 10 years, so I did!
12:00 pm: I eat lunch around noon-ish since the LeetCode meetup is at 1 pm. Sometimes I go out, but usually I cook a real dinner and for lunch I’ll scrounge. Yesterday I had leftover bolognese sauce on a piece of sourdough with butter and two fried eggs, with chocolate milk.
1:00 pm: There’s a meet-up every day at 1pm ET to do LeetCode problems together and another once a week to check up on NeetCode, which I’ve been working through on my own. We’ve also been pairing up on doing mock interviews. I try to do some problems by myself so I can go at my own speed, but I also like to work with others. It’s particularly helpful on problems I’ve already done, because then I can explain as I go, which is like reinforcement learning for me. I generally try to make the LeetCode meet-up, unless I have a coffee chat or mock interview at that time.
I’m having a good time being in the zone and learning. I have goals with the stuff I chose to do here: the real goal with the interview stuff is to challenge my imposter syndrome. Once I’m in a job, I perform well, but sometimes in interviews I wish I had more confidence, and I’m excited to take on the next job search that I do with the newfound confidence that comes from preparation. I’m very optimistic about how that will go.
2:00 pm: The next lesson in Three.js Journey I’m going to do is called Haunted House, and I’m going to build some sort of haunted house scene. I haven’t had much to show for it up ‘til now because it’s been a little more conceptual (for example: how to make a cube) and now I’m getting into the fun-to-show section.
Ultimately I’ll get to make swirling galaxies, particles, and stars that you can zoom in and out on, and 3D models in Blender that are hyper realistic that you can drop into a website. I like building for the web, so this would be nice to have in my toolbox. I’d like to make my own portfolio site in 3D, like an apartment you can walk around with tons of stuff that you can interact with: a keyboard that you can play, a projector that shows videos, a window you can look out of. It’s a different medium than I usually work in when I’m doing more artistic things, and maybe I can combine it in the future with music projects I have and make weird 3D interactive experiences.
3:00 pm: When I see something I feel I can help with on Zulip, I’ll try and volunteer to pair program. Or, when someone at the Leetcode meetup mentions that they want to pair up on a problem, I’ll do that too. Yesterday I paired with someone who’s getting ready for a job interview and talked through some open questions she had.
5:00 pm: I kind of treat RC like a 9-5 job, so I usually sign off around 5pm. I have rehearsals in the evening once or twice a week and I try to cook dinner often, or go out with my partner. I’ll also work on music a bit after RC – being in bands or projects is a forcing function to get something together for a concert or a recording.
The hardest part is staying on and engaged for eight hours a day. I’ll take breaks and walk around – because I’m in my home, I can get distracted or lose focus. But, that’s how I am at work too if I’m honest!
The most surprising thing about coming to RC was remembering what unstructuredness feels like. I’d forgotten what that was like to have all day! When I last took a break in 2012, I didn’t have a plan for my time and I flopped around for a while. Being here at RC, there’s no homework, no one expecting you to turn something in, and you can do whatever you want. But, there is the expectation that you are doing something, and it’s helpful to have that framework. When I took a break before, I didn’t have that, and I got kind of lost. I didn’t want to make the same mistakes this time, and I feel like I’ve done well: I’ve been able to show up every day and do my thing.
Late night: I’ve been pretty bad about winding down, and I’ve been getting to bed pretty late. I screw around on the computer, read, or watch TV. I naturally like to stay up late, so it takes a lot of energy to change my approach even though I know it’s better for me. I like to sleep and it’s something to work on because it would make the quality of the things I do during the day better — I’d probably learn more effectively and have better recovery after exercise.
I really recommend doing a retreat at RC if you can. If you think you can’t right now, think about what you would need to have to be able to do it down the road: whether that’s time off from work or something else. RC is the perfect thing if you have a learner’s mindset. Before, I had that mindset, but after work I’d feel tired and I wouldn’t want to work on more programming, so exploration was harder. Pay attention to yourself when you’re like, “I want to learn that thing but I can’t right now!” RC being remote-friendly really reduces the barriers to attending.