Learn Through Teaching

The Most Effective Way To Learn

April 22, 2019

This week in my notes, I wrote down "Learn Through Teaching". It was a buzz word that popped up during a podcast I was listening to. The guy who used this phrase is currently working on a documentary about education and has dedicated the past 4-5 years of his life towards trying to document the problems our current education system faces.

It definitely caught my interest and here's why. I hated school and not because my fellow students used to throw basketballs at me for target practice (well I hated it for that reason too), but because it was boring. I didn't feel like I was really learning anything that would apply to my life or my career. 

So after my elementary school years I sought out to start teaching myself the things I wanted to learn, which just happened to be programming. "Learn by doing" became my new motto. I didn't have any teachers or classes I was taking. I had a couple large textbooks with a lot of words, but inside those textbooks were snippets of code that I could write into my software that would turn it into actions. 

I would see that writing this line of code would make my character move 3 pixels to the right so I would then tweak it to see if I can figure it out how to move my character 3 pixels to the left. It became a giant puzzle and it was really fun for me to learn. 

Fast forward about 15 years to the day I taught myself how to code in Unity. This time I had a lot better resources available to me. YouTube videos, websites, and documentation that had a search bar. I was able to learn a lot faster! And when I created my first game, I thought it might be cool to try and make a tutorial video on YouTube. 

You know this story, I knew nothing about YouTube or editing or recording and that single video now has over 40k views and has launched my interest in YouTube. But, what you might not know is that I almost didn't post it. I doubted myself. I was like hey, you've only been programming in Unity for 6 months, what gives you the audacity to think you know what you're talking about. Infact, I even included a disclaimer that says "if there is a better way of doing this, please comment below" and that's because I was worried that I was going to get slammed online by people calling me an idiot.

That never happened by the way. But that sort of fear (despite how silly it was) made me really want to understand what I was talking about before making any future videos. I did that extra level of research on each topic. I've been programming for almost 20 years now and I've never had any traditional education on the topic. For the first 10 of those years I mispronounced the word "array" because I've never heard it spoken out loud before. I've only seen it written on the screen. And that was fine because it was just me.

But now that I was making videos for others to watch, I really didn't want to sound like an idiot. So now, I research the correct term for each of the items that I talk about. I read the documentation to make sure I understand how each function works exactly. I used to just have a general idea of how something works. The best way I can describe it is like this:

Pretend for a second everyday I came home from school, I put a plate on the table and my mom came over and placed a snack on that plate for me to eat.

So then my formula for getting a snack was to put a plate on the table. My formula worked, but I knew nothing about where the snack came from, or why putting a plate on the table was communicating with my mom that I was hungry.

That's sort of how programming was for me for a while. I had memorized the formulas but didn't really understand how they communicated with each other and it wasn't until I needed to explain to someone how something worked that suddenly I realized how little I knew. 

Imagine trying to tell someone you just need to put a plate on a table to have a snack appear. 

But now that I thought about that snack and the process for which it goes through to appear on my plate, now I can understand how the core of that functionality and properly explain it to someone else.

This e-mail feels like a long ramble, but the point I am trying to get through today is that if you want to learn something and I mean truly learn something, put yourself in the position of a teacher of that topic. You'd be amazed by how much better you retain the knowledge.

Teaching people how to make games on YouTube has made me a better programmer and game developer. I have a better understanding of my craft and because of my broader knowledge of the subject, I'm able to broaden by ideas of what I am capable of doing.

(wal•do) — Person
Subscribe For Weekly Updates

Delivered to your inbox every Monday at 2:00pm EST