It’s a question I recently received from a reader of my mailing list. The person asking was wondering how to get out of the procedural mind set that he was in, having multiple failed attempts and building software in an object oriented manner.
And I was stumped for a while.
I had to dig deep for this one. I had to pull in some resources that I was only vaguely familiar with and research the subject more thoroughly than I typically do when answering questions for my readers. And I’m glad I faced this challenge because I believe the material I produced as a result will help not only this person, but anyone else who is struggling with this subject.
At the very least, it will guide you through the first foot steps down the path of …
Thinking In Object Oriented Design
Forget everything you’ve been taught about object oriented design and development. There’s a strong chance that what you were taught was as misguided as what I was taught – that inheritance is a cornerstone, that polymorphism is a critical feature, and “is a” or noun/verb analysis is an absolute must.
I’ve learned the hard way that these things, while valuable, are not the penultimate accomplishment of an object oriented design or developer. And I want to share what I’ve learned with you, though a 5 day email course on Thinking In Object Oriented Design.
What Is This About? What Do I Get From It?
The name says it all: Thinking In Object Oriented Design.
Every day, for 5 days, you’ll get an email from me that tears in to the thought process of object oriented design. You’ll learn lessons through analogies and questions, dissection of misconceptions and looking at better ideas. You’ll also receive homework assignments – things for you to do, to think about and to write down. Each of these lessons is designed to get you to think about where you are, where you’ve come from, and how to get to the place you need to be. In addition to the homework assignments, you’ll also receive a valuable list of additional readings – blog posts, book and other bits of information that you will want to check out in order to continue your journey in to the world of better object design.
What Won’t I Get From This?
The one thing you won’t get from this course is the how-to-code of implementing OO Design. This is not a course on code. This is a course on thinking about the design of objects.
If you’re looking for code, that’s good. In the end you have to write code to do object oriented programming. But before you get to the code, you need to understand how to think about the objects, their interactions and the design of the system, first. Throughout the course I do reference resources that discuss the concepts in terms of code. But this course, itself, does not provide any code sample. It’s all thought exercises.
Sounds Great! How Do I Sign Up?
If you’re reading this blog post at DerickBailey.com, then you’ve probably seen the opt-in form on the bottom right of the site already. Or, you can use this form.
Once you sign up, you’ll need to confirm the subscription via your email address. You’ll get the first of the emails shortly after that, and you’ll be on your way to a better way of thinking about object oriented design and development.
Why An Email Course?
When I first dug in and wrote the article-length response to what seemed like a simple question, it was via email. I was planning on sending this response to my email list after sending it directly to the original person that asked. This is what I do. I get questions, I answer them, I send the response to my list. It works out well for everyone.
In the process of requesting review on the subject matter, though, one of my friends pointed out that the information I was passing along was too much for email. It would be better to either write an article that is published somewhere, or break it up in to a multi-part, multi-day email so that each part can be digested and understood before moving on to the next. Given the speed at which I wanted to get this out the door, I chose the multi-part email and decided to try something I’ve never done before and I’m glad I did. I really like the way this turned out and I believe you will both enjoy it and benefit from it, greatly.