Extreme --> Ignorance

Developers are renowned for their extreme positions on topics that typically don't matter in the grand scheme of things.

Like color schemes, text editors and IDEs, programming languages and mechanical keyboards. Also, leaving negative comments on HackerNews, Reddit, Twitter and other places on the internet where people can hear them, just so that their position remains in tact and the other person's position gets demolished. A sort of a defence mechanism for the lazy mind.

And yet, when you take a sober look at the way life works, being extreme is the most common shortcut to becoming ignorant and irrational human being. It's basically being extreme on steroids. Again, speaking more broadly, ignorance has proven not to serve people well. What's even more obvious is that being ignorant in a technical field, where everything changes in a speed never seen before, is not only stupid, but dangerous.

Think of an accountant, who has a very strong position against technology and thus not even allowing themselves to know about the possibilities one can have when using an accountant software. Imagine the damage they're able to do on the business if they miscalculate something. Now, multiply that by some very big number, say 10000 (because of the network effects of software and the speed our field excels at), and you get a rough idea of the vastness of the second-order effects an ignorant developer may impose on a software used by hundreds of thousands of people for some very important human activity.

I hope you see that having a very extreme position on things in IT (and in any field for that matter) is far from productive and could be dangerous.

That's why I'm going to suggest a good strategy to help you deal with that sort of bias.

And to be honest, it's common sense, really. It's not a novel thing - the strategy I'm going to propose. It's something very obvious, but something that most people, for some unknown reason to me, don't apply and even tend to do exactly the opposite.

Expanding your circle of competence

I feel like a fake guru stating the obvious, but I've also seen people getting so deep into their own corner of their professional world, that they eventually detach themselves from what's obvious for the rest of us. So it might turn out that the next line doesn't sound too obvious to some of you.

You need to learn new things.

Sorry to say that, but the world doesn't end with your programming language and your favorite text editor. You need to broaden your perspective.

Here's a good way to approach that.

Whatever you do best now, say backend development, pull your head out of that hole and look around. Start noticing things around you, not too far from your comfort zone, but far enough to make you feel resistant to try them. For example, explore a frontend framework. Look into the problems people solve with React, Vue, Angular...whatever. Spend a week or two writing CSS. Explore some designs and develop a taste for UIs. Understand why certain choices have been made by a designer. That will immediately give you a fresh new perspective on the work that you're doing, even if it seems to be so unrelated at first.

Or look into game development. Understand what are the most common problems there and how people have solved them. Build a very simple game in the browser or watch couple of screencasts of people like Jonathan Blow or Casy Muratori.

There are so many ways and possibilities to expand your circle of competence.

In a more high-level approach, you can read some economics, biology, physics, game theory, etc. You can try to understand how a car is built, or to learn how trains make turns. A really good idea is to find a hoby, just like pottery or painting, where you do create things with your hands. I had a colleage who got into brewing beers. If that's your flavor, that be it.

The goal here is to get as much perspectives to this world as you can.

And since that's very important, I think I'm gonna repeat it in bold:

The goal here is to get as much perspectives to this world as you can.

I have a favorite quote by Charlie Munger, who says in his book (Poor Charlie's Almanac):

[And] life is one damn relatedness after another.

See, building software, even though it's a relatively novel thing that we humans do, isn't that unique of a problem. Most of the problems we face in software have already been solved in some other area of life. Nature, for example, has done some quite impressive work in that regard. That's why it's not a bad idea to explore physics and biology. Did you know that neural networks is literally a term from biology? We just applied it to computers.

And to wrap this whole piece, I'm just going to say that you don't have to make it complicated. It is quite simple, really. Just open up for things that are outside of your comfort zone and expand your circle of competence, as Charlie used to say. Start small, write some CSS or do some database queries. Then learn a fact or two about, say dolphins. Find a hobby to do with your hands. Simple things, really.

It's going to be a very rewardful experience, I promise.