Salesforce Platform Developer 2

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.

No alt text provided for this image

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.

No alt text provided for this image

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%.

No alt text provided for this image

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:
No alt text provided for this image
  • 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!

To view or add a comment, sign in

More articles by Robin Barnwell

  • Putting in the hard yards

    Over January & February I’ve put in the hard yards and run a total of 300 miles with an average of 10 miles per run…

    6 Comments
  • The vital statistics

    An end of year update on my London marathon training. I’ve been running now 3 to 4 times a week for more than a year in…

    7 Comments
  • How can Lean support DevOps Continuous Flow?

    Lean is the core tool for optimising flow in mass production manufacturing. From bottles to cars to chocolate bars…

    3 Comments
  • Can you access a Salesforce Record???

    In the work I'm doing in Salesforce, I thought this checklist might be of use to determine why you can / cannot see a…

  • Under the spotlight: Salesforce Profiles

    Being somewhat new to Salesforce I’m aware of the significant amount of personal time that has to be invested to learn…

    2 Comments
  • How fast does contact data decay?

    I don’t know how fast contact data decays. So I thought I’d find out.

    3 Comments
  • Why it is important to Stop Data Decay

    Businesses find themselves in an increasingly competitive market. Not only are they battling with traditional…

    6 Comments

Others also viewed

Explore content categories