Comment Re:Levels (Score 4, Interesting) 214
Yeah, there's probably a matrix of skills and abilities, depending on how much collaboration you need to do with customers / suppliers / other developers.
Great Coder: can make a computer do stuff. In code. No one else really cares how they do their thing. They just take a defined process and codify it to automate it or whatever.
Great Programmer: can write programs, presumably that other people have to use. Hopefully you still have this programmer around if you need to fix their program.
Great Software Developer: Now we're getting somewhere... they probably work together with other programmers as a team and start worrying about more of the stuff they learned in CS classes, like code reusability, refactoring, complexity, maybe some analysis of algorithms and pure math logic.
Great Software Engineer: Maybe less of the pure math and algorithms on how to do tricky things in code, but more of the practical stuff like defining code standards, test harnesses, and social aspects of code maintenance, like the discipline of setting up and maintaining the process through peer reviews, continuous integration, etc.
Great Software Architect: Solves problems before they occur by drawing pictures. But still gets blamed for all of the new problems anyway.
A lot of greatness involves managing complexity and making things as simple as possible for other people to understand and maintain. But no simpler.