Win a copy of Kotlin in Action this week in the Kotlin forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic

Passed OCAJP 8: here's my advice  RSS feed

 
Shane Jensen
Ranch Hand
Posts: 113
7
  • Likes 6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
     
    Jeanne Boyarsky
    author & internet detective
    Sheriff
    Posts: 37230
    519
    Eclipse IDE Java VI Editor
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Congrats Shane! And have a cow for this great write up!
     
    João Victor Gomes
    Ranch Hand
    Posts: 110
    11
    Eclipse IDE Java Netbeans IDE Postgres Database Tomcat Server
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Congratulations Shane! I'm happy to know that you passed too.

    Now, let's go for the OCPJP
     
    Paul Anilprem
    Enthuware Software Support
    Ranch Hand
    Posts: 4097
    33
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Congratulations, Shane! Glad to know our product was helpful in your preparation
    Thanks for sharing the details of your preparation.
    Paul.
     
    Roel De Nijs
    Sheriff
    Posts: 11338
    177
    AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Hi Shane,

    Congratulations champion! Great achievement Now it's time to relax a bit and have a (well-deserved) (or 2 or 3). And if you want to spoil yourself have a Belgian beer, our beers are the best of the world

    Thanks for sharing your experiences. Other ranchers will definitely benefit! Have some cow and a slice of delicious pie!

    Don't forget to add your name to the OcajpWallOfFame!

    Kind regards,
    Roel
     
    Roel De Nijs
    Sheriff
    Posts: 11338
    177
    AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Shane Jensen wrote:I work full-time, so I woke up every day at 1 to study the entire night, and then went to work.

    That's definitely the most crazy thing I have ever read in any topic about passing the OCAJP certification exam. EVen I myself would not be that crazy

    Shane Jensen wrote:Also, I only had six weeks to prepare, and I only have a few months of experience with Java.

    Definitely not a fan of such tight deadlines (certainly if you are not really experienced in Java).

    Shane Jensen wrote: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.

    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!
     
    Shane Jensen
    Ranch Hand
    Posts: 113
    7
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    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.
     
    Shane Jensen
    Ranch Hand
    Posts: 113
    7
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    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.
     
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!