There is really no such thing as a bad programmer, unless you discourage others from programming or try to belittle them when they don’t have the experience you do.
Arrogance will only hold you and others back from accomplishing what they or you dream of. It has no place in true engineering unless it’s for a defensive position. Even then though, careful to not turn “holding your ground” into “degrading the opposition”.
If you think you’re a good programmer, keep in mind it has nothing to do with how well you can graphically represent your linear functions in a CLI. Check these standards instead to truly check up on how well you’re coding skills are:
I myself was a Java specialist at IBM, I’ve been a freelancer on top of my full time jobs since I was 18. I have worked with just about every tech company in my home town, and have developed specialized projects for my home university, MSU. You will never hear me try to talk to other developers as if I know more than them. In cases where this is required, I will humbly attempt to get them to recognize the error we both face, despite who caused it.
Humility and Simplicity will make a great programmer in my book. Clients need it to be put simply. If you can do all of the advanced work they need done, while keeping them in the loop and informing them without boring them (information-overload), they will gladly open their wallets up for you with a huge smile on their face each and every time. Your clients should feel like programmers are gods: humble, gentle, helpful, wise and powerful gods. Your clients should respect you.
Acting like you are fucking Mark Zuckerburg is not how you do this.
Arrogance can lead to bad programming. Your college degree doesn’t mean squat if you can’t hop into a situation elbow deep and get a system running again.