Before the end of spring semester, I purchased this book on learning C++, Accelerated C++. From what the authors have stated, this book teaches C++ using “advanced” library methods from the start, as opposed to teaching the logical progression of operators, built-in functions, and thereby essentially how to write your own library methods. Which is great.
Long story short, I have written some games and some applications in C++ before — but very poorly. They were very procedural and very inane. I had once learned some of Win32 and OpenGL libraries.
This book functions as a C++ primer, but using the C++ “standard library” to instruct. C++ was created beyond the C language because it allowed for users to create classes and methods — and effectively encapsulate specific ideas and functions for later use(and use by others). The authors are critical of many “Learn C++” books which still essentially teach C to newbies—that is, these other books teach readers a logical progression of operators, built-in statements and functions, to the end of writing their own classes and methods, or essentially libraries.
This book instead seeks to instruct a newbie to use a library, and in so doing more effectively instruct a newbie how to create their own library. I believe this will be effective for me—because when I first sought to learn C++ from a background of Perl, a spaghetti and procedural language, I didn’t understand the immense power of classes and methods(object-oriented programming), and in books’ exercises on writing my own classes, I recall, I never really grasped that power, because the classes taught in a novice book for a novice to write simply will not be as useful(and complex) and clearly illustrative of the power of OOP as the standard library is already proving to be in this book.
So, to reiterate,(necessary because I never outline my blog posts and therefore always think of more concise sentences only after writing egregiously bad sentences at the beginning of a post) other books teach one how to write novice-difficulty classes and methods which do not illustrate the utility of object-oriented programming, thereby doing a disservice to the learner. This book uses the powerful standard library to teach the novice, and s/he will be able to use libraries as most C++ programmers do most of the time(rather than write their own libraries), and also hopefully learn to design classes and methods through osmosis?
Anyway, having read 4 chapters of this book, I absolutely recommend it to anyone learning C++, as I am.
Future posts regarding this book will speak to the substantive topics(syntax, etc) I am learning, albeit not as wholly as my Python blog posts, however. I will be brief-er and only speak to interesting ideas in the book (interesting to me), and not the entirety of everything covered in book.
/s/ Patrick