Ask HN: What are relevant books as of C++20?
9 points by thewavelength 4 years ago | 4 commentsIs this still true for somebody who wants to learn C++ in depth in 2021? I have plenty of experience using C and C++ over the years, nevertheless my coding in C++ still feels like doing C with classes and some STL containers like 2005. I want to progress from this state.
Are the books of Scott Meyers still the ones I should read now? If not, what are the new 'standard' books I should read?
- stefanos82 4 years agoIn my humble opinion, any C++ developer wants to call him or her self a professional must read his books...all of them!
So, to recap, here are the names of C++ specialists you need to read their books and / or articles they publish:
If you just want to revise your C++ knowledge and bring it up to date, just read the following repo and you are good to go https://github.com/AnthonyCalandra/modern-cpp-features* Bjarne Stroustrup of course * Andrei Alexandrescu * Scott Meyers * Herb Sutter * Jason Turner (His YouTube channel is a must; too many goodies in it!) * Nicolai Josuttis * John Lakos
- d26900 4 years agoGreat recommendations!
Here's an HN-based book recommendation list for C++:
https://hackernewsbooks.com/topics/learning-c%2B%2B-programm...
"All links to Amazon, Safaribooks and O'Reilly get extracted once a week from Hacker News posts. We then rank the links based on how often they are mentioned and the karma of the user on Hacker News. So books mentioned several times by different people having high karma tend to rise to the top."
Reference:
- stonemetal 4 years agoHas Andrei been keeping up with C++? Most of the time I hear about him recently is in context of him being a core D member.
- d26900 4 years ago
- d26900 4 years ago> "... my coding in C++ still feels like doing C with classes and some STL containers like 2005. I want to progress from this state. ..."
What's wrong with these?:
- C++: The Core Language by Gregory Satir and Doug Brown
- https://github.com/QuantumLeaps/OOP-in-C
- C++ Concurrency in Action
- C++ Templates the Complete Guide 2e
The first is particularly geared towards C programmers, and I prefer the second one to "Inside the C++ Object Model". (There's also another popular book by a German author who covers OOP in C.)
For the time being, I will be an "opportunist" who is waiting for the right time to switch to another language - Rust:
"To me using C++ means you are ready to give up a lot of time and energy in order to gain a complete control over certain aspects of your program. I was very much into that at the start of my career and gradually started drifting away to more immediate productivity while reserving the right to poke under the hood when necessary. This has led me to Rust and I find it to be the better natively compiled strongly & statically typed language, but YMMV of course."[1]
(No, the concepts I learn in C++11 and beyond won't go into waste even when C++ becomes less and less relevant in a couple of decades.)
According to Stroustrup himself[2], you should know 5 different kinds of programming languages. So for me it's:
- Systems programming: C (has a special place in my heart)
- General purpose: C++ (will switch over to Rust when the time is ripe)
- Scripting: Python
- JVM: Scala
I think with these, you are well-equipped for the "future".
Also, specialization has its benefits[3], that's why I am not "language hopping" constantly. I am "conservative" (C++) until I feel I that the time is right for me to be a "liberal" (Rust).
References:
[1] https://news.ycombinator.com/item?id=24805717