It’s Not About Content

Effective Learning is About Structure, Feedback, and a Goal

One of the most incredible things about the Internet is the ready access it provides to educational content. No matter what you’re interested in, you can find it online. And if your interest is programming, then there is a huge amount of content available. This veritable feast of learn-to-code content would seem to be a learner’s dream. But is it enough to learn the skills necessary to launch a career? Somewhat counterintuitively, I would argue that for most people it isn’t. Great learning isn’t about content — it’s about structure, feedback, and a goal. Together, these components make up a fruitful learning curriculum.

Despite its many advantages, online educational content is not without its challenges. Perhaps chief among them is overcoming the illusion that learning will be easy. Abundant content suggests that everything you need is right at your fingertips; however, for most learners, structure and feedback are vastly more important than pure quantity. In order to maximize learning, it’s important to filter content such that the learner is always focused on the right material, at the right level of complexity, and at the right time. Further, the learner needs to receive appropriate feedback about their level of comprehension; in some cases, awareness is enough, and in other cases, deep proficiency is required. Finally, getting appropriate feedback on the awareness vs proficiency spectrum is only possible when there’s a defined goal in mind. This is especially true in a cumulative field of knowledge like programming.

Regrettably, the plethora of online learn-to-code material — a generally desirable thing — has led to some unexpected consequences. Advice for new programmers is often “just dive in — everything you need is available for free!” As nice as this sounds, it fails to take into account the fact that learners need different things at different stages of their journey. This leads to poorly calibrated expectations, which for many beginners, go hand-in-hand with deep and persistent frustration. In other words, content isn’t enough. Today, I want to spend a few minutes talking about why this matters, and more importantly, what to do about it.


From Content to Curriculum

Photo by Nathan Dumlao on Unsplash

Before the Internet, self-taught programmers had to scrape by with very little instructional material. At that time, content was a problem. If you wanted to learn to program, first you had to find a tutorial or instructions to walk you through it. Today, we have the opposite problem: content is actually too abundant. A quick Internet search for “learn to program” will return untold numbers of resources, including:

  • Massive open online courses (MOOCs) on sites like EdX and Coursera;
  • Commercial learning platforms like Udacity;
  • Free books and instructional material such as Free Code Camp, the Learn the Hard Way series, and the Learn Enough series;
  • Code school / bootcamp-sponsored materials offered for free by programs like The Odin Project, App Academy, Upcase, and our own books at Launch School;
  • Low-cost course aggregators like Pluralsight, Frontend Masters, Lynda, and Udemy; and,
  • Thousands upon thousands of blog posts, tutorials, and other material from various programmers.

Taken together, the above resources provide a significant amount of learning content — most of it free or very low-cost. Moreover, some of this content is actually very good. At Launch School, we are extremely proud of our Open Book Shelf, which we think is absolutely top-notch. However, we see this resource as just a single element of a much larger learning strategy. We’re not alone in this view — after all, if content was all that mattered then why would so many code schools offer it for free?

Within a curriculum, content serves as the lubricant that drives learners towards a result.

If your goal is just to learn enough coding to build a personal project, then the kinds of resources described above are probably sufficient. But if your goal is to launch a career in software, then content alone isn’t going to get you there. To be effective, certain content needs to be pursued to mastery while other types of content only require awareness. This type of tradeoff requires that content be structured with some result in mind and learners need to receive feedback along the way. Combining the raw contents this way turns content into a curriculum. A curriculum requires structure, feedback, and a goal.

Content outside of a curriculum is isolated, piecemeal, and doesn’t build towards an end result. Consuming it in isolation, not in any order, and haphazardly results in confusion and frustration and a never-ending “so what do I do next?” feeling. But within a curriculum, content serves as the lubricant that drives learners towards a result.


The Right Advice at the Right Time

Photo by Aaron Burden on Unsplash

Programming students, like students of any complex topic, go through a series of learning stages. When I think of these stages, I picture the learning journey much as I would a physical journey. In the beginning, you’re excited to get started and map out the path ahead. Later, as the journey wears on and you start to experience setbacks, it can at times feel like drudgery — and yet, you persist because you know the end goal is worthwhile. And one day, unexpectedly, you reach your destination and realize that there is a whole new set of places to explore. And so, you start the whole process over again.

To take the analogy a step further, imagine an advisor coaching you through your journey. Wouldn’t you expect their advice and feedback to change as your journey progresses? In the beginning, when you’re still deciding whether to charge ahead, your advisor would do well to encourage you to imagine all the possibilities that reaching your destination will bring. Telling you to take it “slow and steady” at this stage would risk blunting your progress before you really get started. However, as the journey progresses, your advisor will want to give you more direct feedback. Here, you need to focus on incremental progress and you need someone to hold you accountable for the task at hand. At this stage, indulging in fantasies of what lies ahead would be a distraction. A good advisor knows this and will shift their approach over time.

Sequence is not enough on its own — it has to be accompanied by feedback and enforcement of learning goals.

The learning journey is no different — different approaches and types of feedback are needed at different times. In the case of learning to code, it might look something like this:

  1. Explore Phase: The journey is just beginning and you haven’t yet decided if it’s right for you. Your advisor tells you that now is the time to explore and consume whatever educational content you can find. Try out everything, have fun, and let yourself get excited about the possibilities.
  2. Study Phase: You have committed to the journey and now it’s time to focus on incremental progress. To help you succeed, your advisor will put you on a structured program and provide regular, critical feedback. Here, you should be careful not to move ahead until you’re truly ready, which is why your advisor will enforce a standard of mastery at each step.
  3. Professional Phase: After a considerable journey on “the plateau”, where your focus was on mastering core skills, you’re now ready to bridge the gap between fundamentals and job-readiness. Now is the time to start exploring integrated topics like design patterns and best practices. The feedback your advisor gives you is now focused less on critical assessment, and more on mutual discussion.

At each stage of the journey, the advice for learners changes dramatically — shifting from “consume everything” to “go slow, steady, and follow a plan.” Adjusting one’s approach (as a learner or a teacher) is absolutely critical to long-term success; however, this kind of structure is also the missing ingredient for many new programmers. The wealth of online content often gives the illusion of structure because much of it purports to be sequential in nature — but even sequence is not enough on its own — it has to be accompanied by feedback and enforcement of learning goals.


Pedagogy Drives Content

Content is the face of every educational product, whether it be a book, a video series, an in-person lecture, or private tutoring. As you go about the process of learning, the content is what you interact with every day. It is therefore natural to think of content as being paramount. However, this is an inversion of how good educational programs really work. To be effective, an educational program should first develop a pedagogy and then build content around it. In other words, the pedagogy drives the content, not the other way around.

Pedagogy drives the content, not the other way around.

In mastery-based learning (MBL), students undergo rigorous assessments to enforce mastery of any given topic prior to moving on to the next. These assessments takes place during the aforementioned study phase and are absolutely critical to student success. The assessments are so critical, in fact, that everything else is is built up around them, including the content. The assessments define the standards of mastery that are necessary to ensure a solid foundation on which to build new knowledge. Content is merely a support mechanism, designed to help students reach a point where they can pass the assessments. The same is true of other supporting structures, such as quizzes, study groups, practice problems, etc.

Once you have entered the study phase, the benefits of a structure and feedback-based system are much more evident. However, getting to this point is more difficult than it might seem. The reason, as described earlier, is that students who are still in the explore phase aren’t yet primed to appreciate the merits of an incremental approach. Indeed, an MBL-based system is inappropriate for students in the explore stage because their priority is rightly to explore and have fun. It is only later when enforced mastery should come into play. The key then is helping students to understand how their approach must necessarily shift at each stage in the learning journey. That way, when a student is ready to move out of the explore phase, they will know to start looking for a guide who can help them shift their learning approach.


In the beginning, new learning journeys are exciting and full of possibility. That excitement is an important motivator; however, there comes a point when it’s necessary to take a step back and focus on the journey rather than the potential rewards. This can be difficult in field like programming where there is a significant amount of conflicting advice about the “right” way to learn. It is therefore incumbent upon you to ignore any advice that is not properly calibrated to where you are in the learning journey. If you’re still exploring, then do just that — explore and have fun. But once you enter the study phase, it’s important to move beyond content and focus on deconstructing and mastering fundamentals.

Freely accessible educational content is, without question, a wonderful thing. However, content alone is not the answer to most learning challenges. To be effective, content must be built around a system that enforces learning goals and provides feedback to help learners identify gaps in their knowledge. Without this kind of structure, content alone isn’t enough, and the hungry learner will find themselves frustrated and unfulfilled.


Chris Lee is an instructor at Launch School, an online school for software engineers. He has over 16 years of software engineering experience ranging from large enterprise to startups. He enjoys programming, teaching and talking about Mastery Based Learning.