While design patterns and algorithms are similar in concept, they are different.
An algorithm is like a recipe; a step-by-step process designed to perform some task. It is an unambiguous set of instructions that processes inputs to produce an output. This may be expressed in pseudo-code but ultimately will be implemented in a programming language.
A design pattern is akin to a blueprint; an organized plan to accomplish a goal. It is a way of structuring your code to  express a relationship between functional components. They are often âbest practicesâ and repeatable solutions to common problems or requirements faced in software design.
Â
Books focusing on design patterns:
Design Patterns: Elements of Reusable Object-Oriented Software 1st Edition
Head First Design Patterns 1st Edition
Books focusing on algorithms: