The creator of the C++ programming language brings us a new textbook in programming principles that could well become a classic tome.
The book's cover
For anyone with a modicum of programming experience, the name Bjarne Stroustrup should be familiar. He developed the C++ programming language way back in the late 1970s/early 1980s. He is also author of the classic C++ tome The C++ programming language. With such a pedigree you would expect his new book, on the principles and practices of programming, to be more focussed on doing things the C++ way and it is. However, this works in the book's favour.
I have to admit that when I first picked this book up, I expected it to be perhaps more akin to "Practices of programming with C++" than the promised focus on programming with the language being secondary but Stroustrup pulls off his promise admirably. Concentrating on one language, and one which the author knows so well, frees the reader from wading through the differences of language syntax and helps them concentrate on the principles and good practice being demonstrated. When you also consider that this book is aimed at students of programming, and is designed and tested as a textbook to accompany their studies, you get a better idea of why this approach works so well for this book.
This book teaches good programming in a way which I have rarely seen in other books
Programming is a creative art; as it is an art form designed to be read by other artists/coders (particularly in the context of free software), it is important that such creation follows uniform practices and principles. This book not only teaches good programming, but does so in a way which I have rarely seen in other books aimed at those early on in their programming career.
The book is a fair-size doorstop at just under 1300 pages, but the layout is clear and easy to follow. The writing style is familiar yet informative and was reminiscent of the better tutors I have encountered in my own education (albeit some time ago now). Briefly put, it made learning the subject interesting and mad me want to keep reading.
Beginning with the classic "hello world!" program, each chapter of the book includes well laid-out instruction and description of the principles at hand along with practical exercises and tests. The book not only covers practical topics such as objects and classes but also looks at principles such as considerations to be made before putting hand to keyboard. The structure is reasonably non-standard, with chapters on input/output coming later in the book than would normally be expected but in the context of programming principles rather than teaching a language this works.
Who's this book for?
The book describes itself as aiming at students of programming and has been tested as a textbook in such an environment. Obviously I could not test it in that environment, but I think it would be a useful addition to any computer science student's library. As a coder experienced in a few languages but -- for some reason -- never really including C++, I found the book one of the better programming books I have read.
Relevance to free software
C++ is a language used in a great many free software products, but this book is not really about learning the language. With its focus on good practice and the principles of coding, this book teaches some invaluable lessons to those writing free software. It may not deal with all the issues involved -- such a collaborative working -- but in terms of writing good code it could prove to be a key tome.
Well laid out, useful structure and keeps its focus on practices and principles throughout. Particularly suited to those at the early stages of their coding life.
Perhaps not best suited at seasoned coders who are a little set in their ways but to be honest I doubt that audience would be browsing for such a book anyway.
Title | Programming: Principles and Practice Using C++
Author | Bjarne Stroustrup
Publisher | Addison-Wesley
ISBN | 0321543726
Year | 2008
Pages | 1272
CD included | No
FS Oriented | 4
Overall score | 8
A well written and conceived programming textbook which could well become a classic for programming students.
Ryan Cartwright heads up Equitas IT Solutions who offer fair, quality and free software based solutions to the voluntary and community (non-profit) and SME sectors in the UK. He is a long-term free software user, developer and advocate. You can find him on Twitter and Identi.ca.