
The Dunning-Kruger Programmer
I suppose you're familiar with that feeling when, after completing a course or training, you feel like you possess complete knowledge, expert knowledge. Be careful! It's possible that Mr. Dunning and Ms. Kruger have just caught up with you. Simply put, the Dunning-Kruger effect means that when you know very little, you feel like you know everything.
It's easy to fall under the illusion that 2 weeks might be enough to master a programming language. Loading yourself with a large dose of knowledge puts you in a state of omnipotence. You get the feeling that there's no problem you can't solve, that you can already apply for senior positions today.
Theory
A bit of theory about the Dunning-Kruger effect: https://en.wikipedia.org/wiki/Dunning-Kruger_effect.
Symptoms
Being in such a state, you're full of audacity and pride. It seems like there's no recruitment question you don't know the answer to. Unfortunately, this is nothing but an illusion, so characteristic at the beginning of learning anything. It's easy then to experience a total flop, an absolute failure, because there will always be someone at a job interview who will be better than you. Someone who will stump you and drag you across the floor, so much so that you'll lose any desire for change or applying for a new project for a long time.
That's exactly how the Dunning-Kruger effect works. It throws us from one extreme to another. The worst part of it all is the lack of awareness of this state. Lack of understanding that you're just at the beginning of the road, that after all, the more you know, the more you know that you don't know, right?
That's why it's worth remembering at every step that there will always be someone who will stump us, whether at the company, during recruitment, or even at a conference. Even if you feel that your code is already awesome, "there is always a bigger fish."

What impact can a person with Dunning-Kruger have on colleagues? Absolutely destructive. They break up the team. It's hard to work with someone who is convinced they possess all available knowledge. And if there's someone in the team who won't give up and will always strive to demonstrate faulty thinking – a toxic atmosphere is guaranteed.
The path of self-reflection is priceless. In any case, you must remember that others can evaluate you. If you blindly proceed in the belief of your own awesomeness, such an evaluation can turn out to be very painful. No one will take you seriously because your deficiencies will be clearly visible.
Completing a course doesn't make you an expert. The only thing you can get from it is a very narrow, author-directed view of the issues or technology discussed. I mentioned the boundaries of knowledge above. Let me explain it a bit more broadly. There is something called the circle of knowledge and the boundaries of ignorance (I recommend this title: https://www.goodreads.com/book/show/2195577.The_Limits_of_Science).
Imagine a small circle with a diameter of one centimeter. Can you calculate the circumference of this circle? I'm sure you remember the formula. And the area of the circle? Of course. So the area of the circle represents the boundaries of your knowledge, its length is the amount of knowledge that, according to your current opinion, you lack. You start learning, you work through courses, bootcamps, trainings. Your circle of knowledge begins to grow, but along with the circle, with its area, the circumference starts to grow. The boundaries of your ignorance become increasingly vast.
As you absorb new content, you begin to notice new areas to explore. The more you know, the more it turns out you don't know.
And what if I tell you that there is no boundary point, that this circle can grow indefinitely? Doesn't that scare you? It does? But it shouldn't! The only feeling that should accompany you is humility, such ordinary, simple humility, humility before the fact that in a world filled with information, on the threshold of such a dynamically changing and developing IT industry, so many things remain to be discovered, while we still know so little.
Are You a Course Addict?
The Dunning-Kruger effect often affects course addicts. There is such a phenomenon of becoming addicted to development. We buy course after course, book after book, preferably from several different fields. Courses are courses, they either give a very general overview of some issue and in fact we only learn the basics, or they touch on a very narrow specialist slice of the issue. In both scenarios, just completing the course, attending the training, reading the book does not make us experts. And yet, it's easy to fall into the feeling that after this particular course, we can handle any project, any problem that comes before us. Expertise is determined by experience, the quantity and weight of problems solved, crises lived through, and victories achieved. An expert doesn't need to have a certificate and a litany of completed trainings listed on their LinkedIn profile. An expert must have liters of sweat, blood, and tears behind them. Expertise is like noble metal, it is forged in extreme conditions.
I conducted trainings for people wanting to switch careers to become programmers. In the middle of the course, which lasted 12 weeks, students asked me questions about what financial requirements they could have in job interviews because they already wanted to look for work. 6 weeks after starting a programming course, completely from scratch. Then I was shocked! Today I understand it more!
I was shocked because I entered the industry before being a programmer became fashionable. There were no bootcamps and all those programming schools. Frameworks weren't so developed. Programming wasn't as sexy as it is now. There was no React, Vue, etc., using jQuery instead of Vanilla was a revolution. My learning was difficult, access to materials was harder. For this reason, it's easier today for me to notice similar differences in perceiving the knowledge being absorbed and falling into a state of excessive self-confidence and enthusiasm. I have nothing against these types of bootcamps or trainings. I probably would have used them myself if there had been such a possibility. However, when deciding on such training, you must have a certain mindset, certain assumptions that you will be bombarded with knowledge, if the course will actually be as intensive as they promise in the advertisements and worth its not small price, it will overwhelm you with a mass of material that you won't be able to effectively process. You will complete the training with confidence because after all, you covered a lot of topics in the course, but really none of them have been engraved well enough in your memory. It takes just one job interview to get knocked out, which will either sober you up or knock you down. Let's hope it sobers you up.
Since we're already on recruitment. You've probably heard from stories or anecdotes that sometimes stupid questions are asked in job interviews. I myself thought that these were just jokes, that it couldn't be true, because what company asks a programmer what animal they feel like or what they would take to a desert island. Until recently, when changing jobs, a very nice lady recruiter asked me what fruit I am. Do you get it? What fruit am I, f**k. How important was it in this process that I answered "banana"? How important was it that it was just the first fruit that came to my mind? These types of questions contribute nothing, just as theoretical questions about technology contribute little. Okay, they are important because we can learn about the candidate's knowledge, but that knowledge could just as well have been learned but mostly misunderstood. It's not really important if you know design patterns in theory. What's important is if you know the problems that can be solved by applying them. Hence, I am a supporter of questions touching on experience, challenges taken, successes, failures, problems. Maybe it's worth making an effort and asking about encountered problems with cache, performance, understanding legacy code. Questions presenting some real project problem work fantastically, for example:
You have a task that needs to be delivered on Wednesday at 12:00. It's Tuesday, 15:00. What will you do? Do you prefer to deliver what you can by Wednesday, but with the awareness that it will be incomplete, or do you give information to the client/team that there's no way it will be ready by Wednesday, and that you will exceed the deadline, but you will deliver all the requirements?
Which is the classic problem of whether it's better to be on time and crap yourself, or to be late and take a proper dump.
These types of questions will quickly expose a person with Dunning-Kruger because it will turn out that superficial knowledge is not enough to make up for the lack of experience.
Let's Summarize
The Dunning-Kruger effect is not a bad thing. I experienced it, probably your friends experienced it. If you haven't experienced it yet, sooner or later you will feel this feeling of ruling the world, while what you have is not even suitable for ruling over a glass of water. Humility, it's supposedly such a lofty word, and it can change so much. It's humility that will give you the ability to deal with the effect as quickly as possible. Humility doesn't mean feeling like shit here, but it means awareness that there is always something I might not know and it's easy to get hit on the head for it. There can always be someone who will put you out and show you your place in line.
Let master Qui-Gon Jinn remind you of all this:
There’s always a bigger fish
