I'm currently reading the book Head First Objected Oriented Analysis & Design from O'Reilly. This is the second Head First book I've read (the other was Head First Design Patterns) and I must say that this is probably the best and most useful series of tech books I've read. The Head First philosophy is to write the books in a casual tone and really repeat the important things so that they'll stick out in your head. Probably the best thing about the books is that they use "real world" scenarios to explain WHY you should do something and not just HOW to do something.
Another great thing about these particular books are that they really teach you something that you probably either
- Learned somewhere along the way but didn't exactly grasp WHY you learned to do things that way
OR
- (Like me) Didn't go to a college that put a heavy (read: any) emphasis on design so to stay current you need to sharpen up your design skills
The problem with going to a University that considers Computer Information Systems part of the Business Department (my degree is a BBA) is that you have to take so many Business courses that it feels more like a double major in CIS and Business Administration than a CIS degree with a minor in BA.
But I'm going on a tangent.
If you're interested in learning some of the building blocks of Object Oriented design or Design Patterns, I would definitely check out these books. They are written for Java programmers, but I'm a C# guy and I haven't had any problems figuring out any of the examples.