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”.

YMMV

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.

giphy-2

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 become a better engineer? 💌

Join 9,400+ people 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 a thoughtfully written email every week about React, JavaScript,  and lessons learned in my 20 years of writing code for companies ranging from tiny startups to Fortune5 behemoths.



Man, I love your way of writing these newsletters. Often very relatable and funny perspectives about the mundane struggles of a dev. Lightens up my day. ~ Kostas

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