Mike's Recommended Books on Programming Languages

Here are some of the books which I've found useful or interesting.

  • How Not to Program in C++
    Steve Oualline, No Starch Press, 2003.

    Looking for a good present for someone who enjoys debugging? Or just looking to improve your debugging skills? Oualline's book is a combination of debugging puzzles and computer anecodotes. Puzzles range from the trivial (missed initialization, missing close comment), through to the more difficult (race conditions, compiler optimization induced failures). Each puzzle comes with hints and answers. However, you really have to work through each chapter in sequence as each puzzle (and each joke) tends to build upon what has gone before.

    The problems, of course, have to be a lot simpler than many of those we encounter in the real world. Think of this as something along the lines of a Five Minute Mysteries for programmers rather than a Warren Commission Report. An ideal book to read in your smallest room!

    Other Reviews

  • The Best Software Writing I
    Spolsky, Joel (Editor), Apress, 2005.

    There's a lot of good writing in blogs on the web. Unfortunately there is a lot of dross and trivia out there too. Who has time to find the good stuff?

    The answer, fortunately for us, appears to be Joel Spolsky. This book contains selected essays (mostly taken from blogs) on the human side of software development. There are well-written essays on such topics as management, recruitment, testing, compensation, user interfaces, etc. Included are some excellent insights into why organizations do what they do, and why things are they way that they are.

    Joel Spolsky is an excellent writer — indeed, I was surprised not to find one of his own essays in the book. However, if this book has a weakness it is that Spolsky's editorial introductions and footnotes (while very interesting) sometimes overwhelm the essays themselves.

    Sometimes it feels that there isn't any intelligent life out there on the web. This book is a useful reminder that there is intelligent life out there: it's just very hard to find.

    Other Reviews

  • The C++ Standard Template Library
    Nicolai M. Josuttis, Addison-Wesley, 1999.

    If you haven't been tracking the evolution of the C++ language closely, you may have missed out on the development of templates and the introduction of the Standard Template Library (STL). With these tools you can finally program at a high level of abstraction, and C++ can finally be considered a high level language.

    Josuttis provides an excellent guide to both the philosophy and usage of the C++ Standard Template Library (STL). I never really understood the full capabilities of the library (or why it was designed the way it was) until I read this book. It gives good examples of almost every usage, enough background to understand the reasoning behind the design of the library, and organizes the material very well for instant reference. It's my preferred reference for the standard template library: I use it frequently.

    Other Reviews

  • The C++ Programming Language
    Bjarne Stroustrup, Addison-Wesley, 1997.

    Stroustrup has a slight advantage over other writers on C++: as the originator of the language he can not only tell you what the language is, he can tell you why it is. In addition he is a good technical writer, with plenty of clear explanations, and a comprehensive index. This isn't quite as well written as the second edition (co-authored with Margaret Ellis), but due to changes in the C++ language this is the edition you need to own.

    The coverage of the Standard Template Library (STL) is good, although nowhere near as good as the coverage in Josuttis. It also omits Locales, although you can download the missing Appendix D covering locales as well as an Appendix E covering STL exception handling from the author's web site.

    Other Reviews

  • Effective C++ (Second Edition)
    Scott Meyers, Addison-Wesley, 1998.

    This is a book all professional C++ programmers should read — even if it does give them the answers to some of my favorite C++ interview questions. Meyers provides 50 bullet points for writing better C++ programs. This isn't normally a format I like (too much like 10 ways to start losing weight now), but these are surprisingly good points. It contains some good material on C usages which should not be promulgated into C++, as well as the answer to the question When must you use a virtual destructor? which trips up far too many interview candidates.

    Other Reviews

  • More Effective C++
    Scott Meyers, Addison-Wesley, 1996.

    Normally I'm not in favor of sequels. Nor books of lists. But More Effective C++ contains 35 good additional points. This book is more concerned with useful techniques than style or coding rules. I find it particularly helpful in designing classes which prevented naive forms of bad usage. There's good sections here on smart pointers, the correct usage of multiple inheritance, and general good object-oriented abstraction. I especially liked the explanation of how to write a class which can distinguish between its use as an lvalue (left hand side of an assignment) and an rvalue (right hand side of assignment, etc.)

    Other Reviews

  • CodeNotes for C#
    Grebory Brill (Ed), Random House, 2002.

    I needed a book which would tell me enough about C# to know whether it was worth learning more, but didn't treat me as an idiot. This book proved to be it.

    This is an introduction to the language (and runtime) designed for a C++, Visual Basic, or Java programmer. It explains the key concepts at a reasonable level of detail (not too high, not too low).

    This book isn't a reference. It is not a complete description of the language, not is it intended as one. You'll probably therefore read it once, then refer back to it a few times before moving on to a more comprehensive tome.

    Other Reviews

Note

If any of the book links take you to the wrong country (or continent) try using Albion BookLink to choose your preferred destination.

Michael Z. Bell

[Other Recommended Books]


© Albion Research Ltd. 2010