Hacking The Rate of Self Improvement

What You’ll Learn

  1. Why change is slow
  2. Why planning too much is bad
  3. Using the Pareto principle to grow faster

Rome wasn’t built in a day.

“Where is that saying from?” I thought to myself. After a quick Google search, I found out that the saying originates from a French phrase from 1190, written in the collection Li Proverbe au Vilain. I love this maxim. To me, it represents the slow motion of a stream that erodes the face of a mountain. It represents the slow formation of the Earth at the infantile stage of the Solar System over 4 billion years ago. It represents a patient parent, waiting for the day that their young child’s violin lessons will create the next concerto.

I then took a step back and marveled about how easy it was for me to find that information. In fact, a lot of things are pretty easy in this day and age. I’m rarely ever bored, because I can always distract myself at a moment’s notice with my phone. The irritation from boredom is easily remedied by opening Reddit or Instagram. What does that make me? Impatient.

In some ways, being impatient is a really good thing. Hopefully this will come as a surprise to no one, but death is inevitable. Time is limited for us humans. Time is even more limited in the years where our minds can contribute (assuming the brain fully matures at 25) meaningfully to society. Being impatient keeps us hungry, hungry to solve life’s problems before we buy the farm.

I became interested in the idea of finding a happy medium between the guarantee of change over large periods of time, and being able to experience rapid growth. How do I make measurable changes in myself in a fair amount of time? What if I don’t want to wait a whole generation to become happier? What if I don’t want to spend five years in school pursuing a graduate degree to have a piece of paper tell me I’m an expert?

Planning (in correct doses)

In machine learning, there is a problem set known as overfitting. Overfitting happens when an algorithm that describes and predicts data is much too complex.

As an example, imagine we are trying to decide what to eat for dinner. We had pasta yesterday, so we don’t want pasta. Oh, and my partner just started Keto, so we can’t have pizza. I’m not in the mood for tacos. But General Tso’s has too much salt. Down the rabbit hole we go. We could spend weeks mulling over what to get for dinner out of the near limitless options. And in the process, die of starvation. By trying to acknowledge every potential data point, we end up making a worse decision.

Often, overfitting can be attributed to zealousness. We have data, we see what didn’t work before, and we analyze, analyze, analyze. We all know people who are compulsive overthinkers. People who spend their waking hours trying to predict every single outcome. This type of thinking is necessary to a point. Forging through a forest without a map is a dumb idea. Mapping out every rock is an equally dumb idea.

For myself, I try to not overthink things, but I’ve found a good trick is to set a timer to think and worry. I give myself 20 minutes to think of worst case outcomes, to pick apart data, to dissect any morsel of meaning. After that timer goes off, I step away.

By doing this, I’ve been able to short circuit the urge to overthink things.


I’ve mentioned the Pareto Principle before, but I’d like to take a few sentences to give some real life examples of how you can add the Pareto Principle to your life.

The Three Steps To Effectiveness…ness

First, start with a well defined goal. Your goal doesn’t have to be SMART but it should point you in the correct direction.

Second, choose one thing you can do today that will bring you closest to this goal.

Third, repeat this process and tweak as needed. Iterate on what you did yesterday, try something new, because the same inputs net the same result.


Here’s an example. Say I want to learn how to be an archeologist. That goal is pretty vague, so let’s first define it better.

1) Define the goal

Instead of “I want to be an archeologist.” let’s say, “I want to go on a geological dig with paleontologists.”

2) Find the most effective thing you can do today to achieve this goal.

Day 1-7: Research what archeologists do, what they study in school
8-14: Search for volunteer opportunities on https://www.archaeological.org/fieldwork
15-22: Buy/rent a metal detector on Amazon, and go dig in a public park or forest
23-31: Post your findings on a blog, or YouTube

3) Repeat to taste

Example 2: I want to be able to bench press 1.5x my body weight

1) Define the goal

Goal is well defined already. Awesome!

2) Find the most effective thing you can do today to achieve this goal.

Day 1-7: Research what bodybuilders do, the correct form for bench pressing
8-14: Work on grip strength (apparently this is pretty important for confidence while lifting heavy)
15-22: Find a spotter, work out and eat the right foods
23-31: Get the amount of sleep you need to perform your best in the gym

Our goal will morph over time, which is why it’s important to not have the goal be too rigid. Remember, we aren’t trying to think of everything, just the important things.

How Fast Can I Change?

This really depends on how you define change, how many variables are outside of your control, and how well you are able to stick to a schedule. But I’d argue the going rate is around two months of continuous, well placed work. This conclusion is anecdotal, but is also based off of James Clear’s blog on automatic habits. We don’t need something to become automatic, but the less you need to actively think about the process, the better. This goes for everything from dating to astrophysics to piano to basketball. Work on the effective fundamentals and you’ll notice changes! I promise.

On average, it takes more than 2 months before a new behavior becomes automatic — 66 days to be exact.


The only constant is change.

In conclusion, set a defined goal, work on the most effective thing you can do today, and iterate/restructure your goal weekly. You may not become Donald Glover, but you might like what you find instead. It’s important to find a balance between patience and impatience, to learn when to look and when to leap. Keep in mind change is inevitable. However, we can steer the ship. It’s really great to walk into a room with people you know and have them say to you: “You seem different.”

You can check out my three favorite apps to stay productive here.

Mailing List

Splitting headaches into Solutions



In the face of massive problems like, “I need to pay back $30,000 of this debt” or “I have this massive project above my head at work”, it’s very easy to get overwhelmed. Most of us will do what makes the most sense, nothing at all. And that’s okay! But most of the time, this leaves us feeling depressed and dejected. What can we do to solve these massive problems? This post will discuss using a method used in Computer Science called Divide and Conquer. This helps us get the solutions we want.

The divide and conquer algorithm is pretty straightforward. All we’ll want to do is split our problem into smaller and smaller subproblems until we get to the easiest subproblems possible. Ideally, the smallest subproblems solve themselves. Divide and Conquer is like Thanksgiving dinner. Your plate is overflowing with food, and there’s no way you could eat all of it in one go! But if you take one bite at a time, you can move towards completion. Let’s look at the example above: “$30,000 in debt”. This is a huge problem, and oft times, it’s even scary to think about! Let’s see how we can divide this problem into more manageable chunks.


  • $30,000 in student loan debt
    • Monthly payments: ~$300/month for 10 years
    • Principal: ~$220/month * Interest: ~$80/month
    • 3 different loans with 3 different APR%
    • Find the loan with the highest inetrest rate
      • Loan 1: $10,000 at 8% (This loan is our highest priority)
        •  Put our $300 a month towards this loan
        • Calculate payoff time
          • ($10,000 * 1.08%) / $300 = 36 months to pay off entirely
          • Write down each month on paper with how much you’ll pay
          • Find a pencil and paper
          • $300 / 30 (~days in a month) = ~ $10 / day
        • Build a budget
          • Write down expenses on paper that you know happen each month (like rent and other bills)
          • Take a pencil and write down what you bought today
          • Think about what you can live without tomorrow or find a cheaper alternative
      • Loan 2: $10,000 at 5%
      • Loan 3: $10,000 at 3%

As you can see above, we broke this problem into manageable chunks (the bold ones)! We prioritized our loans into categories, and split our monthly payments into daily payments of $10. This does a few things for us.

  1. The problems now feel achievable – $10 is an amount of money that’s not terrifying to think about
  2. Setting our mindset – We’re now problem solvers, no longer victim to huge problems
  3. Inspires us to do more – we know that $10 a day is what we need, imagine if we could up that to $15 with budgeting! Snowball effect!


This code in JavaScript that symbolizes the divide and conquer theory. Just like above, it basically helps us find manageable ways to solve our problems. You can divide and conquer on paper, but doing it with code is kinda the point of this blog 😉. Also, when written with code, we get to keep old problems around and organize new ones. We also get to mix and match.


The code today is pretty straightforward. We’ll be using the Object Oriented class model. JavaScript doesn’t actually have classes, but in ES6, classes we’re added as a syntax sugar.

Here’s the full example:

This could be extended out a lot, as this is just the basic structure. We could:

  • Make a webpage to visually add and remove problems
  • Return a list of all the unsolved problems we have, sorted by difficulty
  • Add a reward system to our code, giving us positive incentives to complete tasks

I hope this inspired you to go out and look at your problems differently. Take that first step!

Follow for more kewl coding stuff