This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
First, I would like to express my gratitude to everyone involved with this site and forum. I haven't posted anything before today because most of my questions have already been answered here. Thank you to all that post, reply and moderate.
I don't suppose this is a new question but maybe someone has some simular experience that could help me.
I have been studying for the OCPJP and have been through K&B SCJP 6 five times and as many as 10 times for areas I am challenged on. I have been coding a lot of examples. I have coded the subjects so that I could write them if given a blank page without the API or other examples to reference. Now I am coding (a lot of copying and pasting) from exam questions I am missing because I would never think to see code written like that.
I tried the Master Exam Learning Key software that came with the book and it only gives me an hour and a half to finish all the questions for some reason. I have tried reinstalling and no change...so I did open book mode with that. I am running Windows 7. Is anyone else having this problem with Master Exam? I have taken the first test and am saving the last two for later. I don't want to keep taking the same exam because I will remember the questions and answers so my test scores will go up without proper reason.
I purchased Enthuware and am very happy with it for the most part. I am seeing some things that aren't covered in the K&B. I am now scoring in the 62%-75% range now for the tests. I have taken eight tests so far and have failed twice by one question when I first started.
I see the areas I'm weak in after taking the test and review all of the questions every time. I make notes on the questions. I go back to K&B and read. I search the web. I look at the API. I check this forum more than anything because as forementioned, most problems I have already have been answered here(thank you very, very much). I code. I code before taking an exam. I code while reviewing the exam results and after reviewing the exam. I code while reading the book. As has been suggested to others here, I code, code, code.
I am off of work now and am spending 8-10 hours a day studying, coding and taking practice tests. I would like to get my mock exam scores in the 80%-90% range before I take the test. I don't want to cut it close and blow $300. I would like to take the test by the second week in January if at all possible. Does anyone have any advice for me to improve my mock test scores faster?
I feel like I know the material but I keep getting burned by wierd syntax and things I would never know would work because I would never think to code it that way. In fact, most of the time I get burned is because I didn't know you could code it that way and have it compile. Threads and Generics are my weakest points but I seem to score ok on the exams.
Also, in addition to the advice given in K&B on taking the exam (first pass, second pass, third pass) can anyone give me advice on speeding up on the tests so I can review more before time expires? It usually takes me two and a half hours to get through the first pass and then only a half hour left to go through the questions I marked and finally the rest of the questions again when I have time.
I am making progress in scoring and timing but it is slow progress. I am wanting quicker results so I can take the test before I go back to work.
My situation is similar to yours. As the saying goes, I don't just feel your pain, I feel your pain. Back in October my job was "eliminated", along with the jobs of several hundred other highly experienced software engineers, architects, and project managers. I have about 11 years developing server side software in Java, 5 years before that working in C, C++, and Unix shell scripting, and have a long track record of accomplishments and successes to my name. Shortly after the axe fell, I decided to use some of my suddenly ample free time to prepare for the SCJP test that I'd never been able to get around to while I was working full time.
Initially, I thought that a fairly casual brushing up of my knowledge of basic Java SE would be enough for me to do well on the real exam, but the difficulty of passing, much less getting a high score on the mock exams, soon humbled me. My first mock exam scores left me bruised and frustrated, but determined to press on. Like you, my days now revolve around working through the K&B book yet another time, reading and rereading chapters of Mughal and Rasmussens's Programmer's Guide to the SCJP, and getting beat up by the Enthuware mock exam software, and by the truly brutal OCP Java SE 6 Programmer Practice Exams book by Bert Bates and Kathy Sierra. To supplement all that, I've spent a lot of time with the API javadocs, the Java Language specs, and also Oaks and Wong's Java Threads, Third Edition, and Naftalin and Wadler's Java Generics and Collections. On top of that, I've written many, many small programs to test and improve my understanding. Based on my recent mock exam scores, ranging from the high 80s to the mid 90s, all this work finally seems to be paying off... Of course, I won't know for sure until I take the actual OCPJP 6 exam, which I plan to do next week.
It seems to me that you are already doing what you need to do to prepare for the certification exam. One thing that I've learned from taking the mock exams that has helped me do better on them is that there are two basic ways that I can miss a question. First, I just don't know the answer. For that, the remedy is more studying and coding. Second, I fall for one of the misdirection traps designed to divert my attention away from the right answer that I do know, but don't see. For that, you need to analyze the wording of the questions that fooled you, make note of the deceptive patterns, and then take more mock exams armed with greater awareness of potential traps.
Just as one example of what I'm talking about, I recently missed a question where a List was loaded with superclass references to instances of the superclass itself and of subclasses, all of which had static methods with the same signatures. Then, the list was run through a foreach loop. Immediately, I thought that the output would be from the superclass version of the method, knowing that static methods cannot be overridden, and thinking that each iteration of the loop was invoking the superclass static method through a superclass reference. What I missed was that the actual method call was to the static method of the subclass that contained the main method being executed, like this:
My misbehaving brain rendered this as:
It's kind of like that old visual perception trick where "Paris in the the spring" is printed in a triangle and almost everyone who hasn't seen it before sees "Paris in the spring." The good news is that now that I'm aware of this particular mean trick, I probably won't fall for it if it comes up in the real exam. The bad news is that this is just one of the many mean tricks that the test designers have up their sleeves. So all you can do is take a lot of mock exams, learn as many of the misdirection patterns as you can, and try really hard to read the question that is there instead of the question that is not there that the wording intentionally misleads you to see.
I hope this helps, and please wish me luck, as I wish you,
Joined: Dec 27, 2010
Thank you Deepak and Frank for both taking the time to read my post and your advice/experience.
I understand your point. I will try to be more concise next time. I just wanted to give all the details...maybe I gave too much here. I will seperate my question better next time.
I do wish you luck. I'm no expert but if I was scoring as high as you on mock exams, I would feel confident about taking the exam next week. That's my goal is to be where you are at. I'm sure you'll pass. I don't have all the resources that you do (like the K&B mock exam book and Mughal and Rasmussens's Programmer's Guide to the SCJP). If I were to spend more money now it would probably be for more mock exams. I am not likely to do that because there are a lot of other free exams listed on this site. I just want unique tests every time. That's why I bought the Enthuware. I am, like you, making use of what resources I have. Besides the K&B SCJP 6 book, this site has been probably the single best resource for me.
I miss questions for simular reasons as you. When I don't know the answer, even if I guess right, I make a note and I code some examples out to see what happens. Memorizing a lot of the little rules of what you can and can't do is challenging. Some of the concepts are starting to glue together now though. For instance, I get why you can't have a static methods in an abstract class. I no longer just need to memorize that rule, I just know it now because of what I have learned about abstract classes.
Using Ethuware's Average Scores feature, I am scoring the same or better than others who have taken the tests(100's of attempts and I'm assuming 100's of users) and they give the average score of the actual test around 83%...but that is just about 80 users that have reported their score to them. Those stats would tell me I'm ready to take the exam and pass but with so few reporting thier scores I'm not so convinced. I would love to know that I am ready for the real exam.
Joined: Dec 30, 2010
Thanks for the encouragement, sometimes I need the help maintaining my morale. As soon as I've passed the test, I'm going to start a serious job hunt. If nothing else, I think that going through this OCPJP experience will get me past a few tech screen interviews. All this intensive review of the basics, and especially of the new generics stuff, has definitely honed my coding skills.
For example, I now know a "stupid Java trick" that allows me to run a class from a java command line without writing a main() method. Just write a call to a static method that kicks off the program inside a static initializer block. The class loader will find the class and run the static initializer before attempting to run the missing main method. You'll get a "NoSuchMethodError", but the program will run anyhow. Here's some code that demonstrates that:
On the topic of access to more books to help prepare for the test, and more than that, get a deeper understanding of Java, you can get a subscription to Safari Books Online for $23 a month for 10 book access, and $43 for unlimited access. I used to get a free subscription from work, but I got an individual subscription right after the layoff so that I could keep my bookworm habit going. The best thing is, you can search the entire library of more than 10,000 titles for just the information that you need, so you don't have to buy a $60 book and then find out that only a chapter or two turns out to be useful, or maybe even that the book is totally worthless. Here's a link: https://ssl.safaribooksonline.com/subscribe "Memorizing a lot of the little rules of what you can and can't do" goes beyond challenging, it's a major pain in the butt . I'm used to Eclipse or RAD taking care of all that stuff and concentrating on getting the business requirements right instead of trying to be a human compiler. But, I guess that's what you have to put up with to pass the test... As far as the rule that you mentioned goes, that "you can't have a static methods in an abstract class", that's actually not the case. Here's an example that compiles and runs, showing that an abstract class can have a static method:
From what I've been able to get through my head, an abstract class can have anything that a concrete class can have, but it cannot be instantiated with the "new" operator, and of course, it can't be made final. If you wanted to do something totally warped, you could even declare a bunch of final public static constants in an abstract class and use the abstract class like an interface.
Well, that's it for now. I hope you're having a happy New Year's day, and that the year will bring good things and prosperity to all of us laboring, or hoping to go back to laboring, in the IT vineyard. May there be better times ahead for us all!
Joined: Dec 27, 2010
Thanks for your last reply Frank. Happy New Year to you too. I hope we all prosper and get our lives the way we want them to be.
I guess I don't know as much about abstract classes as I thought. I read on this forum that you couldn't have static methods in abstract classes...and it made sense to me. Maybe there is a practical use for that somewhere but I would never think to code it. You may have just saved me a wrong test question.
I didn't know you could run a program without a main method either.
When I first started coding Java I used Crimson Editor. That's what I'm using now for exam prep. In school I used NetBeans and at work I used Eclipse and I think RAD7 was the last version I used. It spoils you with it's functionality. I mostly wrote web applications that used Oracle databases along with a few others. The output was almost always JSP pages. I considered myself good at what I did and so did my peers, bosses and the users of my apps because I got results, usually faster than the end of the timeline for the project.
Preparing for this test has taught me just how little I knew of the language. The more I learn...the more I know I need to learn.
Let me share my experience with mock exams while I was preparing for my SCJP in early 2007 I spent more time on understand the question and evey option that why its right and why others are wrong instead of just getting it right , I used the preparation to fill all the gaps which I had I was not concerned about score I was concerned about
completeness of concept and that helped me in the long run . Also for most of the mock exam I found there answers extremely useful especially whiz labs.
That's good advice. I am making notes on the questions that I miss and some that I get right. Enthuware allows you to make a note with a header and a body. I have over 100 notes now. When I run across questions I don't fully get, even if I get it right, I make notes of the explaination they give. Most of the time I code it out right then and there to see the concept in action.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com