In my recent blog posting "The Secrets to Becoming a Great Programmer" I discuss a couple of characteristics of great programmers. You can read about those characteristics at
The Secrets to Becoming a Great Programmer
What other characteristics make a programmer great? Do you agree with my assessment?
In that case, I would say before one can become a great software engineer, they need to go through the drudgery of programming. Just because someone can code does not make a good system in the end. It still needs a good system architect to make good manageable, efficient, and maintainable codes.
Indeed, and a lot of discipline!
Becoming a good programmer or software engineer isn't done overnight. Often this takes years and in some cases (like mine) decades...
Lovely discussion!
It's so important to recognise that what makes a good programmer and what makes a good software engineer are very different. I know individuals who are incredibly talented programmers but just don't get the "engineering" thing at all; conversely, I know excellent engineers who can't write code for toffee (hope that's not too UK-centric a phrase but I'm sure you can work out what it means!)
A really good "software engineer" combines both.