I just wanted to relay my thoughts, experiences, and lessons learned on my road to getting Sun Certified as an SCJP 6 Java Programmer.
First off, I have been working with Java since 1996 and just now, have I finally undertaken this challenge. I keep seeing a repeated theme that the SCJP does not really help those seasoned professionals that already have java experience. I want to first say I totally DO NOT AGREE!!!! I feel this way because the SCJP test forced me to learn parts of the JDK that I just have not used. Mostly due to my lack of knowing the new features in the 6 release. if nothing else, it helps me to sharpen my skills, and keep me thinking toward the future and new API’s I can utilize in the field. So in November 2008, I decided to put my efforts to completing that goal. Originally, I wanted to try to get it before the new year. Here is how I faired, and lessons I learned on my road.
SCJP Exam 310-065 (hardcover)
I started by getting SCJP Sun Certified Programmer for Java 6 Study Guide (Exam 310-065) and started reading. I got through chapter 3 and felt this was going to take forever to read 800+ page book. I was not going to give up though. I did feel the information i was getting was invaluable and there where things I did not know, even early on.
To change the pace a bit, I started exploring other resources for practice (Mock) tests. I found a good list on Java Ranch. I then came across a paid set of Mock Tests from EnthuWare. This has 700 questions in its bank separated into ten 72 question tests, and for $18, this was invaluable. I started going through these tests, and this really helped me to get used to testing the information I was reading from the SCJP book. I feel once I started taking practice tests, is when the information started becoming clear how I would relate testing aspects going forward.
Interestingly enough, I was approached by a client that was seeking a Java Architect, but they wanted the person to be Brain Bench Certified . I had never heard of this up to this point. I started looking at this, and found there are 2 more tests here that are free. The price is right, so lets go for it. The question bank was different, and I really feel this was another great tool to help get into a test taking mind set.
Java Black Belt
With yet another set of tests under my belt, and still wanting to keep things fresh from my book reading, I started searching for other possible test resources. I stumbled across Java Black Belt. This site has far more tests than Brain Bench, and has a great path to follow. Not to mention that the tests are free if you follow the Black Belt path.
I was at about chapter 4 in the SCJP book when I started taking the black belt path. After the the first 3 black belt tests, I noticed that there where plenty of tests that would almost follow the SCJP book chapters. The entire test listing in on the Java Black Belt home page. I felt this was very helpful to me able to use the SCJP self tests, then hit another test on Java Black Belt. After I passed one of the black belt tests, I was still able to go back and take a Beta test.
One of the biggest challenges I faced was having time to actually study. When I started, I was working on a project that did not focus on my Java skills full time. I was mostly working on Build and Configuration Management, as well as Security Auditing. But in my second month, I started teaching a Test Driven Development and Continuous integration Class. I was also working on coarse development for the same class. I found quickly, that I was able to easily create new class scenarios for my students which I have newly discovered. This also helped me to solidify the new material for me.
…last entry on original blog: January 21, 2009 …
… Now, take up where I left off: April 20, 2010 …
On April 20th 2009 I took my test the 1st time.
When I walked into the testing facility, it was a glass enclosed room, with small square cubes to sit. Very uncomfortable, and cramped. I was given an 8″ x 11″ plastic paper and dry marker to write with. So get used to writing notes on 1 paper, then cleaning your notes up during the test.
I brought some snacks and a bottle of water that I had to leave at the front desk, but for me, I must have food for my blood sugar. They will allow it, but you will have to take breaks and go outside the cube to eat/drink. But I feel trying to concentrate with timed stress, then low blood sugar will never be the best result.
I failed the test the 1st time with a 62% of 72 questions and I can not tell you how mad I was. I was so close, yet so far.
As stated above, mostly issues to being able to set aside time in my life to just stop and study for 1-3 months was needed IMHO. I did not have that much time as with financial issues, I really needed to pick up as much extra work as possible.
First, I wanted to say, that since my 1st attempt, I have all but abandoned this blog posting.
On April 20th 2010 I am taking my test again as a re-take.
No more JavaBlackBelt for now. While I think this is a GREAT resource, this does not help with taking the SCJP IMHO. It does not prepare you for the idiosyncrasies of taking the SCJP. It does go much further in helping you learn various aspects of the Java language, and I intend to revisit the site after my test is complete.
Focused on Enthuware Leitner  testing strategy from December until late March as I had free time as I was moving from San Francisco, to Philadelphia PA for work and studies, again became difficult. But the flash card style really helped me focus on the items I really had issues with.
I passed!!!!! YAHOO!
This time I went into the testing room, and when the test began, the 1st thing I noticed that shocked me was there was only 60 questions now. So they shortened the test by 12 questions which is making each question SO much more valuable.
I would have to say, out of 60 questions, there was about 12 that I really was stumped on. This was mostly because those style of questions where not on the practice tests. Functionally:
- Generics / Collections
Other than those 2, I would have made a 90% of my test as all the other categories where 90%. They where by far, the hardest question sections on the test, not just for subject, but also question content. They where the more complex, and lengthy questions. Sun knows they are hard subjects and really makes you work for the grade on those subjects.
I must admit, without the 800 practice questions with Enthu, this would NOT be possible. And I would not have passed the Concurrency or Generics without Enthu either.
But, If you want my advice when studying:
- Get Enthu and get through at least level 2 of Leitner
- Find other Threading SCJP 6 practice questions and master them
- Find other Generics & Collections SCJP practice questions and master them
If you do that, you will not only pass, but you will get your overall score on Concurrency and Generics much higher.
First off, it is my opinion that this test, is one of the greatest benefits to anyone and everyone working in the Java space! I MEAN EVERYONE!!! Yes, I have heard countless postings about how, once you have been working a while, this no longer holds value, bla, bla, bla… This is rambling crap from those who do not want to put forth the WORK it takes to go to the next level!
WHY do I feel this way? I feel there are many benefits no matter what skill level you have:
- Learning things about the JDK you might never have tackled OTJ.
- Forces you to think about small, tricky elements in ALL code.
- Helps hone quick deductive reasoning on small subtle issues.
- Personally, helped me have better knowledge of the JDK, that saved me with learning languages like Groovy 
- This is yet another item that can help distinguish me in the marketplace when I am seeking a job. No matter how much experience you have, certifications are always viewed in a positive light for employers.
- In code reviews, I am able to instantly critique code issue both on semantics, and correctness in these meetings.
TAKE THE TEST!
Or what I really should say is: do not take this test as you are just adding more competition to me in the marketplace if we are both after the same job.
The IDE in today’s world is a TOOL, NOT your friend. it will never help you to be a better programmer, only help you get work done in some fashion. I feel that my lessons have been to really understand what the language can/cant do.
It has also helped me to understand how I should/can focus toward a specific task to me my deadline. Even amidst personal and other work related issue in life.
Notes / References
-  Enthuware: I feel this program was the #1 tool for my studies
-  Groovy: I found that groovy uses inner classes extensively. Groovy also has to abide by the laws of Java. After all, it is compiled down to Java. My studies for the SCJP, have helped me each and everyday on my current Groovy/Grails project.
-  Leitner: The Leitner system is a widely used method to efficiently use flashcards that was proposed by the German science journalist Sebastian Leitner in the 1970s. It is a simple implementation of the principle of spaced repetition, where cards are reviewed at increasing interval.
This blog has actually been a very personal journey, and has transformed my life in so many ways. Even more than I have written in this text. I feel it has been the best thing I have ever done, and I am so glad I did not listen to the past responses for telling me not to do this.
Now, I am off to my next adventure…
[now I’m going to Disney Land 😉 ]