If you were to certify that someone "knows OO", what would you be sure they know, know how to do, and know not to do? Feel free to direct to a site or book, saying "everything in there", or just listing pieces of knowlege, maybe things that you think are neglected but fundamental concepts
Joined: Jan 29, 2002
I would probably think that to cerify a person as OO, one should know the following concepts
The best method I can think of for a certification of someone's skills would be to have the candidate code something and then evaluate how what she produced follows the object-oriented design principles you're looking for.
Ah. I see Sathya was faster in typing I also second the suggestion for Uncle Bob's ASD book.
Joined: Jan 29, 2003
Sathya, great list!
Also google for "java interview questions". You'll find hundreds of mystified applicants trying to figure out what somebody just asked them, plus a few golden nuggets of good interviewing techniques. I have a couple links around here somewhere ... will try to find them. I recall one that had a nice progression so if somebody couldn't answer #5 don't even bother with #6.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Joined: Jul 10, 2001
Originally posted by Lasse Koskela: Ah. I see Sathya was faster in typing I also second the suggestion for Uncle Bob's ASD book.
I am not talking about polymorphism etc. I am talking about the principles.
U can ask around the javaranch(ask the experts), I am confident at least 50% of gurus did not go through those principles. Still they are likely to have produced high quality, highly appreciated oo based complex systems. Daa......
Joined: Sep 07, 2004
Kishore, I believe you may not need to know the names of the principles in order to have applied them in your designs. I'm sure that of the people you mentioned, most of them would recognize the principles without knowing their names.
Originally posted by Kishore Dandu: I am not talking about polymorphism etc. I am talking about the principles.
Did something in my post indicate that I was not talking about the principles?
U can ask around the javaranch(ask the experts), I am confident at least 50% of gurus did not go through those principles. Still they are likely to have produced high quality, highly appreciated oo based complex systems.
Knowing the principles still helps. I would advice everyone to take a look at them.
Joined: Jan 29, 2002
I agree with what one of the posts mentioned that most experienced developers would have knowingly or unknowingly applied the mentioned principles in their code.
If someone says (not just you) that your code is easy to understand and reuse, chances are that you have applied some or all of the principles.
That said, it definitely helps to actually read these principles as you might understand some of the subtleties better. Personally, I found that I had not thought of some very important subtleties in LSP before reading Martin's book.
Here are the links for the points that I mentioned.
A good developer will know more than just OO stuff. OO is only part of the picture, you need to have a handle on non-OO issues which are equally important.
If you're looking for a good intro to software development which addresses the full development lifecycle (e.g. modeling, coding, testing, ...), OO, more than just OO (e.g. database stuff, UI stuff, ...), agility, and UML 2 then you might want to look at The Object Primer 3rd Edition(www.ambysoft.com/theObjectPrimer.html).