Someone asked recently what my learning strategy was… how do I learn new things?
I had to think about it for a bit. I think it varies depending on what I’m learning. This being a tech blog, and me writing mostly about tech stuff, I could just talk about how I learn “tech” things like languages and frameworks and software tools. But I don’t only do “tech” things, so I’ll talk about a few different angles here.
In general I’d call my learning style “hands on”. Most of the time, anyway… and definitely for tech things.
For a new framework or tool, I’ll try to read the docs or follow a tutorial until I think I have enough knowledge to build something on my own, and then I’ll go try to build a very small thing to test that knowledge. That’s been my process for things like React and Svelte and Suspense.
I tend to gravitate toward reading text (blogs, docs, written tutorials) over videos for learning programming-related stuff, because usually text is faster for me to get through and I can go at my own pace.
The video vs. text decision is all about the context, I think. For some things, the unspoken context that you get from video is extremely helpful, especially if I don’t already understand those parts. For someone new to development, it could be helpful to see a person open a terminal and type npm install whatever
. For someone who knows their way around a terminal, though, you don’t need that level of detail – it’s probably sufficient to read “Install the whatever
package”.
I do really enjoy egghead videos though, because they’re quick and to the point. If I’m creating my own videos then that’s the style I tend to create.
While I’m going through a tutorial, I like to pause and reflect and try things, and I also like to be able to skim forward when a guide is covering stuff I already know. Learn a bit, build something tiny, learn a little more, build a couple more experiments, and so on.
Eventually I feel like “I’ve got this!” and I’ll launch into building a bigger thing. Sometimes I make that jump too soon, and get in over my head. If I realize that I’m completely lost and feel like I’m lacking some fundamental concepts, I might jump back to a tutorial again. Or I’ll look up tutorials to solve specific problems as they come up (“how to do authentication in Phoenix”).
For some things I’ve used books, like Programming Phoenix for Elixir & Phoenix, or one of the Big Nerd Ranch books for iOS (I never got very far with iOS though). For books or courses I’ll try to write code and follow along with each step, but still taking time to test different ideas - jumping ahead a little, to see if something works the way I think it does, or tweaking some syntax to see if it breaks the way I think it will.
For some other subjects I’m less keen on experimenting and I’d rather follow the advice as closely as possible before I try my own ideas. Cooking new recipes is like that for me. Making bread and pizza dough are still like that, even though I’ve made both a bunch of times. Lately I’ve been working through a couple woodworking courses (Steve Ramsey’s Weekend Woodworker and Weekend Workshop) where I’m building projects according to the given plans, and if I do change anything, I try to be very careful about double and triple checking it with the plans, even sometimes mocking things up in SketchUp before I commit to cutting anything.
In some cases I spend a ton of time reading and researching and planning before I do anything. We installed tile on our kitchen floor a couple years ago and I spent months reading forum posts and guides and stuff, trying to plan everything out so I wouldn’t run into any roadblocks. I’m thinking about building a guitar and it’s the same thing - reading a bunch of posts, trying to map out all the steps in my head, so I (hopefully) avoid making mistakes by doing stuff in the right order.
I think the reading/researching/planning can go too far, though. Starting a business was like that for me. I read tons of books, took a few courses, and joined a community or two before I actually did anything. It went on for multiple years. I think that was a mistake. Certainly not all of that research was a waste, but I should’ve started sooner. (30x500 was the business course that finally got me going)
When the thing I’m doing has a clear set of steps – especially when certain steps depend on other ones – I like to have them mapped out in my head, organized as linearly as possible. I try to break it down and create a backwards plan, sometimes written out, sometimes just in my head. At any given moment I want to be able to know: what can I do NOW, and what is blocked by other dependencies?
So that’s it. A rambling stream-of-consciousness about how I approach learning new things. How do YOU learn new things? It’s always interesting to hear how other people approach things. Leave a comment!