This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Hi guys, it is a pleasure to share my experience about passing the SCJD Certification.
Finally I got the result on December 17 2008. I was waiting since November 2008. After taking the essay exam, I always checked for the result every 2 hours fearing about the automatic fail.
Before I share about my result, let me share my brief overview on my certification road:
On July 19 2007, I failed SCJA. It was a long story.
On August 27 2007, I passed SCJP 5.0. Answering the question, "Do you know about the Java Programming Language ?". I said, "YES I CAN!!!"
On January 4 2008, I passed SCJA. Revenge was just the beginning.
On December 17 2008, I passed SCJD. Answering the question, "You know about the language, can you build something with it ?". I said once again, "YES I CAN!!!"
I passed SCJD with the following score : General Con: 100 88 Documentation: 70 70 OOD: 30 30 GUI: 40 27 Locking: 80 80 Data Store: 40 40 Network Server: 40 30 Total: 400 365
I don't really care about the score. Passing is passing right ? When I get the certificate, I'll make the bigger duplicate and put that duplicate into the frame. The big frame.
Here's the major steps for what I did when I was working on the assignment : - Find out how to read the database scheme - Implement the interface provided by Sun - Implement the networking layer - Implement the GUI layer - Create the application entry point.
Of course in the middle of development, I tested all the methods. I tested it without JUnit. I test it in my own way. I also documented my choices.
Database Layer To implement the database layer I created my own interface that extends the DBMain interface and provide 2 additional methods to book room and to search hotel and location. I also used Facade pattern in one class that delegates to 2 behind-the-scene classes. To read the database file back and forward, I used RandomAccessFile. For synchronizing, I used ReentrantLock.
Network Layer I used plain socket (maybe I'm the one who like to burden myself). I develop the multithreading server. To process client's request, I created one method with huge switch statement. It was a complex protocol. I recommend to not use plain socket. Use RMI instead and your life will be easier. I created 7 classes just to provide networking solution.
GUI Layer I created simple GUI, it is too simple so I got 13 points deduction. I create 2 JTextField with the companion JLabel to input the hotel name and the hotel location. I also created 2 JButton to book the room and search the room.
Locking mechanism I used a class which has Map<Integer, Thread> because I used plain socket. Don't use this Map<Integer, Thread> if you want to develop with RMI solution.
I hope my thread can help you with your own assignment. Don't hesitate to ask me if you get a problem with your assignment as I always check the SCJD forum frequently.
I'd like to thanks to the following : (the order is not matter) - Apress who published such a good book (SCJD Exam with J2SE) - Andrew Monkhouse and friends who write the book (SCJD Exam with J2SE) - Paul Anil - Roberto Perillo - And all of the members of this forum who helped me out.
Thanks for reading such a long thread. Remember, passing the certification needs a lot of determination and effort. Intelligence has a little thing to do with it.
That's all. For the participants who still work on the assignment, good luck !!!