How to avoid creating the expert beginner

By Valerie Gibson

05 August 2015

Expert beginners think they know everything, but don’t even know the basics. Learn how to avoid creating them through training, mentoring and work culture.

In his article on the topic, Erik Dietrich defines an expert beginner as someone who thinks they know everything when in fact they don’t know the basics. They are unable or unwilling to see their own pitfalls – refusing to try and improve their skills.

While it may sound like wilful delusion, it’s too easy to fall into the Expert Beginner mind-set. It’s that feeling you get when you try something complicated for the first time – and you’re naturally good at it. With practice, you get even better. But you never learned how to do it properly, and once you get good enough, you don’t think you need to.

We’ve got a new graduate scheme in the Development Team at Storm ID and we want to make sure we do everything in our power to stop any of our new starts from taking the slippery path to becoming an Expert Beginner. There are a variety of ways we make sure this doesn’t happen.


We assign our graduates a mentor from day 1.

This person is the first line of support for any technical questions the grads might have. Mentors organise code reviews and make sure that the graduate is on the right track. They help define subject areas the graduate might like to investigate and make sure they get a firm grounding in the fundamentals.

Mentors are generally responsible for making sure that the learner is not happily writing terrible code, or gaily pasting in code snippets from Stack Overflow without ever asking why things work.

Foster a culture of helpfulness and understanding

Jumping into a new environment as a graduate can be pretty intimidating.

We want our grads to feel like they can ask for help when they need it. As a team, we work to cultivate patience and kindness towards anyone needing help so that it never feels daunting to ask.

Similarly, we need to make sure our graduates know to ask for help when they need it. It’s our job to teach them that there is no shame in writing less than optimal code. Asking for feedback and making an attempt at code which you can then review and improve is an important part of the learning process.

Keep the team learning

Developing and learning should never be a solitary task, where the learner can easily start to believe they are writing excellent solutions with no one reviewing them. It’s important to cultivate the idea of continual improvement straight from the get go.

Within the team, we regularly check each other’s code and share best practices so the graduates are joining an environment already focussed on being open and helping each other improve.

Things to go wrong sometimes. Just fix them.

It’s important for beginners to know that it’s okay to make mistakes. Websites will break, things will go wrong and it’s all part of the daily life of being a developer. The most important thing is knowing to ask for help when you’re in over your head and surface major issues as soon as they happen.

We often start our graduates off with a few “sandbox” projects – like developing our games leaderboard – so they get a chance to experiment without pressure. It’s all about learning how to recognise issues sooner rather than later, so you can work confidently on major projects.