7 ms·
On Writing a C++ Book
- ausjke 7y agois this out? No Starch still shows "early access" and "be ready in September", amazon showed it will be released on September 10, 2019. The TOC looks good to me. I hope it has a sample chapter.
- 01100011 7y agoI'd love to see a preview. At 792 pages, this seems rather long for a crash course.
- dustfinger 7y ago>I’m also beyond elated that it’s getting published I took that to mean that it is now in the process of being published.
- jalospinoso 7y agoYes! Going through production/printing rites now. No firm date yet, I'm guessing low numbers of weeks.
- flipper65 7y agoI was able to order and download the beta ebook from No Starch this morning by following the link on his site.
- lone_haxx0r 7y agoInteresting that the author didn't include C++ Primer in his list of favorites. It's not perfect, but I think its latest edition (C++11) is a pretty good way to learn C++ currently.
- copperx 7y agoDo you mean A Tour of C++? That's an excellent introduction by Bjarne himself, but does not talk about some things such as the Boost library.
- mlvljr 7y agoI think what is meant is Lippman's book.
- muterad_murilax 7y agoOP is clearly talking about Stanley B. Lippman's book C++ Primer (Fifth Edition).
- dgellow 7y agoA tour of C++, by B. Stroustrup. Short (~250pages) and accessible introduction to the language and libraries. The second edition has been updated for C++17 and some parts of C++20. Amazon link: https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832 https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0... C++ Primer, by Stanley B. Lippman, Josée Lajoie, and arbara E. Moo. Really huge book, 970+ pages. Covers almost everything from the language, updated for C++11. I wouldn't use it as a beginner though. Amazon link: https://www.amazon.com/C-Primer-Stanley-B-Lippman-ebook-dp-B0091I7FEQ/dp/B0091I7FEQ https://www.amazon.com/C-Primer-Stanley-B-Lippman-ebook-dp-B... The first one is really nice introduction, I picked it up a few months ago to learn the language. Quick read, simple to follow, I really enjoy this book. The second one works as a reference as it goes way more in details and covers a massive amount of stuff!
- reflexer 7y agoPrimer is a really dry reference. It was too boring for me to read it in order. Too many details on not very fun topics from the beginning.
- saagarjha 7y ago> C++ has a daunting reputation because its fundamental elements nest so tightly together Do they? I tend to find that C++’s features are often quite disjoint, which means that you can pick-and-choose which bits you want to use but the language isn’t quite designed like a coherent whole as some other languages are.
- pjmlp 7y agoAny language that grows big has that problem. My favourite example is Python, I started using it with version 1.6 and even though I only use it for small scripting tasks, always followed each release since then. It might appeal to beginners, but underneath lies a language as powerful as C++, where even the most savy will fail to remember what changed between minor releases.
- dgellow 7y ago> Any language that grows big has that problem. I'm also quite sure that we will see similar issues with other languages in the coming decades, with new paradigms becoming popular and existing languages trying to retrofit those in their design. C++ is one of the oldest and biggest (in term of usage) language that is still used for new projects and evolving, the competition is one or two decades younger, they still have plenty of time to evolve into monsters.
- pjmlp 7y agoHave you ever tried to answer C, Python, Perl, Java, C#, F#, VB.NET, OCaml, Haskell, JavaScript Quiz Pub questions? Many think that they know what they are using, but never bothered to actually read the language reference manual.
- shaklee3 7y agoAs much as a like python, it is not as powerful as c++. Hence the reason you have to use cython/cpython to improve performance.
- 7y ago
- timClicks 7y agoWow, well done! Will pick this up once Rust in Action is finished. "It took twice as long to write half of what I proposed. I began writing a projects-based C++ book with a short introduction to the language." Well done for pushing through. It's really easy to become totally discouraged.
- bayesian_horse 7y agoSounds promising. I used C++ somewhat, almost 20 years ago, before discovering Python, but I never got very good at it. Over the years I wanted to strengthen my C++ skills, but I never found quite the right material or avenue. Most books/tutorials are too basic for me, others already assume a certain familiarity with C or C++. Maybe this book is better...
- satysin 7y agoC++ isn't my favourite language but it does have a special place in my heart. It wasn't the first programming language I learnt (that was Visual Basic) but it was the first language I did something serious with that was used by other people. It has been a few years since I did any C++. I looked into it when C++11 came out and it was very much like a new language with foundations of the old language I both loved and hated. Since then I haven't had a need to use it. However I have a few little side projects I want to work on and C++ would be a fine choice for most of them so perhaps I will sit down sometime and get myself acquainted with the newer standards. Side note: I was gifted a copy of Professional C++ by Gregoire a few months ago so if anyone reading this has read the 4th edition it would be nice to know if this is a good book to get myself up to speed again or if I should look elsewhere :)
- tasubotadas 7y agoDid I miss or there isn't a section that covers modern build systems? I would have loved to get an intro to that.
- dgellow 7y agoSame here, I would really like to read a good write-up on this topic. I started to write blog articles on CMake a few months ago while learning to use it but never published them as they became way too huge and messy. I would be definitely interested in an equivalent of "A tour of C++" but for modern-ish build systems, by someone with better writing skills than I have :-)
- reacharavindh 7y agoI was also thinking the same thing after glancing at the table of contents. I remember working with C++ while studying at grad school with instructions by two professors who quite loved the language. Even though I enjoyed the language and its STL very much, the mess of its build system and linking to other libraries is what comes to my mind whenever I think about C++. This is exactly why I never touched it again. Cargo does a fantastic job for Rust in this regard. Rust won me over.
- tasubotadas 7y ago>Cargo does a fantastic job for Rust in this regard. Rust won me over. Cargo - that's exactly what I would love to have in C++. Probably there is something that I am just not aware of as I do not do a professional cpp development.
- chengiz 7y agoWhat does that have to do with C++?
- aktenlage 7y agoIsn't that obvious? Those who do serious C++ development typically need a good build system.
- zerr 7y agoWhat would be the modern (14/17/20) C++ as the first language book nowadays?
- reflexer 7y agoUse python.
- tdsamardzhiev 7y agoUse whatever floats your boat.
- dgellow 7y agoI'm not sure I understand your question, but if you are asking for a first book to learn the language, adapted to modern C++, then "A tour of C++" by Bjarne Stroustrup (initial creator of the language) is a really good one: http://www.stroustrup.com/tour2.html http://www.stroustrup.com/tour2.html. It's relatively short (~250 pages) and simple to start with. And the second edition is updated to C++17, and covers a bit of C++20.
- SloopJon 7y agoEveryone has a different path, but frankly, I wouldn't recommend C++ as a first programming language. It's much easier to comprehend if you have some background in another language. My three favorite C++ books are C++ Common Knowledge, Modern Effective C++, and Effective C++. Two of those predate C++11, but most of the advice is still applicable. As for introductory texts, I guess there's: Accelerated C++, C++ Primer, Discovering Modern C++, A Tour of C++, and of course C++ Crash Course (the book under discussion). I wouldn't get too hung up on "modern" C++. The vast majority of C++ programmers learned the old stuff (the vast majority of which is still valid), then caught up on the new stuff with Effective Modern C++, blog posts, etc. Just as it's useful to know C before you learn C++, it's useful to know old C++ before you learn modern C++.
- criddell 7y ago> Just as it's useful to know C before you learn C++, it's useful to know old C++ before you learn modern C++. There are definitely varying opinions on this. If you look for C++ courses for beginners they mostly do not start with C these days. I'd be surprised if any courses currently being taught don't start with lots of std library stuff (especially vector, string, map, etc...).
- rememberlenny 7y agoAs a dabbler in hardware and edge deployed machine learning models, this is exactly what I’ve been looking for.
- filereaper 7y agoOnce you've become familiar with the basics of the language, I highly recommend taking a look at C++ Core Guidelines https://github.com/isocpp/CppCoreGuidelines https://github.com/isocpp/CppCoreGuidelines
- la_barba 7y agoWhich version of the C++ standard is this book targeting? Also, any links to reviews?