Skip to content

Selective Ignorance - Mental Model for Developers

Hossein Kazemi
Hossein Kazemi
4 min read
Selective Ignorance - Mental Model for Developers

This is the first post in the series of mental models for developers that I am introducing.

What is Selective Ignorance?

It is a Mental Model with which you choose to ignore things selectively. Initially coined by Tim Ferris, Selective Ignorance is the practice of selectively ignoring distracting, irrelevant, or otherwise unnecessary information received.

James Clear defines being "Selectively Ignorant" as:

Ignore topics that drain your attention.
Unfollow people that drain your energy.
Abandon projects that drain your time.
Do not keep up with it all. The more selectively ignorant you become, the more broadly knowledgeable you can be.

We all seek knowledge to fuel our personal and career growth. However, in the modern age, we are bombarded by new information sources, blog posts, websites, newsletters, podcasts, notifications, etc.

A wealth of information would create a poverty of attention. -- Herbert Simon

As a software developer, there are two main ways you can apply Selective Ignorance to become a better version of yourself:

1. Limit the flow of information

Social media, emails, notifications all compete for our attention. Less open browser tabs, disabling desktop and phone notifications while at work are amongst the best tricks you can use to limit information flow.

Here is a video of Tim Ferris says about information overload and Selective Ignorance:

Information Overload & Selective Ignorance

Ever since I've disabled notifications on my phone and laptop, I feel more calm and productive. Instead of my phone asking for my attention, I go to it whenever I want. I decide when to spare attention, and it's not my phone anymore. I accepted that I might miss out on some content or group chat messages. But in reality, I don't feel that I've missed anything. The quality of information flowing to me is much higher nowadays as I've selectively chosen to ignore specific channels.

There is also another key thing here at play. It's the 80/20 rule. You get the most valuable information (80%)  from only 20% of resources. So focus on that 20%.

A tool that I am using a lot is Mailbrew. It essentially creates digests from the information sources you want and delivers them to you at a specific time in the day. It allows you to control the flow of information coming to you and letting you consume the information you like at your own pace and at the time you want. It advocates a passive approach to consuming information rather than an active one(Doomscrolling! anyone? ;-) ). It's a tool that allows you to apply Selective Ignorance.

2. Limit your learning options

If you are a software developer and in your first 2-3 years of your career, you have the urge to learn a lot of things. Combined with some company and peer pressure, you will drive yourself crazy. But the truth is, you can't just cramp everything in your head. It would be best to select what you want to learn and ignore the rest. Learn one thing and move to the other. You will get better results with less frustration. Let your senior colleagues know about your decision and ask them for their time to explain to you the things you want to learn.

Before moving to the Netherlands, I developed what was called, back in days, "Desktop Software." The type of software that needed no internet and installation was through floppy disks and CDs (yeah, I am old). After moving to the Netherlands and finishing my master's, I started working as a data scientist. After a year, in 2012, I switched back to software development and got hired at a company that was a WhatsApp competitor at that time. I was suddenly dropped into a huge and complex software system. I didn't know anything. For the first few weeks, I tried to grasp and get a proper understanding of how things work, but stuff was just too much to fit in my head. I could not form an appropriate model of the whole system in my head, let alone the technology used to make these systems.

Understanding the code was one thing, and understanding the various services and how and when they talk to each other was another. I kept feeling stupid seeing my colleagues talking about and discussing the systems so smoothly, like the scripts of a movie they watched last night. Not being happy with myself and my progress, I  decided to get a few days off and look at things from a distance. I understood that I did not set a clear goal for myself. The implicit goal of learning everything was too broad. I realized my desire to acquire knowledge at a fast pace is eating me from inside and has resulted in a dissatisfaction with myself, which in turn slowed my learning process. So I decided to do things differently. I forced myself to ignore most of the information coming to me, or I hear, select a very few things that I thought are more crucial, found "the" senior developer who I thought is best at that subject, and asked for mentorship. One concept/key technology at a month. From that moment, things changed, I could see through the noise, and I could very well understand the stuff that I chose to know and didn't care about the things I don't know. The latter was hard on my ego, but I could tame it over time.

I learned that I really shouldn't push myself to know everything, and saying I don't know more often. I advise you to do the same if you are in a similar situation, be selective about what you learn. Not all things are equally worthy of learning at the same time. Selective Ignorance helps you focuse and achieve deep work.

If you don't define your goals clearly, everything seems important. The fear of missing out will kick in, you get overloaded and feel underacheived.

In the next issues, I will be talking about more mental models. If you've enjoyed reading this please don't forget to ask your friends to join or share it on social media. I also would love to hear your feedback and comments.

Mental ModelsGrowth