This site runs best with JavaScript enabled.

Solidifying what you learn

March 05, 2018


Teaching is nature's way of letting you know how sloppy your understanding is.

β€” Ashley Williams on JavaScript Air Episode 001: Learning and Developing JavaScript

This quote by Ashley is one of my favorites, I reference it in my talk "Zero to 60 in Software Development: How to Jumpstart Your Career". I can relate to it because it's been absolutely true in my experience. The best way I've found to solidifying my understanding of what I learn is through teaching it to others.

Many people have asked me about my learning process. That's actually part of why I gave the aforementioned talk. If you haven't already had a chance to watch it, then here's the outline of the learning process:

  1. Consume information to be made aware of what's out there to learn
  2. Build something that you want using the technology you want to learn
  3. Teach what you learned in the process of building

In my talk I give a few stories of my experience over the last almost 4 years of professional software development (I guess it was almost 2 years at the time) including how I got started with egghead.io, some of the apps I built to learn AngularJS and JavaScript, and the funny story of how I got my first full-time job.

Over the last two months or so, I've been revamping my testing workshop. I gave it once before for Frontend Mastersand I'm simplifying the content to make it easier to set up and less distracting to learn from. The content will now be used to give two distinct workshops (both of which I'll be giving for Frontend Masters and Workshop.me):

The process of updating the content for this and splitting one workshop into two has been interesting for me. Being able to iterate and make content better is cool. After you've given the same content over and over, you learn how to deliver it better. For example, I've given my ES6 and Beyond workshop six times now, so I feel pretty great about how to help people understand what I'm trying to communicate and avoid distractions (come to Salt Lake for my next presentation of it!)

An awesome side-effect of this iteration is the impact it has on me and my understanding of the material. I really know how these things work now because I've been asked a bunch of questions about them and had to prepare answers. It's given me an opportunity to find answers to questions that I may never have thought to ask on my own. And the process of creating the material also forces me to see if there are ways to simplify so attendees have a good experience. This has a positive impact on my understanding of the subject matter as well.

A common question I hear from people thinking about getting into teaching is "But, what could I teach? Everyone knows everything I know." or "Everything I know has already been taught a dozen times over." First I want to say that, the moment you learn something new, you know something that you could teach someone else. No matter how experienced or inexperienced you feel, you have something to share with someone. This is an important thing to understand right away.

To address the second question... Have you ever seen a McDonalds next to a Burger King?

McDonalds next to a Burger King

Why do they do that? Don't they realize they're fulfilling the same basic need of burgers to our mouths? πŸ” Of course they do. But they do it because they each have their own unique approach to the process that can reach different people in different ways. The same can be said of teaching. You can reach people (especially if you speak a language other than English!) in a way that others simply can't.

Another thing, have you ever seen two Starbucks in the same town (or even three on the same corner β˜•οΈβ˜•οΈβ˜•οΈ)? It's all about accessibility. You can bring content to people that's more accessible to them. The people who follow you, your friends and co-workers, and the people who go to your local meetups and conferences. You can reach those people better than others can because you're uniquely and accessibly in their reach.

I hope that you take every opportunity to teach that you can. It's seriously the best way to increase the impact of the time you spend sharpening your skills. Good luck!

Things to not miss:

Discuss on Twitter β€’ Edit 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.