Friday, May 23, 2014

Salesforce.com Certified Force.com Advanced Developer - How to pass the first part

Introduction


Yesterday I passed the multiple-choice part of the Force.com Advanced Developer Exam. Anyone who think this exam is a walk in the park, I will laugh in your face hahahaha. That said, I had a lot of fun preparing for and taking this exam. Since all the information is still fresh in my head, I will like to let you know how I prepared and what my strategy was. I passed right? so it can't be harmful to let you know how I did it.

General Facts


  • 69 multiple-choice questions
  • time: 120 minutes
  • passing score: 73%
  • fee: $400
  • retake: $200

Go here for more information on the exam

Preparation


First you need to download the study guide so that when you are going through the material you know where to place extra emphasis. Get the study guide here.

To prepare for the exam, I used a total of 5 resources, two pdf files, two videos and the Visualforce cheatsheet, plus 1 year of experience in active development on the Force.com platform:




This seems like awfully little. While doing initial research prior to taking the exam, I discovered that many sites or people giving advice about this exam name so many resources that are in my opinion just not necessary. The problem with trying to study everything you can lay your hands on is information overload and the inability to sort throw your knowledge during the exam. Because I concentrated only on the 5 resources named above, I was able to relate specific questions to specific sections in the resources I had used to study which helped me remember the information quickly and precisely. This is not possible if you read 10 different documents on the subject. Bear with me and take this minimalist approach. This is minimalist only in terms or resources. In terms of Knowledge, these resources cover everything you need for the exam and much more. So let's dive in.

The Workbooks


The Visualforce Workbook is an excellent place to start. Even if you have been developing Visualforce for years and think it is boring, still go through it. Even if you do not get any "Aha" moments, you might get some explanations that will make what you know stick more and stand out during the exam. Don't forget, exam conditions are not necessary an accurate measure of how good you are. Being nervous is enough to make many people forget stuff.

The Visualforce workbook


It is about 45 pages and you can go through this in a day of two. Make sure you go through it and master all the concepts. Take notes while you read especially when you have the feeling and know from reading the study guide that something is especially important. Writing it down gives your brain time to register it more and you might recall it later much easily. Every topic in the workbook is extremely important. I would like to say you pay special attention to

  • StandardSetController - QueryLocator - limit on records you can pull?
  • StandardController Class  - what are the methods?
  • Visualforce oder of execution - what happens when a Visualforce page is initially loaded? what is called first in the controller? Constructors?, action methods? getters? setters?
  • Visualforce templates - what are these and what standard components do you need? ever heard of apex:insert, apex:define and apex:composition? what exactly does these components do in the templating process?
  • Visualforce component - know components in and out. Dream about them
  • View State -  what is this? how can you reduce it? ever heard of the transient keyword? ever heard of the private access modifier for instance variables?


but I am not saying you should pay any special attention to these topics. Pay attention to every word in the work book. But know this - if you cannot answer the few questions I have asked above on the morning of the exam, don't bother going

The Apex workbook 


On the other the Apex workbook is almost twice as big as the Visualforce workbook. The same applies here. Read all the topics very carefully and be sure you grasp all the concepts. If anything is not clear at anyone point in time, stop and Google that particular topic. Take about 10 to 15  minutes and read a little more on the topic. You will always find an online resource that explains it in terms that anyone can understand. Did I already mention how much I love Google search and the internet. Nope? ok I am doing that now. I love Google search and the Internet.

Every topic in the workbook is important and is part of the exam, not Kidding. I would like to say pay special attention to,


  • Email Services  - how do you setUp email services? how do you test them? - InboundEmail? InboundEnvelope?
  • Testing and Debugging - what does the @isTest annotation mean and what special advantages does it have? what is the syntax of test methods? should they be private or public?, how should good test methods look like and what should they test?, where should their test data come from? how about StartTest and StopTest methods? when should you use them and what are their implications? how would you test a Standard controller? or a Page?
  • Deployment - how do you do deployment on the Force.com IDE, what do you need to deploy from a sandbox to production? change sets? deployment connection?
  • Dynamic Apex - alot on this ... what is Schema Describe? how can you use it and what advantages does it have? what is Dynamic SOQL? what is Dynamic SOSL? what is Dynamic DML? if you are given snippets of code, can you differentiate between these?
  • Asynchronous Apex - what is the @future Annotation and what does it mean? does it have limits? what are these limits? can you use it the Web Services callouts? how?. What are batch jobs and how and when should you use them? Batchable Interface, Batchable Context, start(), execute, finish() ....  help .... what is all this?
  • Order or execution - what happens when a record is updated? when exactly are system validations fired etc. 


I am not saying you should pay any special attention to these topics, you should pay special attention to every word in the workbook. BUT if you cannot answer all the questions asked above on the morning of the exam, then don't bother going. YOU WILL FAIL miserable.

Online trainings 


You will need to register to get access to the online tranings.

When you have read and understand ALL of the stuff in the workbook, it is time to use the online training videos to make the stuff stick in your memory. The videos will go through all the topics again in more detail and give examples. Even if you are an experience developer, I can tell you now that you will have a lot of Aha moments. How does a normal List (List<Account>) differ from an array List (Account []). Are they even different? What is the difference between writing Account [] in Apex and in Java. Coming from a Java background it was awesome for me to learn the difference. If you do not already know it, go find out and enjoy!

If you have been working with Saleforce.com or developing on the Force.com platform for a while you can skip the first 35 minutes of both online trainings and go straight to the juicy stuff. These give an introduction to the Recruiting Application used to teach the concepts and an Introduction to the Force.com platform. The Recruiting Application is in my opinion irrelevant, concentrate on making the concepts stick. And if you do not already know the Force.com platform very well, then you are wasting your time reading this.

Remember the study guide? Yes by now you should now what to lay special emphasis on. So while going through the videos what i did was, I took screen shots of slides which I thought were of importance. I would open the sidebar with the transcript before taking the screen shot. So I have the explanation as well. I will explain later how this helped me. I also took screen shots of all knowledge check questions and answers. To take screenshots i used Fireshot which is an excellent plugin for taking screenshots. I took me 3 to  4 seconds to get a screen shot.

So I organised these screen shots into different folders;



I later arranged them into a word document for studying quickly.

NOTE: Now that I am done with the exam, I have deleted these screen shots from my hard drive and have neither distributed nor shared them in any form. And you shouldn't either. These is copyrighted material belonging to SFDC. That said let's move on


Day Of Exam


On the night before the exam go to bed early and sleep enough. Anything you haven't studied, you haven't studied period. Some people always try to stuff themselves with knowledge right before the minute when the exam starts.

But if you rest enough and go to the exam relaxed and confident, you will be in a better position to remember what you learnt and be able to apply common sense to questions that are not obvious. As an example; in the exam I was asked to select which method wasn't part of the StandardController Class; new(); save(); edit(); view();. Do you know the answer? well I didn't but I still got the points for this question because I was able to apply common sense couple with what i already know about the StandardController Class. When you are in an instance of the StandardController Class you already have a record you are dealing with (StandardController.getRecord() in a controller extension), so why would you ever need a new method?. This was my reason and I picked new() and I was right.
Even if you have to guess, which is the case at times in multiple-choice exam, you can use your good judgment to be able to make educated guesses. At times if you are able to pay attention, questions that you had answered before will give you glues to questions that are still to come. But this is possible only if your brained is rested and relaxed and not stress and panicky. So rest well before the exam.

Do you remember those few screen slides you prepared while listening to the online training and the knowledge check questions? this is when you need them. After a good nights rest, a healthy breakfast, you will take about an hour to go through this stuff. This has two effects;


  • you will revise some core and maybe elusive concepts
  • you will be able to boost you confidence even more. You will already know most of the stuff on these slides and will brush through the knowledge checks like nobody's business. This will boost your confidence and put you in the perfect mind set for the exam


Yes what about the Visualforce cheatsheet? I haven't mentioned it all. This would also be a good time to look at it. It is two pages in total and briefly summarizes all available standard components. There were two questions in the exam I knew for a fact were right because I read this cheat sheet.

After this, you are ready for the exam. If you have followed my tips the fullest, you will be ready to take and past the exam. But don't forget, all the preparation in the world doesn't help you if you do not have and maintain the right attitude during the exam.

During the Exam


You are sitting in the exam room, you are on question 5 and have already marked two questions for review and it looks like you might be marking 5 for review as well. What do you do? start panicking would be the worst thing you can do, because all the preparation would have been in vain. Yes it may not be a walk in the park as we would expect after such a great and intensive preparation but don't forget that it was a great and intensive preparation. You are prepared for the exam. That is all that you have to remember. Then keep your cool and as the Brits will say "Carry On".

Try to mark as few questions for review as possible because if you apply your knowledge, common sense and instinct, you will be fine. There is no point in second guessing yourself. When I finished, I had marked only three questions for review and out of these I changed only one. So don't second guess yourself.

Keep your cool right through till the end and you will be fine.

Conclusion


I did the exam in 100 minutes, marked only three questions for review and passed the exam. I had a lot of fun preparing and taking the exam and learned a lot in the process. This means that my method worked and that is why I am sharing it with you.
However I am aware that people are different and gather, assimilate and consume information and knowledge differently. That is why these methods might not work for you exactly the way they did for me but you should try it. Most importantly find out what works for you. Do no hesitate to challenge my methods and share your own learning techniques with us especially in regard to preparing for and taking the DEV 501 exam. Happy learning and thanks for reading.

1 comment: