Signs you’re a bad programmer and don’t know it:
http://damienkatz.net/2006/05/signs_youre_a_c.html?repeat
9 of the 12 things in this list applied to my undergraduate algorithms professor, who even took it beyond his own bad programming and imposed things like function length restrictions on the class.
Like everything else, the key to being a good developer is to figure out what actually works for you and what is just fluff, then learn what works. Good Programmers realize that things like design patterns and languages are just tools. Different tools apply to different jobs. Design patterns especially do not apply unless there really is a canned solution to the class of problems you’re working on, because otherwise you’re imposing a structure on the solution that it may not necessarily have. If you can’t reasonably justify your choice of tools, you are not solving the problem correctly.