Some misconceptions about Hacker School

Update (March 25, 2015): As of today, Hacker School is called the Recurse Center. Everything in this post still applies!

This summer I’m part of the residency program at Hacker School, a three-month-long, self-directed, full-time school in New York for becoming a better programmer. This summer’s Hacker School batch will be wrapping up soon, and the application deadlines for the fall batch are already upon us. I’ve been talking with lots of programmers I know and encouraging them to apply.

During these conversations, I’ve encountered a few misconceptions about what Hacker School is and who it’s for. I’m not an official source of information; for that, I recommend the User’s Manual and this blog post. Having said that, here are a few things I’ve heard people say that attest to misconceptions about Hacker School, and my responses to them.

Two LVars papers

Greetings from surprisingly sunny Portland, Oregon:

I have one new publication and one new draft paper to announce!

Write an interpreter: variables

This post is the second in a series. Last time, we started coding up a toy interpreter for a language of arithmetic expressions. This time, we’ll extend the language to include variables and update our interpreter to handle that extended language.

Write an interpreter

I spent last week volunteering as a resident at Hacker School, where I helped a number of students write small interpreters. For the most part, the students I worked with weren’t exactly beginning programmers. One of them, for instance, was a robotics Ph.D. student who had written a trajectory follower that helped a robot autonomously navigate through the desert.

Clearly, it’s possible to get quite far in a programming career without having written an interpreter — or, at least, without having consciously done so. So, why does it matter? Why should you write an interpreter?

How to read from an LVar: an illustrated guide

I’ve written a few posts about my work on LVars, which are data structures that support deterministic multithreaded computation. Fundamentally, there are two things to do with an LVar: write to it, and read from it.

When I talk about how LVars work, I usually focus on writes, but they’re only half the story. In this post, we’ll look at how LVar reads work.