Design patterns are needed by those who can read, but can't write. To write code you need to be able to
I really have to question one's programming skills when they state something like this (I would almost think that one that says this would also say that there is no reason to do any requirements or design before actually beginning the coding). No matter what you are writing, you are coming up with design patterns all of the time. You might not be writing as elegant solutions as "The Gang of Four" did, but you are still coming up with re-usable bits of code that solve problems in a specific domain. Design patters are simply solutions to design problems that are found to be reoccurring. I think that some people come across bad uses of the patterns and assume that all uses are bad.
To become decent developer, you have to be able to figure out solution to problems yourself without consulting books.
A decent developer will refuse to refer to a book for help in solving a problem class that has been solved many times over. A great programmer will remember what he/she read in a book a while back about what to look for and how to reduce efforts. That book will not give you any answers to your problems that you will be able to cut-and-paste, rather it will give you the tools necessary to become a more competent programmer. There is more to writing good code besides knowing what the syntax of a language is.
On flip side, the only effect of design pattern application I have seen is exponential growth of code base size: piles of crap code doing nothing else but implementing the patterns, instead of actually solving the problem at hand.
I'm sorry that you have come across someone's bad code. Have you ever seen a bad implementation of a sorting algorithm and said this is so bad, and refuse to ever use that algorithm again? Just because you came across a bad use of something, does not mean that it is bad.
We want to create puppets that pull their own strings. - Ann Marion