In October last year I was awarded the Salesforce Advanced Developer certification and recently presented a brief session at the North UK Salesforce Platform DUG about passing on some tips.
The certificate is made up of 3 parts:
- A multiple choice exam
- A programming assignment
- A written essay style exam about the programming assignment
Multiple Choice Exam
The multiple choice exam takes the same format as the Salesforce Developer and other exams, 69 multiple choice questions, 120 minutes to complete and a 73% pass mark, all proctored and under exam conditions. The syllabus can be found here and contains details about every topic that could come up in the exam. My advice is to give yourself a month or so before the exam to review all the material in chunks. A lot of it is stuff that you will no need to know for a day-to-day Salesforce Developer/Tech Lead/Tech Architect role (for example limits in email templates) and so you should be sure to give yourself enough time to prepare thoroughly. Jack Li has put together a great set of notes you can find here as well. You should use them as a starting reference for what type of information you will need to know for the exam, however they are not comprehensive as some of the contents of the exam have been updated due to new release material.
You will need to be very thorough in going through the syllabus but everything is easily accessible from the help files and documentation (you can pretty much Google the phrase in the syllabus and it will take you to the information you need to learn). I found flashcards a really useful study aid for this exam - there are a number of things you will need to memorise for the exam (save execution order, certain limits, etc.) and flashcards are an effective way of doing spaced repetition to help you remember more. I used Anki but have also heard good things about Quizlets.
The questions tend to be of 3 different types:
- Scenario with possible options
- What’s wrong/what will happen with this code?
- What is XXXX?
When it comes to reading the code questions, have faith in your convictions and step through the code logically as if you were doing some Rubber Duck Debugging. I personally find it easy to over-analyse these types of questions (they have asked me because there must be a problem, but they know I know they want me to think there is a problem etc.) but I don’t believe there is any intention to trick you in the questions. A lot of the answers to all the question types will hinge on a specific detail so just be thorough when reading through.
I have been asked by a few people if there are “shortcuts” on studying - things to learn and things to not look at. There is as far as I am aware nothing to do other than to learn the contents of the syllabus thoroughly. It will make you a better developer for having done it and in my exam I am sure every area was covered.
You can also read a list of things people have compiled for learning from Jitendra Zaa and Matt Lacey on their respective blogs.
Once you have cleared the multiple choice exam you will need to sign up for the programming assignment portion. Check the dates on the certification website and make sure you are logging on to sign up at the time when the window you want goes live for registration as places fill up very quickly. You will need around 20-30 hours to complete the assignment in full and make sure you have covered everything off in lots of detail. You will get given feedback at the end of the assignment about what was good and bad about your work - be sure to test everything in large amounts of detail and stick to the spec they provide. Once you have completed the assignment it takes around 6-8 weeks for you to get the result back.
Key things for the assignment are:
- Structure your code sensibly and logically
- Use platform features wherever possible
- Focus on functionality and less on a flashy UI
- Test everything and write system/functional tests as well as unit tests
- Take your time and go through the spec in detail
If you want a good example project to work on the brilliant Steven Herod has posted something on his blog here and again Matt Lacey has provided some highlights and tips.
The essay portion of the certification you will take during the same sort of time window as doing your programming assignment and you will be asked a series of questions about the programming assignment you are doing, the architectural choices and decisions you are making, the technical patterns and strategies you are using and so on. I would recommend doing this at about the 66%-75% range of your assignment as you will have completed a sufficient amount of the assignment to provide good answers and will also have enough time to make any last minute tweaks based upon things you may think of during the process of explaining the decisions you have made.
For this, make sure you understand your system and why you have done it in such a way. Good, clear, concise written communication skills are a must for this part so make sure once you have written your answer you re-read it to check for the above items.
Success! And a Few Thoughts
Hopefully after doing all of this you will then hear back from the certification team informing you that you have passed. I would emphasize taking some time to read through the feedback provided to you with regards to the programming assignment as it will be very helpful and honest and should be seen as a learning point going forward.
I would highly recommend working to attain the Advanced Developer exam as it definitely helps in improving your overall skill-set and reminding you of a few items that you may not see on a day to day basis or have forgotten. It is also still a rare certification and as such will open you up to new roles and enhanced employment opportunities.
Good luck and feel free to tweet me @pbattisson if you have any questions!
A copy of the slides from my talk are available Dev 501 DUG
In the original release of this it was pointed out I had incorrectly attributed the notes to the wrong author. This has been corrected and they are now correctly attributed to Jack Li.
Share on Twitter, Facebook, Google+
Last week I passed the first part of the Salesforce Advanced Developer (501) Certification, which was a 69 question multiple choice exam that required a 73% to pass. I still have a programming assignment and essay questions that will come (much) later this fall before I am fully certified, but this was a certification that I felt pretty compelled to complete considering I felt like my experience working on the Salesforce platform the last few years made me quite familiar with the topics covered and it would be nice to validate that.
Reviewing the study guide (and many blogs written by those who have passed), I came across most of the general concepts that were covered. Some of the blogs I found valuable for preparation:
After taking the test, I’d have to say that someone who works with the platform day-in and day-out should get at least half of the questions right (with the caveat that they are doing things correctly) just by drawing for your experience. Although without extra preparation there were some aspects of the platform that I either had never gotten to use before or that I needed to brush up on to be completely confident that I could correctly answer questions about them.
Some of the more obvious things to know based on the aforementioned resources if you aren’t already intimately familiar with them:
- Know how to use the Force.com Migration Tool and Force.com IDE and what they are capable of
- Know the best practices of Apex to prevent hitting governor limits
- Know how to write unit tests
- Know how to write Apex Controllers and Extensions, what the constructors look like, and how Apex Controllers interact with Visualforce Pages
- Basic SOQL
- Team Development (and Development Lifecycle) best practices
In particular, the following were things that I paid careful attention to that I don’t work with every day:
- Inbound and Outbound Email Services
- Visualforce Page Templates and Visualforce Email Templates
- Custom Components
- Visualforce Action Tags
- Apex Annotations and Webservices
- Dynamic Apex
- Methods to access Schema
- Trigger and Visualforce Page execution orders
Remember that anything in the official study guide is fair game, so I would suggest that if you don’t have hands on experience that you at least go through some examples instead of just trying to memorize anything. If you come from a Java/C# background, you have a leg up in that you will be pretty familiar with the syntax, but I still wouldn’t advocate jumping into the test without some test development. I’m always pushing the Apex and Visualforce Force.com Workbooks as a great tool to jump into the programming side of the platform.
As many other bloggers have noted, if you simply read the Apex Developer Guide, Visualforce Developer Guide, Migration Tool Guide, and Development Lifecycle Guide, you will know everything asked on the test. Unfortunately that isn’t always possible, so ensuring that you have strong fundamentals on the platform and augmenting that with some of the pieces that you haven’t used before that are referenced above should help you pass the test. Worst case, you learn some new techniques and/or unveil some functionality that you can integrate in your code going forward!
For more information on the second part of the Advanced Developer certification, take a look at the followup blog post: Salesforce.com Advanced Developer (501) Programming Assignment & Essay.