Skip to main content

This book has been on my bedside table for the past month or so, next to Crime and Punishment which is one of the hardest books I have ever read, but that’s not the book I intend to talk about in this article.

If you’ve read some of my articles you’d know I am partial to reading books in computer science and software engineering, more than any other form of learning really. Not that I do not agree with videos, blogs and youtube. I still turn to those quite often. In my research to a better understanding of object oriented programming, I have stumbled upon The Object Oriented Thought Process by Matt Weisfeld through recommendation. True to its title, it teaches just that.

Object-oriented programming is the foundation of modern programming languages, including C++. Java, C#, Visual Basic, .NET, Ruby, Objective-C and Swift.

And with the shift from legacy systems to modern mobile-web (mobile and web) applications, it has become one of the most sought after skills in the software engineering industry.

      Other book reviews

Not all software- engineering related textbooks are the easiest to read. A few like those have passed through my desk and are now somewhere in my room gathering dust. Having not gone past 5 pages, maximum of some of those books, I would not dare write reviews on them because that would be presumptuous. But I would dare write a review on one I have read cover to cover and gone back to for reference more often that I google.

 

The fifth edition by Matt Weisfeld is the one I own and the best part about is that he has made it very easy to understand. For a beginner or anyone who just wants a general understanding of object oriented  programming or a programmer who needs to remember some concepts.

“Object-oriented development is, simply put, a way of thinking.”

 

The book is divided into chapters that could be read independently but for a deeper understanding I would advice reading them in order. Concepts are clearly explained with real-world examples making them relatable, and like the author has mentioned several times, thinking in terms of objects. Images are used in plenty, one of my favourite things. It doesn’t matter how old I get, I will always appreciate pictures in textbooks.

Readers are guaranteed to learn all the important concepts that make up object-oriented development as well as how they are used, why they are used, why they are necessary and how they all seamlessly work together to create the flow in object-oriented development. Other than the concepts, readers will also learn how to think in terms of objects, how to decouple processes in their code to make it more efficient and more welcoming to change without the fear of breaking parts of it. At the end of  chapter there is a summary which can act as a cheat sheet.

It is not advanced in its content, but a good place to begin in learning object-oriented development concepts. The book does not teach a programming language but the reader will come across some code snippets used as examples. You can always research the syntax of a language when you want to understand the snippets.

I would recommend this book to anyone interested in learning the concepts of object-oriented development or for reference in the subject.