Software Engineering


It's easy to think of Software Engineering as a dry, boring field, full of people debating silly things like operating systems, funky algorithms, processor architecture, and even the "right way" to code a particular solution.

But the field of Computer Science is truly important, because it embodies our knowledge on how to solve problems. And problem solving is not something that we can easily take for granted. The best books on computer science are as much about design and problem solving and creativity as they are on anything else. That makes such books lasting and worth reading, even though you do need a significant bit of background to read them.


Design Patterns: Elements of Reusable Object-Oriented Software.

Authors : Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides.

Addison-Wesley, 1994, ISBN : 0-201-63361-2.

Anybody who acknowledges the work of Christopher Alexander's work on building architecture has got to be good. Design Patterns is a book that's familiar. Not because you've read it before, but because you can read the book and not learn anything about algorithms or data structures or anything that's immediately practical. What it does is to give you a vocabulary to share with other software designers, to raise the level of discourse, and give you a look at techniques that you have used in the past generalized and applied to other problems. That by itself makes it a book worth reading over and over.


The Design and Evolution of C++

Bjarne Stroustrup

Addison-Wesley, 1994, ISBN : 0-201-54330-3

Have you ever pondered the existence of some C++ feature? I've worked with C++ since 1992, and even now some features like ref puzzle me. A glance through this book, however, should answer your questions. (For instance, ref was introduced to make operator overloading sensible for objects) For this reason alone, if you have to work with C++, a copy of this book by your side for occasional perusal is worth the cash.


Suggestions? Criticism? Mail me!