I agree with Kevin's comment. However, I think the question in general is vague. Good can mean anything. Programming is such a wide field that I would argue that no one person can be an expert. Anyone who is good will specialize in certain areas, for instance: prototyping, user interface, database, games, communications, web apps, security and the list goes on. Unless you have created a program in one of these areas and have reviewed other people's code or had your code reviewed, how do you know that the code is actually good? Also, you can be good at working on small projects (lone programmer) but not be able to complete a very large project (i.e. within a team of more than 50 people) and the opposite might be equally true. Good might mean getting something working really quick. For personal use, this is okay, but if it's a commercial application, it should be bug and crash free code. There's also an issue of creating lots of working code versus code that has to be re-used and maintained. Anyways, my original point is what does good exactly mean?
A
Amory Wong
@Amory Wong