Learn by doing versus learning by instruction: Why learning on the go isn’t always the best strategy

Get your hands dirty…

Learn by doing.

This advice is so common now that it’s virtually synonymous with productivity focused learning, or learning efficiency… but is it really the best way to learn?

Sure, I get the sentimentality.

You’re forced to learn and problem solve on a real world object, in a way that you’re not forced to do when learning by instruction. It’s true that as you encounter problems, and fix them you tend to burn them into your memory, this is a really effective way of remembering, and learning some of the nuances that simply don’t present themselves with simple, pre-defined example sets and rote learning.

But this is not necessarily the most efficient (or enjoyable) way to learn new skills and it’s not really how learn-by-doing is supposed to work.

The paradigm of learn-by-doing is motivated by the idea of progressive education which can be traced back to John Dewey (who looks far too similar to Ralph Fiennes for that to be a coincidence either if you ask me). Dewey pushed for an education system that emphasized a connection to the real world, not just rote learning and theory. However his view motivated the modern public education paradigm, which I don’t think is what most people associate with ‘learn by doing’.

I think a lot of people today when they think of learn-by-doing take a much more literal approach than what Dewey originally meant.

We think that learn-by-doing really means to just jump into some activity head first and figure things out as we go along.

To be sure, I do think that learning on the job, or learning by doing is a very effective way of learning new skills, particularly very niche specific skills. But I’ve also come to realise that learning by instruction has its merits too, and that in some cases, perhaps the very best way is a nice healthy middle ground, much closer to what Dewey originally espoused.

The potential pitfalls of ‘learning on the job’

When I was an honours student, I was basically thrown into the world of statistics, heritability, R programming and working with the command line with virtually no prior experience.

A bit of R here and there for some course assessments, and introductory statistics, but besides that, I was starting from scratch.

Fortunately I had a fantastically patient supervisor.

“Again, GWAS does not estimate heritability”

“SNP heritability is not the same as narrow-sense heritability”

“Don’t worry Geoff, I stopped it before you did any damage to the cluster…”

Can anyone relate?

To be fair, I learned a hell of a lot during my honours year.

But besides being extremely stressful, here are some other reasons why learning by doing is not necessarily the best way to learn.

Fixing problems can take an unnecessarily long time

Learning by doing often means spending exorbitant amounts of time fixing trivial problems that simply wouldn’t happen if you had been taught the basics properly, and with proper guidance.

Instead of having a proper foundation for knowledge, you end up making simple mistakes that can cost precious learning time.

Obviously this is more likely if you’re learning alone and don’t have the luxury of a supervisor like I had. But even so, in an effort to avoid bombarding somebody with questions, literally every 2 minutes, to some extent you have to try to find solutions on your own, which can mean lots of time spent (wasted) googling.

You’re more likely to learn bad habits

Using programming as an example, programming is about more than just learning the language and brute forcing your way through different methods. Programming also has a lot of conventions that you simply can’t teach yourself. Conventions like proper indentation, being consistent, making your code as readable as possible etc.

When you don’t have the guidance of a tutor or seasoned expert, it’s far easier to develop bad habits that you will carry with you for a long time.

You’re more likely to only learn what you need to learn

When learning on your own without an instructor, or following a tutorial, you will develop much more niche skills that will be defined by what it is you’re working on. More importantly, a big learning curve will exist every time you’re introduced to something novel. Without a broad understanding of the basics, you’ll miss a lot of extraneous information that will allow you to quickly adapt your skills to new projects, making you feel like you have to start over every time.

The initial learning curve will be very steep, especially for particularly complex skills

When you first start out doing anything new, if you’re doing it by yourself, without some form of instruction, it will feel like you’re banging your head against the wall. Depending on the complexity of the material it can be a really long time, and lead to a lot of dead ends before your knowledge and understanding really starts to take shape. Proper instruction can all but eliminate this experience and make the introductory stages of learning much more pain free.

You’ll be less likely to challenge yourself

Humans are notoriously self preserving. We make a consistent habit of only doing the minimum necessary to get by.

Unless we make a deliberate, concentrated effort to pursue challenges and adversity, it’s so much more natural for us to take shortcuts wherever we can. Which is why those qualities and accolades are held in such high esteem.

Without someone coaching or mentoring you, or simply having no consistent well defined learning schedule means it will require much more determined effort on your part to identify the key learning challenges and dive into them. You’ll forever be fighting to temptation to just ‘do what needs to be done’ and it becomes far more likely that you will miss the full breadth of understanding required for true mastery.

Or, alternatively, you are forced into a position where you have certain objectives to be completed by a certain time, and there is temptation to cut corners. Instead of learning how to do things properly, we learn to find the ‘easiest’ way to get things done, resulting in a cut and pasted learning pathway, and we’re forced to fill in the holes later, which can sometimes be years later.

Sure some professions, finding the shortcuts and doing this quickly is the goal. But for many creative endeavors, it’s not.

As you can see, depending on your circumstances, ‘learning by doing’ can have some undesirable side effects.

When learning by instruction you tend to get a much more holistic and rigorous foundation for any high level skill. You will be taught things the right way, and you’ll be taught using a solid foundation of the basics that will serve you well no matter which direction you take in the learning process. You’ll understand the fundamentals, you’ll understand terminology better and will have an appropriate context for it.

You learn good habits. Working through a tutorial, or online course, or being taught by an instructor is going to ensure that you’re getting experienced advice that includes conventions which are not made obvious in the absence of proper instruction. Of course there’s the possibility of being taught badly; bad teachers, bad tutors, dodgy tutorial programs etc. do exist. But generally speaking, especially when you seek out professional accredited learning mediums, you will be taught how to do things the right way, using the right conventions, ethical practices, etc.

There are things that a structured learning program will teach you that you just won’t get on your own, or at best are forced to stumble upon them as you go, often thinking to yourself ‘wow if only I’d learned that months/years ago’.

You’re less likely to get stuck on trivial problems. Learning on your own can be a very lonely affair. When you have a structured teaching program, even if it’s a self paced online style learning program, you’ll have been given the proper training to quickly identify the problem and not waste needless hours searching for a solution in obscure forums, or worse, having to figure it out all by yourself. Don’t get me wrong, figuring things out by yourself can be extremely satisfying, but it can often come at the cost of many hours of wasted time.

More importantly, figuring out the problem yourself can often result in much problem solving time being spent ineffectively. By that I mean, you don’t actually spend that much time ‘solving the problem’. Instead you spend countless hours scouring through unhelpful forums, not doing anything that directly contributes to the ‘understanding’ or ‘memorization’ process.

Stretch your creative muscles: Learn to supplement formal training with independent projects

What I’ve come to understand is the most effective way to learn a new skill, is when the process of learning and formal training is supplemented with real practical learning experiences.

Having a structured learning program is really the best way to gain a proper understanding of the basics in just about any creative endeavor. But by far the best way to quickly develop and entrench those skills is to begin putting them to use as soon as possible on something concrete.

If you want to learn how to program, don’t just try to ‘jump in and do what you can’, this will quickly lead to frustration. Be patient, pick a programming language, find a tutorial and start working through it.

The real magic happens when you push yourself to go beyond the examples in the textbook. Right from the very beginning start thinking of what you can do with your new knowledge.

Start writing programs right from the first lesson. This has many benefits

You will encounter simple problems, without getting hopelessly stuck on them

As soon as you move beyond the safety of a tutorial, you will get stuck on things. You’ll forget something, or you’ll get the syntax wrong. This will force you problem solve. This is also a very important part of the memorization process.

But unlike the fire baptism learning method, you’ll have the learning material there to help and consult, so that finding those solutions and seeing where you went wrong will be a lot less painful. Use the examples to check what you may have done wrong. Because you don’t know much yet, there are only limited number of mistakes you can make, so finding them will be very quick.

When you make the simple mistakes, right at the beginning, you fix them right at the beginning, which sets the foundation for solid learning pathways down the track.

The most important advice I can give here is if something doesn’t work, don’t skip it and move on, work through it. Don’t move on until you’ve made it work, or you properly understand it. This will save you time in the future by not having to go back and plug holes in your knowledge.

Contrast this with pure learning by doing, where not only will you be constantly having work around and fill holes in your knowledge, but often you won’t even know what you don’t know.

You will push your creativity within the context of your skill level

One of the hardest parts of learning to program is thinking of programs to write. By being curious and moving beyond the basic learning material, you’ll be pushing yourself to apply the basic skills you’re learning to novel ends, but doing so in ways that are relevant to what you’re learning.

It’s not just that, but you’re forcing yourself to figure out what you can do with only the limited knowledge you have. This helps to put your creativity to its limits and at the same time develop a deeper conceptual understanding of the subject matter. All of this builds experience, knowledge and understanding deep into your skill set early on, laying the groundwork for more.

You will have a vested interest in your learning material

The problem I have with examples a lot of the time is that they usually seem trivial, useless, irrelevant or plain boring. They are an ad-hoc attempt to encourage the learn by doing method, but often in a superfluous way that doesn’t engage the interest of the student.

If you build knowledge by working on something you came up with on your own, you’ll be more emotionally connected to the project, which will help you remember what you’re learning better, and it will help keep you motivated to work through the problems.

It doesn’t have to be deeply emotionally relevant either.

It just has to be your own.

You will systematically build your knowledge meaningfully and incrementally

Working through structured learning material means you will start with the building blocks and progress through the knowledge, increasing complexity and stacking the concepts on top of each other as you go. The things you learn will make more sense as you go, because you better understand there internal machinations.

You will learn patience

This is more of an indirect benefit. But another prevalent mentality in our hyper productive culture is an impatience when it comes to learning new things.

I write longish articles on this blog. Among other things, I do this because I want people who visit my blog to take their time, and read something worth reading, not expecting to just show up and get a quick shot of information and move on.

This is my passive aggressive attempt to rebel against the tide of our increasingly attention-deficit, social media driven culture.

By forcing yourself not just to work through a structured training medium, but to do so methodically, making sure you understand things before you move on, will teach you to be patient and to appreciate the process of learning as an end in itself. Not only that, but learning to build small projects as you go, and finish them, will help reduce the temptation to continue to jump from one fleeting interest to another.

You will be more confident at the end

Possibly the most important benefit of supplementing structured learning with relevant, self directed projects is that you will be more confident in your skills at the end of it all.

If you just rote learn, and do examples, and everything is nice and you don’t encounter any problems, then your ability to retain the basic knowledge will suffer and you’ll be less experienced at troubleshooting and problem solving.

If you forgo the training and just jump straight into a project, you’ll always be second guessing yourself, never sure if something’s going to go wrong. It will take a long time before you can shake the feeling that you’re walking around in the dark, stumbling over everything. You’ll never truly feel like you know ‘everything’ that you need to.

By contrast, when you learn something properly, by working through a tutorial program, or getting formal training and immediately begin applying your knowledge, cementing it in and building on it incrementally with more learning and experience, you’re going to find that you’re more confident when it comes to encountering set-backs, or starting from scratch, or finding alternative ways to do something.

You’re working knowledge will be more second nature, and comprehensive.


A lot of what I’ve said may sound almost obvious, but it’s still so common to hear people say that the best way to learn is just to get in and do it.

Maybe people don’t mean that as literally as it sounds, but I suspect very often they do.

But after years of studying and trying new things, it’s become clear the importance of starting at the beginning, and learning a skill properly, from the ground up by way of instruction, and creative application.

Yes it takes time, but that’s important too. As the world moves more and more to digital integration, patience and true mastery will become increasingly valuable skills.



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s