Skip to content
Sven Nilsen edited this page Sep 21, 2015 · 3 revisions

This is a philosophy part that you are free to skip if you want to. While thinking is important, it is very hard for people not accustomed to a special type of thinking to do it. Therefore it is not expected of you to follow it. In practice, people do what best suits them, but it doesn't stop us from considering tools for thinking that can solve problems when we get stuck.

Cognitive bias

The way the brain works leads us to systematically doing things in a wrong way, which has been actively studied and measured by scientists. The more we learn about the brain, the better we understand why we do such mistakes.

List of cognitive biases

For example, we have a tendency to rely heavily on the first piece of information offered when making decisions. This bias is called "anchoring".

There are many different biases, and we can't turn them off.

What we can do, is to figure out ways to work around them:

  • Wait a couple of days before implementing big decisions.
  • Use probability theory if you can make estimates.
  • If you can't make estimates, you can use expressions like "usually true", as found in the notation for reasoning about consistentency

Probability theory

Probability theory is good to know when you can make estimates.

Usually people use probability to describe how confident they feel, which is often 99%. However, that is not what probability means.

  • 99% that A is true means that you expect 99 out of 100 cases to show A. It means that on average, 1 of 100 cases A does not happen (for real). If you believe 65 out of 100 cases is more accurate, then your estimate should be 65%.
  • When you say 99% and it turns out that 65% is the actual case, then you should update your beliefs to closer to 65%.
  • How to update your beliefs is mathematically formulated, but has different interpretations. It is a good idea to keep things simple. For slightly more complicated cases, Bayes' theorem is nice.

For example, if there is a probability P(A) that A happens, and a probability P(B) that B happens, then there is a probability P(A | B) that A happens if B is true, and a probability P(B | A) that B happens if A is true. Notice that these are two different probabilities, and we tend to mix them if we are not careful.

What people actually mean when they say they are 99% sure A is true, is P(A) > 50%. When you can't make estimates, it is better to use another notation that only deals with >50% and <50% for uncertainty. For example, the notation for reasoning about consistency.

In many cases, 20% vs 80% is better to use than 1% vs 99%.

Notation for consistency

Instead of P(A) = 65%, we say usually A or ?A.

P(A | B) is then written B, ?A. which means when B is true, then A is usually true.

For more information, see notation for reasoning about consistency. This notation is not formally rigorous, but if you use words like "usually" instead of 99% then it can be practical for doing some analysis.

Constructive language cycle

If you don't get this part, then just skip it.

There is special mode of the brain that operates best when it can visualize or write down the problem.

  • Looking at something makes it easier to recognize a pattern, instead of looking at something in your head and then recognize the pattern by what you imagine in the head.
  • Often the goal is to write some code, which is a structured language. One can think of the end result a transformation of proto-structures that first are shaped as ideas and then partially described in the plan.

When you track information backwards in time from the final code, you can analyze how these structures first appear. If your goal is to do X and then Y, then you can reverse the process and think of what you need to write down now in order for the information to be transformed into X. When X is done, then it should lead to some new idea that gets transformed into Y, according to your plan. This means, at a meta level, information travels in cycles through different languages.

To preserve information when translating between languages, it is better to use a constructive or slightly formal language than an informal one. This could be as simple as a check-list, or something more complicated as mathematical reasoning. You can invent your own notation that fits your own thinking process!

The point is, that in order for an idea to be a good foundation for the next, it helps to be "constructive". If you keep everything inside your head, or if the plan is vague, it is easy to forget some important piece.

Saving brain cycles

Your head is not a magic box that can solve any problem instantly. The brain works at 200 Hz per neuron at peak efficiency, and faster than that is simply not possible.

In addition there are many other reasons why we can't be 100% efficiently at any cognitive tasks. We are easily distracted, and associate memory related to moods and the context we operate.

Therefore, it is a good idea to think of your brain as a thing to take good care of. No matter how important a thing is to do, it won't help if you burn yourself out by doing it. If you want to optimize for the amount of brain cycles overall, then you should take frequent breaks from thinking.

Thinking is hard work, so you should restrict the work within time limits. One popular technique is 25 minutes followed by 5 minutes breaks.