One month at Recurse Center12 Sep 2015
In a previous post on the lessons I’ve learned after college, I mentioned time moves faster outside of school. This has held true for my first month at Recurse Center (formerly known as Hacker School). For those not familiar with the program, it is a free, three-month, self-directed programming retreat in New York City. Attendees are programmers looking to hone in on their skills, whether they have been coding for three decades or three months. I wanted to use this post to reflect on what I have learned so far, talk about the experience, and look ahead to my remaining months here.
Progress so Far
Instead of taking a new job after my time working at Imgur, I decided to attend RC to tackle my growing list of side projects. So far, I’ve built two small apps in Swift 2.0. Now that Xcode 7 has hit its GM release, I’ll be submitting them to the store soon! The first app is called Rest. It is a simple bedtime calculator (much like sleepyti.me) that helps you stay in sync with the recommended number of sleep cycles per night (5-6). The second app is called Trigger. Trigger is the habit reminder I’ve always wanted. After using a habit tracker for the past three years, I’ve learned that a key component of habit formation is the use of reminders to ’trigger’ specific actions. In my experience, a single scheduled reminder rarely suffices. This is where Trigger shines. Trigger allows you to set multiple reminders, scheduled or random, and even use geo-fences for location-based habits. It has been a blast building these two apps and they allowed me to dive deeper into some iOS frameworks I have always wanted to learn.
It is an exciting time to be a Swift developer. With the language, standard library, and compiler going open source (plus Linux compatibility) later this fall, I’m really eager to see how it shakes up the developer landscape over the next 10 years. The two apps I mentioned above were built entirely in Swift 2.0. This version of the language has brought many features I love including
defer statements, protocol extensions, and better error handling. As cheesy as it sounds, Swift has rekindled my love for programming, and it seems like others feel the same way.
“Recurse” to Fill in Gaps
Since RC is a self-directed retreat, it has given me time to fill in knowledge gaps. For example, some parts of the git workflow have always seemed magical to me. How does git actually implement merging? What does a ’detached
HEAD state’ really mean and why does it sound so scary? These are all questions I’d feel embarrassed asking in a traditional work setting, but they’re highly encouraged at Recurse Center. In fact, one of the amazing facilitators, Mary Rose Cook, hosted a session on how git works under the hood and helped clear up any remaining questions I had!
In my current batch, there are two other attendees (Caroline and David 👋) writing Swift full-time. Although I started writing Swift about seven months ago, it’s been an amazing experience helping them get started with the language. Taking concepts that I’ve only internalized and explaining them via code snippets or diagrams has done wonders in helping me master the fundamentals. Teaching, itself, is a great way to learn.
Intrinsic Motivation and Work Cadence
Recurse Center Doesn’t Feel like “Traditional” Work
Recurse Center places a heavy emphasis on intrinsic motivation. Want to learn that framework you keep hearing about? Go for it! Have you learned all you can from your current project? Move onto the next one! Without traditional driving factors like deadlines or user metrics, you begin to program for the sake of becoming a better programmer. This makes RC feel better than “traditional” work. I often find myself coming into the space at odd hours, simply because I am itching to get back to my projects.
Since the majority of my day is spent programming, paired with the fact that I eliminated caffeine from my diet four months ago, I have learned a lot about managing my energy levels. Actually programming for eight hours straight each day is a myth and unsustainable. I’ve been able to refocus midday by taking breaks to work out and tweaking my sleep schedule (RC actually has both 10:30am and 1pm check-ins to cater to different routines). On the same note, one of my great friends, Zack Shapiro, recently made a tweet storm about putting your health first and work second:
No Better Way to Move to a New City
New cities are always daunting. Before making the move to Manhattan, I grew up and went to school in Virginia and lived in San Francisco for a year and a half after graduating. Despite having a small friend group here, it’s really comforting to be making this adjustment with ~30 people in the same situation. I could not imagine a better group of people to move into the city with ❤️
Internally, we use a chat program called Zulip. Aside from solving a lot of the noise issues that non-enterprise Slack channels face, I’m continually impressed by how active the alumni community is. Whether you need help with the specifics of Docker or handling a tough situation at work, there is always someone online to help.
A Slice of a Better World
Recurse Center’s social rules have honestly made the experience infinitely better. At a high-level, the four rules are no feigning surprise, no well-actually’s, no back-seat driving, and no subtle -isms. The rules are “meant to be lightweight, and to make more explicit certain social norms that are normally implicit.” The result of these rules is an inclusive space where the top priority is learning. It has also been refreshing to see local meetups, like Hack && Tell, adopt these rules in their Code of Conduct!
Given my experience so far, there are two small adjustments I’d like to make.
During my first month here in NYC, I’ve had trouble balancing social events with progress on my projects. While I absolutely love attending meetups and seeing what the city has to offer, I would like to strike more of a balance. This has been particularly draining because I tend to be more introverted. Moving forward, I’m going to spend more time with my head down moving towards my goals, while maintaining a healthier amount of social activities.
More Technical Writing
Lastly, I’d like to do more technical writing. This past week, I wrote my first Swift post on interactive iOS notifications, which truly helped me iron out my knowledge of the subject. To make things even better, one of my idols, Natasha Murashev, added the post to her weekly newsletter!
That’s all for this month’s checkin. I’ll be writing reflective posts like this one in October and November!