I am looking for books / links that would help me improve on design patterns. It will be good if C++ is the base language. However that is not necessary.
I am even ready to follow video tutorials / short online courses.
I know about basic patterns like factory, singleton etc. However, I am totally lost when I have to practically design a computer program. I am mostly confused about when to use which pattern.
"Software Engineering" Sommerville 9th Edition is a respected authority on software design. The book is used on computer science courses in universities.
That has been the one thing I've always warn about when I see people recommending C++ Primer to beginners. The down side of that book and books like it are that they only teach C++ and don't teach you about programming. I agree with getting Code Complete and have also seen Programming: Principles and Practices Using C++ by Bjarne Stroustrup recommended.