This sums up every self-help and business book, blog post, podcast, and talk I’ve ever seen/read/whatever:

  • pick a direction
  • listen to users/customers/people-you-care-about
  • adjust course
  • do the work
  • repeat until success

Anything more is just tactics or advice on the level of “These are the lottery numbers that worked for me”.

Let me explain it to you like you’re five a computer. Time for stochastic search algorithms! \o/ My favorite and nerdiest way to think about life.

Let’s say you’re you, and you want to have the best life you can. You don’t know what you’re looking for, and you don’t know how to get there. You think you’ll recognize “best life” once you’re there. Psychology says that you won’t.

Your life is an optimization problem. You pick a fitness function and search for the combination of inputs that returns the highest result – the global maximum.

Your fitness function can be anything from “How much $$ I’m making” to “How happy do I feel on average”. Often, it’s a combination of things. People often have a function called “career”, another called “family”, and still another called “health”.


Pick a direction

In the beginning, you know nothing about the world, the problem you’re solving, or the destination. Any direction will do as long as you’re not standing still.

Listen to people you care about

Use your fitness function to see if your direction is correct.

A good proxy is talking to the people you care about. Users and customers will tell you if you’re making things better or worse and what they want or need. Your friends, your family, and your gut will tell you if you’re becoming a better person.

Trust your gut.

Adjust course

If people keep asking you to do X, and you’re doing Y, try X. Your fitness function might improve quicker.

Probes in random directions are a good way to find promising new directions.

Do the work

Keep going.

If you don’t do the work, you don’t get the results. This is the most important step.

You start with huge steps, then make your steps smaller and smaller as you approach the optimum. Otherwise, you might overshoot the peak.


Repeat until success

This is an iterative algorithm. The more iterations you perform, the closer to optimum you’ll get.

When you find an optimum, and there are many, you can shake things up and try finding a better optimum.

Starting again from a random location, trying random things, or taking a few large steps should knock you out of a local optimum and get you back on the path towards the global optimum.

How fast you get to optimum, and how high it is, depends on factors largely outside your control: luck in picking your initial direction, fortune of circumstance and ability, “life events”, and macroeconomic trends.

Good luck.

Learned something new? Want to improve your skills?

Join over 10,000 engineers just like you already improving their skills!

Here's how it works 👇

Leave your email and I'll send you an Interactive Modern JavaScript Cheatsheet 📖right away. After that you'll get thoughtfully written emails every week about React, JavaScript, and your career. Lessons learned over my 20 years in the industry working with companies ranging from tiny startups to Fortune5 behemoths.

PS: You should also follow me on twitter 👉 here.
It's where I go to shoot the shit about programming.