Here is an interesting quote by A. A. Milne that I found thought-provoking:
The third-rate mind is only happy when it is thinking with the majority.
The second-rate mind is only happy when it is thinking with the minority.
The first-rate mind is only happy when it is thinking.
There are different levels of thinking and learning. Here is a stab at what I think some of the stages are:
- Not thinking at all or having no opinion.
- Having an opinion or belief.
- Knowing opinions contrary to one’s own.
- Learning to defend one’s opinion against arguments.
- Understanding the strong points of contrary opinions.
- Accepting that the other party may have some valid points.
- Formulating a new opinion by integrating strong points on both sides of the argument.
- Playing devil’s advocate against one’s opinions.
- Making opinions evolve through experience and knowledge.
Most of us are usually at steps 2 to 4. In many situations, this is perfectly fine because otherwise, we would waste unnecessary time and energy pursuing needless arguments. But there are other circumstances where not questioning what we believe and what we do can lead to inefficiencies and failures. An example would be the software processes that we follow every day.
Questioning our beliefs and actions is quite difficult. It is much easier to be for or against something and stay on auto-pilot. Sometimes, it requires external intervention from events and people to knock us out of our comfort zone and start critiquing ourselves.
One way to do this is to seek out contrary opinions. If you believe something, search for the opposite argument and read about it. For example, if you believe you should use Framework XYZ to write your new application, search on Google and find what the critics are saying. If you read about a new technique, learn about its weak points.
Above all, don’t believe your own rhetoric. Tying your ego to your present ideas is a sure way to drown with them.