Quickly! Answer the following question:
How do you rate your level as a programmer (below average, average, above average)?
According to
psychological surveys among different groups , about 90% of programmers answer "Above average".
Obviously, this cannot be true.
In a group of 100 people, 50 will always be higher and 50 - below the average. This effect is known as the
illusion of superiority . It is described in many areas, but even if you have heard about it,
you still probably answer “above average” .
')
To make it even more fun, try to ask this question to all the familiar programmers. Ask them not in the company, but face to face to get a more “honest" answer. You will get a similar result even from those people about whom you know for sure that they can’t even program their way out of a wet paper bag. True, this is already called
the Dunning-Kruger effect , but this is related to our theme. This is an epidemic in our profession.
Well, now suppose for a moment that you are right after all: you are really above average. Yes! You are man! Rock star. A programmer from God among mere mortals. Keyboards crouch in a curtsy at your approach. Trumpets play a hymn when you commit a code to
GitHub .
Once you are above average, you are most likely an expert in your field. To call yourself an expert is very tempting - you immediately gain respect and prestige, being the only one.
Being an expert means knowing everything about your problem area.
Unfortunately, it also means that you risk laziness. This means that ultimately you will rest on your laurels, sit and think that you are the best, instead of actually doing something to become the best. Your experience will become a hindrance, because you stop trying to learn. Perhaps not today, but soon enough.
Instead, why not consider a more likely possibility?
Your level is average, or, God forbid, below average . In addition to your personal shame, which you are probably experiencing now, think about the real benefits it can bring:
- Believing that you are not at the top of the deck, you get an incentive to get there.
- Believing that you are not the smartest person in the group, you get the opportunity to learn something new.
- Believing that you are not the best in your work, you will begin to make more efforts to improve your skills.
Have you heard of the
novice mind ? Zen master summarized it in a classic koan:
In the mind of a beginner there are many possibilities, in the mind of an expert there are only a few.
The danger of proclaiming yourself an “expert” in software development is that you chain yourself into some kind of language (be it Java, Ruby or PHP), some industry (medical equipment, social networks, games) or specialties ( embedded devices, corporate
software ). As soon as you have recognized yourself as an expert, you will begin to feel fear every time you have to go beyond your comfort zone. With the golden hammer of your experience, all problems seem to be nails. You will stop thinking about screwdrivers and other tools, because they are no longer within your “expert” sphere.
That's why when you first started your career in the software development industry, you wondered why “advanced programmers” can't do X, because you recently learned how to do X in just a few days. X can be anything: closures, object-oriented programming, Ruby on Rails, Haskell programming. Never mind. In the end, the expert's mind is cluttered with old knowledge. The beginner's mind is open, free from interference.
When you are an expert, you find it harder to learn . This is why being a “programming expert” is dangerous.
Summing up, what needs to be done first of all in order to be the coolest programmer in the world?
Start by saying that you rate yourself as "below average." Get out of your comfort zone.
Be the most moderate .
A true master never stops learning. And you do not stop.