All, Finally I cleared Part I today with score 85%. I started to study SCEA from Jan 5. Before that I was an excellent developer(C, perl, JSP/Servlet etc, not OO wise). I knew something about EJB and knew very little about Design Pattern/UML, so I mainly foucs on studying EJB, design pattern, UML and JMS these days. I read only one book -- the GOF design pattern. I read all other materials on the web, especially I got a lot of information and valuable links about this exam from this forum. Thanks to all the friends in this forum. Part II will be a great challenge for me, 'cause I never truly understood the gist of OO, though I worked a lot on C++ and Java. I hope the study process of part II could significantly improve my OO knowledge. Talk to you guys later, John.
Congratulations! In terms of study, we are as brothers; I started studying at approximately the same time, and also passed the exam on 01-30-02! Your score is better than mine, though. As for getting the "gist" of OO programming, I can understand where you are coming from. I think that many of us have come from a procedural background, though we wouldn't want to go back. When I first started programming with C and assembler, I could almost immediately see a need to combine data and function; remember how we used to write functions that utilized handles and "magic cookies", and we stored state in that manner? Remember how we used to shoehorn function pointers into data structures, creating a primitive sort of vtable? When I switched to C++ those many years ago, I was immediately able to shed those sorts of problems, and I was relieved. But what I didn't realize for a couple of years that my attitude and programming style were still "object-based", not "object-oriented". Encapsulation felt restricting. Inheritence was rarely used. I think that I finally began to "get" OO when I realized that I could move a ton of conditionals out of higher level code by using subclasses with different behavior. This meant cleaner clients, and more maintainable code. That was the breakthrough. Afterwards, through experience and introspection, I began to understand other subtle benefits, but that was just icing on the cake. You can just look at J2EE and see so many examples of the benefits of OO design. Classes are not just bags of related states and behaviors; their encapsulation removes complication and furthers conceptual understanding, allowing us to design better software. Sorry about the rambling, everyone. But the GoF Design Patterns and UML are good examples of OO implementation and design, and I think that their study can certainly help understand the spirit of OO better.
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop