What is expert beginner and how to avoid becoming one?

I worked for a company for 4 and a half years. I was considered one of the best developers in the company, I had seniority, good salary and respect from my bosses upstairs. But I was unhappy. Why? Because I was becoming expert beginner.

What is expert beginner?

It’s a term coined by Erik Dietrich that describes a certain type of software developers. It’s the developers who entrenched them self into the company or organization they work for, have unlimited seniority and company’s non-tech people think of them as experts. But they are not really experts. They have weird frameworks, practices and coding standards that don’t have any sense.

Eric Dietrich describes expert beginner with a bowling example.

Consider bowling and how you have your own style of releasing the ball. It’s not the correct one, but it get’s you to average 160 which is pretty good. But the maximum is 300. With this style you’re bowling with, you will never reach 300.

So danger here is that you get stuck in your personal development and development of your career. You are doing just enough that all the bosses think of you as the guy who always saves the day. When ever there is a crises you are the only one that really know how that code works. You are the guy that will make that feature or fix that bug the fastest. But you are fixing the bug or making a feature only because no one really understand that weird code.

Another danger is for junior developers who are joining the team. When new people come, they look up to you. They are learning from you and now you are raising new developers to become expert beginners also. New generation that will be entrenched into the company, that will think all practices company is doing are normal. They will become more and more detached from outside word and industry.

This is bad for the developers and for the company. It’s bad for the company also because company’s products are rusting. Every change is difficult, bugs are a common thing and this is all because of the way product is built using all these things I wrote. Weird practices, weird frameworks and weird coding standards.

Some developers that come to the team will soon try to get out of it. They come and see all the bad things and they quit soon after. They try to push for some changes, but because everyone in the team are used to work in a certain way, they are being quickly rejected. Going back to bowling example, it’s like new bowlers that come, can watch bowling on a TV and see all the professional bowlers and how they achieve 300 with their style. They will start questioning your 160 average style. When they fail to pursue you to change the style, they will leave. So company is losing a lot of talent because of this.

So how not to be an expert beginner?

It’s simple. First if you are worried that you are being expert beginner, you are probably not. Even if you know the term “expert beginner” means you are reading and listening for things that are happening in the industry. So that’s it, Read, listen and watch. Don’t stop learning and try to apply that into your team or work. If the company product is so rigid that it’s nearly impossible to change it, start changing it nevertheless. Refactor step by step. Every day you should improve it by just a little.

If you can’t improve anything anymore, well you can just quit like I did and start over. Your career is at stake!