Recurse Center

What we look for in Recursers

We want to be as transparent as possible about what we look for in Recursers, so that you will apply if you would be a good fit, and to make it as easy as possible for you to show us this in your application. There are no secret or hidden admissions criteria. What’s on this page is what we base admissions decisions on.

Many great Recursers almost didn’t apply because they thought they wouldn’t get in, and we don’t want this to happen to you. If these qualities describe you, you’re a good fit for RC and you should apply.

What we care about

Here are qualities we look for, and some advice about how to convey them in your application:

You enjoy programming. Recursers spend most of their time here programming or doing things directly related to programming (code reviews, discussing programming problems as a group, etc.). RC is for you if the idea of spending most of your time on programming appeals to you.

Application tip: Show us code you've written. If you have a technical blog or anything else that shows you like to program, that's great too, but not necessary.

You're ready to work at the edge of your abilities. This applies regardless of whether you’ve been programming for two months or two decades. We don’t think there’s a meaningful upper bound on how good a programmer you can be, and at RC you should be choosing work that's challenging to you at whatever level you're at. By committing to always working at the edge of your abilities, you're committing to improving.

Application tip: Tell us about how you’d like to grow as a programmer, and what your first steps at RC might be. If you’re a new programmer, you might not even know what you don’t know. That’s fine! It’s okay if your answer is “I’ve only been programming for eight weeks. I’ve never written a program from scratch that’s longer than 20 lines, so I'd like to start there.” If you've been programming for many years, you might be looking to expand your capability with a new programming language or area of interest, or gain a much deeper understanding of something you know well. Tell us about the things you want to learn or do, and why.

You’re self-directed. RC is not like traditional educational environments: we have no curriculum or teachers, and no one will tell you what to learn or work on. RC is for you if you want to be able to focus on what interests you and have the freedom to structure and prioritize your own time. Being self-directed means being willing to understand your intrinsic motivations and willing to make decisions about how you spend your time at RC.

Application tip: Give us examples of times you’ve made substantial progress learning or doing something hard without externally imposed structure. Show us that you can make informed decisions about how to spend your time without someone telling you what to do.

You’re sharp. RC being self-directed means you’ll get the most out of it if you’re a smart, deliberate thinker and learner. RC is for you if you can pick things up quickly, be rigorous and introspective, and understand the limits of your knowledge.

Application tip: We care more about depth than breadth of knowledge—we’d rather you have a deep understanding of one language than a superficial understanding of three. If you’re really new to programming, we want to see that you’ve previously been successful in learning something hard, whether that’s law, biomedical engineering, or the intricacies of how coffee is manufactured. We want to see that you understand the code that you’ve written and don’t just bang things together until they work.

You’re pleasant. The primary educational value of RC comes from Recursers learning generously and interacting with each other. To improve everyone’s experience we try very hard not to admit jerks. We also think this is educationally important.

Application tip: We get most of our signal about this from your interviews rather than your written application. When you interview, be kind, engaged, thoughtful, and polite.

You’re intellectually curious. Since RC is so self-directed, there won’t be any external forces (like a boss or teacher) pushing you to stay focused and engaged with your work. RC is for you if you can motivate yourself with your excitement about technical ideas and desire to always be learning more.

Application tip: Your best opportunity to demonstrate this in your application is the question about the most fascinating thing you’ve learned recently. We want to hear about something surprising you learned, and it doesn’t need to be about programming. We’ve seen great answers to this question about everything from making jewelry to plant taxonomy to music theory.

What we don’t care about

We also want to be transparent about things that don’t factor into our admissions decisions either positively or negatively, so that you don’t waste time worrying about them.

Degrees and credentials. We think these are poor proxies for all of our admissions criteria.

Knowledge of particular programming styles or techniques. Recursers work on a huge variety of projects—apps, art, compilers, games, libraries, tools, operating systems and totally unique programs that defy categorization. They use languages from assembly to JavaScript to Prolog. You don’t need to know any particular language, or how to do test-driven development or functional programming or any other specific technique to do RC.

Whether or not you want a job or can work in the U.S. We want to make RC the best programming community in the world, and that means we want to have you as part of RC if you would benefit from and contribute to the community, regardless of whether we can help you get a job. We think this is in our long-term financial self-interest, even if it’s not in our short-term financial self-interest.

What not to do

These things are negative signals, since they are potential indicators that you don’t have the qualities we look for:

Don’t answer the “fascinating thing” question with something you learned about yourself. This doesn’t demonstrate intellectual curiosity, which is what this question is there to measure.

Don’t submit a CracklePop without testing it to make sure it works. This shows carelessness and doesn’t give us confidence that you can program.

Don’t claim to know something really well if you don’t. We care more that you understand the limits of your knowledge than about what you do or don’t know.

Don’t paste the code of your program from scratch into the answer box on the application. Please link to it on GitHub or another website where it's hosted.