The Dunning–Kruger effect is a cognitive bias in which unskilled people make poor decisions and reach erroneous conclusions, but their incompetence denies them the metacognitive ability to appreciate their mistakes. The unskilled therefore suffer from illusory superiority, rating their ability as above average, much higher than it actually is, while the highly skilled underrate their own abilities, suffering from illusory inferiority. Actual competence may weaken self-confidence, as competent individuals may falsely assume that others have an equivalent understanding. As Kruger and Dunning conclude, "the miscalibration of the incompetent stems from an error about the self, whereas the miscalibration of the highly competent stems from an error about others"
Years ago I thought ( had the illusion ) that I knew quite a lot about computer science, programming, even mathematics ( ... ). Today I seriously have the feeling I know almost nothing. I attributed that process to a sort of more = less principle. It seems to be a psychological law. Part of growing older, maturing, becoming more proficient in your field. - A side-effect is that it creates a division between younger and older workers. - Have you ever worked with a say 10 ( or more ) years younger colleague who thought he was a G_d in his field? ( They tend to call everything that is not coded by their golden genius fingers -trash- ). The tensions that a relation like that can create can be explained by the D-K effect, I suppose.
See this question at /* Programmers */ ( although closed as off-topic ).