← Back to blog
7 min read

Euler’s Method and Approximating the Future

Life · Mathematics · Software

I think that the Euler’s Method can give us insight into how we can get closer to who we want to be and live more fulfilling lives. Even though the concepts described are simple, there are still pitfalls I run into when I try to live by them. Because of this, I also want to explore a little why I think I often fail at implementing these ideas into my own life.

Euler’s Method

I’ve always really liked Euler’s Method. It’s such a neat idea that a simple method can help you closely approximate something that can’t be solved. Put more formally, Brilliant.org describes it as follows:

Euler’s method is used for approximating solutions to certain differential equations and works by approximating a solution curve with line segments. In some cases, it’s not possible to write down an equation for a curve, but we can still find approximate coordinates for points along the curve by using simple lines. These line segments have the same slope as the curve, so they stay relatively close to it.

A simple visualization from Wikipedia really helps drive this point home:

Euler's Method Visualization
Euler's Method Visualization

The more small, reevaluating steps you take, the closer you can get to the actual curve.

Software Development Agility

Several concepts from the Pragmatic Programmer feel like a variation of Euler’s Method. One such idea lists a process by which to flexibly manage software development:

  1. Work out where you are.
  2. Make the smallest meaningful step towards where you want to be.
  3. Evaluate where you end up, and fix anything you broke.

Just like Euler’s Method, this is such an elegant, simple heuristic that helps you easily identify the current state of your software and figure out where it should go. This method also benefits from taking small steps, letting you course correct along the way to avoid getting off track.

Life

One concept is approximating differential equations and another is defining agility in software development, I think these concepts can be further abstracted to use as a template for approximating the future. I think these principles can give actionable steps to get you to where you want to go.

Taking everything laid out above, I want to rework and combine each of the above definitions to apply it to approximating a path for life:

  1. Work out where you currently are in life.
  2. Approximate where you want to be and make the smallest meaningful step towards it.
  3. Evaluate where you end up, and readjust trajectory if you’re off course

I call it:

Life in 3 Simple Steps

Pretty cheeky, eh?

I think smallest is a really important word in Step 2. We’ve seen small steps in both Euler’s Method and the software development process defined above, lets now take a look at why this is important for direction in life as well. Small steps are necessary for two reasons:

  1. Progress needs to be bite-sized enough as to not be daunting so things will actually get completed
  2. Steps have to be small enough to be able to analyze the diff from point A to point B to understand what changed and if it got us closer to the desired result

I want to point out the word meaningful from Step 2 as well, that is also quite important. It shows that deep work has to take place to make progress. If you’re constantly taking small steps with shallow tasks that don’t align to your goals, then they don’t approximate your desired future. You’ll get somewhere, but it won’t be the trajectory that you want to go. To use Euler language: the tangent is way off, so the steps don’t approximate the curve. There is something presupposed in these statement though - you need to have clear goals that you want to achieve. If you don’t have that, then there is no way to approximate it.

Issues with Life in 3 Simple Steps

I think these steps are pretty straightforward: have a goal, make small progress towards that goal, check if you’re closer to that goal. Keep iterating. But if they are so straightforward, then why do I always fail at doing them? That’s the difference between simple and easy; the steps are simple to comprehend, but not easy to truly implement. I think the problems I face with this concept come in two forms:

  1. I don’t know where I want to go
  2. I do the “easy” things to get to a goal without doing the meaningful work to get there

Let’s look at both of these and see if we can get closer to the heart of the problem.

1. I don’t know where I want to go

That sentence is more likely translated to

I don’t know where I want to end up

When you word it like that, it becomes apparent that this point doesn’t matter. If you have anywhere you think you want to end up, then you can still approximate getting there with the provided steps. If you’re scared that your interests/goals will change - spoiler alert: they will. But if that goal ends up changing on the path to approximating it, that’s okay! Since you are taking small, meaningful steps to get there, you can easily course correct during the next iteration to your new path by pointing to the new direction on your next step. Any knowledge gained during the initial goal will probably help out in the new goal, especially if they are tangentially related.

2. I do the “easy” things

This is the one that is problematic.

I alluded to Deep Work above when discussing doing things that are meaningful. The book talks about how we readily do the shallow work to make us feel like we are making progress, but in reality it is actually just making us feel busy and not getting us anywhere. It is the deep work we are avoiding that would get us closer to our goals. As a personal example, I want to eventually transition into graphics programming. I have a list of actionable projects and books that I feel if I completed (and somewhat comprehend) then that would be a good approximation to being a graphics programmer. That’s the deep work. That I’m not making much progress on. Instead, I research more projects and books to add to my list of things to do. It makes me feel like I’m comprehending where I should be pointing, but it’s not actually getting me closer. I know where to spend my time, now do it. If my journey to being a graphics programmer was some sort of differential equation, my Euler Method step would still be in the same location each time a step was attempted. But then I wonder why I’m not making any progress. That’s why it is so important to make sure to be doing the “meaningful” work, not just random work willy, nilly.

Compassionate Conclusion

I’ve been pretty hard on myself the last few points, so I wanted to conclude with some compassion. It’s not possible to constantly rise and grind on projects 24x7. And even if I could, that’s hardly living. I enjoy a nice balance of work, school, projects, and leisure - and I think that’s healthy. I also need to remind myself that I am making progress, it’s just not always as fast as I want it to be. It’s all about intentions. Not working on a project for a week or two isn’t failing, it’s just getting distracted by other parts of life. Pick it back up and keep working on it. Keep iterating with the ever-compassionate Life in 3 Simple Steps and things will approximate the happy future you are aiming for.