Sam Wagner

April 21, 2026

Learn How to Learn

Everyone wants to get better at stuff. But, from my experience, not many people actually have a concrete way of doing it. I’m not going to give you a one-size-fits-all solution here, but I hope you’ll at least learn how to attack learning something in a somewhat structured way.

Why?

If you’re not interested in some backstory, feel free to jump to the next section.

Just as a bit of background before we start, so you know where I’m coming from: I’ve been living in the world of AI at a software company for years at this point. The key thing I’ve learned that differentiates someone who’s doing well in this crazy world from someone who’s drowning in the AI sauce is quite simple.

The ones who are doing great are the ones focusing on themselves. The people who realised that the best way to get “good with AI” or “become AI native” is really just to learn stuff and get better are the ones doing well. The ones who are falling behind are the ones who are using AI in place of their brains. They’re using AI to do their job while focusing very little on making themselves better at doing said job.

That’s some backstory as to why I think this is an important article for me to write.

Principles

Before you do anything, it’s always good to make sure you’re understanding the “why” of doing it. So, let me explain some of the key things that we’re trying to optimise for in this learning framework.

Spiky Learning

When you’re learning something, you don’t want to follow a “flat” path. For example, if you’re trying to learn how a web server works, you could just watch a long-form video from start to finish. But, when you’re doing this, you’re just getting a single, uninterrupted stream of knowledge, which ends up feeling like a continual flow. Now, this feels nice when you’re doing it, but it’s actually not great for your ability to recall what you’ve just learned.

What you’re looking for is texture. For example, when you’re watching that video, if someone interrupted you and asked you, “What do they mean by HTTP?” and you had to give them an answer on the spot, you’re going to have to engage with that concept in a totally new way. It’ll feel uncomfortable, but in your head you’ll end up creating more neural pathways. This is the key thing to understand when learning. The spikier the better!

Be Used to Being Uncomfortable

Learning isn’t easy. At least, it’s not when you first really sit down and try. You’ll feel lost, you’ll feel like you’re going down endless rabbit holes, going nowhere, getting more and more lost, etc. It’s hard and mentally taxing. But, that’s actually a symptom that you’re ingesting things. If it was really easy and came “naturally”, you’d likely just forget whatever it was you were learning in a few days and end up re-learning the same thing over and over. If you’re feeling lost, realise you’re probably on the right track! Keep going and don’t feel disheartened!

Broad Goals Suck

This is a tricky one, because there are a lot of caveats. But, I’ll be brief and let your mind wander wherever it wants. When you’re learning something, try to keep yourself on as narrow a path as possible. If you’re the kind of person who says things like “I’d love to learn React” or “I want to learn web development”, then this is specifically for you.

Setting big, broad goals like that is a recipe for failure. “Learning React” isn’t a goal, it’s a treadmill. Once you’re on it, you realise that you can’t win or make progress because the goal is fundamentally impossible to achieve. Even if you think it’s possible, it’s still likely impossible when you put your level of commitment into it. Learning React is a lifelong goal. Building a todo app with React is something you might actually be able to get done.

Where to Start

So, you’ve decided that it’s time to do some learning. The first thing you need to do is define a scope. You want it to be something that you could achieve in a reasonable period of time. For me, the way I decide this is to give myself a period of time that I feel like working on it, then build my goal around achieving it in that time.

For example, if I wanted to get better with something like CSS, then I might say something like, “I have a lunch break which is going to be about 30 minutes. I’ll try to work out how CSS hierarchy works, and build a little working index.html file.” That sounds like something I could spend half an hour on, and I’ve now narrowed down the areas of concern to only be things that are related to CSS hierarchy.

This is super helpful as it means that I can achieve something, so I feel good, but it also means that I’ve now got some clear guardrails which keep me from going down rabbit holes. For example, if you started getting a little interested in making the test page you’re looking at use a certain set of colours, you’ll stop yourself from wasting time on Coolors, because it’s really not helping you understand CSS hierarchy.

This still takes discipline and practice in its own right. But, when you get decent at catching yourself wandering off on tangents, you’ll start noticing that you’re getting better, faster, and feel a lot more accomplished.

Spikes, Spikes Baby

So, now you start googling some stuff, building out your index.html file, reading some blogs, watching some videos, etc. The question you have to keep repeatedly asking yourself is:

Could I explain this to my grandma?

If you hit a piece of information where you can’t do that, you need to stop immediately and fix it. Now, adhere to the above point and only do this if it’s relevant to your goal. But if it is, don’t step over it, don’t keep going, stop there and do not pick up your $200.

Grandma’s wondering what you’re doing and you’ve gotta explain it to her. This is the framework I would recommend starting with to build up your understanding of any given bit of information. The goal here is to make this all human-focused. You’re not going to be searching for answers, you’re going to be formulating opinions and then having them challenged.

What

You need to answer the question: “What is xyz?” Open a notebook, open Apple Notes, open your favourite text editor, it doesn’t matter. (It technically does, but I’ll forgive you for enjoying using a text editor over pen and paper.) Now, type out the phrase, “I think that xyz is…” and answer it with absolutely no help. Do not look it up, don’t search for an answer. Have a real try at formulating an answer. What you’re doing is trying to build up a strong image in your mind of how something works, or what it is at a core level.

Now, you’ve written down what you think it is. You now need to take what you’ve written and fact-check it. You can do this in many, many ways. But, the quickest and best way to do it right now is with an LLM. Take what you’ve written and throw it into your clanker of choice and see if you were right! This is going to give you either affirmation that you’re understanding what you’re learning, or offer you a concrete challenge to your worldview. Both are great outcomes!

The goal here is to create as many neural pathways as possible. Again, feeling uncomfortable here is a good thing. If you didn’t feel that way, you would’ve been able to explain this to your grandma and you wouldn’t be here.

Why

This is the same as the above. Take what you now understand to be the written version of what the thing is. Now, you need to find a reason. Ask yourself, “Why is it like this?” or “Why is this useful?” or “Why was it made this way?” Again, have a crack! You’re trying to think deeply here, come up with something that makes sense to you. Now, fire up your little robot and get it to check for you.

You’ll be surprised how far off you are. This is the point. Even if you’ve just spent a few minutes building out what you believe to be the written truth of a matter, it doesn’t mean you understand it. Going deeper into it with a simple “why” question is forcing you to contend with your understanding.

Now, you’ve just learned what the thing is, and you’ve had your ability to understand that thing challenged. Now, probably most importantly, you need to associate what you’ve just learned with something else in your life. This is likely to be the hardest part of this whole escapade, especially if you’re in a totally new world. But, what we’re trying to do here is to not only build out an area of your brain with some new knowledge, but also place that little blob of understanding inside a larger structure. This way, when you’re trying to recall this information, you’re more likely to hit a connecting “node” in your mind.

Think of it like this. If I were to ask you for a random word, it’d be pretty hard unless you use it all the time. If I were to ask you for the name of a character in a book, that’d be much easier, because that name has so much context around it. You just need to remember the book, then the name is very likely to pop into your mind. It’s this context and these connections that we’re trying to build.

Let’s Try It with a Simple Example

Let’s say you’re trying to learn how to write your first bash script. You want to write a simple script that could tell you how much memory you’ve got available. But, you start reading a guide on how to make bash scripts and you see this weird $(some command) notation. You’re not sure what it means, and the guide might even explain it in a second. But, you decide to follow the advice so you go and try to answer the “What” question.

“I think that the $(some command) syntax is going to execute that command and then give me back the returned value as an input to whatever command is already there.”

You pass that to your LLM friend and it says:

“You are mostly right, but replace ‘returned value’ with ‘text written to standard output’ and you’ll be on solid ground.”

So, in this case you’ve got a slight correction, but mostly you’re on the right track. Great!

Now, ask the question of “Why”:

“I think the reason I’d use this is inside of other commands that I’m running, I might want to pass those in and use the output as input. This is useful because it means I don’t have to always make scripts with variables. I can just do it straight from the CLI, and substitute the values in inline.”

The clanker has affirmed me again and said:

A better version is:

“I use $(...) when I want the output of one command to be inserted directly into another command or assignment, inline, without first storing it in a separate variable.”

So, I’ve now again had this confirmed. Nice!

Finally, the linking part. (I’ll be a little silly with my “guess”.)

“I think that this is similar to functions in JavaScript. I can make a function and then re-use it all over the place.”

The clanker would respond with something like:

A clean version of your thought:

“I think Bash command substitution is a bit like calling a JavaScript function inside an expression. It runs something and substitutes the resulting value inline, except Bash is substituting command output text rather than a normal JavaScript return value.”

That is solid.

In this case it’s obviously a little silly, but this is actually the more common outcome. You try to take a guess, are way off, and the correction helps you down the right path. Sometimes it’ll even force you to rethink the other two questions. But, I don’t tend to have that happen too often.

Get Learnin’

Now you’ve got a simple framework for learning that you can pretty globally apply and use. You’ll likely find things you like and dislike about it. But, the key takeaway here is to commit to making sure that you’re the most important part of anything you’re doing. Don’t rely on AI for your job, don’t farm out your thought to a clanker. Learn, grow, get better. Many small bricks make a house!