views:

171

answers:

2

Hi! Guys, I need to find a good site like codingbat to "learn again" C++. I learned it at school but then I've never used it seriously. I'm not looking for something like Project Euler because it focuses on math problems. I need something really focused on C++ principles, chacteristics and tools.

+3  A: 

There is no substitute for practice.

Find a program you want on your machine (maybe as simple as something that counts the number of lines in a project), and write it in C++.

I wish I could tell you that I have an awesome resource that shows you every C++ trick in the book, but truth be told, you are that resource.

Practice. Learn from your own mistakes. You are your best teacher.

Stargazer712
And how does that advice differ from the site linked to in the question, which does exactly that, only it has already picked a set of examples which, presumably, were considered good for learning a language?
sbi
@sbi - As you mentioned in your answer, you are still learning new stuff every week. Is there a single site teaching you that stuff, or are you learning it because *you* want to learn it? Your post exemplifies my point -- you are your best teacher.
Stargazer712
@Stargazer712: Nowadays I mostly learn through discussions and other people's answers in places like SO.
sbi
+5  A: 
sbi
+1 for C++ FAQ, which is a great refresher list of gotchas.
Brian
C++ is complex, yes, but why should "regular" C++ programmers be versed in e.g. template metaprogramming? Can you point out an example where template metaprogramming enables the developers to do something which is not possible by other means?For regular application development, one does not need to know the entirety of C++ standard. It is enough to know the pitfalls of the language (which, in itself, is quite a lot to fathom), and the current basic libraries used for the project.
Schedler
@Schedler: "Can you point out an example where template metaprogramming enables [...] to do something which is not possible by other means?" Executing algorithms at compile-time means that, if doesn't fail on the developer's machine, it won't fails on the customer's either. If you're making an app that's to be installed on several million different desktop machines, this can hardly be valued high enough and is worth almost any effort. Of course, this still doesn't mean everybody has to be able to do TMP. But if you're treating C++ as just an OO language, you're missing lot. C++ is a...
sbi
...multi-paradigm language and shines brightest where you mix the paradigms. (FWIW, you probably do this everyday when you store polymorphic classes in STL containers.)
sbi
Don't get me wrong, I know the complexity of C++ but when you don't use for a long time this languague you kinda lose the "C++ reasoning", that's why I was asking for specific examples. Anyway really good answer, I'll look into those books.
dierre
OMG, less than an unprofessional, anyway, it's never toooo late to learn and keep improving bit by bit
ladyfafa