Design patterns are a must for every developer. Design patterns help the developers write extensible and maintainable code. Design patterns also provide the developers with common vocabulary for design and allow easy classification of conceptual problems.
Another important aspect for Java programmers is to develop effectively. This means that best practices are taken, object and stacks are not abused, pitfalls are avoided and there is a correct usage of the APIs.
The course will focus on the well-known GoF patterns and their appliance in the Java language. In addition, the course details effective related issues, some taken from "Effective Java" which was written by Joshua Bloch.