Programming Your Brain: The Art of Learning in Three Steps

From time to time, I run into people who are interested in breaking into programming. Last night at the company holiday party a guy (we’ll call him Sam) walked up and introduced himself, asking for advice on how to move from his current role over to development. Sam’s attitude impressed me – those with a genuine desire to learn go places quickly. And on many occasions I’ve hired someone very green simply because I could sense a genuine interest in the craft and a hunger for knowledge. I’ll take attitude over aptitude.

Obviously, the road to becoming a better developer begins with learning. Everyone learns differently, but I’ve found no better way to learn than watching over the shoulder of someone else, bending the technology to his or her will. That’s why I was so amped to become a Pluralsight author. I really believe in the format. Yes, tech books are also a great resource for going in depth. I read Pro C# nearly cover to cover, but not everyone would benefit from this approach. Much falls out of your head with that much breadth over such a short period. That said, learning isn’t hard if you follow a recipe. It’s starts simple enough:

  1. Watch someone

Thus, I personally watch videos or read books and blogs. But I’ve learned that step one isn’t enough, so I quickly follow that up with a real world implementation. This second step is key:
Learning Pyramid

Now, be forewarned that according to National Training Laboratories, the percentages on this diagram have no known source behind them, so take my references to the absolute percentages with a grain of salt. That said, the fact remains that we retain very little of what we hear from others compared to other learning approaches. But what if we practice doing what we just learned? Well that get’s us to a seriously juicy 75% retention rate, baby! So go learn a new tech somewhere using the learning format you prefer. Then pick a topic you’re into. Games, cars, sports, doesn’t matter, and write some basic piece of software related to it. That will help stoke your interest and give you something real life to talk about in an interview. So now, we have a simple two step process:

  1. Watch someone
  2. Try it yourself and experiment

But that’s not the end of the road. As the learning pyramid shows, we learn best by teaching others. So ideally, once you learn something new and have practiced enough to not look like a total idiot, schedule a lunch and learn or share it with someone at work. Justifying your logic will both clarify and solidify your knowledge. It will shine a spotlight on the areas you thought you understood and force you to fill in the gaps. And keep in mind that you don’t have to teach someone in person to benefit from this step. Write a blog post, explain it to your cat, or post your new piece of software to GitHub in hopes of receiving feedback. The act of organizing and justifying your thoughts is the important part for increasing both retention and comprehension. This brings us to the magical three step process for becoming an expert at anything:

  1. Watch someone
  2. Try it yourself and experiment
  3. Teach someone else

Presto. Next thing you know, you’re the senior developer telling other people how bad their code is! (Yes, everyone gets their turn). And remember, once you’ve built something, anything, you’re no longer merely “learning development” or wanting to “break into development”. You *are* a developer, so sell it. Don’t wait for someone to come pick you. Pick yourself. They can question your methods and your skill level, but no one can say you’re not a developer once you’ve crafted an application with your own hands. Hint: we’re all learning development together. Never apologize for that.

Does this ring true for you? Join the conversations on Hacker News or Reddit.

26 replies on “Programming Your Brain: The Art of Learning in Three Steps”

  1. It’s common practice in the medical field to hear residents learn by 1) see one, 2) do one, 3) teach one. What you’re saying about action is completely true; whether it’s code or appendicitis , we have to get our hands dirty to make to make stuff stick.

  2. Nice post! Doing and teaching really are key. Two additional points:

    1) When reading a programming book, I think it helps a lot to have the mind-set that you’ll write a review of it afterwards (on Amazon, or elsewhere). It forces you to put it in context, to think about what was good and bad, what you learnt, and what the key take-aways were.

    2) Blogging is very good for clarifying your thinking on a subject. I like this quote by Joan Didion: “I don’t know what I think until I try to write it down”.

  3. So true!
    What I would add, if you cannot arrange a teaching session for any reason, writing a tutorial is an alternative option – not just for programming, but also for grapsing the concepts of a new theory you are engaging in.

  4. Nice article, thanks for some insight in the learning process. In the past year I have really enjoyed teaching others what I know and it’s such a great way to learn new things.

  5. Hello Corey House, nice share here, i really appreciate the time you used in sharing this tips, programming our brain to getting to learn more is hard, but your image said it all.

    Teaching others empower our brain to know and store more.!

  6. At least part of the retention information is from one of the first studies of learning conducted in the 1880’s or 90’s. It actually dealt with repetition and retention. The researcher’s name escapes me now. Obviously, audio visual and video were not part of that study but observing a lecture without any post-lecture thinking doesn’t lend to retention of information. Preparing to teach would obviously give one more internal representations and increase the retention. Or, at least that is how I read the numbers.

  7. Pingback: Hugo Ferreira

Comments are closed.