Mastering Skills: The 1% Formula
Can you actually become the top 1% of programmers from just reading the docs?
That might get you to into the 95% as a programmer due to lower standards these days, but I don’t think that’s enough. Reading and understanding the docs is only part of the picture.
Besides…you know what I want? A formula. One that can be applied to any skill, not only programming.
Does a formula exist?
Dan Luu has talked about expertise before and points out two roadblocks:
One complication is that real life activities tend not to have a single, one-dimensional, objective to optimize for. Another is that what makes someone good at a real life activity tends to be poorly understood (by comparison to games and sports) even in relation to a specific, well defined, goal.
While I don’t disagree, I have something you’ll like. A formula that gets around these roadblocks and can help you reach the top 1% in any domain.
Embracing Universal Truths
Before we start, we need to establish a few truths. This is the foundation. If you don’t agree with these, then stop reading. Because you’ll only find disappointment after trying to apply the formula.
There is no “end”
Unlike a college degree or a video game, there is no “done.” You’ll never reach a level and say, “yup, I’m all done with X”. Most athletes will win championships but they never stop playing the game.
We’re trying to build expertise. That means we’re shooting for “I want to be a world-class piano player” instead of “I want to learn piano”.
The formula isn’t a checkbox. It’s a recipe. One that you can apply over and over again until the end of time.
Time is limited
Most of us have full-time jobs, families, responsibilities, etc. so our time is limited. You don’t have hours and hours each day to build your expertise. That means you have to be very deliberate in the way you spend your time.
This truth must be acknowledged. It forces you to apply relentless focus and remind yourself to work within the time you have.
The formula doesn’t need you to quit your job and lock yourself in a room for 3 months. It can mold itself to fit the shape that fits your life.
I want to pause and share some backstory on my interest in this subject.
Ever since I can remember I’ve been obsessed with learning. In high school, I taught myself how to memorize a shuffled deck of cards using mnemonics and memory palaces. I spent years learning foreign languages like Spanish, Portuguese, Italian and Mandarin. I taught myself how to code.
This obsession has led to me reading a lot about expertise and understanding how we learn. When we get older, we get more ambitious and start to find areas in which we want to become experts.
That has lead me to writing this blog post. Two books have influenced this formula: The Art of Learning and Peak. Thanks to these and years of thinking, I finally have a framework worth sharing with you.
How I’m Applying It
Right now, I have two domains to which I’m applying both of these formulas: programming and Spanish. Both have a mix of intrinsic and extrinsic motivation. I have an internal desire to improve in both each day. The programming because it’s my career and the Spanish because I love it and I’m raising my daughter bilingual.
The 1% Formula has 3 Parts
Now that you have the background, let’s dive into the formula. I’m calling it “The 1% Formula” and there are three parts. I’ll break down the formula piece by piece and include examples for each component.
Build a Skill Tree
The first thing you do is build a skill tree for the domain in which you’re looking to become an expert. For me, I like to break it down into Macros and Micros. Let me give you an example.
Take backend engineering. Say that’s the domain. You might say one of the Macros is databases. Then you slide it smaller into Micros with relational and non-relational databases. You could stop there or break it further into specific databases like PostgreSQL and MongoDB.
Now that you have your skill tree, you can start setting specific goals such as “Be able work with any PostgreSQL database”.
I will say this is the hardest part of the formula. But, it’s 2023! You can use tools like ChatGPT or search for resources in the domain like roadmap.sh in the programming space.
I’d also encourage you to set S.M.A.R.T. goals when you decide on your goals. But with the skill tree, you now have roadmap of components upon which you can improve.
Study the Experts
The next area of the formula is studying the experts. Who are the greats? Who do people talk about? Sticking with our original example of backend engineering, you can do this a couple of ways:
- Find the best backend engineer at your company and ask them how they became great
- Study people on YouTube in specific Micros
- i.e. who is tweeting a lot about PostgreSQL
- Look at Netflix/Uber/Lyft engineering blog for PostgreSQL and see who the authors of the blog posts are and study them
There are many ways you can do this, but your goal is to see who’s considered the top of the domain, find out why they’re considered the top, and then learn from them. Apply their techniques to your own journey
Practice with Feedback
The final section of this formula is called “Practice with Feedback.” I’ve broken it into two sections: practice & feedback.
Practice — Deliberate Practice
The first part of practice is applying deliberate practice. This is where you figure out what specific areas of something you struggle with and focusing on those. For example, if you’re learning a song on the piano. Instead of playing the whole song over and over, pick a section that you’re struggling with. Play that one until you’re happy with it. Then pick a new section and rinse and repeat. You do this until you have the entire song down.
This type of practice will get you to your end goal faster than if you were to practice the whole song over and over again. Use deliberate practice with your goals and exercises and you’ll find success faster.
Practice — Pet Project
This a bonus because it’s not always possible. Find a Pet Project or something real where you can apply and practice your skills. In the programming world, this means applying your skills either on the job or on an app with real users. It will put some pressure on you and feel more real than you practicing on some “hello world” todo app that only your dog can see. If the domain you’re working on is language learning, go out and speak to a native speaker. Sure, it’s convenient to use ChatGPT, but it’s not the same as using your Spanish at the local Mexican restaurant.
Feedback — Develop Competence
When you speak your native language (NL), you don’t need to think about grammar. You navigate your NL through intuition. You can feel what is right and what is wrong. This ability to navigate language intuitively is called “competence”. — Refold
I love this definition from the Refold. Competence is knowing what to do in a situation. It’s like operating on autopilot. We want to develop competence in any domain we’re working to improve because it lets us lean into our habits and not focus on the little things. It’s like how we don’t have to actively think about breathing in everyday life.
Feedback — Learn to Self-Critique
But don’t rely on it. Get comfortable being able to critique yourself. Yes, it’s awkward, but it’s essential.
It’s one thing to go out and play tennis everyday. But it’s another to analyze your game and get feedback on areas of improvement. This accelerates the learning process and is crucial for becoming an expert.
All of the best sports athletes watch film of themselves and learn how to improve their craft. First learn to critique yourself. But then see if you can get feedback from other experts themselves.
Feedback — Assess Your Progress Often
The other thing I want to emphasize is self-assessment. You’re setting your goals, but you also need to assess their success. Are you progressing at the speed you want? Is it working? Think of yourself as a scientist: measure results, learn from previous experiments and change elements as needed.
I would encourage you to experiment! I do this myself with language learning exercises. Some ideas I have are terrible but I don’t realize it until a couple sessions into the experiment. Try things. Always keep a little bit of doubt and remind yourself there may be a better way.
Today, we started out asking ourselves if it was possible to reach the top 1% in a field. We knew there were roadblocks, but we didn’t let that stop us. We now have a formula we can apply to bettering our craft. Remember the 3 parts:
- Build a Skill Tree
- Study the Experts
- Practice with Feedback
And the beauty of this formula is that you can rinse and repeat. Over and over again for the rest of our lives.
I am applying this to both programming and language learning and it’s been a blast. It gives me both energy and motivation so I hope it does the same for you.
If you give this formula a try, let me know! Would love to hear your goals and your results. Feel free to reach out at joe (at) joeprevite dot com. I love talking to people about this.
Big thanks to the following friends for reviewing early drafts and providing feedback: