Win a copy of Five Lines of Code this week in the OO, Patterns, UML and Refactoring forum!

Rebecca Wolf

Ranch Hand
+ Follow
since Jun 05, 2017
Cows and Likes
Cows
Total received
7
In last 30 days
0
Total given
0
Likes
Total received
17
Received in last 30 days
0
Total given
1
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Rebecca Wolf

Hi everyone,

I passed the OCAJP 8 exam this week. I'd like to take the OCPJP 8 exam next. I have some questions about it, though.

I am relatively new to Java. I only have a few months of experience so far. I had about six weeks to prepare for the OCAJP exam. For OCPJP, however, I can take a lot more time. I can take the exam within the next year or so. I am planning to simply start preparing soon, and then plan the exam once I feel I'm ready.

  • How long would you recommend to take for the preparation of the OCPJP exam, keeping in mind I work full time and don't want to be studying every single night (like I did for OCAJP)?


  • I looked at the exam topics, and I'm a bit overwhelmed. There seem to be a lot more topics on the OCPJP exam than on the OCAJP exam. Is this true? Are the topics also more detailed and complex? It would make sense to me if the OCAJP exam is more difficult, but how much more difficult would you say it is?


  • Do you think it is realistic for me to pass the OCPJP exam (with a score of 80%+) with, let's say, 4 months of preparation? Taking into account my limited experience, and the fact that I scored 81% for OCAJP with six weeks of all-nighters (and all-weekenders). I'd be preparing during irregular intervals I guess: let's say 1 in every 3 evenings or so, and lots of work during the weekend.


  • What book do you recommend? I found that OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide by Jeanne Boyarsky and Scott Selikoff, as well as Oracle Certified Professional Java SE 8 Programmer Exam 1Z0-809 By Ganesh, Hari, and Tushar seem to be popular choices.


  • Is there anything else I need to know that is different about (the preparation of) the OCPJP exam in comparison to the OCAJP exam? Of course I will buy Enthuware's package again. Any peculiarities that come to mind?


  • Thanks!

    Regards,
    Shane

    Roel De Nijs wrote:And if you want to spoil yourself have a Belgian beer, our beers are the best of the world


    Oh I'll be fine. I had a few Leffe Blond waiting in the fridge for just this occasion.
    3 years ago
    Thanks a lot, everyone!

    Roel De Nijs wrote:I fully agree with all your thoughts about exam preparation (it's even if I am reading a summary of all the advice I have given in the OCAJP forum myself ), except for this one. I completely disagree. And I do understand that people have to take the certification exam within a given deadline, but you should be given all the time you need to prepare yourself thoroughly. People tend to forget that the journey to become a certified Java programmer is waaaaaaaaaaaaaay more important than that piece of paper!


    I completely agree with you. This is why I included the disclaimer: it's what I did, but I wouldn't really recommend doing it in terms of learning new things. The reason I followed this strategy was that my employer wouldn't allow me to take the exam at a later moment (which is unreasonable, but still something I had to deal with somehow). But yes, you are right: you should do everything you can to make sure that you have enough preparation time in order to fully grasp all the concepts.
    3 years ago
    Hi everyone,

    So yesterday I passed the OCAJP 8 exam with 81%. I'm very satisfied with this result, considering the circumstances: I work full-time, so I woke up every day at 1 to study the entire night, and then went to work. Also, I only had six weeks to prepare, and I only have a few months of experience with Java.

    First I'd like to thank everyone at this forum who has helped me: Roel, Jeanne, João, Paul, Henry and Jesper. I may have forgotten someone, for which I apologize in advance. When I found this forum, I expected I'd post a few questions and get sorta helpful-ish replies, but what I got was so much more than that: new insights, interesting discussions and extremely helpful advice. I'd also like to thank Mala for her fantastic book.

    Here are some of my thoughts on the exam preparation. Please note that this reflects only my experience, and the optimal study plan may entail something very different for everyone.

  • On writing code. As many others have said: do not use an IDE. An IDE will spot compilation errors for you and automatically generate code for you. You wouldn't be able to properly understand code structures and common reasons for compilation errors. Writing code in a simple text editor challenges you to really think about what you're writing. I used plain ol' Notepad to write code. It was a drag at first, but very quickly I got used to it.


  • On writing code. I wrote code snippets by hand every now and then. Not entire pages of code, obviously, but simple statements, declarations, assignments and so on. Writing code by hand is slower than typing it, which gives you more time to really consider what you're doing. It forces you to go through each step in a live-action manner. Besides, when you write something down, it'll stick in your memory much better.


  • Use the Enthuware exams. I cannot stress this enough. This package is pure gold. All concepts are covered in great details. The exams are very, very challenging. If you do, study and review these exams with great care, it's pretty much impossible to fail the exam. It is very important that you review every question; even the ones you had correct. You may, for example, had a question correct for the wrong reason - this is great for your Enthuware score in itself, but your goal is not getting high scores for the Enthuware exams; your goal is to get a high score on the actual exam. To do so, you need to study each concept thoroughly. Thus, study each Enthuware question, think carefully about why you had a question wrong (or right!) and read the explanation.


  • I recommend manipulating the code of the questions, and try out different combinations. For example: 'what happens if I turn method X into a static method? Or what happens if I cast this integer to a long? I expect so and so to happen, let's see if it does'. Then run the code, and be amazed. If your expectation was correct: great, now try more combinations. Include different aspects of the exam objectives in your code: exceptions, inheritance, data types, loops, you name it. The actual exam will be testing your understanding of combined concepts as well. You shouldn't just study different concepts in silos. It's very helpful to combine them, it'll really help you understand their mechanics.


  • Weight of different topics. My next advice may be somewhat controversial. Again: this is what worked for me, you have to decide yourself what your strategy is. Since I had limited time, I eventually decided to focus on topics that are most important for the exam in terms of quantity: inheritance, exceptions, data types and loop constructs and such. I based this on Enthuware's mock exams, which included lots of questions about these topics. The String/StringBuilder and Date API, on the other hand, were not extensively covered in the mock exams. The same goes for the real exam. I did lose points on these topics though; so I could have invested more time in them. However, If I did, I could have lost a lot more points on other topics. But like I said, this was my own choice. Others on this forum may strongly disagree with this strategy, which would totally make sense.


  • Summarizing helps, but practice is key. I started out with reading and summarizing Mala Gupta's book. I did all the sample exam questions and the mock exam from the book. I did Enthuware's Foundational Test, and scored 73%. Pretty neat, I'd say. I thought I was ready for Test 1, but I scored only 45%. This showed me that I hadn't practiced enough at all. I had theoretical knowledge, but barely any practical knowledge. I then decided I needed to play around with code a lot more. The moral of this story is: reading and summarizing provides you with a solid foundation, but through practice is how you really start making progress.


  • Dealing with lots of code. Some questions may contain a full page of code. In case one of the possible answers is 'compilaiton failure', look for a compilation error first. Questions like these are often meant to confuse you, when really the question is about a simple syntax error. Still consider the other possible answers, though! You might be overlooking something.


  • Lambda questions are pretty much always about syntax. You don't need to know how Lambdas work in detail, let alone even write one from scratch. But make sure you know the Lambda syntax.


  • Don't get cocky. Some questions may seem very easy. If they do, they're often too easy to be true. Take every question seriously. Take your time for each question, and consider every possible answer.


  • When studying, use sticky notes. I have probably used hundreds of these. Eventually, they were all over my apartment. I wrote short and simple phrases on them, often even just key words. For example: one of Enthuware's questions required you to know whether Arrays are an Object. I didn't know they were, so I had this question wrong. I wrote the following on a sticky note: 'Array is Object'. This simple yet effective method helps you in two ways: first, like I said before, writing things down by hand helps you remember them. Second, if you put the sticky note somewhere, you'll sometimes glance at it, maybe even accidentally. This reinforces the information into your mind. As I got closer to the exam, I reviewed my sticky notes and put them into different piles: the 'got it' pile (I didn't look at these again), the 'almost got it' pile (need to review these again), the 'far from remembered pile' (important to check these again a few times) and the 'got it, but essential concept' (these notes focus on important concepts that occur often, so I'll check these again a few times). When you go through notes like these, don't just read the note. Imagine what the code or structure might look like. You have seen corresponding code before at this point, so you should be able to visualize how this concept works in action. The sticky note strategy is just another strategy. There are tons of these out there, of course. Just sharing mine.


  • Last but not least: use this forum to your benefit. This is an amazingly helpful forum. Very knowledgeable people are only a few clicks away. Make sure that you first try to figure out things on your own, though. Simply asking for an answer or an explanation to a question won't teach you anything. Only when you are really stuck or need some additional insight, should you ask a question. Also make sure you provide all the information people need to help you: your source, relevant code, what you have already tried, the problem you're facing and the question(s) you have. Be clear about what you need from others, that's not only respectful towards others, but it'll increase the odds you accomplish what you intended to by starting a topic.

  • Thanks again everyone for your help! I'm sure I'll be around again at some point, since my next goal will be OCPJP some time in the future.

    Regards,
    Shane
    3 years ago

    Roel De Nijs wrote:

    Shane Jensen wrote:My point was that the compilation error only addresses the error on line 1, so that would be the point where the compilation fails.


    I was just nitpicking about your choice of words: you can only "run" a Java class (application) if it was successfully compiled.


    Ah, right. Good point, thanks.

    Roel De Nijs wrote:

    Shane Jensen wrote:I have my exam this Monday


    Best of luck!


    Thanks! I'm sure I'll be fine, largely thanks to everyone's help on this forum.
    Hi Jeanne, Paul and Roel,

    Thanks for the clarifications.

    Paul Anilprem wrote:I agree that the options are not 100% clear but I would also like to mention that the wording of options that I have seen personally in one of the questions on my test (i.e. the real OCAJP8 test) was as follows -

    Compilation fails only at line n1
    Compilation fails only at line n2
    Compilation fails at line n1 and n2.

    I think the word "only" made it clear what the option was getting at.



    That would be fine of course. These answers are slightly different, but clearly have a different meaning.

    Roel De Nijs wrote:

    Shane Jensen wrote:When I try to run the code, only the error on line 1 is addressed:


    I would be very surprised if you were able to run the above code snippet as it will not compile due to two compiler errors


    I know. My point was that the compilation error only addresses the error on line 1, so that would be the point where the compilation fails. Anyway, it's clear to me now what I can expect.
    Thanks, guys.

    Roel De Nijs wrote:
    I think you know what to do this weekend


    I have my exam this Monday, so I'll save it for later. ;)
    Hi,

    Consider the following code.



    Why does this compile? Isn't a large part of this code unreachable at compile time? For example the first else if statement, which cannot ever be reached.

    Regards,
    Shane
    Hi,

    The following question comes from one of Enthuware's mock exams.

    Identify correct statement(s) about the following code:

    You are supposed to select only one answer. Three of the possible answers are as follows:

  • Compilation error because of //1
  • Compilation error because of //3
  • Compilation error because of //1 and //3


  • The third answer is the correct answer. I know why line 1 fails (comma's aren't allowed in numbers) and why line 3 fails (duplicate case value). However, I selected the first answer, because line 1 is where the compilation fails and consequently halts. So the compilation error occurs because of line 1, and not because of line 3. When I try to run the code, only the error on line 1 is addressed:

    TwoReasonsToFail.java:5: error: <identifier> expected
                   int value = 1,000,000; //1
                                 ^
    TwoReasonsToFail.java:5: error: illegal start of expression
                   int value = 1,000,000; //1
                                    ^
    TwoReasonsToFail.java:5: error: ';' expected
                   int value = 1,000,000; //1
                                     ^
    3 errors



    Can I expect similar wording on the exam, and should I then always pick the options which has all the possible compilation failures, rather than the option that causes the first compilation failure (if these options are both present, that is)? Is the way Enthuware and the exam handle examples like these exactly the same?

    Thanks again!

    Regards,
    Shane
    Hi Chivid,

    No worries, you still have plenty of time to prepare. In order for us to help you, could you tell us;

    - What is your experience with Java as a beginner?
    - How have you been preparing so far?
    - What resources have you been using?

    Regards,
    Shane
    Right.. I guess I haven't been exactly sharp today yet.   Got it now, finally. Thanks!

    Henry Wong wrote:

    Shane Jensen wrote:
    Regarding my second question: I don't understand why a static method is not allowed to override a non-static method.



    Overriding does not apply to static methods. It is for instance methods, that are accessible. So... the answer to the question is, no, overridding does not apply for static methods. Period.

    But that is not what you are asking here. You are asking whether it compiles or not -- or at least, that is how I answered it.

    Henry


    True. So then my question would be: why does the following error occur? The method in the class is static, while the method in the interface is non-static. But why is that a problem?

    Powwow.java:16: error: wow() in Wow cannot implement wow() in Pow
    public class Powwow extends Wow implements Pow {
          ^
     overriding method is static
    1 error

    Now I'm not sure whether a non-static method can even override a static method. After the first code change I made, is the static method from class Wow even overriding the non-static method from interface Pow? If not, what is happening? And is it possible for a non-static method to override a static method?