My tryst with the Advanced Developer exam began in Dec 2014. After 2 days of solid studying + leaning on my experience, I was able to pass the multiple choice exam.
Read about that here.
After this began a long wait. It seems that there was a huge backlog for this exam and in between Salesforce was also revamping their developer certifications which led to the Platform Developer I and II.
In any case, almost 11 months later in November 2015 I got a notification that I could register. As usual, I could not register soon after the email arrived and so all the slots were taken.
I then sent a mail to the awesome Salesforce support team and they were able to get me in. I think this was because I explained I had a very long wait time since passing the multiple choice exam.
I was given a slot for the Dec 2015 batch. At about this time I had made plans to leave the US and move to Australia to check the place out. So the first 3 weeks in December would be spent serving my notice period. I got the programming assignment mailed to me on Dec 1 and the deadline was Dec 30.
When I got the assignment, I quickly read through it. As many have told, at a high level it consisted of a VF page, APEX controller and trigger. I will not go into too many details about the assignment itself. But it seemed manageable.
The recommended time was at least 20 hours. No sweat right? So I decided I will work until the 18th and then start work on this from the 19th which would give me roughly 10 days. But this ended up being a BIG MISTAKE!!!!!
I kept reading the assignment from time to time in between and work was pretty intense for the last 3 weeks and I through all of that and soon enough Dec 19 arrived.
I read through the assignment in greater detail and began forming the overall design in my mind. It was at this time that reality hit me. This thing needs 60-80 hours of work.
Especially if you are like me – a Technical Lead who can code/program if needed but does not necessarily do it everyday. Also, the assignment tests you on your core knowledge of VF and APEX and this might include stuff which you may not have worked on before.
So to summarize, if you work with APEX and VF daily then you can do this without breaking a sweat, If you have been rusty with these then you better allocate the whole month because you need to look up stuff, learn new things and you will be slower with the coding.
So here are my TIPS for doing well.
1. DO NOT UNDERESTIMATE THIS EXAM. When you get the programming assignment, start work on it ASAP.
2. Read the whole assignment and break it into smaller logical chunks as you would do in a real life project. Follow Object Oriented design principles.
3. Pay attention to the finer details. An innocent looking 1 line requirement may cause the whole design to be changed and also cause permanent hair loss!!!
5. Focus on making the application robust and think of scalability at all times. In other words you need to follow the APEX best practices and the secret word here is BULKIFY!!!!
APEX best practices
APEX trigger best practices
6. Follow this golden rule: “Try to do calculations first in SOQL, then in APEX and finally in Visualforce”. What this translates into is writing good SOQL queries and making use of Aggregate functions.
7. Read this GEM of a document. This is often overlooked but we all need to read this regularly if we are VF developers (reminder to self: Practice what you preach!!!)
Keep it handy when working on the VF side of things as it has great tips that we all SHOULD know.
Visualforce in practice
8. Testing : No doubt you have read a million blogs about this. The often underestimated part of developing in a Salesforce environment but it has the potential to bite us HARD when we least expect it.
The same is the case with the programming assignment. You have to strive for near 100% code coverage.
i. You have to follow the Testing best practices and code coverage best practices.
Testing best practices
Code coverage best practices
ii. Keep it simple. Small unit tests. Methods to create your data.
iii. Write good ASSERT statements. We have read that folks use around 80-100 assert statements and I would concur. If you have between 60-80 also you should be fine as long as you test all the major functionality.
iv. Strive for 100% code coverage or at least 95% +. This will be the most challenging part as you will see.
v. If you already follow great testing practices in your day to day APEX coding then good on you. You will do well here.
vi. Be prepared to write bulk test cases, boundary condition test cases, positive and negative test cases.
9. Add great code comments. I am not saying write stories above your code but nice comments help to explain what you are doing. Have comments above classes and methods that explain their purpose and the arguments that they require.
10. MANUALLY TEST your application – Goes without saying. Test your application well(Functional testing). It should scale well and you should handle all exceptions gracefully.
The assignment wont be hard nor easy. In other words it can be nicknamed the “GOLDILOCKS” assignment. If you know know who she is, Click here.
As I said, do not underestimate the exam. Spend the whole month on it. Make it near perfect. Remember it has be near production-quality as top APEX experts from around the world will test it and then check your code. So dedicate the time and you will succeed.
Use core APEX and VF features. If you are using JS then you will surely fail based on what I have seen and heard.
What happened to me?
After scrambling to finish the assignment and follow all these rules I was able to finish the coding in the midst of planning my Aussie trip and packing for it. My wife also wanted to go on a short road trip to New Mexico (Roswell) on new year’s day. So I scheduled the programming assignment on 29 Dec. When I went to write it, my coding was complete and test cases were 70% done. But I knew my code in and out and also my unit testing strategy. The Essay exam asks you questions to determine if you have done the assignment yourself. It asks you to explain key design decisions among other things. So answer this to the best of your ability.
I should say that disaster struck since there is 1 hour allocated and time will FLY!!!! There was a glitch in the testing software and I had to run and bring in the examiner who restarted it but to my utter HORROR, the long answer to the 3rd question was lost. In the last 2 mins I tried to retype what I could but it could not cover it. I later came home and sent a mail again to the great Salesforce support team and they were able to retrieve my answer..HURRAY!!!! The other alternative was taking the essay exam again and it was averted. Praise God!
I came home at 4 PM and code unit tests non stop until 1 am in the night. The fear of disappointing my wife and the prospect of seeing aliens in the freezing land of Roswell motivated me. After coding with peak efficiency and sheer desperation, I was ready to deploy this to the production org and SUBMIT the assignment. It was finally done. There was relief and trepidation as I knew what would happen next. A team of Salesforce experts/whizkids/Einsteins/ascended masters would basically dissect my code and see if was fit to enter the hallowed ranks of being an Advanced Developer. I had heard of several top and ace programmers/architects who had failed the exam on their first attempt.
As it was the holiday season, the grading was a little slow. On Jan 25, I left the USA for Australia and this was at the back of my head at all times. Finally on March 24, I got a GOLDEN email from Salesforce saying I had passed.
What a feeling it was!
And so it was done. A journey of 1.3 years from the time I passed the multiple choice exam. No wonder this exam is so well regarded. It tests you completely and helps you to demonstrate your Salesforce programming knowledge. It is tough, daunting and takes a long time. It will test you and stretch you to your limits at times. It is not hard but following the basic rules and getting it to near perfection will be the main challenge especially when you have a busy work life.
But when it is done, there is a magnificent sense of accomplishment. For me it was the holy grail and the king of my 10 certifications at this time. I highly cherish it and thank everyone who supported me for it.
Special thanks to my wife who supported me during those grueling 10 days when I did this. Actually I dedicate this certification to her! Because without her help this could not have been done.
And yes the road trip to New Mexico amidst the snow and winter was awesome. Though we did not see any little green men. But maybe they saw us?
Note: The Advanced Developer is not offered any longer and perhaps I was one among the last few who got it. I suppose the Platform Developer II’s programming assignment is similar and I hope my experience helps others. Please be sure to holler in the comments.
Thanks for reading.
This is first time i am going to write article on any Salesforce Certification. This time it is about “How to Pass Salesforce Dev 501 Certification”. I have already received many request on how to prepare for this certification.
Dev 501 certificate in Salesforce will validate that how comfortable you are as a developer with Apex and Visualforce ? In order to get Dev 501 Certification, Developer needs to go through 3 Steps :
- Pass Multi – Choice Exam
- 69 Questions, 73% Passing
- Complete Assignment if you pass Step 1
- Essay writing
- Need to answer 3-4 questions regarding your design in assignment to validate that you have written code. If you are confident, you can give Essay before submitting Assignment also. This step also needs to complete in Proctored center like Step 1.
After these steps, You will get final result in 4-5 weeks.
First, you have to go through below three Guides in very detail, I would suggest you should go for second round also before 2-3 days of exam.
- Apex developer Guide
- Visualforce Developer Guide
- Salesforce Migration Guide
Below are the Topics to focus more (MUST) for preparation.
- Order of Execution of Trigger
- Which Trigger gets fired in Merge Operation ?
- Read about Undelete Trigger.
- How to Test Triggers ?
- How to reduce ViewState ?
- What is MVC ?
- How to create Custom Component ?
- How to Test Email Services ?
- What is sequence of execution of Visualforce in GET Request ?
- Sequence of execution of Visualforce in POST Request?
- When to use Package, ChangeSet and Force.com Migration tool ?
- How to use Visualforce Template ?
- What is supported in <apex:attribute> tag ?
- How to use Dynamic Apex, Dynamic SOQL and Dynamic SOSL ?
- What is Script Limit, DML Limit, Sandbox limit and so on…
- How Exception class works?
- There were many questions on System Log (Developer Console).
- Very good understanding of Static variable and Global class.
- How to create REST request and how to test it.
- When to use Visualforce Template and what are drawbacks of it ?
- How Visualforce properties (Getters and Setters) works ?
- Considerations for Constructor ?
- How to create Controller Extensions ?
- Difference in System.AssertEquals, System.Assert ?
- How to get 100% Test Coverage ?
- Read about SOQL Clauses like FOR UPDATE, ALL ROWS .
- File names of ANT Migration and there usage ?
- How to delete something using Migration Tool ?
- When to use Sandboxes and when to use Developer Account ?
- How to add custom (Create Visualforce) button on List Views ?
- Difference in <apex:Actionsupport>, <apex:ActionFunction> and <apex:ActionPoller> ?
And, there were many questions on other parts. I would strongly suggest to read all 3 PDF specified above.
Note :I will not reply to any comment regarding actual / sample questions. I would be more than happy to help and suggest on any topics specified above.