A big thanks to everyone at the JavaRanch and everyone who has contributed to this forum. This forum is a great resource in preparation for the
test. I just wanted to share a how I prepared and my impressions of the test in the hopes it can be of help to somebody else.
For background, I've been doing
Java development full-time in my job for about 9 months. Prior to that my only experience was one class in school. I've been studying on nights and weekends for the past 2 months in preparation. Overall, I would consider myself to be at a novice to intermediate level when I started preparing, as I knew enough Java to be productive in my capacity at work, but had very little experience with several of the topics covered on the test, particularly concurrency, collections and all the new features.
For preparation, I started by reading all the relevant chapters from Core Java 2, Volumes 1 & 2, by Cay Horstmann and Gary Cornell (Sun Microsystems Press). I chose these books because they seemed to me to be the best at the time that covered 1.5 topics, and I wanted a good introduction/reference to all of the features in J2SE(
JDBC, GUI, Networking, many more), not just the topics covered on the test. They were a good overall primer to fill in the gaps on the basics and a good introduction to the new features. My favorite feature of these books are the code examples. They are downloadable from a website and provided a good starting point for me to modify and experiment on my own. My least favorite feature was the chapter on generics. This may be just a personal thing, but I found it confusing and unclear. Like I mentioned, there's a lot of information in these books outside the scope of the exam, so while there probably are/will be better books just for cert prep, if you're looking for a good overall intro/reference to all the J2SE features, I would recommend these.
Here are the other resources I used and a few quick thoughts.
MZs Notes
http://java.boot.by/scjp-tiger/ THANK YOU MZ! These came highly recommended and for good reason. The material on generics in these notes really helped me understand, where others had confused. They're not exhaustive, but are a great supplement. Thanks again MZ.
Gilad Bracha's Generics Intro/Tutorial on Sun's Website
http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf A good resource for generics.
Introductions/Tutorials on Sun's Website for 1.5 Features
http://java.sun.com/j2se/1.5.0/docs/guide/language/index.html Good introductions to all the new features.
Java 1.5 API Javadocs
http://java.sun.com/j2se/1.5.0/docs/api/index.html For learning specifics about the API features and methods, reading from the "source" helped me a lot.
Java Language Specification (JLS)
http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html While parts of this can be difficult to read, I had a few questions where again going to the "source" cleared it up.
Mock Exams: A lot of people here recommend doing as many mock exams as you can. I didn't follow their advice, but I completely agree that
you should. If there was one thing I would do differently it would be doing more mocks. I mainly did the "Rules Roundup" games here, and the KB 11 question sample exam for their upcoming book. I'm embaressed of how I scored on those 11 questions, but they opened my eyes to a whole, whole lot. In short, I think that's probably the benefit of any good mock... You can think to yourself "Oh yeah, I KNOW this stuff", but then you take those tests and realize "Ok, maybe I have a little more to learn". It's a good motivation and reality check.
Experimentation: Another
word of advice I picked up here on the forums was to write as much code on your own as you can, and I agree completely that it helps. Since I was having a hard time finding a lot of material on generics that made sense to me personally, this helped out there a lot. In turn, once I started writing generics code, a lot of the explanations started making more sense. Writing code also points out little questions and gotchas that you might not encounter otherwise.
THE TEST: I've only taken one other professional certification, and in comparison, it was a joke. The test is thorough. It really tested every topic in the objective list, so don't think "oh, maybe I won't get too many of those type of questions" (I admit, I said that to myself a little too much). Study everything on the objective list thoroughly, and you'll be just fine. My weakest areas were concurrency and generics. I think it's been stated elsewhere on these forums (so I shouldn't get in trouble for saying this), but the concurrency topics do not cover any of the new 1.5 features. Make sure you know the old stuff though... you'll need it! As for generics, well, like I said, I had a hard time finding stuff that made sense to me, which may be just a personal thing.
Ok, this post turned out much, much longer than I intended. I'll be happy to answer to any other questions. Hope this helps anybody else out there preparing. Good luck!