1) My background: - 0 years of professional experience in Java - 4 months of preparation
2) Exam Result: - 81%
3) My Discussion items:
3.1) Planning: First, I laid out planning (no. of chapters to read / week, goal etc...) on a paper in 1st week of September 2012 & then glue it on my study room wall. This was a constant reminder towards my GOAL. I clearly specified I will take it in DEC 2012.
3.2) Resources: Go for only recommended resources only. Here they are:
1) Sun Certified Programmer for Java 6 study guide - by Kathy Sierra & Bert Bates
2) OCP Java SE 6 Programmer Practice Exams - by Kathy Sierra & Bert Bates
3) Whizlabs (http://www.whizlabs.com) for Instructor led training + their mock exams. I think this is good but probably required for people who don't have experience at all. Anyways it's good.
3.3) Execution: 3.3.1) 2 months : Sun Certified Programmer for Java 6 study guide.
3.3.2) 2 weeks: OCP Java SE 6 Programmer Practice Exams
3.3.2) 3 weeks: Whizlabs training + its mock exams
3.3.4) Rest of the time : Revision of OCP Java SE 6 Programmer Practice Exams and then Whizlabs mock exams.
3.4) Personal notes: 3.4.1) Write lots of code: Create Java project using Eclipse but later use only notepad & command prompt (DOS) to execute your java program. This is extremely important decision as it will make you fully aware with syntax and its formation. IDE generates code automatically that is not a good practice for your API and syntax memorization so don't use it. In short, write lots of code and make sure you understand WHY it is coded that way rather than HOW.
3.4.2) Actual exam is little bit easier than what is given in the Practice Exams book.
3.4.3) Quick code checks:
184.108.40.206) Overall syntax is correct like main function declaration, local vars in method etc...
220.127.116.11) Make sure SUPER is not being called from static context
18.104.22.168) Make sure non-static members are not being called from static context
22.214.171.124) Make sure exceptions are declared in proper order
126.96.36.199) Overriding rules are correctly implemented in subclass.
188.8.131.52) Protected members are accessed via inheritance in the subclass.
184.108.40.206) Default members are not accessible in outside package. Pay attention on questions including two different package.
220.127.116.11) Make sure there are no NullPointerExcetion, ArithmaticException, ClassCastException etc... For example if Object (String or ay other) just defined but not initialized then it can throw NPE.