A lot of the stuff I'm talking about this month comes from a few good books. Some of these may be a little hard to get a hold of (check out used book stores and university libraries), but all are worth reading.
Brooks, Frederick P., Jr. The Mythical Man-Month: Essays on Software Engineering. Reading, Massachusetts: Addison-Wesley, 1972.
Brooks was in charge of the OS/360 project (the operating system for IBM's System/360 line of computers, the first integrated product line in computing history) from 1964-5 and this book is a distillation of the lessons which he learned from that experience. It may be old (by computer standards), but it's still very relevant today. There's also a revised and updated 1995 edition, which I haven't read yet.
McConnell, Steve. Rapid Development: Taming Wild Software Schedules. Redmond, Washington: Microsoft Press, 1996.
Bentley, John. Programming Pearls. Reading, Massachusetts: Addison-Wesley, 1986.
This is a compilation of columns which appeared in the Communications of the ACM in the early eighties. Once again, while some of the examples are dated, the principles behind them have not changed, and this book does a great job of presenting them in a readable manner.
Cormen, Thomas H., Charles E. Leiserson and Ronald R. Rivest. Introduction to Algorithms. Cambridge, Massachusetts: MIT Press, 1990.
This book is big and has a white cover (hence the name). It's also expensive, but every computer scientist seems to end up buying one eventually. It provides a comprehensive overview and excellent reference for algorithms and data structures.
Tanenbaum, Andrew S. Structured Computer Organization. Englewood Cliffs: Prentice-Hall, 1990.
This is an excellent introduction to the concepts behind computer hardware. If you want to know how you get from transistors to assembly language, this is the place to start.Last Modification: Wed Jul 23 11:07:26 EDT 1997