Book and
CD’s

Software Engineering Professional References

Book and
CD’s
The important part of programming isn’t memorizing all the details of programming languages and design ideas. It’s in knowing where to look them up, and what tools to use.

Software Engineering

Software engineering is a distinct discipline from computer programming. There are many programmers out there who are capable of making a computer perform a particular task. It takes an engineer to write readable, maintainable code. Engineering requires a lot of planning and thinking ahead.

One of the best books for object-oriented software design is Design Patterns, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns outlines a number of valuable strategies for software design.

C++ Programming

Bjarne Stroustrup’s The C++ Programming Language is a must-have reference for C++ programmers, just as Kernighan and Ritchie’s The C Programming Language (dubbed the White Bible by programmers) was de rigeur for C. Stroustrup’s book isn’t quite as good for just reading through and learning the language as K&R, but there are some times you just need to look up operator precedence or the fine details of friend declarations. If you need to really get into the fine details of the language itself, you’ll need a copy of The Annotated C++ Reference Manual (usually just the ARM to hard-core programmers).

Scott Meyers’ Effective C++ and More Effective C++ are a good way to sharpen your coding skills. The books are full of useful coding techniques, some of which you will have already discovered, and some of which will be new and interesting ideas. Read them through when you get them to acquaint yourself with the ideas, and go through them every now and then as a checklist to make sure you aren’t missing any opportunities to make your life easier by applying the ideas.

Perl

When I need to brush up on a subject, I’ll usually pop down to Computer Literacy and start browsing, but I tend to walk away with one of O’Reilly’s Nutshell Handbooks. In my experience, they are clear, well-written, and very useful. The tome I use as a Perl reference is Programming Perl, by Randal L. Schwartz, Tom Christiansen, and Stephen Potter, edited by Larry Wall himself.

TEX

I do most of my document formatting these days in HTML for portability, Microsoft Word for convenience, or PageMaker for control, but I haven’t retired my tomes on TEX from the bookshelf, and I’d probably head for them immediately if I had complicated equation formatting to do or needed to convert huge quantities of text using Emacs or Perl regular expressions (though I would probably devote a bit of time to checking on the suitability of learning RTF). Donald Knuth’s The TEXbook is the canonical reference, and Leslie Lamport’s LATEX: A Documentation Preparation System User’s Guide and Reference Manual makes TEX somewhat more approachable. (By all means, if you have a PostScript printer to use with TEX, make sure you get the public-domain code for using PostScript fonts. I find Palatino much more readable than Computer Modern, and I expect many other people will as well.)