The following are four stages of a programmer's growth summarized by a senior developer. Personally, I think it makes a lot of sense. Which stage are you at?
Stage 1: Not knowing what you don't know (Unconscious incompetence)

During college, I did some small projects with my teacher and thought I was really good. At that time, I even went to some companies for interviews for part-time jobs, but I just didn't know why there was no reply. In that period, I had no idea what I didn't know, and I thought I knew a lot. Now when I think about my past, it's funny. At that time, I wasn't even a programmer; at best, I was just an amateur programming enthusiast.
Performance: false confidence, overcommitment, full of "I can do it, no problem", looking down on other programmers...
Stage 2: Knowing what you don't know (Conscious incompetence)

After starting work, I found myself encountering difficulties in project work and not knowing how to solve them. Compared with the people around me, I realized my knowledge was lacking. At this point, I knew I was not as skilled as others, that I had many deficiencies and needed to make up for them. This is what people call the junior programmer stage, and at this stage you must rely on others for guidance.
Performance: a bit insecure, learning humbly, working hard secretly, admiring experts...
Stage 3: Knowing what you know (Conscious competence)

After three or four years of work, my skills gradually improved, and I became the technical guru of the project team. At this time, I was also confident, knowing that I could solve all the problems I encountered. This was the senior programmer stage.
Performance: confident, relatively objective, truly committed, a bit self-absorbed...
Stage 4: Not knowing what you know (Unconscious competence)

After working for many years, as the depth and breadth of my knowledge increased, the more I learned, the more I realized I didn't know. Sometimes I felt that I had really wasted too much time before. Although I felt I still had a lot to improve, there was basically no problem at work that I couldn't solve. At this time, much of my knowledge formed its own system, and I had developed a subconscious approach to problem-solving. Sometimes I didn't even know that I knew. At this point, I had reached the architect level.
Performance: open, proactive, eager to learn, humble...
Dear programmers, which stage are you on your growth path?
Source: Internet, Author unknown