Salesforce Platform Developer 2
I didn’t intend to take Platform Developer 2. I’d passed Platform Developer 1 in March 2018 and then wanted to explore Lightning Components and DevOps in more depth.
So I jumped onto the Trailhead and took the Lightning Component Superbadge. In general, I tend not to use Trailhead. I find it doesn’t help my learning. But I really loved this badge. It was well designed and got me thinking.
Anyway, I did the Lighting SuperBadge in the Summer and disappeared off into learning DevOps – Github, Ant, Jenkins, Gradle, Package.xml and all the rest. Then around Christmas I thought I’d have a go at PD2 so over the holiday period I banged-out the rest of the Superbadges while eating chocolate and watching movies.
Here are my tips on Superbadges
1. Don’t cheat. Yes, the answers are available on Github and you can copy and paste yourself to success. But don’t. What is the point? They are designed for education and to allow you to learn new functionality not to brag about being a Ranger.
2. Experiment. Yes, you have to answer the exact question, but use the opportunity to explore the topic. The final code you write needs to be exactly right, but you can still experiment and learn.
3. Take your time. Enjoy the experience.
4. Fix your own bugs. You can jump immediately onto the Success group to get help as soon as you hit an issue. But what if you owned the problem? It might take another week of research and investigation but it’s good learning. For example, in the Lightning Superbadge I encountered the following code. This took me off on a crash-course in Javascript.
var action = component.get("c.GetBoatTypes");
action.setCallback(this, function(response) {
var state = response.getState();
if (state === "SUCCESS") {
component.set("v.BoatType", response.getReturnValue());
}
else {
console.log("Failed with state: " + state);
}
});
$A.enqueueAction(action);
},
Preparing for the exam
With the SuperBadges out the way I turned my attention to the Exam. In hindsight I should have used the SuperBadges to augment the Exam preparation and done them both in parallel. But I didn’t. It took me a couple of goes to pass the exam. I took it first in February and again in March. I estimate I went from 56% to 75%. The passmark is 63%.
There aren’t many people offering practice exams for PD2. I did use the couple below and they were good, but not enough to pass first time. I had to sit the exam to really understand the depth of the questions & level required
First off, the exam covers a lot of topics. I would suggest this list provides a good starter for ten of the areas to cover:
Logic and Process Automation
· Trigger execution order
· Visualforce execution order (Initial & Postback)
· Integration between flow/process builder and Visualforce/Apex
· Declarative / programmatic considerations
· Governor limits and inefficient code patterns
· SOQL syntax and return types
· SOSL syntax and return types
· Asynchronous execution – future, queue, batch, schedule
· Dynamic Apex / SOQL / SOSL
· Apex managed sharing / Sharing Objects
· Inbound email handling
· Error exception handling
User Interface
· Standardsetcontroller / standardlistcontroller
· Custom controller
· Controller extension
· Visualforce actions
· Visualforce continuations
· Visualforce partial page refresh
· Visualforce error message display
· Visualforce components
· Visualforce templates
· Visualforce Javascript / remoting
· Building lightning components
Integration
· Inbound SOAP Webservices
· Inbound REST HTTP services
· Outbound SOAP Webservices
· Outbound REST HTTP services
· Integration authentication methods
· Metadata API
· Streaming API
· Analytics API
· Bulk API
· Tooling API
· Schema API
Data Modelling and Management
· Compound data types
· Master-detail relationships
· External ID’s / Unique ID’s
· Account / Person records
· Roll-up summary
· Formula Field
Salesforce Fundamentals
· Multi-currency
· Multi-language
· Custom labels
· History objects
· Custom settings
· Custom metadata
· Chatter objects
· Heroku
· Canvas
Testing
· Unit testing methods
· Test data creation methods
· Mock methods
· Testing Visualforce controllers
· Test execution methods - parallel
Performance
· SOQL performance
· VisualForce performance
Debug and Deployment Tools
· Developer console – every window
· Change sets
· Force.com migration tool
· Eclipse IDE
· Workbench
In terms of preparation I used a variety of techniques:
- Read the manual. This was my most important resource. Any spare time, sit down and read through a topic area and take notes. New things appear every time as connections get made and understanding increases.
- Write the code. Jump onto Developer Console and Workbench and try things out. I built a large library of code snippets that show how things work e.g.
// Savepoints
contact con = new contact(Lastname = 'Bob', Department='Admin');
insert con;
contact con1=[select name from contact where id=:con.id];
savepoint sp1=database.setSavepoint();
con.department='HR';
update con;
database.rollback(sp1);
system.debug(limits.getDmlStatements());
database.delete(con1.id);
// Date time strings
string x = string.valueOfGmt(system.now());
system.debug(x);
// Odd Update syntax
contact con = new contact(id='0036A00000qmIjI', lastname='Bob' );
update con;
// SOSL
AggregateResult[] ag = [select industry, sic, avg(numberofemployees) People,
sum(annualrevenue) Revenue from account group by industry, sic];
For (AggregateResult ag1 : ag) {
system.debug(ag1.get('Industry'));
system.debug(ag1.get('Sic'));
system.debug(ag1.get('People'));
system.debug(ag1.get('revenue'));
}
- Youtube. There are loads of Dreamforce and other videos on YouTube to get a good grounding in a subject
- Trailhead. I didn’t use Trailhead, I just don’t like it very much
For the exam
You get 2 hours for the exam so take your time. Make sure you really understand the question and are sure of your answer. It is really easy to miss a subtle nuisance in the haste to finish.
- Select 3 out of 5 questions. These questions are looking for your depth of understanding of the topic. There are a number of these. You can generally find one of the wrong answers and two of the right answers. Leaving you with the last two to decide on. In my preparation I did define “key facts” for topics and memorising these helped. I used the technique described by Tony Buzan of using an ordered list of mental images. For example, for Trigger Execution Order:
- Code questions. There are a fair number of these, where you need to review the code and identify the issue. What I found difficult with these is they were for errors you just wouldn’t do. So I didn’t know what would happen if I made the mistake. For example what would you find in trigger.new[0].id in a Before Insert Trigger? What error would you get if you tried to access it?
- Limit questions. Learn your limits, all of them. What limit will be hit first. What gets counted as using limit.
The questions do match the exam weighting so go heavy on Apex, VisualForce and Testing. This will get you the bulk of the answers and the rest will get you over the line. Good luck!
Congratulations Amil Hussain