Get the ideas I don't share on the blog

No worries, this form appears only once, and your email will never be shared.

How to Debug Your Brain

Intelligence is the ability to predict. Learning is taking the results of past predictions and applying it to future predictions. Stupidity is ignoring the results that don’t match your predictions. Therefore, it seems there are a lot of stupid people.

I’m always amazed at how passionately attached people can become to a political ideology. Capitalists opposing any increase in taxes or socialists attacking any possibility of income inequality, entirely on principle. All without asking the most important question:

Does this theory actually match the world?

The only purpose of a theory is to reduce the infinite complexity of the world into a picture that can help make better predictions. If the theory doesn’t make good predictions, the problem is with the theory – not the world.

Debugging Your Theories

Programmers need to debug code when it doesn’t work. I know few self-respecting programmers who would claim the computer is wrong and that the code is perfect. This is nonsense, the problem lies with bugs in the program, not the machine that runs it.

Debugging is crucial for every area of life. If your business theories are wrong, you’ll end up losing your shirt. If your health theories are buggy, you’ll wind up sick. If your relationship theories are wrong, you’ll end up fighting, miserable or alone. Any part of your life you’re facing poor results, chances are buggy theories are to blame.

How to Debug and Quit Being Stupid

If intelligence is the ability to predict, then debugging is the surest way to make yourself smarter. Here’s how to get started:

Step One – Know Your Theories

Debugging starts by writing down all the assumptions and theories you currently use. Some may seem so obvious that you might not even think of them as assumptions but truths. Others may just be habits you’ve worked yourself into and never started testing.

If you wanted to debug your studying theories you might start with a list like:

More studying creates more learning.

The more interesting the material, the easier it is to learn.

The best way to learn facts is through repetition.

etc.

Many of these might have bugs or be completely false. Your next job is to get the data to debug with.

Step Two – Get Accurate Data

When I debug a program I track every variable I can think of that might influence the results. This can help you spot the exact location where a bug is causing incorrect results. Without tracking all the numbers carefully, debugging is a painful process of trial and error.

You need to get accurate data to debug your theories in life. This means running life like a science experiment. If you’re trying to get in shape you should know how many calories you’re consuming, your weight changes over the last few months and how your fitness levels have improved or deteriorated.

There is a limit to how much data you can collect. But most people are too lazy to bother, so they end up with buggy theories and just guessing what works. Don’t be stupid and get the data you need.

Step Three – Make Controlled Changes

Good experiments are done under controlled conditions. Otherwise, lurking variables, researcher bias and insufficient testing would distort any results that could be found. The same care needs to be taken when doing your own debugging.

Wild, haphazard experimentation is no better than just guessing. Set your trials for a specific period of time, and do everything reasonable to avoid distorting the results.

Step Four – Rework Broken Theories

Sometimes a bug will only force a minor adjustment to your theory. If you believe exercising twice a week is best, but find three times a week works a bit better, you only need a minor adjustment. Other times a bug will completely destroy your past theory. If you believe working longer hours gets more accomplished but find you can accomplish more working less this may break your entire theory.

Programmers have the advantage of using a machine where the rules are clear and easy to understand. Debugging your theories is harder because reality is incredibly complex and the operating manual is nowhere to be found.

Once you start seeing results that counter your theories, the next step is to see if a different theory could explain it better. Having no theory is better than clinging to a broken one.

7 Responses to “How to Debug Your Brain”

“I know few self-respecting programmers who would claim the computer is wrong and that the code is perfect. This is nonsense, the problem lies with bugs in the program, not the machine that runs it.”

True much of the time, but not always. Any modern program uses a complex array of programmatic APIs provided by the operating system, your application framework (e.g., a Web development environment like PHP or ASP.NET), and a set of independent libraries and components. Your code may be perfectly fine – but SOMEONE ELSE’S code may be broken. I ran into just such a problem recently developing a C++ plugin for Internet Explorer. A critical method call didn’t work as advertised (it threw access violations on repeat calls). My code was perfectly fine; Microsoft’s code was broken.

Sometimes it’s not just enough to debug your own theories; you have to debug the framework, too.

It’s amazing how on the spot your posts are, for me at least. I need to go back and look for bugs in my own theories and life in general. I’m taking a programming class, but never thought to think in terms of programming before (at least in relation to life).

Debate is fine, flaming is not. Pretend that this comment form is a discussion taking place in my house. That means I enjoy constructive criticism and polite suggestions. Personal attacks, insults and all-purpose nastiness will be removed especially if it is directed at other readers.