Post

6 Strategies to Learn Better and Faster as a Software Engineer

Stop wasting time on tutorials you'll forget. These six strategies will help you learn new technologies faster and actually retain what you learn.

6 Strategies to Learn Better and Faster as a Software Engineer

I spent three months “learning” Kubernetes. I watched tutorials, read articles, bookmarked dozens of resources. When it came time to actually deploy an application at work? I had to start from scratch.

Sound familiar?

The problem isn’t that we don’t learn—it’s that we learn inefficiently. In software engineering, where frameworks rise and fall faster than crypto prices, learning how to learn is your most valuable skill.

Here are six strategies I’ve refined over the years that transformed me from a tutorial junkie to someone who actually retains and applies new knowledge.

TL;DR

  1. Capture curiosity - Note down what intrigues you immediately
  2. Start imperfectly - Don’t wait for the “perfect” resource or time
  3. Build while learning - Test concepts immediately, don’t just consume
  4. Master basics first - Spend 70% of time on fundamentals
  5. Learn 2-3 things in parallel - Switch when bored, timebox everything
  6. Teach what you learn - Write, mentor, or answer questions publicly

Now let’s dive deeper into each…

1. Capture Curiosity

Humans are curious by nature. Whenever we see something fascinating, we think, “How does this work?” So, let’s say you started working with Redis and you see it supports so many amazing data structures. “How is it doing that?” You are so curious about it; it has spiked your interest. Now we typically start pondering on how that happens, but then some other distraction comes and we just let it go. This is where what I typically do is whenever something has spiked my interest, I immediately open my note-taking app and make an entry of it. That’s it, just one brief entry of something that has spiked the interest and why I want to read about it. How this helps is because it has naturally intrigued me, I do not want or won’t need external motivation to go and read about it.

Whenever I would revisit that thing, I was naturally inclined to automatically go and read about it. But it’s important that whenever something has spiked your interest, you don’t just let it go. Instead, pick your favorite note-taking app and just make an entry about it.

2. Start Messy, Start Now

Humans are naturally lazy. We like to defer things. We like to procrastinate and that’s very natural. So, when you would want to learn something, you have to get rid of your laziness. So instead of waiting for that correct time, just start right now. Instead of waiting for the best resource to learn something, start right now and specially when you are going on that 0 to 1 journey where you don’t know anything about a specific topic but now you want to dive deep into it.

It would be very natural for you to filter out and say, this does not seem deep enough. Let me find some another resource. But when you are at absolute zero, it really does not matter. Just start with anything and everything that you have.

Jump starting is really important. I have that list maintained. Whenever I find time, I literally jump into it instead of finding the best resource out there to learn something or finding the best time to do it where no one would disturb me. It’s not possible in today’s day and age. So whenever you find that slice of time, go for it.

3. Build While You Learn (Not After)

Let’s say I got an idea that I would dive deep into Redis internals. I can just keep thinking, “If I know Redis internals, I would optimize this particular flow, I would redesign my entire system using this.” You go through tutorial after tutorial without implementing it. This is one of the biggest mistakes we make in learning. That’s where the problem is because we as engineers, unless and until we implement, everything is just in our head. You would not be sure how those things work or what the practical limitations are and what the practical problems are with the things that you would want to learn.

Software engineers talk about agile development all day long. Everything is a two-week sprint. In fact, in today’s AI companies, everything is a single-day sprint. So, why not apply the same concept to learning? Build a different loop:

1
2
3
4
5
                ┌──────┐      ┌──────┐      ┌──────┐      ┌──────┐
                │ Learn│ ───> │ Test │ ───> │ Learn│ ───> │ Test │ 
                └──────┘      └──────┘      └──────┘      └──────┘
                    ↑                                         │
                    └─────────────────repeat──────────────────┘

So, pick a concept, learn it, and then test it. Then pick another concept. It could be anything—just get your hands dirty and focus on implementation.

4. Master Fundamentals First (Even When They’re Boring)

Whenever I want to learn something new, I’m usually fascinated by an advanced concept first. I’ll give an example.

Let’s say I am intrigued by Kubernetes. How is service mesh implemented in k8s? Now that’s an advanced part. When you jump into that, you will stumble upon so many new terms which you are unaware of and you typically leave it there. That’s wrong. What you should do in such a situation is always start from absolute zero and spend more time on basics, then gradually lower it down. Spend more time preparing the basics and the foundations — that would make it easier for you to grasp the advanced stuff.

For example, ChatGPT and LLMs. If I just directly start, “I want to know how LLMs work,” I’ll open a few video tutorials, some random things would be there, and as soon as the math part comes in, I’ll be discouraged because I don’t know the basics of neural networks or the basics of calculus. How would I be able to comprehend how LLMs work? Therefore, it’s always better to understand that you need to spend decent enough time focusing on the fundamentals before jumping into the advanced stuff, although the advanced stuff actually intrigued you more.

5. Learn Multiple Things in Parallel

We underestimate how much we can do in parallel. We typically think, “Let me pick up this one thing.” But now what happens is you get bored of it. Why did you get bored? Either it becomes really difficult that you are not able to understand, or it just is boring.

In today’s day and age, it’s very easy to be distracted by something fancier. For example, I started going through Redis bloom filters, but then suddenly I stumbled upon an article that talks about the Linux kernel. I would be very intrigued by it. I would leave this Redis bloom filter aside and I would jump into that other topic. And then while I’m doing that, I would find something else. I would jump onto something else. Eventually, I’m not able to accomplish anything. So instead, what you should do is pick not just one thing, but pick at least two things that you would want to learn in parallel. If you get bored by one, switch to the other. If you get bored by the second one, switch to the first one. This way, you would be able to make significant progress on both of them, and you would do justice to your learning goals.

Now, but how long?

Let’s say you picked up something and you realize that this is really boring and you cannot do that. For example, with LLMs, you saw the hype, jumped on that ship and said, “I’ll study this.” But after some days you realize math is not your cup of tea. You cannot just leave that. You might think, “I’ve already spent one month on this. If I quit now, that time would be wasted.”

But it’s okay. What I do instead is timebox everything from the start. For example, if let’s say I want to learn Golang, I would timebox it and give myself three months to study Golang. But within that, I would evaluate in one month if this is good enough for me to extend that. So for one month I’m just timeboxing it, so that I won’t spend more time than that, and it would be my decision-making call: “Do I want to dive deeper or not?” But give yourself enough time.

So learning multiple things at once has ensured that I don’t get bored of stuff because if I get bored of one, I can go to another. But always remember, it’s okay to get bored. It’s okay to drop something that you started. You should acknowledge that it’s not your cup of tea.

6. Teach to Truly Understand

People often hold flawed or inaccurate ideas about how learning works. Perhaps you have come across the idea that we remember 5% of what we read, 20% of what we hear.. etc. You can see a version of it here:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌───────────────────────────────┐
│           Reading             │
│        5% Retention           │
└───────────────────────────────┘
               ↓
┌───────────────────────────────┐
│         Audio/Visual          │
│        20% Retention          │
└───────────────────────────────┘
               ↓
┌───────────────────────────────┐
│      Practice by Doing        │
│        75% Retention          │
└───────────────────────────────┘
               ↓
┌───────────────────────────────┐
│       Teaching Others         │
│        90% Retention          │
└───────────────────────────────┘

The famous ‘Learning Pyramid’ percentages are debated, but the principle is rock-solid: teaching forces you to truly understand.

So how can you actually teach? Here are some practical ways:

  • Write blog posts explaining concepts you’ve learned (like I’m doing right now!)
  • Create tutorial videos or screencasts walking through implementations
  • Mentor junior developers or colleagues at work
  • Answer questions on StackOverflow, Reddit, or Github communities
  • Give tech talks at meetups or internal team meetings
  • Contribute to documentation for open-source projects

Nothing exposes gaps in your knowledge faster than trying to explain something to someone else. So if you want to learn better and faster, start teaching. Worst case? You’ll realize what you don’t know. Best case? You’ll actually understand what you’re talking about. Either way, you’re learning!

Your Turn

Here’s the truth: reading this post changes nothing. Only implementation does.

So right now, not tomorrow, not next week — pick ONE strategy from this list.

My recommendation? Start with #1 (Capture Curiosity). Open your notes app and write down one thing that’s intrigued you this week. Takes 30 seconds.

Then come back and tell me what you picked in the comments below.

HAPPY LEARNING 🚀


Subscribe to Level Up

This post is licensed under CC BY 4.0 by the author.