Sunday, February 01, 2009

Programming: Principles and Practice Using C++

I’ve been lucky enough to be contacted by Pearson Education (Addison-Wesley) and given a review copy of Bjarne Stroustrup’s latest book titled Programming: Principles and Practice Using C++. In the past few days, I’ve been reading this book of considerable size chock full of knowledge poured out directly by the creator of C++ himself.

If you haven’t read a book by Bjarne yet be prepared to be treated to well-thought out examples and a very expressive presentation of concepts and techniques. The book is an easy read especially if you’re new to programming and want to really learn how to think like a programmer. The overall presentation approach that the book takes is very light and the exercises are aimed definitely for the novice.

Advanced developers will definitely gain lots of insights into how Bjarne thinks about programming—and how potentially you can present programming to novices. If you’re working in a team with junior developers, this book is a great addition to the library. If you’re a teacher teaching introduction to programming, this is a great reference and textbook because you get to teach/learn programming with a considerably powerful real world programming language.

The 27 chapters of the book are broken down into four logical parts. The first part is aimed at developers looking to pick up programming from the ground up dealing with foundational issues like variables, classes, functions, and programs in general. The second part is aimed at dealing with real-world issues dealing with input and output and how you can deal with the data using various constructs provided by the C++ language and libraries (like the Standard Template Library). The third part deals more specifically with issues of working with the Standard Template Library in greater detail particularly with the data structures and algorithms. Part four is a survey of the kinds of things you’ll be encountering when you go into professional programming—as well as one chapter on the relationship between C and C++.

I particularly like the way Bjarne adresses the reader as an active participant in the learning process. He puts in as much detail as he can without belaboring a point too much. His examples are interesting and representative of the kinds of challenges programmers will be facing in the real world but not too complex to be a hindrance to the learning.

This is the book I wish I read while I was in college studying computer science—and this is a book I will really recommend to educators and students alike looking for a good foundation book on programming and C++. If you’re thinking of learning C++ from scratch, invest in this book and I guarantee you will not be disappointed. If you’re a freshman or sophomore in college looking to a career in programming after college, pick up this book and I assure you that you will learn many gems from this book.

I definitely think the industry is in need of a good book on the “how-to” of programming using a powerful real world language—and Programming: Principles and Practice Using C++ can definitely be that book.

5 comments:

Joaquín M López Muñoz said...

Lucky you! What does one have to do to be contacted as a reviewer?

weima said...

Hi,
Congrats.... when will the book be out? i am waiting for a long time for this book..

btw how does it compare to SICP ?

regards,

Dean Michael said...

Hi Joaquin, thanks -- I really do feel lucky. I think it helps a lot that I blog about C++ almost exclusively with a good enough audience following the blog. :)

To weima, I haven't read SICP yet in full to be able to tell -- however I think SICP introduces programming through Scheme and therefore the approach to problem solving is different compared to when solving problems with C++. I believe the book is already available from Amazon -- please check the link for more information.

Franko said...
This post has been removed by a blog administrator.
mrt181 said...

Will there be a pdf ebook. I hate those big blocks of dead tree, they have no search function.