If you are thinking about taking the OCMJD certification this article will help you arrive at a decision. If you have already decided to take it, I still would suggest you go through this article to double-confirm that you are indeed eligible for taking the exam.
The SCJD certification is designed for developers who are well versed in Java. Of course, you are expected to know the basic structure and syntax of the Java programming language. Beyond that, your ability to design and build a moderately challenging application that could be the basis for a production-level program will be tested.
You need to be aware of several aspects of the assignment. Although you can still pass without doing the activities mentioned in the following list, you'll do better if you use Unified Modeling Language (UML), plan a software development process, use object-oriented analysis and design, and meet the assignment requirements in the downloaded instructions. Generally, candidates who have passed this certification have used industry-standard practices, including object-oriented technology and software development methodologies: requirements gathering and analysis, system architecture and design, implementation, testing, and deployment.
I repeat, many of the articles about the practical exam part are not mandatory to be followed. These are the industry wide best practices which will significantly help you complete the project. However, it is entirely up to you if you want to follow it or not.
The following activities are the most helpful in trying to achieve this certification:
• Analyze the project requirements to define the problem domain and the requirement list.Trivia:
• Design an application architecture that meets the assignment requirements within the stated constraints (for example, must use Swing and JTable components).
• Describe your solution clearly and accurately, including the key application features and the development methodologies and techniques you used.
If you have worked as a Lead or Manager for any IT Project, you will realize that the points mentioned above are some of the biggest pain points faced by us.If you want to summarize the requirements or eligibility criteria for the exam, we can state that the candidate must have many years of Java Programming experience and can design/build a high quality, best performing system. However, this statement is ambiguous and can be interpreted in any way you feel.
To avoid such misinterpretations, the following are some of the key capabilities you must possess if you want to take up this exam. If you already have many of them, you are ready to tackle the certification project. You will learn the characteristics you don't have as you work through the assignment. If you have only a few of these characteristics, however, you should consider studying and practicing more before tackling the SCJD certification.
The certification tests your ability by expecting you to be capable of the following:
• Design Java programs using the tools in latest JDK Version (As per the Exam)
• Have a thorough understanding of programming in Java.
• Have experience in the systems development process.
• Explain the object-oriented software development process.
• Be able to model the software development process.
• Be proficient with a development methodology, such as the waterfall methodology, Extreme Programming, or Rational Unified Process (RUP). – Any one of the above would suffice.
• Use the wait, notify, and notifyAll methods in the appropriate places to avoid thread blocking.
• Understand how the Java Virtual Machine (JVM) starts and runs standalone and networked applications.
• Design strong error handling, including throwing and catching exceptions.
• Analyze the downloaded instructions to determine the assignment's functional requirements.
• Use Java's conditional and loop constructs and flow-control break and continue statements.
• Understand how to declare a class as an interface and then implement that interface in a concrete class.
• Understand how to use anonymous classes for Swing events.
• Be familiar with phases and documentation involved in requirements gathering, requirements analysis, architecture, design, implementation, testing, and deployment.
• Take advantage of the benefits of encapsulation and inheritance in Java's object-oriented design.
• Effectively use overloading and overriding methods in inheritance relationships.
• Handle multiple threads in your code with the synchronized keyword to avoid data corruption in a network-capable application.
• Understand how to implement Java I/O and graphical user interfaces (GUIs) that follow Human/Computer Interaction (HCI) principles.
• Properly package and document your solution to make it clear to the evaluator that you met all requirements.
• Use design patterns, such as Model-View-Controller and Adapter Patterns.
• Document code in a way that takes advantage of javadoc, which is required.
As you can see, many of the requirements above scream – Experience & Expertise blatantly. That is why it is mandatory that you pass the basic or beginner level SCJP or OCPJP exam before you take this up.
Prev: About the SCJD/OCMJD Certification
Next: Introduction - Certification Steps