C++ for Snowflakes
September 23, 2014 9:24 AM

I'm looking to get good at C++ fast. I have a math phd and many years of experience with collaborative python development (including just a small touch of cython), but now need to start coding in C++. What are some good resources to get me where I'm going?
posted by kaibutsu to Technology (12 answers total) 29 users marked this as a favorite
Accelerated C++ is usually recommended to people with prior programming experience. It jumps right into the STL instead of making you spend a long time on lame stuff like operator precedence.
posted by rouftop at 9:34 AM on September 23, 2014


The Effective C++ books by Scott Meyers are useful. They focus on common gotchas and best practices rather than just syntax.

The next edition of those books is in prerelease from O'Reilly and covers the new C++11 features, which are definitely worth learning - there are a lot of new idioms, new smart pointer types, etc which really improve the experience of using the language.
posted by introcosm at 9:37 AM on September 23, 2014


I've been uisng this to work in OpenFrameworks. http://www.learncpp.com/
posted by edbles at 9:44 AM on September 23, 2014


Pluralsight has some great C++ courses and is cheaper than buying a textbook a month.
posted by blue_beetle at 9:56 AM on September 23, 2014


C++ Primer comes well recommended (not C++ Primer Plus. This is a completely different book and doesn't really teach modern C++ programming. It's more of a C with classes approach).
posted by It's Never Lurgi at 10:14 AM on September 23, 2014


You may eventually end up with a copy of Stroustrup's The C++ Programming Language (make sure you get the 4th edition, as 3rd is very very out of date). It's dense and not a book for just reading and learning the language, but at some point you'll end up with questions about some fine detail of the language. Many of those you can answer by looking online. Eventually you'll find some that have online answers of wildly varying content and quality and will resort to the book.

(After one year of working in C++, go buy a copy of the Design & Evolution book. Read it and finally understand why the language is the way it is, see how the sausage got made, and become enlightened.)
posted by introp at 12:43 PM on September 23, 2014


C++14 or C++03 ? It matters, because the language has changed significantly (for the better) & what used to be idiomatic C++ really isn't any more.

Accelerated C++ is the best "learn C++" book out there right now, as there really isn't anything for C++14 yet, but if you are working on a C++11/14 codebase then you will want to learn about the new idioms - you could do worse than trawl through Herb Sutter's blog.

NB. Looks like Bjarne has a book out: A Tour of C++ that might be worth a look.

(Maybe I should write something, as I'm between jobs at the moment :) )
posted by pharm at 1:56 PM on September 23, 2014


I would strongly recommend against C++ Primer. I hated it. An experienced programmer doesn't need a thousand page book to learn C++. C++ in a Nutshell is worth looking at if it's been updated. Also seconding the Effective C++ books.
posted by monotreme at 3:57 PM on September 23, 2014


Another vote for Effective C++ here. One great thing about it is that many of its items apply to other languages too. I'd estimate there's about 2/3 overlap between it and Effective Java (which is also excellent, while being written by a totally different and competent author).
posted by A dead Quaker at 4:09 PM on September 23, 2014


Effective C++ is one of my most favorite programming books ever but it's hardly an introduction to C++, which is what I assumed was wanted. It's much more of a "You know how to program C++, now here's how to do it right".

Accelerated C++ was a great book once, but it's 14 years out of date and the language it talks about is completely different from the one that exists today.
posted by It's Never Lurgi at 4:55 PM on September 23, 2014


Accelerated C++ was a great book once, but it's 14 years out of date and the language it talks about is completely different from the one that exists today.

Yup. Trouble is there isn't really a good replacement for C++ as it is today, at least not that I'm aware of - I'd love to know if there is one, because I seem to get asked this question fairly often.
posted by pharm at 2:35 AM on September 24, 2014


I used to work primarily in C++. Stroustrup's C++ book is an amazing reference, and was certainly useful on occasion, but is probably not a good book to learn from. If you already know how to program I also highly recommend all the Effective C++ books by Scott Meyer's. They are really great. Effective STL is also good. It's good best practices stuff. Sadly I can't recommend an actual tutorial book for C++, but I think these books will be more useful. Learning the syntax and what have you is probably easily done via online tutorials and looking at existing code.
posted by chunking express at 9:35 PM on September 27, 2014


« Older Configuring additional Google Voice account (or...   |   Help my depressed mom has bed bugs and I am out... Newer »
This thread is closed to new comments.