I've been revising for the exam for a while now, and in practice test I'm getting some mixed scores. On the ones that come on the CD included with the Oracle revision book (Finegan & Liguori one) I scored in the high 60% area. After doing some more revision and getting the enthuware practice exams, I scored 36% and 44% in them.
I'm finding its always the little things that I'm getting wrong, so I'm wondering how you get it all to stay in your head as the exam is getting ever closer :S
Both to an extent. If I can't get something through the explanations then I'll go and step through the code examples with a debugger, but its mostly reading, making notes, rereading, repeat. In the questions I'm usually only wrong on one part. Really fustrating
Learning a programming language is just like driving a car. You don't learn it by simply reading (and re-reading) a manual (book). You'll only learn it by doing it. That's my advice! Use the code examples in the book as a starting point and start coding (change the access modifier of a class/method/data member, create an overloaded method, change the return type,...) and create little programs yourself (calculate the average of the 1st 100 integers, reverse the characters in a string using only string's api,...). Only then you'll start mastering a programming language.
On mock exams you should at least score 75-80% to be ready for the actual exam. So based on your scores, I would definitely postpone the exam so you have enough time to decently prepare yourself. And be careful when taking mock exams too often, you might get a wrong impression due to memorization of the questions (instead of actually knowing the answer).
If I can't get something through the explanations then I'll go and step through the code examples with a debugger, but its mostly reading, making notes, rereading, repeat. In the questions I'm usually only wrong on one part. Really fustrating
Sometimes you might answer a question incorrectly because:
a) You didn't get a concept clearly or
b) the question seemed to be confusing
c) the question seemed to be testing you on concept A, when it was actually testing you on concept B.
To combat point (a), also take a note of the pattern of the questions that you answer incorrectly. Analyze it. If you find topics/ questions that you are answering incorrectly, repeatedly, you need to get the basics right.
To combat point (b) and (c), it is important to understand the exam-how it uses the questions to test concepts. To do so, you must answer a lot of mock exams/ sample questions.
After you work with some sample questions, you can work out your own to-do list for answering questions. For an example:
a) Check accessibility of variables and methods.
The variable 'name' from class 'ClassA' won't be accessible in class 'ClassB'. So the code won't compile.
b) Check valid assignment of variables-primitives and object references.
You can add more as you go on..
In the real exam (and also the sample exam questions), you will notice how additional code is added to these points.
As Roel mentioned, the exam is like a driving test and nothing can beat the hands-on experience with coding-writing lots of code.
Thanks for the excellent answers. Since my previous post I have been studying in my downtime after work (assuming the day of fixing code at work has not made me sick of looking at more code ofc), and my average scores are climbing. Just need to stop making the silly mistakes
Have you utilized notecards? When studying the concepts, I used one side of the card to have a term along with it's concept and definition, and the other side would be a code example. These notecards not only drilled the concepts in my head, but also the application. I refrained from using variable/class a,b,c etc. and tried to use real life examples.
Disclaimer: This is my strategy in studying for OCAJP. I haven't taken the test yet, but so far it has increased my knowledge in the subject matter