Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 3 years ago.
I am looking for the best resources, videos, books, magazines(I like videos) to learn and master Object Oriented design and analysis. I would really like to know more about trusted and reputable methodologies for structuring your programs, designing classes, and dealing with databases in your programs. So, my question is what are the best resources?
thanks
Gotta read Uncle Bob Martin's columns at Object Mentor. He's been writing good things about object-oriented programming since C++ Report in the 90s. His SOLID ideas are language-agnostic.
The 'Head First' books are very good:
- Object oriented analysis and design
- Design patterns
Design Patterns by the Gang of Four. One reference book you will always need. It gives great detail on how to structure your code using OO design.
http://en.wikipedia.org/wiki/Design_Patterns
I would definitely recommend the "Head First Design Patterns" book. My suggestion is to read through that book atleast once. And once you get a feel of design patterns, use the "Gang of Four Design Patterns" book for quick reference/refresh.
And here are a few links from my bookmarks:
- http://sourcemaking.com/design-patterns-and-tips
- http://www.dofactory.com/Patterns/Patterns.aspx
Hope it helps.
You will learn this best on a University course, or atleast a good one. You don't have to spend 2 years out to do this - if you can afford £400 - $500 I'd recommend this one.
It teaches you about state, and the other 4 concepts you can read about in a badly expressed way on wikipedia. I'm not convinced you will learn it properly from free resources online, I'd guess you'll just get patchy information.
You can be extremely brainy but the information out there isn't going to be that high calibre for a reason - the brightest minds in software pay for their university courses, lectures, assignments and exams, not just read it on the internet.
For analysis try the M256 course, which is about Object Oriented software development, UML and system design. It sounds dull but contains a lot of background information that you probably will never use but will want to know anyway.