Originally posted by Michael Sullivan:
A couple of comments. I've been working with procedural code for years, but for the last year have had to work with Java (as a server side web technology). . .
Your experience nearly mirrors mine. For 15 years I was a mainframe COBOL/CICS/DB2 programmer/analyst. My creditials as a programmer who understood business systems were impressive enough, but I had no bona fides to prove my Java skills, except to pass the SCJP.
Interestingly enough, I recently interviewed with a consulting firm and did not fair well on the technical review. While I have been studying and using patterns, J2EE architecture, frameworks, etc. (everyone seems to think these are most important, right?) since passing the SCJP in January of 2002, I soon discovered that a large portion of what I studied for the SCJP is mostly not used in everyday experiences and I plain forgot much of it. This probably explains why experienced Java developers often fail the SCJP if they don't study for it. I remember taking the first few mock exams for the SCJP. I couldn't fathom why anyone would write code like I saw in the questions - why in the world would anyone think it's important to know how the compiler would behave in a situation that you most certainly will never face in the real world?
IMHO, J2EE is the substance of the Java world. If you have a solid OO base and decent knowledge of patterns, the language becomes secondary. I can't believe knowing the innards of the HashMap implementation are important to the work-a-day developer.