Hello everyone,
Prepare yourself, this may be a long one.
Yesterday I got 94% in the
SCJP exam. Thats 56/59 (They round the percentage down!)
I am not posting to get congratulations!
I am going to tell you how I did it and hopefully give some of you some encouragement to do the same. Please note: this information is not for people who want to be good at
Java but for those who want to score highly in the exam - two very different objectives

Firstly, here is some information you might find interesting:
- I am inherently lazy and impatient.
- I am not a Java expert/guru.
- I have NEVER read the Java Language Specification (JLS).
- I have looked at the API docs ONLY about a dozen times in my life.
- I HAVEN'T written ONE LINE OF JAVA CODE in 3 and a half years (well almost)
- I DIDN'T buy any exam simulators e.g. JQ+ etc.
- I DIDN'T buy a separate JAVA reference book.
- I DIDN'T purchase the Sun e-practice exams.
- I AM NOT expecting to get a Java job because in my humble oppinion SCJP means nothing to employers unless you have commercial experience or are prepared to work for peanuts which I am not because I'm a lazy bastard and I want lots of money NOW.
- I DID BUY "Complete Java 2 Certification Study Guide" by Simon Roberts, Philip Heller and Michael Ernest a.k.a RHE
- I DID study and go into the exam with the EXPLICIT and SOLE intention of scoring 100%.
Thats it. I have only that one Java book (plus I printed out the errata from the website - v.important)
This is how I studied:
1)I read RHE over a period of a month (three or four chapters a weekend). I answered the questions at the end of each chapter and made sure I understood the questions that I got wrong. By the end of the month I realised I had COMPLETELY forgotten most of the stuff in earlier parts of the book. However, I couldn't be bothered to read it all again (like I said I am iherently lazy and just looking at the size of that book gives me a headache)
2)I moved onto mock exams ignoring the fact that I couldn't remember a damn thing. I am lazy and impatient.
I studied with the use of mocks for 2 weeks with approximately 3/4 hours a day and some days off.
Then I took the exam.
Lets get one thing CLEAR:
Roberts and Heller (co-authors of RHE) KNOW ABOUT THE CERTIFICATION EXAM!!!
With the RHE book comes a CD with 4 MOCK EXAMS!!! (Final, Bonus 1, Bonus 2 and Bonus 3) - WHAT MORE COULD YOU WANT???
The only thing that doesn't come with the RHE book are the answers to the real exam. Like the title of the book says "COMPLETE" Java 2 Certification Study Guide.
Okay, that out of the way, here are my TOP TIPS for studying and taking the exam.
IMPORTANT: Everybody is different. Thank God. Things that work for me might not work for you. Deep down you will know if it will or not.
MY TOP TIPS FOR STUDYING:
----------------------
1) ATTITUDE, attitude, attitude. I'm a perfectionist. YOU WILL be amazed at the change in score you get from a simple shift in attitude. As soon as I decided I wouldn't be happy with anything less than 100%, my scores in mocks went up by approx 15%. Try and get to the point where you are genuinely dissapointed with anything less than 100%. This way the mistakes you make will be more ingrained in your memory, you will take them more seriously and will be less likely to repea them. Have a look at some of the scores in the 90's in this forum and convince yourself that you would be embarassed with anything less than 100%. Convince yourself that your life depends on the answer to every single question, that one question you get wrong could mean the end of your life. Okay, okay, okay, you get the picture

Seriously, I did such a good job of self-hypnosis in this department that I am still recovering from the disappointment of getting 94%!!! Life is all about expectations.
2) Stick to the EXAM OBJECTIVES!!!
Really, why waste your time learning things that aren't even in the objectives? Unless you want to be good at Java and who wants that?

This means, IGNORE any of the following:
a) Anything to do with
APPLETS.
b) Math functions that aren't in the objectives e.g atan.
c) Creating fonts etc. Dealing with Labels, TextFields.
d) Anything to do with Vectors.
e) Paint method and overriding, Double buffering etc.
These come up a lot in some of the mocks I came across. I can only assume that these were part of the 1.1 exam objectives and therefore the mocks are out of date. My advice is to ignore the WHOLE mock if you see any of these questions. For each question in a mock, try and work out EXACTLY which objective it is reffering to - this means having a print out of the objectives to hand (or the inside cover of RHE)
Especially for I/O, YOU DON'T need to know IN-DEPTH details - The Objectives are REALLY EXPLICIT about what you need to know (mainly constructors for I/O)
3) Using Mocks as learning tools.
Read each line of the Exam objectives. If you can't say "yes I know that" to ALL of them, then there is no point taking a mock exam as AN EXAM. Rather, use it as a learning tool. That is:
a) Go through each question. One by one.
b) Answer it if you can.
c) If you are only semi-confident in your answer, use the book to CONFIRM that you were right. This helps to re-inforce things in your memory.
d) If you can't answer a question use the book to read a little bit about the topic briefly and then answer the question based on what you read.
DO THIS MOCK by MOCK until you find yourself referring less and less to the book because you CAN'T answer the question. Its okay to refer to the book to CONFIRM your answer (I can't emphasize this enough, even though in the real exam you won't have a book, referring to the book to CONFIRM your answers REALLY does RE-INFORCE your neural pathways.)
Once you reach the point where you CAN say "yes I know that" to each of the objectives. Its time to take the mocks AS EXAMS.
4) Taking mocks AS EXAMS
If you're anything like me, you are impatient and can't wait till the end of the mock to find out what score you got. Typically, I would spend about 50 minutes to answer all the questions and would usually get more wrong in the second half than the first half due to my impatience.
When you have finished the mock and worked out your pathetic score, go back and FULLY UNDERSTAND the correct answer to EACH AND EVERY SINGLE QUESTION. Do this to the point where you would be confident in getting 100% if you were to take it a second time. Which I highly recommend you do the very next day! If you don't get 100% on the second attempt (or at least 98%) in less than 30 minutes, then quite simply, you didn't LEARN from your mistakes the previous day and you are probably not a candidate for 100% in the real exam.
You should be REALLY REALLY pissed off if this occurs and you should literally kick yourself. MAKE SURE YOU KNOW WHY YOU DIDN'T GET 100%.
Each time you do a new mock exam you will probably learn 3-5 new things that you didn't before. When you come across these new things, read about it in the book and also look at other similar things e.g. if a question asks you if round(10.0) will return an int or a long and you look in the book to find out...at the SAME time, look up the return types of the other maths functions (explicitly mentioned in the objectives) and try and UNDERSTAND why the return types make SENSE.
5)Identifiy the
Patterns Unless you are really dense, you will start to see patterns emerging regarding the types of questions asking about particular objectives e.g. anonymous inner classes reffering to non-final method variables etc. THIS CAN BE A GOOD THING AND A BAD THING. Some mock exams use these patterns to trick you into making you think you know which objective the question is asking about when really there is a less obvious line in the code. THE REAL EXAM GENERALLY isn't as sneaky as most of the mocks in this regard. But it does mean it keeps you on your toes, common ones are reffering to non-static variables from "main", re-assigning final variables etc.
6) Don't forget the easy stuff
Its all very well spending 90% of your time learning about Threads and I/O but it can be surprising how easily you get tripped up on the easy stuff like initializing variables with literals. RHE doesn't go into detail about these things but covers enough and by the time you do enough mocks you will have covered most of the possibilities.
7) Increase your Memory Retention
This tip is relevant to any kind of exam and some of you might think this is a load of rubbish bit it works for me and always has done. It has been shown that CAFFEINE helps
boost your memory power. Also, from my experience, reading/learning just before going to sleep produces better retention. If you combine these two, e.g. a cup of
coffee and then reading/learning/mocking for a one and a half hours before bed is the best combination for me. Don't drink too much coffee or you won't sleep!!! Also, try and do some mocking at the same time of day that you will be doing the real thing. Try and acheive a ROUTINE. For me this was, one and a half hours at lunch time and then one and a half hours before bed.
Studies have shown that your memory performs best when you are under the same conditions as when you were learning. This means studying at a computer in a quiet room with a cup of coffee. When you take the real thing, don't forget the coffee!
MY TOP TIPS FOR TAKING THE EXAM
-------------------------------
1) ATTITUDE, attitude, attitude. "I WILL GET 100%". This is your mantra. Those who aim to just pass will sometimes just pass. Some will even fail. IT'S FULLY POSSIBLE TO GET 100% and I still don't know which 3 questions I got wrong or why.
2) Taking exams is not about what you know but about Exam technique. You don't need to be a genius, you don't need a good memory, you just need the technique. Unfortunately, some people seem forever UNABLE to aquire this technique. You know who you are and alas, there is nothing I can do for you! The only pressure you should feel is the self-inflicted pressure that you must get 100%. In reality, its just another mock you are taking.
3) READ THE FU*$%NG QUESTION.
4) Read the question.
5) Read the question.
6) Guess what...read the question.
This includes, EVERY single character of every single
word of every single line of code that is presented.
7) Be a human compiler.
When given code fragments, try and work out what the output will be BEFORE you look at the possible answers. This is imperative. In addition, if one of the options says that the code will not compile, ALWAYS take this option seriously. If you are anything like me, it is pretty obvious when things produce compiler errors rather than runtime errors. Infact, 90% of the time the options that say a runtime error occurs is completely laughable and you can rule these out straight away. Notable exceptions are indexing arrays out of bounds, number format exceptions with parseInt and class casting wich obeys the rules of casting at compile time but obviously wouldn't work at runtime.
8) Take the exam TWICE. Don't leave the exam room until they drag you out.
Thats right. Take the exam. After first pass you will probably still have at least 45 minutes remaining. Take 5. Draw a picture of the girl sitting next to you who's doing a CISCO exam. Don't show her the picture till after though

Wave to the camera monitoring the room. Then, TAKE THE EXAM ALL OVER AGAIN in the remaining 40 minutes. Question by question. This is the best advice I can give. Read the question very carefully again. Read the code very carefully. Try not to think of the answer you gave the first time. Then try and convince youself that the answer you gave the first time is WRONG! until finally you have to admit that the answer you gave the first time was infact right. BELEIVE ME, I changed at least 6 answers on the SECOND PASS!!!
Okay, thats it. This is getting kinda long so I'll try and round off with some slightly more practical information:
The mocks I took include:
JavaPrepare (generally easier than the real thing)
Marcus 1 & 2 (roughly the same standard as the real thing)
RHE Final, Bonus 1,2 & 3 (the most similar to the real thing)
JTips (generally harder than the real thing - very worth finding out the answer to every single question and understanding)
JavaRanch Rules Round up (should be getting 100% on this)
Sun free e-practice questions (10 altogether - should get 100%)
Generally, in the REAL exam, since it tells you how many options you have to choose make it a little easier. With most of the questions it was pretty clear cut which objective was being tested. With multiple options it was a lot easier to get the right answers by a process of elimination i.e. the wrong answers were fairly obviously wrong! To get in the 90's you don't need to know any more than someone who scores in the 80's you just need to be on your toes AND READ THE QUESTION!
Finally, there was a discrepancy in the standard of question in the real exam, most of them were actually easier than the mocks I mentioned but then there were about 9 or 10 that were genuinely harder! HERE IS MY BIGGEST HINT OF ALL:Although there isn't really that much to understanding threads, MAKE SURE YOU DO ALL OF THE
THREAD QUESTIONS IN THE RHE MOCKS

Phew. Good luck and I hope this helps someone out there score 100%!!!