Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Hardcover
Title: Refactoring: Improving the Design of Existing Code
Publisher: Addison-Wesley Professional
Authors: Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
Rating: 5/5
Customer opinion - 5 stars out of 5
Should be part of every developer's toolkit

I spent seven years in the Smalltalk environment figuring (parts) of this stuff out for myself. You don't have to - buy Martin's book and shave at least a few years off the learning curve. Refactoring is an indispensable part of software development. Like it or not, whatever you write today will be "wrong" sometime in the future. You need to have techniques for transitioning to the "right" stuff. Refactoring provides you with a wealth of small tools that can make the transition easier.
Not only that, having confidence that you can refactor your code later (supported by relentless testing) actually relieves some of the pressure you feel when you write the code the first time. Get it working, then get it right. Don't panic. Don't sweat. Enjoy your work like you did when you started (remember?). Let Refactoring guide the way.
A practical guide for any OO developer, no matter what language you are working in, though you need enough familiarity with Java to read the examples.

Product: Book - Hardcover
Title: Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)
Publisher: The MIT Press
Authors: Harold Abelson, Gerald Jay Sussman
Rating: 1/5
Customer opinion - 1 stars out of 5

There's no useful material here, whatever your level of sophistication. Beginners will find that Scheme, and the book's approach in general are confusing. Those who are advanced will find the text is full of bull, and a book like "Introduction to Algorithms" by Cormen et.al. will provide you with many more theoretical and practical topics alike, but it's advanced (and hence more interesting than SICP drivel). If you are a beginner, "C++ how to program" by Deitel will teach you all about object oriented and top down programming, plus you'll learn the C++, the most common language out there.
Whatever is presented, is of such poor quality, and so dry, I couldn't stay awake long enough to finish my assignments. You can learn how to be a good programmer from any computer science course or text, and there are only several sections about that in this book. If you are looking for interesting theoretical ideas, look for other texts, such as the ones mentioned above.
From what I've read, I get the impression this book was written in a rush, and with the purpose of cramming tons of nonsense and filler in just to have an excuse to present Scheme (a pathetic language). The authors claim to present a view of programming that's widely applicable, and state that top-down (i.e. procedural) programming is by far not the best way to think about programs abstractly. Well, they don't stick to their promise. They present a biased, one sided promotion of scheme as the best language out there. No attempt is made to make comparisons between functional languages like scheme and normal languages like C. The end result, you come out knowing scheme and a few boring applications of it, but can't apply any of it to real programming tasks. This proves this book is just a fancy concotion of some egghead professor who has no idea what happens in the real world. I found many explanations to be incoherent and contradictory. The whole approach is divorced from the computing practice. This is no 21 day book, in fact, you can spend 21 months on it and still not learn a thing, because there's nothing but worthless garbage here.

Product: Book - Paperback
Title: Structured Analysis and System Specification
Publisher: Prentice Hall PTR
Authors: Tom Demarco, P. J. Plauger
Rating: 5/5
Customer opinion - 5 stars out of 5
Changed the way I look at programming

This book offers data flow as a simple and powerful metaphor for programming. The idea is this: look at a program as a black box that takes information in and spews information out, then at each stage refine this black box by breaking it out into individual ones. I read this book many years ago and it remains the most useful book on program design that I have read. It was written before object oriented programming but it adapts to it in an obvious way. Forget about UML. Data flow is the best way of presenting the elusive big picture view, that view of the forest that gets obscured by all those trees. It has the following virtues offered nowhere else: 1. It serves as a design tool that you can work with and refine to identify object classes. 2. It is easily understood by computer illiterate clients. 3. It allows programmers new to a project to quickly come up to speed.

Product: Book - Paperback
Title: The Ultimate VB .NET and ASP.NET Code Book
Publisher: Apress
Authors: Karl Moore
Rating: 5/5
Customer opinion - 5 stars out of 5
great book for source code, but not for beginners

You can find great code snippets and how-to's in this book, which will save you time for sure. However, this book is not for beginners.