

Also to answer your original questions, you mostly have to exercise in recognising situations where certain design patterns would be appropriate to use.
For certain application types though (games, design apps, data analysis apps, etc.), there are already popular design patterns that exist and are used all the time. Look at how other applications use them.


























I think it’s kinda funny that C++ is looking more and more like Rust.