March 6th, 2011, 5:32 pm
Cuch, I just hope you won't get me wrong -- by all means, learn the basics, learning the common lingo (and someone noticed DP are in part that) and OOP-idioms (which I think characterizes DP -- as opposed to more general or language-specific idioms, like, for instance, RAII (to understand which one naturally needs the basics of the OOP, by the way)) is a must.My point is: just don't spend too much time digging too deeply on this. Especially if you're in the early stage.Focusing on the OOP too much might give you (in my opinion) a wrong impression on how to approach abstraction in C++.That's why I suggest focus on generic programming, and an early one, too -- C++ is in fact and in practice (how it's used) a very, very different language from, say, C# or Java.Learning generic programming in C++ is a very good way to learn the practical answer to "how different?"Going too deep into OOP/GOF/DP might give one an impression that there's only one way to achieve abstraction (a way that, for better or for worse, was strongly hyped around 1990s, but we know better now -- you have noticed yourself that some of the patterns from that era, e.g. Observer, tend to be abused and are better to un-learn nowadays).The distinct advantage of C++ is that it's a language that gives you "high-performance abstractions" -- I don't think any other mainstream programming languages gives you that.And focusing too much on the OOP/GOF/DP way might lead one to miss that distinction...
Last edited by
Polter on March 5th, 2011, 11:00 pm, edited 1 time in total.