A Greedy Algorithm for Personal Growth

Jay Parthasarthy
6 min readFeb 15, 2020

An algorithm is greedy if at each step of the process, it makes the locally optimal choice at every decision point. If I were to give you my algorithm for personal development, it would be a simple rule:

Whenever you have to make a choice about what to do, maximize short-term growth.*

* Notice that I haven’t defined growth here. That’s because what growth is changes based on context. If you want to be a software engineer, producing higher quality software could be growth. But it probably wouldn’t be considered growth if you wanted to be a Olympic sprinter- it’d be a distraction.

When writing this post, I realized that this rule often simplifies down to this related heuristic:

When considering two opportunities, pursue the more difficult one.

This blog post explores both these rules with respect to personal growth.

Let’s look at a concrete example of this rule being applied. In high school, I wanted to learn to code. I remember having to make a choice about how to learn:

  1. I could learn the basics by taking a class or self-teaching.
  2. Recently I had randomly met a start-up in my city. I could work for them and figure out how to code on the job (doing web development.)

I figured that even though it would be hard to learn the operational principles of programming while trying to add value to a startup, I would probably learn way more working at the startup. My hunch was right- I became someone who could contribute to a codebase in the span of just a couple of months.

This algorithm doesn’t sound like it should work. Like all greedy algorithms, it lacks long-term intelligence and is prone to local maximums. Presumably, if you’re always playing short-term games, you’re ignoring fundamentals and things that will set you up for the future. Won’t you hit a ceiling eventually?

Possibly. I haven’t observed a long enough time-frame to tell. However, in my experience at TKS (I participated, then I was staff for a year), I had the experience of seeing hundreds of young people go through exceptional growth.

While the program itself doesn’t subscribe to this algorithm, I’ve noticed young people make long-term and short-term decisions in the name of personal growth. And I’ve noticed strong effects that correlate with optimizing for the short-term:

1. Results and growth compound.

It’s well known in the sports community that having a birthday earlier in the year correlates with success in high-level sport. A study of AFL players found that there were 33% more players born in January than there would be if birth month was distributed uniformly. Why?

Here’s an explanation: when compared to other children in the same grade (most commonly separated by birth year), children with early birth months are slightly older, so perform better compared to their peers.

This turns out to be extremely important. Children who perform well relative to their peers are given more opportunities: training camps, game time, financial commitments from parents, etc. These factors creates more results, which in turn creates more opportunities, which creates more opportunities… ad infinitum.

A lot of growth is environmental and it happens via osmosis. I’ve seen many instances where short-term results create opportunities, which allow someone to put themselves in an environment where they grow massively, which allows them to get an even better opportunity, and so on. Small short-term optimizations can completely change your trajectory.

2. It’s important to know what to learn.

Growth can be thought of as the accumulation of skills, and knowledge. In general, it’s hard to know what skills and knowledge will be important to learn to accomplish a given task. That’s the main value add of school- they lay out a curriculum with the goal of teaching you a certain subject or skill.

In this blog post, I’m not arguing for you to ignore the fundamentals. But in the process of greedily optimizing, you’ll probably get a way better sense of what fundamentals you need to know than trying to speculatively build a knowledge base. Your learning can be way more focused and impactful.

If you pay attention to your gaps in knowledge while you’re pushing yourself (by asking yourself things like: “What am I missing here to have a great understanding of this topic?”), you can get a way better answer of the things that you need to learn. In my example above, understanding objects and method calls is very important to contributing to a web codebase. Understanding algorithms is way less important. You’d learn both in a typical CS education, but one was less important for the task at hand.

3. You re-calibrate your sense of what is difficult.

By greedily optimizing, you’re undertaking difficult tasks. This pushes up your bar for difficulty.

When I was still starting out programming, I wanted to learn about machine learning, because I thought it was cool. Turns out, this is a meme for a reason and I ended struggling a ton:

  • I had to decipher papers when I’d never read any before. This often meant scanning / reading through the same paper many times to grasp the concept.
  • I had to learn the basics of the mathematics and statistics on the fly, without any formal education.
  • I had to actually apply the concepts in code, which was more OOP than mathematics or algorithms.

It turned out to be extremely difficult. But during the action of me having to figure it out, I learned to be more resourceful and built mental models for learning that were of way higher quality than I had before. When it came time

It turns out, having the experience of doing really difficult things is actually incredibly important. What I thought was my total capacity, was only maybe 50% of what it actually was. (This lesson was reinforced for me when I started doing distance running.)

Learning this lesson changed my life because I realized I could take on more than I could handle and I would often be able to accommodate it. Seeing other people do the same through TKS leads me to believe that a large portion of us chronically underestimate our limits.

4. The harder option often has more positive optionality associated with it.

When writing this post, I realized that I was writing a lot about opportunities. Not all opportunities are created equal. Most opportunities that happen to you are completely random- so it’s important to maximize randomness to capitalize

As a general rule, by undertaking difficult things and making yourself visible, things will just end up happening to you. Sam Altman has said that it’s easier to start a hard company

Great people notice if you’re on a great trajectory. They want to help you, because they see themselves in you.

In general, this blog post rests on two counterintuitive principles that people don’t often realize:

  1. The vast majority of decisions are way more reversible than you initially think.
  2. The risk of doing hard things is way lower than your initial perception, because the risk of failure is offset by your potential massive learnings (this effect is way bigger when you’re young.)

Taking the path of steepest growth often means doing hard things. You might not feel like you’re ready for the thing you’re undertaking. This might be a good sign- it means you’re pushing the boundaries of your competency enough to grow drastically.

If you don’t like trajectory you’re on right now, you might want to consider doing the hard thing that you feel you’re not ready for. It’s probably a much more reversible decision than you think.

Caveat: This article is directed towards a certain type of person. It’s fine if you are not that type of person. You don’t need to be on a super high trajectory to live a good life. But some people want that- I’m writing for those people.

Thoughts? Tweet me (@jayparth)

Originally published at https://parthasarthy.com.

--

--