This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.
I am pretty close to getting a job offer which I am pretty excited about (5 months, it's about time...)
I thought I was pretty strong in topics of OO fundamental, and I think I might be. That is why I was able to get through their mock project design session with the boss walking me out telling me to just wait for the call back.
However, during the session, I have learned that I have much more to learn even when it comes to the most basic topics in OO design. The class diagram I drew was constantly challenged by my interviewers with good reasons. Those constructive criticisms includes:
"You have a circular dependency between these concrete classes. Some might argue these classes would be impossible to test without making an instance to both (all) of them"
"Does the member variable really belong to this super class?" (Which made me realize even though getXXX() of that variable belong to the super class, this variable should be a static member of the extend class because there shouldn't be any variation on that variable for any instance of a same class. I am sure I would have found that out when I start coding, but I didn't see it when I draw the diagram)
Anyway, can some one suggest some of the more advanced or detailed readings about this kinds of topics? I want to be able to catch up with the team ASAP
Since I am relatively comfortable with design patterns at this point and my only problem is that my fundamentals are not solid enough, I am looking for something less along the line of "Design Patterns: Elements of Reusable Object-Oriented Software" and more along the line of "Effective Java" (which is a MUST READ for every java programmer. I have read this book and now I am interested in something just as, if not more, fast paced but even more fundamental)
Even better: get Robert C. Martin's book "Agile Software Development - Principles, Patterns, Practices". A must read, in my not so humble opinion.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus