Which learning styles and platforms work for me?

October 31, 2019

This post is a continuation of How I Learn and the Top-Down Learning Cycle.

After going through a list of things I wanted to learn, we decided that I learn best by learning about a concept in some way and then build a small, stupid app to cover the ideas. We also learned what sorts of concepts I want to learn, with a clear direction about what to learn next from something I'm picking up at work.

We've covered the exposure stage (top-down) and the practice stage (build something stupid). We haven't yet covered how I best learn about a new concept.

Let's start with a list of what definitely does not work:

What Does Not Work

Conference Talks

Whether they're in-person or online, conference talks tend to be way too hand-wavy and skip over the details that I really need in order to feel like I understand what I'm doing.

I need to be taken into the gritty details, just not too far that it starts wavering into theory. I need the how, and a bit of the why.

I like meetups (and I love lightning talks in-person), but conferences must definitely be for meeting folks, not for learning.

YouTube-style exposure

Channels like FunFunFunction feel like they're mixing leisure and learning in a way that I really do not like. It moves too fast to be split-screened with a code example, and doesn't go into enough depth for me to naturally internalize what's being talked about. Straight in one ear and out the other.

I have now unsubscribed from all programming channels on YouTube. I never watch them, anyway. They just sit in my Watch Later and start piling up.

Code-along articles

I skim on computers. I read on my phone. Good articles read like books -- I can load them up on my phone and follow along. Context switching between text and code leads me to a lot of copy-pasting. Line-by-line explanations after the code is already copied over are super hard to follow along with.

Incremental Exercises

I can never stick with this long enough to see the usefulness. I hate isolated examples, in any form. They don't stick in my head. I need small examples, but in real contexts. Not isolated.

Podcasts

Literally the worst way to learn. I hate 99% of all developer podcasts. Stay out of my ears.

What Sometimes Works

Fast-Paced Screencasts

This really depends on the topic. I will often default to Egghead when I want o learn an extremely specific skill. Examples include, "How do I use hooks?" and "How do I use styled-components?" These are like video versions of going through the documentation.

This only works for specific tooling. I would never do this for learning a new language or framework.

Books

Books... Books... Books... I don't have a lot to say here. I'm trying to read a lot more this year. I haven't decided if I like this yet. I enjoyed reading Clean Code though, believe it or not. It's not a great book, but I enjoyed reading it.

Books are extremely good for absorbing software engineering ideas. I haven't tried textbooks for lower-level concepts yet. Books are bad for learning new languages and frameworks. Books are obviously terrible for specific tooling, since that requires up-to-date information.

I only read physical books. Any books that only exist in ebook formats must be worth the effort. The only book I've found that was worth the effort for me was JavaScript Allongé. This is a really strict filter.

College-style Lectures

This is highly dependent on the lecturer and quality. I find that good lecture styles will use lots of examples that are easy to pause and follow along with. I don't watch at a higher speed, it probably takes me 2x as long as the lecture length.

Docs

The ability to learn from docs is almost entirely dependent on the docs themselves. This is good for tooling and frameworks. This is not a good first introduction to a new language or paradigm.

Just Diving In

It works... eventually. I don't prefer it. I like knowing the details of the implementaton. I can't just survive off of syntax.

What Definitely Works

Code-Along Videos

Andrew Mead on Udemy is my favorite teacher in web development and I owe my career to him.

The quality here varies, but tends to live in its best form on Udemy. It's cheap, instructors are incentivized to take things slowly, and it's a low-risk way to get acquainted with a new instructor who you can then trust. I haven't found any instructors off of Udemy that I like more than Mead.

(I have other recommendations in this category if anyone is curious, just ask me.)

Conclusion

Okay, so based on the list above, here's the methods that work for the "type" of learning:

  1. Tooling - Docs & Egghead. Sometimes articles (if no other options exist). This is to keep up with changes or new features in languages and frameworks I'm already fluent in, or to get familiar with libraries on the side.
  2. Languages/Frameworks - Udemy-style screencasts. If that's not an option, books.
  3. Everything else - Books. That's pretty much it. Long-form deep-dive style articles work, too.

...

This post will most definitely be updated as I think about this more. This is mostly just a reminder to myself about what to avoid taking on other learning styles that don't suit my own just because I can or because other people say it works for them.

I learn in my own way, and that's okay.


If you liked this post, get updates about new posts by signing up to my infrequent newsletter.