aspose file tools*
The moose likes Certification Results and the fly likes B&S 2.2.3: 380/400 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Certification » Certification Results
Bookmark "B&S 2.2.3: 380/400" Watch "B&S 2.2.3: 380/400" New topic
Author

B&S 2.2.3: 380/400

Marc M Kossa
Greenhorn

Joined: May 11, 2009
Posts: 5
This is mostly a copy/paste of an article I wrote in my blog, I hope it's OK to post it here.

One year ago I became certified as a Java Programmer. This year, I took advantage of the free voucher program that Sun offers to its employees to pass the Java Developer certification.

The Java Programmer certification tests the understanding of the language, and of its core APIs. The Java Developer certification is the next level. It tests the ability to complete a full project. I was given an assignment and had to work on it at my own pace (there's a one year time limit). Then I submitted my work, which was reviewed by an assessor. At the time of submission, I also had to take a written test at a Prometric center, where detailed questions about the code were asked. This written test is mainly to ensure that I was the one who wrote the submitted code.

The assignment is not 100% precise on all aspects, and I had to make choices. This decision-making process is also part of the grading

The Database part of the project must implement a Java interface that is specified in the assignment. The assessor runs some automated tests against that API, and the tests must pass. As Sun do not publish these automated tests, I wrote a lot of unit tests to make sure all aspects of the API were covered and worked.

It is not specified in the assignment if logging should be used. From what I saw on the JavaRanch forum, some people remove all logging code just before submission, to be safe in case there's a problem in the logging code itself. I decided to keep it, because that's what we do in "real" applications: we don't remove logging before shipping. It is possible that it lowered the score I got on the General Considerations part (see below).

I generated some UML diagrams (with NetBeans) to clarify the relationships of the different interfaces and classes, and included it in the Javadoc. I felt this made the overall structure easier to understand.

It took exactly 4 weeks after submission and written exam, to get the results.

There are different possible assignments, the one I got is known as Bodgitt and Scraper 2.2.3.

It took me 3 months to complete the work, and I estimate the time spent on it to be around 100 hours. On these, about 50 hours were the actual code writing, testing, documenting and debugging, and 50 were on doing research: on the different design patterns that could be used, on trying different locking strategies to compare performance, on trying the different network approaches and comparing them, and trying different tools to generate UML from code,... This takes time as it forced me to look for solutions that were not familiar, and this is one of the great strength of the certification : to learn new ways of solving problems, not on relying on the same solutions over and over again.

In the written exam, they asked which solution is chosen on a particular problem, and why the other options were not adopted. This means different options must be evaluated. Answers like "I used RMI because it does the job, and it's the only technology I'm familiar with" is not the best answer.

Here's the detailed scoring report I received:

This report shows the total points that could have been awarded in each section, and the actual number of points you were awarded. This is provided to give you per-section feedback on your strengths. The maximum possible score is 400; the minimum to pass is 320.

* General Considerations (maximum = 100): 90
* Documentation (maximum = 70): 69
* O-O Design (maximum = 30): 30
* GUI (maximum = 40): 31
* Locking (maximum = 80): 80
* Data store (maximum = 40): 40
* Network server (maximum = 40): 40


I got the worst score on the GUI part. This is a confirmation that GUI design is better not done by Developers, but by real Designers :-) .

Being involved in commercial Java projects on my daily work at Sun, I can tell that what is asked by the Java Developer certification matches closely with what is expected from a working professional. For example, it would be risky to try this certification without using some kind of Source Code Management tool. It is also critical to develop correct Unit Tests in parallel with the code, as well as overall tests. Good code documentation is essential, as well as end-user documentation. The ability to deliver all that is tested by the certification.

Thanks to all of you on this forum for the help.

Marc
Roel De Nijs
Bartender

Joined: Jul 19, 2004
Posts: 5216
    
  12

Hi Marc,

95%, nice score

if everything goes well i will be submitting my assignment this week and take friday my essay exam. I have 1 little question: how did you handle a possible InterruptedException (if you used wait/notify/notifyAll)? and did you mentioned something in your choices.txt

Kind regards,
Roel


SCJA, SCJP (1.4 | 5.0 | 6.0), SCJD
http://www.javaroe.be/
Marc M Kossa
Greenhorn

Joined: May 11, 2009
Posts: 5
Roel De Nijs wrote:if everything goes well i will be submitting my assignment this week and take friday my essay exam. I have 1 little question: how did you handle a possible InterruptedException (if you used wait/notify/notifyAll)? and did you mentioned something in your choices.txt
Hi Roel,
I did not use wait/notify, I used higher level primitives that do not return InterruptedException. We can go in more details, but I wouldn't want to confuse you at that stage (wait/notify works perfectly as well).
Marc
Marc M Kossa
Greenhorn

Joined: May 11, 2009
Posts: 5
Roel De Nijs wrote:if everything goes well i will be submitting my assignment this week and take friday my essay exam. I have 1 little question: how did you handle a possible InterruptedException (if you used wait/notify/notifyAll)? and did you mentioned something in your choices.txt
Hi Roel,
I did not use wait/notify, I used higher level primitives that do not return InterruptedException. We can go in more details, but I wouldn't want to confuse you at that stage (wait/notify works perfectly as well).
Marc
K. Tsang
Bartender

Joined: Sep 13, 2007
Posts: 2379
    
    7

congrats. You didn't use wait/notify? wow i want to know what the "higher level primitives" are.


K. Tsang JavaRanch SCJP5 SCJD/OCM-JD OCPJP7 OCPWCD5
Roel De Nijs
Bartender

Joined: Jul 19, 2004
Posts: 5216
    
  12

Hi Marc,

Just like K. Tsang curious about these "higher level primitives". But i'll stick with my approach of wait/notify, because it works perfectly, so i will not get confused

Kind regards,
Roel
Marc M Kossa
Greenhorn

Joined: May 11, 2009
Posts: 5
I used (J2SE 6.0) java.util.concurrent.ConcurrentHashMap to hold the database, and java.util.concurrent.Semaphore to implement lock()/unlock().

Marc
satishkumar janakiraman
Ranch Hand

Joined: May 03, 2004
Posts: 334
Congratulations


sat
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: B&S 2.2.3: 380/400