Last year, while looking through LinkedIn, a trend I had previously noticed, was suddenly becoming even more prominent. Jobs that were labeled as Salesforce Admin positions, even those which require only a few years of experience, are asking for candidates who at a minimum had some knowledge or experience with APEX or even Web APIs and web development.
As a result of this trend and because of my own gravitational tracking towards a more technical role, I started to explore the developer side of Salesforce. My background has always precluded me towards something more technical, with a combination of a degree in Information Systems, combined with working on websites, my understanding at a basic level existed by default for more code/programming like things.
In my roles, up until this point, my coding had been limited to reading and doing small debugging fixes within Salesforce, with the exception of some lovely HTML email templates. I wanted to get past that point to where I could actually say that APEX is apart of my toolbox and not just something that I can read or debug.
So with that thought in mind, my journey began. It started off with APEX academy from SFDC99 on Pluralsight which you read about here and here. After that, I moved over to the Developer Beginner trail on Trailhead. I got through quite a few of those modules before a friend of mine, who has been a software engineer for many years, recommended I switch gears and focus on actually trying to do projects. The idea behind this was simple. By actually doing meaningful projects, it would expose me to the concepts and challenges that I would face in a real development role, rather than memorizing or copy and pasting (hint: this not how you learn programming).
First, I wrote down the business cases for which I was exposed during my Salesforce career that had yet to be solved (tip: don’t come up with random ideas that you’re not interested in). As my first project, which was the Normalizer Account Billing Address, I came across some basics that I needed to nail down, so that going forward the concepts would be as much bread and butter to me as creating a profile or field was. That same friend helped me with exercises across numerous topics, including Maps, parsing JSON, and even the foundational understanding of how to give my code a sound structure.
Through the exercises and the project, I began to feel more comfortable with what I was trying to achieve and probably before I had even completed the first project, I could have passed the Developer 1 exam. However, one of the goals for myself was not to just pass the exam and say great another cert, but rather to be able to say hey, I have the Platform Developer 1 cert and I actually know how to do these things, while still at a junior level, I actually have a clue.
To get to the point where I was comfortable and happy to take the exam was after I completed 3 projects, all of which were open source and hosted on GitHub. The first project and third project were both working with different API and handling data integrations from outside sources, while the second project was something I created to solve a problem I was having real time, which was completely internal to Salesforce.
These projects combined together really had given me a foundational understanding of how APEX works and some basic design principles to follow (e.g. error handling, input validation, modularization). I am nowhere near done with my learning, but really who ever is, but I now feel like I am ready and capable to take on the challenges that require APEX code and also feel as though I have an extra tool in my box that is very valuable.
I have since taken my Platform Developer 1 exam and passed (first try!), woohoo! I am now working on trying to get a better grasp on the Lightning Development, specifically for Lightning Components as I know that it is the next great thing for Salesforce.
One other thing that I have learned through this process and know that I want to continue to pursue is my interest in making connections between Salesforce and external APIs. This idea can bring so much additional functionality to the Salesforce platform, that the ideas are almost unlimited. I have as result noted as a goal for myself to get the Data Integration certification which is part of the Architect path from Salesforce.
Wish me luck!