Programming: Principles and Practice Using C++ (2nd Edition)
E**N
In-Depth Coverage from the Creator of C++
I am a software engineer with ~16 years experience, mostly in Java and C#, with a little C++ early on, and I have recently been getting back into doing more C++. However, I've struggled a bit lately because C++ is a much thornier language than Java and C#, and it has also moved on from that it used to be.The consensus of the online reviews seemed to be that people with experience in other mainstream languages can just jump straight into one of Stroustrup's more advanced C++ books. That turned out to be poor advice. So, I swallowed my pride and started (re)learning C++ from the ground up with this book. Although it is true that I already knew a fair amount of the subject material—especially in the earlier chapters (e.g. what functions/methods, classes, and templates are)—it's also true that this book has taught me many small but critically important things specific to modern C++ that have filled in holes in my knowledge that were holding me back.This book is a true tutorial format. It has careful, clear, and well-thought-out explanations of all subject material. That coverage is cemented with drills and exercises. During the course of experimenting with the drills and exercises, I discovered and fixed many basic holes in my knowledge that I hadn't even known I had.So, even though this book is accessible to a first-time student of programming, if you're coming into C++ from another language, I would still recommend it. You may end up skimming some of the content, but you'll also be surprised at how much extra knowledge you need before you can be proficient in C++. Until you gain this knowledge, many of the drills and exercises in this book will stop you in your tracks where you thought you were going to breeze right through.
J**T
This book isn’t for everybody, but not everybody is meant to be a programmer.
Don’t listen to the reviews that say “not for beginners”. Yes, there are parts of this book that seem impossible to get through if you’re the type who wants be spoon fed the solution to a problem. If you just want a book that will show you a bunch of code examples and problems with easy solutions, and doesn’t actually teach you how to program (in other words, you want to learn a programming language but don’t actually want to learn how to program), this book is not for you. There are tons of “learn <insert programming language> in 1 hour” type books that you would be better served by. But if, on the other hand, you want to learn, you actually take in the advice presented in this book, put in the work, and are the type of person who enjoys solving real world problems and are able to independently do some research when you get stuck (in other words, if you have what it takes to be a programmer), then this book is exactly for you.There are a few chapters where you will have to go out of your way to get the code to work, such as the graphics chapters. You will have to figure out how to get a framework called FLTK installed and working in order to work through those chapters. It won’t be easy and this book will not hand you the answer to that issue. It will guide you and lead you in the right direction, but it won’t hold your hand. But if you can’t handle that “inconvenience”, you’re never going to be able to handle being a programmer, and you should probably just return the book. That part of the book took me months to figure out but it made me a better programmer (which is this book’s primary goal).To quote a paragraph from the beginning of this book:“This is not the easiest book on beginning programming; it is not meant to be. I just aim for it to be the easiest book from which you can learn the basics of real-world programming. That’s quite an ambitious goal because much modern software relies on techniques considered advanced just a few years ago.“I don’t think one person who gave this book a bad review bothered to read that paragraph.This is the only book I know of that will start you on the road to real world programming, and if that’s your goal, buy it. You won’t be sorry. This book isn’t for everybody, but not everybody is meant to be a programmer.
G**S
Why wouldn't you get the book from the creator?
I've been wanting to get into programming for a while with the goal of making games. I started off getting Learn C++ Through Game Programming, I think it was called, and I didn't feel that book did a good job of helping me get down the fundamentals of programming. There weren't many exercises and it was too short in general. I sometimes obsess over Amazon reviews and was uncertain whether to buy this book or not after reading some of them, but decided to go for it anyway and it was absolutely the right decision. Stroustrup does a wonderful job of presenting programming concepts and giving good exercises to make you practice using them. I also appreciate that he has a subtle, tasteful sense of humor throughout making learning the language more light-hearted!I don't think it's perfect though. I would've liked to see more on how to handle errors without ending the program entirely. Also, chapter 6 is an insane spike in difficulty and I almost gave up while reading it. Don't quit, fellows! Persevere and ye shall be rewarded. Even if you don't fully understand or think you could write the program in that chapter, the difficulty eases up in the following chapters and will aid your understanding. Lastly, and this is the reason I took off a star, the chapter on graphics seems outdated. I got nowhere with it because I couldn't figure out how to install FLTK. I admit I could've spent more time trying but after hours of researching and attempting to get it to work, I decided to buy a dedicated, more modern book on graphics (which I haven't received yet and can't comment on). Thus, chapters 12 - 16 are wasted paper for me. YMMV.Overall though I wish I'd just started with this book. This is how things should be taught, with concepts and lots of exercises to make you use those concepts. The concepts are taught concisely with no extraneous talk. He doesn't hold your hand and I had to look up some things along the way to help but I think that's a good thing. The author created C++ so it only makes sense that he would write a solid book on how to use it.
TrustPilot
2 周前
2 个月前