The first step is to join the Salesforce.com Certified Professionals group on Linked In. This is where a lot of information around the exams is disseminated (the assignment registration windows, for example) and the Salesforce certification team often comment in the discussions around test taking.
You'll need to know the following documents intimately:
- Force.com Apex Code Developer's Guide
- Visualforce Developer's Guide
- Web Service API
- Metadata API
- Force.com Migration Too
There are three parts to the exam - multiple choice, programming assignment and essay.
This is an online proctored exam lasting up to 2 hours. There are 69 Questions and the pass rate is 73%, which means that you need to get just over 50 of the answers right. This is different to most of the other exams that I've taken, in that you needed to know reference material in detail (e.g. triggers and orders of execution), plus there was a lot more to take in for the scenarios for most questions.
One thing I found particularly useful was the amount of time that I spend on the Developerforce Discussion boards - being able to quickly comprehend unfamiliar code and spot errors is a definite advantage.
After passing the multiple choice, you the have the opportunity to register for the programming assignment. Assignments are available several times a year, but spaces are limited, so my advice would be keep your eyes peeled for the announcement that the window is open and register immediately. The last window was open for around 6 days and fully subscribed in 48 hours.
Assuming you are successful in registering, you'll receive the assignment requirements. They are very detailed and give you clear instructions as to what you need to focus on and what you shouldn't waste time on as you'll gain no extra marks. The assignments have a deadline date, but you don't have to wait until that date to submit it if you are finished in advance.
The recommendation is to spend 20 hours on the assignment. I spent more than this, initially on research to check the approach that I was using was the correct one (in my opinion at least!) and the rest on revisiting my unit tests as other scenarios occurred to me. I find that once I start coding unit tests it's difficult to stop!
I approached this as I would any customer project:
- Read the specs carefully and understand the requirements
- Produce a design
- Implement the solution and unit tests
- Write a formal QA plan to cover all of the scenarios mentioned in the specs, plus as many others as I can think of, paying attention to security and scalability.
- Use the system for some real-world scenarios
Once you are happy with the assignment, you notify Salesforce that it is ready for assessment and proceed to the final component of the exam.
The essay portion of the exam is also online proctored and has an allotted time of 1 hour. Its important to stay focused for this exam - I found myself writing long paragraphs on the actual code I'd written, which I ended up deleting as it wasn't really relevant to the question.
While an essay exam sounds intimidating, you can expect questions that ask you to explain your approach, how you handled particular requirements and what compromises were made, so as long as you've taken the assignment seriously it shouldn't be a problem. It is possible that the essay questions will make you think of something that you've missed, in which case you have the opportunity to try to come up with a plausible explanation as part of the answer.
The cynical side of me says that the essay questions are to ensure that whoever has submitted the project has actually written it, and isn't simply riding off other peoples's efforts.
Once this is done, there's a wait of around 6 weeks before the results get sent out.