Great Books!

The following is a list of books that we have come across which we feel are excellent sources for software design and development. Please feel free to drop us a note to tell us your opinions or recommend other good sources. We look forward to hearing from you.

Happy Reading!

The Highwood Technologies Development Team

Note: You can order any of these books from  100X30-w-logo.gif (1678 bytes) by just clicking on the titles!

bookshelf.gif (1814 bytes)

General/Design bookshelf.gif (1814 bytes) C++ bookshelf.gif (1814 bytes) Graphics
Processes & Modeling Windows

General/Design

Title Author Comments
Design Patterns Gamma,Helm,

Johnson,Vlissides

A great book describing various design solutions. We are sure you will apply (or have applied with another name) a number of them in your software soon after opening the pages. We particularly like the factory, prototype, observer, and state patterns.
The Practice of Programming Brian Kernighan & Rob Pike A very interesting and insightful book whose purpose is to help you write better programs in any language. It provides practical advice on a number of topics, including Programming Style, Debugging, Testing, and Performance. An excellent book for those just starting out in the software field, it will also provide reaffirmation and focus for those of us with more experience.  

C++

Title Author Comments
Advanced C++ Programming Styles And Idioms James O. Coplien Not a book for the beginner! Although written in 1992, this book will definitely make you think.
C++ IOStreams Handbook Steve Teale If you really need a book discussing the intricacies of I/O stream programming then this book is for you. It paid for itself when we were dealing with parameterized manipulators.
Effective C++ Scott Meyers 50 rules which will definitely make your C++ code better and more robust. One of our favorites. 
More Effective C++ Scott Meyers Once you have finished his first set, read on for more great ways to improve your software (covers efficiency, exceptions, smart pointers, etc).
Effective C++ CD Scott Meyers Contains the text of both of the author's books, with the additional benefit of online access.
STL Tutorial and Reference Guide David R. Musser, Atul Saini A great book on what STL is and how to use it. Also a very good STL reference.
Effective STL Scott Meyers Another great book from Mr. Meyers.  His writing style really helps guide you around the complexities of STL. 
The Annotated C++ Reference Manual Ellis & Stroustrup What more can we say? A complete C++ reference which also answers questions like why features are defined the way they are.

Graphics

Title Author Comments
Computer Graphics Principals and Practice Foley, vanDam, Feiner, Hughes A very complete text on computer graphics. Covers everything from basic raster drawing algorithms to solid modeling.
Programmers Guide to the EGA,VGA and Super VGA Cards Richard Ferraro A thorough book on PC graphics and various chipsets. Very useful if you need to dig into low level graphics programming.

Windows Programming

Title Author Comments
Inside Visual C++ David J. Kruglinski

It's tough to initially get your arms around Windows programming. This book helps you get a good start.

Processes & Modeling

Title Author Comments
Extreme Programming Explained Kent Beck An introduction to Extreme Programming that will help you decide if XP might work for you.
Planning Extreme Programming Kent Beck & Martin Fowler Considering lightening up your software process? (don't have a software process?) Want to understand how to implement extreme programming? Short chapters, plenty of examples, and an easy writing style make this a great read. The author's "keep it simple" stance is a welcome approach to those who consider "software process" a four letter word. 
Real-Time UML Bruce Powell Douglass A  very good book on object  oriented analysis & design using UML for embedded systems. Also discusses various design patterns relating to embedded systems. 
UML Distilled Martin Fowler This book is a short but thorough guide to the UML process and its notation. The author's writing style is very light and easy to read. The book is full of suggestions and rationales for when to use various UML constructs.