01 October 2023

the nerd problem

to get ahead - don’t learn another JS framework, unlearn nerdiness

AJ LaMarc
AJ LaMarc @ajlamarc

The stereotype that programmers are nerds is true; in fact, we’re proud of it. At some point, “nerd” became a complement: maybe alongside the “most important movie of all time”.

Nerdiness is easier to spot than intelligence, and the two are correlated, but intelligence is what you want. Nerdiness can be dangerous: see Ted Kaczynski and the LessWrong AI crowd - the latter loses their shit and gets depressed over issues that 1. Don’t really exist yet, and 2. We haven’t had the opportunity to counteract, such as AGI alignment or global warming. Like any drug, nerdiness is fatal in high doses.

Nerds can, but rarely do, use their intelligence to seek out and destroy that most cherished part of themselves. The cost paid is a more productive and social life. Upon these lines, a few questions arise:

  1. What makes a nerd, besides intelligence?
  2. Do I really want to stop being a nerd? Everyone successful I know was one…
  3. In what environment is happiness and success most achievable for those predisposed to geekhood?

What makes a nerd?

  • The nerd is impractical: they build things only nerds want, and obsess over things with no market value
  • The nerd avoids discomfort by doubling down on strengths and avoiding weaknesses
  • The nerd is less interested in base reality: they write about what makes a nerd, or engage in other “meta” activities like metaprogramming
  • The nerd loves seeking explanations and rationalizing, i.e. convincing themselves of understanding in complex situations

Do I really want to stop being a nerd?

You may suffer from a lack of good models to emulate. If everyone you know is either smart and nerdy, or not smart, then you accept nerdiness as a inevitable side-effect of intelligence. Some rare people, like Gordon Ramsay, have their cake and eat it too.

I think I’m a nerd, now what?

  • Place less weight upon, and read less content generated by, nerds. Reach for older books.
  • Spend more time in environments and around people where nerdiness is a liability rather than an asset (parties). Do a stint in door-to-door sales.
  • Avoid premature optimization: innovate the tool only when absolutely necessary. See suffering-oriented programming.
  • Second-guess intuition: conduct rapid experiments against the market. Leverage the wisdom of those more experienced.
  • Focus: you won’t always have time to chase every vague curiosity.

Programmers specifically are enamored by pure technology, new languages and frameworks, new AI tools, etc. instead of their application in more basic (proven) industries. Attacking other industries, where programming talent is extremely valuable by comparison, requires a willingness to repeatedly start over the learning process.

To grow past being a nerd, learn multiple skills. This was also noted in a blog post by Scott Adams:

If you want an average successful life, it doesn’t take much planning. Just stay out of trouble, go to school, and apply for jobs you might like. But if you want something extraordinary, you have two paths: 1. Become the best at one specific thing. 2. Become very good (top 25%) at two or more things. The first strategy is difficult to the point of near impossibility. Few people will ever play in the NBA or make a platinum album. I don’t recommend anyone even try. The second strategy is fairly easy. Everyone has at least a few areas in which they could be in the top 25% with some effort. In my case, I can draw better than most people, but I’m hardly an artist. And I’m not any funnier than the average standup comedian who never makes it big, but I’m funnier than most people. The magic is that few people can draw well and write jokes. It’s the combination of the two that makes what I do so rare. And when you add in my business background, suddenly I had a topic that few cartoonists could hope to understand without living it.

The importance of multidisciplinary thinking shows up constantly. Bjarne Stroustrup on educating Software Developers:

Don’t just do programming. Computing is always computing something. Become acquainted with something that requires your software development skills: Medieval history, car engine design, rocket science, medical blood analysis, image processing, computational geometry, biological modeling, whatever seems interesting. Yes, all of these examples are real, from my personal experience.

Venkatesh Rao on the Turpentine effect:

When you practice a craft you become skilled and knowledgeable in two areas: the stuff the craft produces, and the processes used to create it. And the second kind of expertise accumulates much faster. I call this the turpentine effect. Under normal circumstances, the turpentine effect only has minor consequences. At best, you become a more thoughtful practitioner of your craft, and at worst, you procrastinate a little, shopping for turpentine rather than painting. But there are trades where tool-making and tool-use involve exactly the same skills, which has interesting consequences. Programming, teaching, writing and mechanical engineering are all such trades.

Peter Kaufman on multidisciplinary thinking:

So why is it important to be a multidisciplinary thinker? The answer comes from the Austrian philosopher Ludwig Wittgenstein who said, ‘To understand is to know what to do.’ Could there be anything that sounds simpler than that? And yet it’s a genius line, to understand is to know what to do. How many mistakes do you make when you understand something? You don’t make any mistakes. Where do mistakes come from? They come from blind spots, a lack of understanding. Why do you need to be multidisciplinary in your thinking? Because as the Japanese proverb says, ‘The frog in the well knows nothing of the mighty ocean.’ You may know everything there is to know about your specialty, your silo, your “well,” but how are you going to make any good decisions in life – the complex systems of life, the dynamic system of life – if all you know is one well?