I have worked on several teams and everywhere I go people have radically different programming skills. It just reminds me of Saint Seiya. There is a huge power gap between bronze and gold knights. Gold knights can strike at the speed of light and have these cool armors. On the contrary bronze knights are slow and their armor barely covers their family jewels.
I feel the same way at the office. There are programmers that think incredibly fast and can make valid observations on complex systems they have just heard about. They have experience in very domain you can think of, from linux kernel to the fanciest javascript framework.
On the other hand you have the bulk of the team. I am not saying they aren’t smart, some of them are far brighter than me. In most of the cases I feel they do not care that much about the technical part of the job. They are fully focused on implementing new features and are completely agnostic about the design principles of the system they are working on.
I guess different profiles are needed in every team. What bugs me is the poor knowledge bronze knights have on the tools they use. I have seen people using vim as their main editor and not knowing what a vimrc is. As well as engineers working on a Unix based environment but never been curious to change their .bashrc or other configuration files.
Personally I do not identify to any of the two categories. Hopefully I have enough experience to have some valid insights on software architecture, but I am still no match for a mighty knight from the twelve houses.
By the way, I hope young people today still know about Saint Seiya anime series.