Agree with Mark. Using design patterns just for the sake of using design patterns will most likely end up in an over-engineered system. You have to have a deep understanding of the requirements and the circumstances around it before you even use it. You don't have to code everything with a design pattern. If you're just learning design patterns, I suggest you build a personal project - say a web framework or something, but don't do it yet in a production setup if you're just starting. Proper usage of design patterns comes with experience really...