I spent the last few years jumping between obsessions.

First it was a software build tool. Then it was a cloud computing provider. Now it’s building my own web apps.

I thought there was something wrong with me.

Each obsession reached a peak, then something else stole my attention. Each time, I felt bad because I hadn’t become an “expert” in the topic before moving on.

Now my perspective has changed.

For some people, the only way to find what they enjoy is to explore varied interests.

The 10,000 hours rule is a myth. A single, narrow field may be holding you back from success.

After 13 years of writing only Java code, I’m now exploring other interests. To see where they might take me.

When you feel lost in a world of hyperspecialization, remember this: many who excel in their field didn’t follow a straight path.

They zigzagged their way there.

The Federer Path to Success

Roger Federer won the Wimbledon tournament a record eight times.

He recently retired after an epic twenty-four-year career, but few know how Roger got into the game:

  • His parents had no intention of him becoming a professional player.
  • As a boy, he enjoyed many sports, including badminton, basketball, football, and tennis.
  • It wasn’t until the age of twelve that he gave up football to focus on tennis full-time.

Roger credits his hand-eye coordination to the range of sports he played in his youth.

It was his breadth of experience that led him to initial success. Once he discovered the sport he loved, that was when he went all in.

So what does this have to do with software development?

The key takeaway from Roger’s story is that even if we sample many interests, we can still win. For developers, those interests could be different frameworks, programming languages, or job roles.

Rather than getting burnt out working with one language for years, why not try an alternative? For example, by focusing on front-end rather than back-end technology.

And there’s one more surprising benefit of diverse experiences. They offer insights that help solve problems that even experts struggle with.

Fooled by Expertise

Experts are wrong most of the time.

Everyone knows senior developers are terrible at predicting software delivery dates.

Studies have shown this to be true in other industries as well.

In 2011, the U.S. intelligence organization IARPA launched a four-year prediction tournament. Teams competed to offer the most accurate predictions for questions such as “Will North Korea conduct a nuclear weapons test before [specific date]?”.

Most of the teams consisted of experts.

But one team was made up of volunteers. They were non-experts chosen based on open-mindedness and curiosity. They were the types of people who were willing to change their beliefs with new evidence.

So who won?

The team of volunteers destroyed the competition. They outperformed intelligence analysts with access to classified information by 30%.

One winner described the risk of relying too much on experts. She said, “You have to understand that they may have blinders on. So what I try to do is take facts from them, not opinions.”

Experts have their place in software. But don’t risk outsourcing your judgment to them. After all, they don’t know what you know.

Take their advice, then make your own decision.

Focus on Interest Over Expertise

Not many people know this. After making videos about the popular Java build tool, Gradle, I was headhunted for a job with them.

I felt flattered, but I knew that taking the job would make me miserable.

Why?

I would only get to explore one narrow topic.

I loved using Gradle. But my interest was fuelled by solving problems and sharing what I’d learned.

Focusing on it all day would snuff out my passion. So I said no.

Instead, I maintained my interest in Gradle. I even wrote a book on it (Java developers should check it out).

And even when I’ve written a book on a topic, I still don’t consider myself an expert.

In fact, I shun the label “expert.” I avoid it like the plague.

It breeds an I-shall-not-be-questioned kind of complacency that can lead to terrible outcomes.

People look up to experts like they know everything. If people call you by that name enough times, you might start believing it too.

That’s when you stop learning.

Better to be a self-proclaimed novice. That way, you believe there’s always more to learn. There’s always room to improve.

How To Add More Breadth to Your Life

Scottish economist Adam Smith explained why industrialized nations use specialized workers in manufacturing.

The so-called “division of labour.”

He believed specialization was good for the economy because it increased productivity. But he also saw its downsides, describing it as making man “as stupid and ignorant as it is possible for a human creature to become”.

Draw your own conclusion from this.

But, if you think broader skills could make you a better developer, here are three ways to start:

1) Don’t Rush the Learning Process

Studies show that knowledge acquired over long periods of time sticks. Counterintuitively, struggling to learn means you’re doing your best learning.

“Struggling to retrieve information primes the brain for subsequent learning.” David Epstein, Range.

Busy software developers can learn a new skill by devoting as little as 15 minutes a day to it. Eventually, that tiny practice might ignite a new passion.

Suddenly, you’ve discovered your big new thing.

2) Sample Many Projects

Developers are infamous for switching roles. It’s a guaranteed pay rise.

A less obvious benefit is that switching roles puts you in a new environment. Learning technologies applicable to the new project is how you sink or swim.

Switching within the same company also works. Do it a few times, and you gain broad experience through iteration.

Draw on this whenever you like to design creative software that will wow your colleagues.

3) Cast a Wide Net

This idea is to read books that sit in the intersection of multiple curiosities. Some of them should be outside of software development.

By doing so, you bring fresh perspectives to your work. You will make connections and spot patterns to which your colleagues are blind.

In other words, you spark creativity.

And here’s proof that it works:

I struggled to come up with this third point. I spent the afternoon considering what to write.

Then I switched on an audiobook and immediately found the title above that I was looking for.

It really works.

Final Thought

There’s a debate about whether it’s better to be a generalist or a specialist developer.

The only right answer is what you choose based on your personal preferences.

But remember that 90% of people are at a beginner level. The more you specialize, the fewer people will understand you.

For one afternoon, try to forget everything you know and start again in a brand-new field.

As a beginner.

Adopting a beginner’s mindset is not just fun. It might bring the fresh perspective you’ve been searching for.

Speak soon,

Tom Gregory

P.S. My new book Internet Essentials for Developers is out on 24th September. It teaches you the language of senior developers so you can achieve your career goals. More details in the coming weeks.