The 10-Step Process of Learning How to Learn

James Le
Constraint Drives Creativity
14 min readMay 14, 2019



I recently finished reading John Sonmez’s “Soft Skills — The Software Developer’s Life Manual.” In it, developer and life coach John Sonmez (aka Simple Programmer) addresses a wide range of important “soft” topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint. In this post, I want to share an excerpt from his book in which he shares the 10-step process of learning how to learn, which is crucial for anyone working in a technical career.

The rest of the post is quoted directly from John Sonmez’s book.

The Idea Behind The System

Early in my career, I learned primarily by finding a book on the subject I wanted to learn about and reading through it cover to cover. Only when I had finished reading about the subject would try to actually implement what I learned. Using this process, I found that I was learning, but at a very slow pace, and I’d often have to go back through the book to fill in the gaps I’d invariably have in my knowledge about a subject.

When I had plenty of time and I was learning without a real concrete goal in mind, this approach was fine. I eventually learned what I was trying to learn and it wasn’t difficult to read a book cover to cover — it just took time. But as I started to have more demanding reasons to learn — and to do it quickly — I found the approach I was taking wasn’t going to work. Oftentimes, I didn’t have time to completely read a book, and I found much of the material in a book was better suited for reference, not for actual learning.

Necessity forced me to look for better ways to teach myself what I needed to know in a compressed timeframe. In some cases, I had only a week or less to absorb enough information about a subject to be able to teach it to someone else. I found that the natural thing for me to do in that situation was to clearly define exactly what I needed to learn and to look for the best resources I could find to get exactly the information I needed while ignoring any additional information that wasn’t required to meet my goal.

I discovered that there were three main things I needed to know to be able to learn a technology:

  1. How to get started — What were the basic things I needed to know to get started using whatever I was learning?
  2. The breadth of the subject — How big was the thing I was learning and what could I do with it? I didn’t need to know every detail to start, but if I had a decent overview of what I could do and what was possible, I could always find more details later.
  3. The basics — Beyond just getting started, what were the basic use cases and the most common things I’d need to know to use a particular technology? What was the 20% I could learn that would cover 80% of my daily usage?

The 10-Step System

It turns out that getting those three pieces of knowledge isn’t as easy of a task as it might seem. Learning how to get started with a technology can be a challenge, and it’s often difficult to find out what is the 20% you need to know to be 80% effective with a technology. Plus, I often had a hard time finding a compact description of the breadth of a technology. Often this information was spread throughout an entire book or several different books.

To solve these problems, I needed to do a bit of research ahead of time to make sure I could find the information I needed and organize it in a way that made the most sense for progression.

The basic idea of the 10-step process is to start by getting a basic understanding of what you’re trying to learn — enough to know what you don’t know. Then take that information and use it to define the scope of what you want to learn, along with what success will look like. Armed with that knowledge, you can find resources — and not just books — to help you learn what you want to know. Finally, you can create your own learning plan to chart the course you’re going to take to learn your subject and filter the materials down to just the best ones that will help you achieve your goal.

Step 1 — Get the big picture

Learning is always tricky, because when you first start to learn about something, you don’t know enough about it to really understand what you need to learn. Former U.S. Secretary of Defense Donald Rumsfeld talked about “unknown unknowns,” or basically what you don’t know that you don’t know.

Most developers crack open a book and start reading through it without even knowing what they don’t know. They leave these “unknown unknowns” for later discovery. The problem with this approach is that you’re very likely to learn the wrong thing or get in way over your head. It’s important to at least understand a little bit about a subject before diving into it. Then you can figure out exactly what you need to learn and decide the best way to do it.

What you want to do in this step is to get the big picture of the topic you’re trying to learn about. What is the 50,000-foot view of this topic? Can you learn just enough to understand what you don’t know and how big this thing is?

To complete this step, do some basic research on the topic you want to learn about. You can probably accomplish most of this research using internet searches. If you happen to have a book on the subject, you might read an introductory chapter to skim through the material. Don’t spend too much time on this step, though. Remember, the goal isn’t to actually learn the topic here, but to just get a big picture of what it’s about and how big it is.

Step 2 — Determine scope

Now that you have at least somewhat of an idea of what your topic is and how big it is, it’s time to narrow down your focus to determine what exactly you want to learn. In any project, it’s important to determine the scope of that project so that you know how big it is and can prepare accordingly. Learning is no different.

One common failing point in learning is becoming overwhelmed by trying to tackle something that’s too big. It’s not practical to try to learn “physics.” That topic is far too big and unfocused. You can’t learn everything there is to know about physics in any reasonable amount of time — perhaps not in your whole life. You need to determine the scope of what you do want to learn. You have to take the information you gained in the previous step and use it to narrow your focus to a smaller area — something much more manageable.

For this step, take the information you gathered in the first step and use it to come up with an appropriate scope for what you want to learn about. Use your reason for learning a topic to help you determine what the scope should be.

You might be tempted to make your scope bigger and less focused, because you want to learn about different subtopics in your topic area, but resist the temptation and try to be as focused as possible. You can only learn one thing at a time. You can always come back later and learn about other subtopics that branch off of your original topic, but for now, pick one narrowly focused thing and go with it.

One last note about this step: use your timeframe to help you determine the scope. If you have just one week, you need to be realistic about what you can learn in that timeframe. If you have a couple of months, you might be able to tackle a bigger topic. Scope your topic down to the appropriate size that fits your overall reason for learning and fits into the timeframe that’s available to you.

Step 3 — Define success

Before starting any great endeavor, it’s very important to define success. Without knowing what success looks like, it’s both difficult to aim and to know when you’ve actually hit the target. Before you try to learn anything, you should have a clear picture in your mind of what success will look like. When you know what your target is, you can more easily work backwards from the goal to determine the steps you need to take to get there.

The goal of this step is to come up with a clear and concise statement that will define success for your learning endeavor. Depending on what you’re trying to learn, this statement might look very different, but you want to make sure you have a specific set of success criteria that you can use to adequately assess whether or not you’ve met your learning goal.

Your own success criteria will be determined primarily by what you want to get out of your learning experience. Just make sure it’s something that you can evaluate at the end of this process to be sure you met the objective. Good success criteria will also keep you on track by giving you a target to aim at.

Step 4 — Find resources

Instead of reading a single book on a subject, try to gather many different resources to help you learn. Resources can take many forms besides just books. In fact, today, with the wide availability of the internet and all the different content available on it, you can find many resources for almost any topic you want to learn about.

In this step you want to find as many resources as possible for learning about the topic you’ve selected. Don’t worry about quality at this point. This is similar to a brainstorming step. Later on you’ll filter your resources and select the best ones, but for now you want to get as many different resources as possible.

One of the best ways to do this is to jump on your computer and start searching for your topic. I usually start my searches with Amazon to see how many books I can find and then I’ll search on Google to see if I can find videos, blog articles, podcasts, or other content that would be useful to me. You can even go “old school” and hit the library. The important thing is that you find a variety of different resources. You don’t want to be biased by the viewpoints of a single source and you want to have access to as much information as possible.

Step 5 — Create a learning plan

Ever notice how most books are broken up into chapters and those chapters usually follow a progression through the content? Good technical books lay a foundation of groundwork that’s built upon in each subsequent chapter.

Now that you have some resources, you can use those resources to get an idea of what you should learn and in what order you should learn it. By now you should have a good idea of what subtopics you might want to learn about in regards to digital photography. You need to skim through the material you have on digital photography and find a way to break down the topic into smaller sections.

For most subjects, there’s a natural progression for learning. You start at A, work your way to B, and finally end up at Z. It does you little good to learn random bits and pieces of information. You need to find the correct path that will get you from point A to point Z in the least amount of time, hitting all of the major landmarks along the way.

For this step, you need to create your own learning path. Think of it as an outline for a book you’d write on the subject. In fact, your learning path will probably be very similar to the table of contents of a book when you’re done. You basically want to end up with a series of modules you individually focus on learning until you reach your final goal.

Step 6 — Filter resources

At this point, you probably have plenty of books, blog posts, and other resources for learning about digital photography, but the problem is that you can’t possibly utilize all of them. Much of the data is redundant and not all of it will fit your learning plan.

It’s not practical to try to read 10 books and 50 blog posts on a subject — and even if you did, a large portion of that information would be duplicated. It’s important to narrow down your resources to a smaller list of the best ones to help you achieve your goals.

For this step, go through all the resources you’ve gathered in step 4 and figure out which ones have content that will help you to best cover the content in your learning plan. Also take a look at reviews and try to determine which resources are of the highest quality. I usually will look at the Amazon reviews for the books I’m considering purchasing and narrow it down to the best one or two books that I think will provide me the best bang for my buck.

Step 7 — Learn enough to get started

For this step, the goal is to get just enough information about the topic you’re learning about to be able to get started and to play around in the next step. For technologies like programming languages or frameworks, this step would involve learning how to create a basic “Hello, world!” program or set up your development environment. For something like photography, it might involve learning enough about a module on light to experiment on your own with various light sources and their effects.

The key to this step is to not go too far. It’s easy to get carried away and start consuming all the resources you have on the module you’re trying to learn, but you’ll find the most success if you can avoid that temptation. Instead, focus on learning the minimal amount you’ll need to get started and to be able to experiment on your own in the next step. You may want to skim material or read chapter summaries or introductions to gather enough information to have a basic idea of what you’re doing.

Step 8 — Play around

Your first thought might be that this step doesn’t seem important, but let’s consider the alternative — the way most people learn. Most people will attempt to learn a subject by reading a book or watching a video about that subject. They’ll try to absorb as much information up front and then take action later. The problem with this approach is that when they’re reading about their subject, they have no idea what is important. They’re just following the path someone has laid out for them.

For this step, you want to take what you learned from step 7 and actually get started. Don’t worry about the outcomes. Just explore. If you’re learning a new technology or programming language, you might create a small project during this step and test things out. Write down the questions that you have but don’t have answers for. You’ll have the opportunity to look for the answers to those questions in the next step.

Step 9 — Learn enough to do something useful

Curiosity is a critical component of learning — especially self-learning. When we’re children, we have rapid periods of learning driven mainly by curiosity. We want to know how the world works, so we ask questions and seek out answers to help us understand the world we’re living in. Unfortunately, as we grow up, much of that curiosity tends to disappear as we start to take the world for granted. As a result, our learning slows down and we find education boring instead of fascinating.

The goal of this step is to bring that curiosity-fueled learning back. In step 8, you played around and hopefully came up with some questions that you couldn’t find answers to on your own. Now is the time to answer those questions. For this step, you’ll go through all the resources you gathered and learn about your module in depth.

As you’re reading a text, watching videos, having conversations, or doing whatever else is necessary to consume the resources you’ve chosen, look for the answers to the questions you came up with in the previous step. This is your chance to really dig into the material and learn as much as you can.

Don’t be afraid to go back and play some more as you discover answers to your questions and learn new things about your subject. Take as much time as you need to thoroughly understand your subject matter by reading and experimenting, watching and doing.

Remember, though, you still don’t have to completely consume every single resource you gathered. Only read or watch the parts that are relevant to what you’re trying to learn right now. There are no golden stickers given out for reading a book cover to cover. Use the resources to help you teach yourself, driven primarily by the questions you’ve come up with by playing around.

Finally, don’t forget about the success criteria that you defined in step 3. Try to tie what you’re learning back to your ultimate goal. Each module you master should in some way move your forward toward your final destination.

Step 10 — Teach

For this step, I’m going to ask you to move out of your comfort zone and teach what you’ve learned to someone else. It’s the only way to know for sure that you’ve learned something, and it’s a great way to fill in the gaps in your own learning as you try to explain it to others. It’s a process that will cause you to really dissect and understand the topic you’re learning about in your own mind as you organize the information in a way that will make it understandable to others. I’ve made the greatest leaps in my career and professional development and in my own understanding when I started teaching.

You can teach what you’ve learned in many different ways. You could write a blog post or create a YouTube video. You could even talk to your spouse about what you’ve learned and explain it to them. The important thing is that you actually take some time to take what you’ve learned out of your own mind and organize it in a way that someone else can understand. When you go through this process, you’ll find that there are many things that you thought you understood that you didn’t. You’ll also begin to make connections that you didn’t see before and simplify the information in your head as you try to condense it down and regurgitate it.

It may be tempting, but whatever you do, don’t skip this step. This step is crucial to retaining information and developing more than a surface-level understanding of a subject.


It takes dedication and hard work to learn how to educate yourself, but the rewards you’ll gain over the course of your life by doing so are innumerable. This 10-step process isn’t a magic formula that will make you instantly smarter, but it can help you go through the process of organizing your studies before you jump in and to absorb more of what you learn about by using the natural curiosity mechanism that drives most of us.

If the steps in this process don’t work for you or you feel the formality is unnecessary, by all means, throw them out. The steps themselves aren’t important. It’s the concept behind this learning process that really matters. The important thing is to develop a system that you can use to teach yourself — a system that you can consistently apply to get results.

— —
If you enjoyed this piece, I’d love it if you hit the clap button 👏 so others might stumble upon it. You can find more of my writing at