I learned programming in the late 90s using VB6. I took a C++ class too but as is typical of many classes at the time, OO concepts were ignored. I have a basic understanding of Encapsulation, Polymorphism and Inheritance. Yet i don't know how to take an idea and translate it into a class/object and I don't know how to make objects work together effectively. I'm currently reading The OO Thought Process by Weisfeld (2nd Ed) and i also have a big book, Head First Design Patterns. I've read only a little of the first book and none of the second so far.
I really would like a book that helps to look at projects and break them down into classes. Of course there are numerous approaches. Many books just don't take the time to show different approaches to breaking a project down into different classes. I say this because, the way a person veiws a project may not be the same as another person. So if the author sees this VAGUE senario one way and the reader sees it differently, without alternatives or suggestions, the reader is lost as to why he thought this instead of that. I'm just tired of reading books all the way through and then finding that i still don't know how to design an OO project from scratch.
I have a project that i developed in VB6. It is a testing application. So it is a poject that i do understand and know where I'm taking it because it already exists and i just want to start drafting the classes and concepts needed to RE-create the application. From there i want to create a desktop version and a web based version as a tool to learning different programming languages, such as VB.NET, ASP.NET, C#, etc. I assume that the basic OO concepts can be used regardless of the language or medium--although nothing is perfect.
Is this going to be a huge uphill battle? Am I going to have to learn a ton of patterns and system design approaches just to produce a good OO app from scratch? As i learn i would like to also learn some UML which i have read books on too thinking they will help me in this OO learning curve but was just another dead end. I don't wnat to learn UML at the expense of learning OO, if it will take me months to learn UML just to use it in my OO development.
My goals seems to be as follows:
- Learn OO concepts
- Re-develop my procedural VB6 using OO concepts
- Utilize some UML and design patterns along the way
I believe that doing this will give me a good jump start in the right direction. But I'm fearing that i'm running after something unrealistic and that the learning curve will be much larger than i think. So that is my fear. What i really believe is that I'm just steps away from my goal and all i need is a few pointers.
Thanks!