This site runs best with JavaScript enabled.

How I Teach

Software Engineer, React Training, Testing JavaScript Training

How I apply the science of learning to help students retain what I teach them, and how I learn.

I've been teaching programming for a long time. From the very beginning actually. I signed up to be a tutor in my first programming class. I did it out of an effort to solidify what I was learning. Through the years, I've changed the way that I teach programming concepts to people.

In the last few years, I read a book that totally changed the way I think about learning and teaching. When I was in school, I found myself constantly "cramming" for tests. Spending hours before the test just re-reading the text over and over again hoping it would stick. I couldn't tell you anything about the stuff I crammed, because I can't remember it at all. I didn't retain that information.

In my teaching, I'm not interested in hooking people up to a firehose of information and turning on the water. That's easy. We all have tons of information in our individual brains that we could just talk about for hours. Doing that doesn't do anyone any good. I'm more interested in ensuring that the things I teach find a place in the students' brains and stay locked in forever. So I've studied and experimented and one method has been the most effective for me for the last few years and I want to share the concept with you now.

I read a book a few years ago about this. It's called Make It Stick: The Science of Successful Learning and it was a game changer for me. I recommend you pick it up and give it a read/listen, but here's a great summary video about it:

In that book, I learned that everything I knew about studying and learning was totally wrong. And because of this I couldn't teach as effectively. Learning how people learn and master material made a big impact on the way that I approach teaching it.

Here are a few of the things that I started doing after reading this book:

Generation - Desirable Difficulties

Make and challenge assumptions about brand new concepts

I have people do the exercises before I teach the concepts they'll be learning. I use "emoji guides" (like this) so they can actually get something accomplished during the exercise. Sometimes the emoji guides do a ton of hand holding. But making attendees go through the exercise first opens their brain to prepare it for learning.

This is often pretty uncomfortable for people. Especially for traditional learners, we're used to attending a lecture, listening to someone talk for an hour, and writing down everything they're saying. That may help you become good at transcribing what someone's saying very quickly, but it's not going to help you learn the material.

By struggling and facing challenges first, your brain has to work and you have to make and challenge assumptions that you have about what it is you're learning. The beautiful thing about this is that once you've made a decision based on your assumption you're either correct or you're not.

If your assumption was correct, then you get a shot of dopamine which will lodge the knowledge into your brain better. You're not going to get that same shot of dopamine if someone just tells you the answer without you struggling to get there.

If your assumption was incorrect, then you remember it even better because there's a bit of a disappointed feeling associated with getting it wrong and that strong emotion will solidify that experience into your memory. (I should note that this is generally an internal dialog/experience that is personal for each learner and their misconceptions are only made known to other learners if they choose to share them during the instruction).

Having to struggle through the new concepts before being taught that material is one of the ways I teach people and help them retain what they're learning.

Interleave Practice

Mix up what you're learning/practicing as you're learning new things

In the book (and as described in the summary video), they reference a study where baseball players practiced using different approaches. One group practiced hitting the same pitch over and over again, then moved on to a different pitch and practiced that over and over again. The other group had the pitches mixed up. The one which mixed up the kinds of pitches they received performed better. We can do that in the things that we're learning and the way we teach as well.

This one is a bit harder to do in a single day workshop with specific things that we want to learn, but in my material I try to get this by having the exercises build upon one another so people see the new things they've been learning on as they work on learning something new.

Elaboration

Describe what you learned in your own words.

At the end of every exercise, I have a link to an "Elaboration and Feedback" form specific to the exercise. This is where I invite people to write down a few of the things that they learned (in their own words). Doing this helps them to connect what they've learned to things they already know which is another important element for retention.

This one also benefits me because it's an opportunity for me to receive some quick feedback on the material so I can find places to improve things. I've been doing this in my workshops since the beginning of 2017, and now over a year and a half later I have 3.6k responses to this form. Not everyone fills out the feedback and elaboration form, but I have been able to see which exercises are working and which aren't based on the responses I get here.

Active Retrieval

Intentionally go back and make your brain try to remember what it's naturally forgetting.

All of my workshop material is available as an open source project on GitHub ("available for private, non-commercial use under the GPL version 3"). I encourage everyone who takes the workshop material to go through it all again a week later to interrupt the natural forgetting process that our brains do automatically (think of it as natural garbage collection).

What's best is if the workshop attendee can put what they've learned into practice. However, because I can't do much about deciding what they work on in their day job, the next best thing I can do is make the material available for them to go through again and encourage them to do so.

By practicing it again and actively retrieving the things your brain is in the process of forgetting, you tell your brain "nope, this is important, keep it around please." The more you do that, the better you'll remember it, which is one reason why I make the material freely available and encourage people to go through it again a week after the workshop. (This is actually specific advice that I received from one of the authors of "Make It Stick" when I reached out to them via email).

Conclusion

Teaching and learning are not easy. It takes a lot of work. But if you take some time to learn how to learn, it might just make you a more effective learner and teacher. Unfortunately, due to the limited time that I have when I'm teaching (normally only a day or two), some of the principles can't be applied as well as others, but adapting and applying the principles I learned from Make It Stick has been the most effective way to teach and ensure the retention of what I teach. I hope this was helpful to you. Good luck!

Discuss on TwitterEdit post on GitHub

Share article
loading relevant upcoming workshops...
Kent C. Dodds

Kent C. Dodds is a JavaScript software engineer and teacher. He's taught hundreds of thousands of people how to make the world a better place with quality software development tools and practices. He lives with his wife and four kids in Utah.