Tuesday, May 14, 2013

Are You Eligible for the SCJD/OCMJD Certification?

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.
• 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

Monday, May 13, 2013

About the SCJD/OCMJD Certification

If you are reading this article, it means that you are thinking or have decided about taking the OCMJD (formerly SCJD) Certification. Let me start off by congratulating you on this career altering decision.

The Java certification program consists of four certification exams:
Programmer exam — The Programmer exam tests the candidate's knowledge of the Java language and basic application programming interface (API) packages.
Developer exam — The Developer exam tests the candidate's ability to complete an extended programming assignment and answer questions about issues and trade-offs involved in completing the assignment. Programmer certification is a prerequisite to Developer certification.
Web Component Developer exam — The Web Component Developer exam tests the candidate's knowledge of developing Java Web applications using Java servlets and JavaServer Pages (JSP). The exam consists of 60 multiple-choice questions. Programmer certification is a prerequisite to Web Component Developer certification.
Architect exam — The Architect exam tests a candidate's familiarity with the technologies used to build Java-based enterprise applications and the candidate's ability to resolve issues in Java application design. This exam focuses on much higher-level software- and system-engineering skills than the other exams

Purpose of the OCMJD/SCJD Certification:

The purpose of this certification is to see whether you can do a full object-oriented analysis and design cycle. The assignment has many subtle aspects that are easy to overlook, including gathering requirements accurately from the instructions, making a decision about extending versus modifying, and implementing design patterns correctly.

Do you understand object-oriented development? Many people can theoretically explain what OOD is but if you ask them to practically use that in developing/designing a system, they will fail miserably. This certification assignment forces programmers to step up from coder to object-oriented analysis and design. During the course of this series on the SCJD Certification, we will use UML for design and also to describe software components.

I hope you are in the practice of doing the same because UML has become the lingua franca of software design artifacts these days. UML enables you to draw a picture of an application that everyone can understand. For example, it's easier to see a design pattern in your project if you depict it with UML before writing the code. You don't need special software; just paper will do for this assignment. Of course, creating UML diagrams is easier if you have Visio or the market-best software MagicDraw UML.

The assignment requires you to apply design patterns as required. These patterns dictate the best way to define your objects and their relationships. Patterns are more than just another requirement; their proper use facilitates your overall development effort.

What this certification can do For You?

One of the results of Java's popularity is the high demand for skilled Java programmers and developers. However, because of Java's brief existence, experienced Java programmers are hard to find. If you have had the fortune or should I say misfortune of trying to hire a senior Java programmer for your project, you would know that just by seeing the number of years someone has worked in Java does not qualify them as a Senior or Experienced Programmer. This is where the OCMJD/SCJD Certification comes into play.

Getting the OCMJD Certification validates your claim as a top-notch Java Professional who has solid experience in the industry. You can demand a higher pay level and a better role with the same no. of years of experience as compared to a guy who doesn’t have your certification credentials.

Next: Are You Eligible for the SCJD/OCMJD Certification?

© 2013 by www.inheritingjava.blogspot.com. All rights reserved. No part of this blog or its contents may be reproduced or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without prior written permission of the Author.


Google+ Followers