Recurse Center

The self-directives

The self-directives are three guiding principles for your time at RC. These are directives because we think that if you follow them, you’ll learn a lot, build meaningful relationships, have a transformative experience at RC, and help those around you do the same. They’re self-directives because these are things you must do for yourself, in your own ways. They are:

  • Work at the edge of your abilities
  • Build your volitional muscles
  • Learn generously

The self-directives are tools for learning and working independently, and can help you discover (and keep discovering!) what’s most interesting to you. If you apply them, you’ll be able to do work that’s challenging, that matters to you, and that you’re proud of—not just at RC, but over the long term.

Work at the edge of your abilities

Working at the edge of your abilities means being ambitious about what you can achieve and also honest about your capacity, choosing work that challenges you but isn’t so far beyond your current abilities that it’s discouraging. This is where the most learning and growth happens. Working on something that’s easy for you won’t help you grow, because it won’t teach you anything new. Working on something too hard is also not helpful, because you won’t even be able to get started.

The edge of your abilities is dynamic, and changes over time. If you consistently push yourself to work at this edge, your abilities will expand, and what was once hard for you will become easier. To keep learning, you’ll have to move on to more challenging work. These small gains compound over time, until you’re able to do things that seemed impossible when you started.

The edge of your abilities also changes based on your circumstances each day. Sometimes you’re full of energy, and can push yourself to get a lot done. Other times, you might be tired, or distracted by problems with health, family, or other life challenges. When this happens, your capacity is reduced, and you have to adjust your expectations of yourself. It’s also important to not go too easy on yourself—you have to push to accomplish a lot when you do have the energy for it. If you show up every day and work at the edge of your abilities for that day, you will grow.


Imagine your goal is to write your own operating system in C, but you’ve only used Python and JavaScript in the past. Working at the edge of your abilities might mean starting by writing some command line tools in C. This will push you, because it involves a new language and concepts, but it’s not so far beyond your abilities that you’re unlikely to succeed. Once you’re comfortable with C syntax and manual memory management, you might move on to writing your own operating system.

Build your volitional muscles

Building your volitional muscles means growing your ability to make decisions about your work and learning based on your own curiosity and joy, rather than external pressures and fears. Your volition, or ability to make decisions and act on them, is something you can grow by exercising it, just like a muscle. This requires reflecting on what you really want, being honest with yourself, and acting accordingly. Sometimes it’s hard to untangle your intrinsic motivations from feelings about what you “should” be doing, but with time and practice, it gets easier. You have to constantly ask yourself what do I really want to do? And then do it.

Building your volitional muscles is valuable not just in programming and learning, but in life. They enable you to discover what you deeply care about, independent of what society, your family, or financial necessity might pressure you to do. They’re a tool you can use to find out what you really want out of life. They expand your idea of what’s possible and what choices are in your power to make.


Building your volitional muscles is about the “why” of your work, not the “what.” Imagine you decide to learn about operating systems because you think all “real programmers” understand low-level programming, so you need to as well. This would not build volitional muscles, because you’re acting out of fear. However, if you’re genuinely curious about the inner workings of the software you use, and you decide that learning about operating systems would be a great way to satisfy that, you’re building volitional muscles. You thought deeply about what you cared about and acted accordingly.

Learn generously

Learning generously is what makes RC a community. We celebrate each other’s successes, support each other when we struggle, and benefit from each other’s knowledge. You could practice the first two self-directives while learning on your own, but stand to gain so much more by sharing the experience with dozens of others in your batch (and over 2,500 RC alums!).

Learning generously takes many forms. It means sharing your curiosities, interests, and struggles with others; being open to collaboration; and listening well and asking good questions when others share their work with you. If you’re very social and enjoy variety, it might mean hosting events or pairing on other people’s projects. If you’re focused on one project and work best alone, it might mean presenting your work and sharing updates as you go.

If you’re afraid you can’t learn generously because you have less experience, don’t be. Even if some people know more than you about specific topics, your enthusiasm and excitement for what you’re learning might be exactly what inspires someone else to push through a slump.

Learning generously works best if everyone does it. When we do, we all get out more than we put in. We all thrive at RC when everyone treats the community as a resource that they are both contributing to and drawing from.


Imagine you’re working on learning C and building an operating system by yourself, in a way that’s largely invisible to other Recursers. This would not be learning generously. No one else gets to learn alongside you or be inspired by your work, and you deprive yourself of potentially great collaborators and interactions. You could learn generously by seeking out other people in your batch interested in low-level programming and starting a study group with them. Or, if you can’t find those people, you could share updates about your work on Zulip, so others can be inspired when you succeed and offer support when you struggle.

Applying the self-directives

The self-directives are intended to be actionable advice that can help you make decisions about your learning. For example, if you’re deciding between two projects you’re interested in, choose the one that is closer to the edge of your abilities.

The self-directives also work in harmony with each other. Building your volitional muscles is easier if you learn generously by talking through your goals, desires, and decisions with other people. Sometimes all it takes to know what you really want to do is to hear yourself talk about it out loud.

The self-directives are not items you can check off your to-do list and leave behind. All three support each other, and striving to put them into practice is what makes them work. There are as many ways to work at the edge of your abilities, build your volitional muscles, and learn generously as there are Recursers — probably more! They’re a powerful foundation for your experience at RC, and for lifelong learning.