It turns out that being a good programmer isn't simple or easy. I've seen many teams where everyone on paper looks like they should be a good programmer, yet only a few team members are doing the heavy lifting and the majority are really just in supporting roles and sometimes not even doing that so well or even contributing negative marginal productivity by creating bugs, technical debt, and team dissension.
Yeah but I think most of the time this happens because some senior developer edges all the other devs out. After a few months of this heβs so productive with the code base that the others look like bad programmers
One of my coworkers is really good at churning out code in a short amount of time that will do the job. He's not so good at abstracting his code to make it more reusable, even when he has time.
Another coworker is a hard-working cleanup guy, he doesn't mind getting his hands dirty and spend several long days cleaning up a decade of cruft. But he doesn't always appreciate subtle differences in code, so sometimes introduces regressions.
Third guy we have has excellent domain knowledge which is invaluable, yet is an otherwise average programmer.
I've got my set of things that I'm really good at, and the things I'm not particularly great at.
We don't have a rock star dev, but we have people who are good at different things and we take that into account when planning and executing projects.
Sometimes but usually I think the primary factor is the personality of the junior engineers. I think to be successful you have to like learning independently and have a good work ethic. Most places don't have strong mentoring programs and as you mentioned some programmers won't mentor for whatever reason