In real world application development, you see recurring problems. Once such an issue is addressed, the we addressed that problem can be re-used. Such reusable recurring solutions are called patterns. For example, if you need to create a class with only single instance can exist, you use a pattern called Singleton. The GOF (Gang Of Four) patterns are used widely these days. See Design patterns are recurring solutions to software design problems you find again and again in real-world application development. See http://www.dofactory.com/Patterns/Patterns.aspx for reading about patterns and to view their implementations in C# . (I hope I can write VB.NET examples soon as a tutorial). Microsoft has also proposed certain patterns and practices for developers working in MS platforms (mainly .NET) - see http://www.microsoft.com/resources/practices/default.mspx . If you know these patterns, you can decide which pattern should be used for solving a problem - and not how to solve a problem from the ground level.