Ask HN: Best way to learn 'modern' C++?
I have experience with a bunch of 'higher level' languages (Erlang, Elixir, Ruby, JS, PHP, Clojure) but haven't used C or Java in any non-trivial way. What's the best way to learn C++ in a pragmatic way today?
I'm looking for something hands on (either a book or online).
I particularly like Pragprog's approach to learning, but can only find one book 'Modern C++ Programming with Test-Driven Development' - this seems more about TDD than C++ though.
FWIW I'm interested in learning C++ for use with the JUCE framework, in relation to building audio software and VST plugins
7 comments
[ 0.20 ms ] story [ 30.1 ms ] threadWhat I really miss is some kind of partner to learn together with, that would be awesome and we could have a lot of good discussions.
-Programming Principles and Practice using C++ 2nd edition (by Bjarne Stroustrup). This covers everything, although is a bit dry at times.
-Effective C++ (by Scott Meyers). A bit "outdated" from a language standpoint, but many of the techniques still apply and also, not every C++ codebase is using the latest and greatest anyway.
-Effective Modern C++ (by Scott Meyers). A new set of "best practices" for a more modern C++ environment
I haven't found many good resources for JUCE other than reading through the JUCE forums, the project doc (often lacking), and reading examples. What is often helpful is to first understand C++ a bit, then learn the audio specific code and underlying DSP principles in a C++ context. Then it shouldn't be too hard to transition to JUCE on your own. The best books I know for this are:
-Designing Software Synthesizer Plug-Ins in C++ (by Will Pirkle)
-Designing Audio Effect Plug-Ins in C++ (again by Will Pirkle)
Also I've found some of the talks from JUCE Summit to be quite insightful.