Right. So, I passed 1z0-808(OCA for Java SE 8) with 97%. I wanted to share some (perhaps useful) tips on how to study for the exam
How I prepared for the the exam -
1. I went through the book by Jeanne Boyarsky and Scott Selikoff(henceforth referred to as "the OCA book"). I already knew Java moderately well at this point. I had gone through the OCA part and some OCP parts of the book by Kathy Sierra and Bert Bates for OCA/OCP 7 (Initially, I wanted to take up OCA 7) . Both the books were invaluable in my preparation(the first one, even more so since it is for 1z0-808). I went through the whole OCA book once and marked all the things that I found difficult to learn. Next I went through the whole book again reading only the things that I had marked.
2. I bought Enthuware Tests for 1z0-808. Seriously, this is gold. The questions here are extremely helpful. Especially if you want to score, say, above 90%. I took the Foundation Test after going through the whole OCA book almost twice and... well, it was a humbling experience to say the least. Haha. I was confused with a lot of questions. The questions here really help you understand the corner cases well. Totally worth 10$!
3. I went through the chapters in the OCA book again. Yeah... boring to go through the same book again. But I hadn't taken any notes the first time around. If I had to pick out one thing that helped me the most, it would be the notes that I prepared while going through the OCA book and after taking tests. I wrote down the important points in each chapter and made it a point to keep it concise. After each chapter, I took the chapter test at the end. I make a few mistakes in all the tests. But that's totally fine. The important point is to learn from the mistakes. And I did. I wrote down all my mistakes, the correct answers to those and of course, why and how they worked.
4. After going through all the chapters, I started taking enthuware standard tests. And yeah, again, it was difficult and I got a lot of things wrong. And again, it's okay to get stuff wrong. The important thing is to not repeat it. So I made it a point to go through all the questions (questions that I had "marked" i.e. were interesting) in the test once I finished taking it. Same procedure again
After taking two enthuware tests, I started taking the Sybex online tests. These contain some interesting questions as well. Again, after each test, you know what to do.
You might think that this noting down thingi takes too much time, but in fact, it saves you a lot of time. How? Because you wont have to go through stuff you already know well again and again. Instead, you'll be improving your understanding in stuff you don't understand well. My enthuware scores were 79%(foundation), 84%, 86%, 92%, 99%, 88%, 91% and 92%(last day test). And the only thing I did was to make sure I understood the things that I read and also made sure I understood the right answers for the things I got wrong on the tests.
Execute the code. Don't just read it. Why? Firstly, you'll learn it better once you see it in action. Secondly, you'll come up with new questions when you write code. Something like "What if I do THIS instead of THIS?" As an example, I was wondering what would happen if I tried to print a String that was null. Something like this -
Then I started wondering what would happen if I tried printing null directly. Something like this -
Interesting problem, try it out. You'll get a lot of problems like these in your head. DONT ignore them. Try those. If you can't try it at that time, note it down (maybe on Google Keep) and try it out later. But do try those and understand how it works.
It was an awesome experience on the whole and now, I feel right at home when I'm inside a class typing away code. Yes, I still don't know a LOT of things in Java but I feel comfortable with Java thanks to the things that I learned while writing this exam. Don't worry about the percentage, I don't know if it will be important. But well, the important thing is to understand Java well and if you do that, you'll obviously get a good score.
Go through all the material once.
Note down the things you find difficult. Take some time and understand these well.
Take some standard tests.
Note down the mistakes you made. Make sure you understand how they actually work.
Execute the code. Try to find the answers to all the questions that you get in your head.