I recently came across Scott Young’s work on a concept he coins “Ultralearning”. It was so interesting that I picked up his book and read it in a couple days and wanted to share his framework with how you might apply it with regards to learning to program.

Why Ultralearning?

Imagine having the ability to acquire hard skills effectively and efficiently. Now think about how valuable that makes you compared to others.

Ultralearning is a strategy for acquiring skills and knowledge that is both self-directed and intense.

There is a difference between those who have a skill and those without a skill. This is what separates many professionals in the workplace. Generally speaking, the type of people who obtain a skill went through a very rigorous learning process to obtain it. They may have gone to college, worked on tough problems, delivered impressive projects, and much more.

In a day in age where there is a skill gap between low and high skilled work, ultralearning is especially important in the software industry.

You do not need to be a naturally gifted learner to use ultralearning, but you need to have a persistent and deliberate mindset.

Whether you are looking to land a developer job, get a promotion to the next level, or build that app you’ve always dreamed about doing, ultralearning can help.

Ultralearning Roadmap

Metalearning: Draw a map

Before you can start, you need to learn about the subject or skill you want to take head on. Do some diligent research and draw on your past successes to learn new skills.

Focus: Segment Your Time

Divide your time into segments of purely concentrated time to dedicate to learning. No distractions, purely focusing on learning.

Directness: Be Straight-forward

Become hands-on and learn exactly what you want to be good with. Do not settle for less even if it’s more convenient.

Drill: Find Your Weaknesses

Know the areas that you are proficient in, but more importantly, know the areas you are lacking in. Spend majority of your time improving the areas you are lacking in. Break down complex skills into smaller, more manageable ones.

Retrieval: Teach To Learn

The best way to recall information is by teaching it. Whether that is teaching yourself by testing yourself, or by teaching another who may not know about the skill you’re learning.

Feedback: Honest Feedback

People avoid confrontation, and feedback can make you very uncomfortable. Be willing to take feedback (good and bad) to heart and make change. Learn how to extract the signal from the noise to make sure you’re improving in the areas that matter.

Retention: Space Things Out

Don’t pack in everything at once. Pace yourself so you can retain more information. After-all, you want to learn these things forever, not just temporary.

Intuition: Understand How Things Work

Explore with the concepts and skills you’re learning. The goal is to deeply understand what you’re learning. Don’t settle for memorization.

Experimentation: Get Comfortable With Being Uncomfortable

Although you can follow the beaten path, you should make your own path. Be creative and experiment with new ways to learn, apply, and master what you’re learning.


Ultralearning gives you insight as to the many steps it takes to master learning any skill. Each of these areas have room to be creative in, and it’s up to you to create your ultimate Ultralearning system. If you’re interested in learning more about Ultralearning, check out Scott Young’s latest book “Ultralearning”.