Procedural programming has been around since the inception of computers and programming. Object-oriented paradigms arrived a little later - in the late 1950s to early 1960s - which means over 50 years of object-oriented problem solving. Still, many developers lack a full understanding of the thought process in developing object-oriented software and therefore can’t take advantage of its concepts. I’m happy to see that this book, The Object-Oriented Thought Process, has taken this fairly old perspective and given it full attention and renewed interest.
Not having read the previous editions, I’m not familiar with the changes represented in this fourth edition. Author Matt Weisfeld is a professor who understands these important concepts and the level of knowledge and process required for readers and students to grasp what they need to know. The examples in the book are concise, clear, and easy to follow. Additionally, the book makes good use of white space, lists, pictures, and diagrams to make the content easier to follow and scan quickly.
Weisfeld has organized the concepts to build on each other, ensuring that students understand one concept well before moving to the next. On the other hand, readers who already understand the fundamentals can go directly to object-oriented thought processes for particular programming paradigms, such as Web services or client-server applications.
The book is language-neutral. Its examples are in C#, but a supplementary website offers example code in other languages. If your language isn’t fairly represented, don’t be deterred from acquiring this book because object-oriented concepts and semantics are mostly universal - just the particular implementation might vary due to the language.
Each chapter contains UML and example code to better understand the concepts and see how they’re implemented. The last chapter introduces design patterns but without going into great detail about how to use them. This lets the inexperienced reader know that design patterns would be the next step in the path to developing good code.
Overall, I can recommend this book to code developers, designers, and testers - to anyone with an interest in proper software development semantics. It's available in a digital format that serves as a useful ready reference.
Scott Brookhart. Thinking about objects.
Considering the book review above, judge the following items.