Our Pedagogy

Results oriented and heavily researched learning curriculum designed for a long-term career as a Software Engineer

Core Curriculum

Mastery of Fundamentals

Core curriculum block icon

Duration: 8 - 16+ months

Mastery-based Learning


Engineering & Excellence

Capstone block icon

Duration: 3 - 6 months


Everyone has an opinion on the best way to learn or teach. Ask 10 experienced programmers how to learn to program, and you'll get 10 very different answers. Most people, even seasoned experts, are only aware of their personal journey and do not spend any time thinking about how to craft a path to proficiency for someone starting their learning journey today.

Our pedagogy is a result of teaching hundreds of students over half a decade and combining that experience with proven learning methods by experts, such as Barbara Oakley, Carol Dweck, K. Anders Ericsson, Kathy Sierra, Fernand Gobet, Henry Roediger III, and others.

Most of the confusion around how to learn comes from two major points of ambiguity: 1) not knowing what the learner's end goal is and 2) not zooming out enough to see the learning journey in its entirety. The first confusion usually comes from a vague goal (eg, "I want a job"), while the second is usually the result of not being aware of the different phases of learning a skill. In the following paragraphs, we'll outline how our pedagogy addresses these confusions.

First, it should be pointed out that our singular goal at Launch School is to push people to launch new careers at the best companies possible. Importantly and counterintuitively, it's not about jobs at all; launching a career requires a far more long-term mindset and a much more thorough training process - you have to be willing to learn for years instead of months. Second, the entire learning journey is much more nuanced than most people think, and what and how you study depends on where you are on this journey. We will articulate this idea in more detail in the sections below.

Learning Framework for Our Pedagogy

Learning framework for our pedagogy chart

Most learners visualize their learning progression as a path of steady improvement. However, our learning framework, seen above, captures the entire learning journey from the very beginning. We categorize a beginner's learning journey into three phases: Explore, Study, and Professional.

Explore True Beginner

When one first tries to enter any field - cooking, tennis, piano, programming - it initially starts with a process of discovery and exploration.

Prior Experience:
None. Absolute beginner in the field.
The main goal is to get your feet wet at this stage and developing some hands on feel for the topic. Play is encouraged, and it's just time to have fun and feel like you're making progress. The focus is on exploration, discovery, and awe and not on deep understanding - build and play and launch without worrying about how it works under the surface.
At this stage, the support mechanism is focused on making sure students have a positive experience to encourage further exploration. The best teachers here are helpful and positive and foster an environment of encouragement, positivity, and inspiration. The tools should be plug-and-play and be immediately and intuitively usable. Tools that require sophisticated setup or configuration should be avoided; exchange power for usability.
Mental Model:
The mental model at this point is around establishing an overall feel for the entire ecosystem or environment. A high-level tour of the field is useful here in order to start building some general idea of where everything is.
Learning Structure:
With the focus on building and playing, students in this phase take a build-first top-down approach to learning. It's not only ok but preferred to skip over mastery of fundamentals in order to keep the momentum going.
This stage could take weeks to years to decades. Most casual hobbyists stay in this stage forever; for example, weekend softball league participants usually never have any intention of making a career in softball. Sometimes we see someone exit this stage very quickly (perhaps in just a few weeks), and it's usually because they've experienced this journey before in another field. Studious learners who have deep expertise in another field typically don't stay here for too long.

It's important for beginners to stay here as long as necessary in order to build confidence to tackle "the plateau", which is the next and most difficult phase of learning to mastery. At any point in time, the vast majority of learners are in the Explore phase and most never exit this stage. To confuse matters even more, it's possible to get a job as a programmer even at this stage (at least, that is true for now).

Launch School has many free and introductory materials for learners at this stage, but in general, learners must be beyond this stage to take advantage of the Launch School curriculum. There are a lot of learning resources that cater to students in this initial Explore stage, but Launch School is not one of them.

Study Serious Student

After the initial high of discovery, play, and exploration, most students who attempt to persist beyond "happy path" tutorials start to realize that there's far more below the surface if they want to become a professional or expert in this field. There is increasing doubt and a proliferation of known unknowns. Sometimes eager learners will try to power through the frustration, hoping that clarity is just the next tutorial or page away. Over time, it becomes evident that if one really wants to understand what's going on to a professional level, the path must start from fundamentals and first principles and requires a slow accumulation of sound mental models each step of the way. The way to achieve that is a structured curriculum and a switch in mindset from that of play and fun to rigorous studying and deliberate practice. This is the inflection point to "the plateau" - the most difficult and prolonged phase of the learning journey to mastery.

Prior Experience:
Been dabbling and exploring for a bit, and ready to transition from "explore" to "study" mindset.
The goal at this stage is to understand concepts one level deeper. It's not enough to play with the topic, but a search for some deeper insight or order commences. The focus switches from getting a feel for the topic to studying how things work by taking concepts apart. This is the process of deconstruction and it's from this careful taking-apart process that you slowly build up progressively more accurate mental models. The key actions at this stage are understanding and deconstructing, so that you understand not only how to use a tool, but also how and why that tool is constructed the way it is.
The best teachers during the Study phase are ones that can give precise instruction, with an emphasis on deconstructing concepts to its core components (one layer below). Each new concept must help the learner establish an increasingly more robust and accurate mental representation of the underlying concepts. Assessments must be used to gauge mastery and students need to be given room to dig into and digest the material on their own. Deliberate practice must be employed to make sure that students are improving their skills, not just acquiring knowledge. This is where Launch School applies the principles of Mastery-based Learning to ensure students fully understand the fundamentals each step of the way.
Mental Model:
Learners at this stage need to start forming progressively updated and clearer mental representations of core concepts. This means not only being able to follow instructions to perform a task (eg, via tutorials), but also being able to articulate a concept's core attributes to someone else (eg, via writing articles, giving a presentation, or as in our case at Launch School, via 1on1 assessment interviews). Learners need to build clear mental models of "atomic" concepts to be applied later to "integrated" concepts. Through this build-up of smaller mental representations, learners will start to appreciate and understand the larger problems tools and practices were built to solve. In this way, learners start to recognize more generalized, fundamental problems, rather than learn about performing specific tasks. We call this understanding problems, not solutions and it requires the slow and steady accumulation of mental models.
Learning Structure:
Because we're learning from first principles, this phase takes a bottom-up approach to learning. The sequence and structure are really important, and reaching proficiency each step is crucial to being able to understand the next level up. Assessments are used to ensure mastery each step of the way and progress is marked by the mastery of a topic rather than duration. Launch School's applied Mastery-based Learning model is the only one that ensures learners reach mastery each step of the way, which is the secret to learning fundamentals.
We call this phase the plateau because the learning duration is indefinite. Because we're focusing on fundamentals at this stage, we employ a Mastery-based Learning system, as opposed to a time-based learning approach, and therefore cannot be certain how long it takes to finish this stage. Most students at Launch School take anywhere from 8 to 16+ months of intense studying to get through this phase.

This phase is where Launch School shines and where our approach to Mastery-based Learning really enforces understanding of core fundamentals. It's a journey of mastery from first principles with a focus on developing clear mental representations of things that don't change. Because the emphasis is on mastery, we can't be sure how long it takes to get through this stage, but the measurement is usually in "years" and maybe "months", but definitely not "days" or "weeks". It's strongly recommended that you read and watch the video on our implementation of Mastery-based Learning to fully understand how we guide students through the plateau of fundamentals. Typically, a dramatic change in lifestyle and learning approach is required to be successful in this phase, and we spend a great deal of time guiding students through that process and through "the plateau". It's the most difficult learning phase and is what makes Launch School special.

Professional Software Engineer

After mastery of fundamentals, the next phase is about applying that knowledge and skills to higher-level concepts. This is where discussions around best practices, design, architecture, and trade-offs can finally happen. This is also the phase where the transition to a professional begins.

Prior Experience:
Mastery of fundamentals and an understanding of how they are used and constructed. Must have sound mental models of atomic and lightly-integrated concepts.
The professional phase is where we can start challenging learners and push them to their limits to discover their engineering capability. Learners at this stage should try to develop a deeper intuition about tradeoffs and context, and focus on engineering patterns and architectures. At this point, performing the task is relatively easy, but when to perform the task and to what depth is now the focus.
Students at this stage get the best return on their time and experience from an instructor who can facilitate focused discussions and guide research-oriented tasks. Developing deep intuition comes from discussions and engagement, not just practice and memorization. At this phase, instructors should hold high-level discussions around context, architecture, design, trade-offs, and engineering philosophy. It's time to apply all the previously acquired fundamentals to the most difficult engineering problems at the boundary of one's capability.
Mental Model:
The mental model at this phase is on how all the pieces fit together in a variety of ways, with special attention to each design's tradeoffs and use cases. Whereas before learners acquired smaller problem patterns, this stage is about zooming out and developing more sophisticated architectural and infrastructure patterns.
Learning Structure:
Once we transition out of fundamental concepts and into larger libraries and concepts, the surface area of these topics grow exponentially, and employing a detailed, no-compromise Mastery-based learning approach becomes impossible and unnecessary. At this phase, it's important to help learners navigate the huge surface area of topics by employing larger and more sophisticated mental representations, which we can now do by building upon the smaller mental models acquired in the previous phase. In the Professional phase, we use an instructor-led, top-down learning approach, allowing us to zoom out and apply core skills in a variety of interesting settings and projects in order to analyze their trade-offs and consequences. It's through this process that a professional engineering mindset starts to form, and confidence in tackling any engineering problem starts to develop.
At Launch School, the Capstone duration is 3-6 months.

Launch School's Capstone Program is built with this phase in mind. The program is highly selective and extremely rigorous and goes well beyond any other training program. Capstone is the admissions-based "finishing" experience for Launch School students. It's instructor-led, team-based, and called "the hardest thing I've done" by most participants. Most Capstone graduates take between 1 to 2+ years to complete the entire Launch School curriculum, from the Study phase (Core Curriculum) through the Professional phase (Capstone). The results bear out that rigorous journey: the average salary for US-based Capstone graduates is over $100,000. (See the Results and Outcomes page for more details)

Launch School Pedagogical Style by Learning Phase

Pedagogical style by learning phase chart

A Career Launching Pedagogy for Anyone

With our Mastery-based Learning plus Capstone Program pedagogy, you can become a professional Software Engineer, too. But it'll likely take much longer than you think. If you can measure your journey in years and not months, the Launch School pedagogy may work for you.

Take time to work through the three phases, and understand where you are on that journey. If you're looking around and checking things out, just have fun with it and find a supportive community to encourage you while you're getting a feel for what programming is about. When you're ready to study, give the Mastery-based Learning approach a try, and focus on fundamentals with no compromise in understanding each step of the way. That will set you up to take your understanding to the next level when you're ready to tackle larger engineering problems.

Specific learning strategies need to be employed for each phase, and it requires an associated change in mindset and lifestyle. Working through "the plateau" is very different than going through Capstone, so make sure to read about how to approach each phase and read tips from other students as well.

One last thing to be careful about is understanding the difference between "getting a job" versus "launching a career". Though they seem similar, those are two very different and incongruent goals. Our pedagogy is built to help launch careers, which is much more difficult and takes much longer. Our pedagogy only makes sense if you have a long-term perspective and a goal of launching a career as a Software Engineer.


Now that you understand the various phases in the entire learning path and their respective pedagogies, read about the main pedagogy in the "Study" phase: Mastery-based Learning.