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.
[disclaimer: I started this topic just to see my name in that list that shows up. But maybe we can make it useful anyway ; ) ] I think it would be helpful if people who've taken the exam (passed or otherwise) posted just the top ONE (two, max) thing that they wish they'd learned, studied, memorized, become familiar with, practiced, etc. before taking the exam.
I'll start. The one thing I wish I'd done is become more accustomed to using/reading anonymous inner classes. They show up everywhere in the new exam, so if you don't nail them, you could end up missing questions about topics that you DO know really well. Here are a couple of practice questions... 8. Given:
What is the result? A.) Compilation fails. B.) An error occurs at runtime. C.) foobarhi D.) barhi E.) hi 9. Given:
What is the result? A.) An exception occurs at runtime. B.) true C.) fred D.) Compilation fails because of an error on line 3. E.) Compilation fails because of an error on line 4. F.) Compilation fails because of an error on line 8. G.) Compilation fails because of an error on a line other than 3,4, or 8. [ October 13, 2002: Message edited by: Thomas Paul ] [ Jess added UBB [CODE] tags to help preserve the whitespace in Kathy's snazzy first post in Programmer's Cert ] [ October 13, 2002: Message edited by: Jessica Sant ]
When I took the exam I had been coding in Java for 4 years. I still had to study because I had done AWT for about 6 months in the first year and had forgotten everything. I concentrated so heavily on that that I let other things go. And what got me on the test and what I got at least a dozen questions on was threads. I had been doing a lot of heavy server side Java so threads don't come up all that often and the questions were so bizzare and confusing that I screwed a few of them up. And of course all the AWT questions were simple. So, I wish I had spent more time on threads. [ October 12, 2002: Message edited by: Thomas Paul ]
By the way... in your second question there are at least two compile errors. Typing mistakes?
Cowgirl and Author
Joined: Oct 10, 2002
Hmmmm... how can I change it without giving away part of the answer. I will admit to ONE typo: Line 8 should look like this: System.out.println(o.equals("Fred")); <-- notice the extra paren that wasn't there before
Of course, I'm still not telling whether that line is compilable or not, just that if it isn't, it's not because of that missing paren. cheers and thanks! Kathy
I did, and am still waiting for Kathy to tell us whether the syntax error on line 7 was intentional or a typo. Of course, the equals() function violates the contract in a number of ways, but that's irrelevant here. [ October 13, 2002: Message edited by: Ron Newman ]
Ron Newman - SCJP 1.2 (100%, 7 August 2002)
Cowgirl and Author
Joined: Oct 10, 2002
Originally posted by Ron Newman: I did, and am still waiting for Kathy to tell us whether the syntax error on line 7 was intentional or a typo.
intentional... so I guess you know the answer to THAT one now MORE EXAM TIPS FOR 1.4 You're right about the equals contract being irrelevant. In fact, that's part of my whole point with my choice of "The One Thing.." You have to NOT be thrown by code that, in some cases, you would fire someone for writing. That's been a big problem for people � this is all completely contrived code, so you'll see every possible violation and we made no attempt and I mean NO attempt to write "good" code. But the 1.4 exam has tightened up the language on the questions, and is quite careful about "legal" versus "appropriate". You'll know from the language of the questions if you're being asked, say, whether class XYZ would work correctly as a key in a HashMap. Another thing that's different on the new exam is that in all prior exams, "compilation fails" and "an exception occurs at runtime" were on *some* questions, but now they've been added to almost every question that asks, "What is the result?". This one change has contributed a lot to lowering the pass mark, since now you must first look at each code sample to see if it's even legal, before walking through the logic (and that's my best tip right now: always check for the fundamental violations. We had people spend 5 minutes working out a really tricky, long, complicated code sample who didn't even notice that the class was marked private! It's easy to THINK you know what the question is about, when the complicated code is irrelevant. Hmmm... another tip from the beta (I was the one who had to go through each and every beta tester's comments made while they took the exam): - There is code in the exam that uses IO classes, and people freaked because, "There's not supposed to be IO!" But the actual questions don't involve any knowledge of IO in order to answer them. So if you see something like that, don't panic. Just pretend it might as well be the com.wickedlysmart.FOO class, and look for what's really happening. - Same thing is true with AWT. If you see it, it is not an AWT question. I'll go through my notes and try to find some more "lessons learned" from the beta. cheers, Kathy
Thanks Kathy for the tips on the new 1.4 version of the Programmer exam. Kathy played a key role on our development team by not only writing test items, but by being involved in the early stages where we shaped the boundaries and intent for the exam. And as she mentioned, the new exam is harder, but it is also a more fair test of your knowledge and skills as it continues our trend to test the application of your abilites, not wrote memorization of facts... plus as she mentioned as well, we tightened up our language in the questions, and were careful about "legal" versus "appropriate".
goose (aka: Steven Moore)<br />Senior Program Manager<br />Sun Services - Certification
I just started a post on this related topic - everyone told me that I'd have plenty of time while taking the test and that I shouldn't worry about time management. I wish I'd worried about, and done something about time management. I found the combination of elaborate questions and not much time to be a big factor.
Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
Here is one suggestion that I've been thinking for some time to post here. (I am glad that I did this one correctly.) If some code requiring analysis appears too tricky/difficult and doesn't seem to test any useful Java concept, and doesn't feel like it could be done in 2 minutes, immediately stop analysing the code and look out for some gross silly error, like static method calling instance method or accessing instance variable, top-level class declared private, etc.. This can save a lot of time. Thanks, Sudd
SCJP 1.4, SCWCD, SCBCD 1.3
Joined: Oct 14, 2002
Also - the questions do range quite a bit in complexity - I think it's worth taking two passes through the questions, the first pass to look for the easy 'ducks' , to make sure you have time for all the easy questions, then go back a second time for the tough ones.
Yes, 1.4 seems harder than anything I studied for in 1.2. I studied for the 1.2 exam quite extensively, between programming contracts, then jumped into the 1.4 exam and passed, but not to my full satisfaction. The difference between mock questions for the 1.2 and the questions I found in 1.4 was significant - there were still standard bread and butter questions, but there were also mind bending questions relating to class interaction, etc., that I had not anticipated. O, I also knew inner classes backwards too. So my advice is to go over the fundamentals very well - rote learn, as it stands you in good stead in the workplace when you need to be fast about problem solving. Then, spend another good while thinking of example questions that have to do with one, two, or three classes interacting and presenting a problem - about threads, casting, method overriding, etc.. Nick
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