Here is my $0.02 on how to pass the SCJP (I did it yesterday and got 91%). It worked for me so maybe this will help other people:
Firstly, I bought the Mughal book "A Programmer's Guide to Java Certification, 2nd edition" and used this as the core learning tool. This is an excellent book that goes a bit beyond the scope of the exam, but is an excellent primer so it was worth the extra effort.
Note: if you get this book, remember to look at the errata - there are a few errors in the book.
I didn't do the programming exercises at the end of each chapter as I'm already familiar with Java, but I did do the test questions throughout each of the chapters.
As I completed each chapter I found it very useful to work through the corresponding sections on Dan Chisholm's site: Dan Chisholm's Mock Questions. These are tough questions (I never scored better than 60%) but hammered home what I'd just learnt and made me think more deeply about each topic.
Once I'd been all the way through the book, I did several mock exams:
- The two Whizlabs practice exams that came on the CD with the book. - I signed up and did the Sun ePractice SCJP exam and did all of the questions except the IO and awt sections (this is free and extremely useful). - All three Marcus Green mock exams.
This seems like a lot of exam questions but was incredibly useful and just as important as actually learning about Java, imho. After a while you see patterns in the questions and you know what you're being asked and what you should be looking at.
That's about it. One tip for taking the exam - take ear plugs! I took some with me and I'm glad I did as the test site was very noisy (people coming in and out, talking etc.) and I was able to concentrate better.