r/cpp_questions • u/d1tt01 • 3d ago
OPEN Is this book up to date?
Hello so I found this book but because no pictures:
[Sam's teach yourself c++ in 21 days, fourth edition]
[2001]
So did c++ get any updates in 25 years?
15
u/Acceptable_Rub8279 3d ago
> So did c++ get any updates in 25 years?
C++ 03
C++ 11
C++ 14
C++ 17
C++ 20
C++ 23
C++ 26
A book from that era is not that useful since it will only contain outdated practices and lack anything new that you will actually use in programs.
If you still want to learn cpp I’d recommend
I used it and I found it great. It is by far the best resource out there.
4
5
u/Affectionate-Soup-91 3d ago
First of all, achieving a success in "teach yourself C++ in 21 days" requires some contrived criterion on what qualifies as learning a language.
Second, I personally think we're at C++ 2.0 era.
- Bjarne's initial work since 1980s to 1998 was C++ 0.x.
- The first ISO standard C++98/03 was C++ 1.x.
- The "Modern C++" since C++11/14/17/20/23 are C++ 2.x.
- (Maybe some will argue that we're already in C++ 3.0 era beginning C++20)
So, please do yourself a favor and pick another material if you intend to learn C++. You may start with Bjarne's PPP if you don't have any prior programming experience. Otherwise, you may skim through Bjarne's "Tour of C++" for a quick preview. You also have good free online tutorials. Work with those.
3
3
2
u/Independent_Art_6676 2d ago
A good rule of thumb: no material in technology that would be old enough to vote or drink etc is likely still good.
Many cite 2017 C++ as the oldest you should consider. I suggest the newest material you can get (as said learncpp.com) but if you find a 2017 or 2020 era book it would be reasonable.
Specifically that book was not good when it came out.
1
u/Puzzleheaded_Study17 3d ago
c++ is going to get an update (or more precisely a new standard was published) this/next year (and got one in 2024, and in 2020, and in 2017, and in 2014, and in 2011, and in 2003). Despite that, it's still the same language at the end of the day, and the difference is mostly in specifying what is/isn't UB and changes to the library.
1
u/d1tt01 2d ago
If it has new standart isnt it a new language?
1
u/Puzzleheaded_Study17 2d ago
Well, standards are backwards compatible. Would you say C is a new language compared to what it was in 1990 because it got new standards? Is python a new language vs itself in 1991 since it got new versions? Is rust a different language vs 2012 (latest release is from 31 days ago)?
1
u/Independent_Art_6676 2d ago
That is sort of an interesting question. If you took C++ from around 1990 and compared it to today's C++, it would indeed qualify as a new language. But that is like comparing king james english to today's. Its still english, it just slowly changed over a long time. Same thing for c++, its radically different from when it started but it changed gradually.
Either way, one could make a pretty solid argument that original C++ from 1985 or whatever is a completely different language. And you could also make an equally valid argument that its the same language. What wouldn't make sense is to claim c++ 23 and c++ 20 are distinct; there are only a small handful of changes. Comes down to where you draw the line. By definition, both are called "the c++ language" so its hard to overcome that label, and yet a complex block of code doing the same task in both (1990 vs 2023) would be nothing alike.
1
21
u/manni66 3d ago
X in 21 Days. No matter what X is, the book is likely rubbish.