Patterns are documented lessons learned. Learning design patterns will help you understand the Java programming language, create effective Java solutions and understand the tools used in Java development. There are vast number of API's available for Java engineers but once you've learned patterns, you will be able to quickly understand these API's and potentially integrate it into your Java solutions. Design pattern is also the key to software reusability and easy to maintain code. Software analysis and design first, then write the code and put software optimization in the end. With good design, performance can always follow.
Learning design-patterns will help us become an effective software engineer .",)