Last year our COO Paul wrote and published two books on the Salesforce Apex programming language – “Learning Salesforce Development with Apex” and “Mastering Apex Programming“. Both have received great reviews on Amazon and we asked Paul to give us a bit of background as to why he wrote the books, who might be interested in reading them, and how to best learn and master the Apex language.
Where the idea came from
Over the 12 years I have been working with Salesforce, I have worn a number of hats. I have been a product manager, a developer, an architect, and a trainer to name but a few. I have been lucky enough to get to help a number of people start off working on the platform. A couple of years ago I took this to the next level and became a Salesforce Certified Instructor. I have noticed there are a number of key areas which many people find tough when working with Apex. I have found this both in helping people get up to speed on the platform, and as a senior team member on projects mentoring and guiding others.
Learning any programming language is difficult, but I think Apex is uniquely tough sometimes. For starters, it is not typically taught at university. You have a few hurdles to getting setup such as getting a developer environment and knowing how to navigate Salesforce. There is often a lack of abstract learning and reference material. We are blessed with many learning resources in the Salesforce ecosystem. There are official options like Trailhead and the Trailhead Academy classes and additional material from community members including blogs and courses. I personally find I learn best from a book. I like the ideas and concepts explained to me with an example. But I also want it in a way I can come back to and use in the abstract later.
Learning Salesforce Apex
I agreed to write my first book, “Learning Salesforce Development with Apex” to help try and plug this gap for those new to Salesforce Apex. For admins and junior developers there can be a plethora of terms and concepts that are difficult to grasp. It can also be difficult to learn a programming language. Many of the pieces need you to know other pieces first. Many learners struggle as too many concepts are taught at once. This makes it difficult to understand the topic at hand.
In writing this book, I tried to make it simple and easy for someone to go through, chapter by chapter, and focus on one topic at a time. I cover a lot of the concepts in the abstract first, irrespective of the programming language. Whether it is Salesforce Apex or some other language, many of the core concepts are the same. So understanding them in general will make it much easier to apply them when needed. I also tried to make it easy to both jump to a section in the book, so it can be used as a reference. If you are a new developer or Salesforce Admin trying to learn Apex, hopefully it will help your understanding.
Junior to Advanced Developer – Mastering Salesforce Apex
As I was writing the first book it became clear that there were many areas I wanted to cover or cover in more detail, but were not really right for a beginners book. I therefore began noting down a list of areas that would help someone who had been working with Salesforce Apex for a few years really begin to master the language. At this point I want to thank Mike Gill, one of our awesome architects. Not only did Mike help sense check the ideas but was a brilliant technical reviewer throughout.
The focus of “Mastering Apex Programming” is therefore on understanding some of the more complex areas of Salesforce Apex. I was fortunate when I started that it was easy to be on the bleeding edge of Apex. This was because the platform was a lot smaller and everything was bleeding edge. In my time working with Salesforce and Apex, a number of huge innovations have occurred to the language. Batch Apex, Platform Events, updates to the testing framework, Queueable Apex and Apex REST to name a few. These options all help you to deliver more robust and scalable applications, but are not used by every developer. They can be very min-boggling when you first start working with them.
The book falls into 3 sections. Firstly it discusses common mistakes and best practices. I felt this was an important first section to help ensure that the common silly mistakes we all make are identified and dealt with. The second section focusses on the various asynchronous Apex options and how and when to use them. The third and final section focusses on performance. This has long been an area of interest for me and I recently spoke on this at London’s Calling.
A few people have asked if I have a third book in mind to complete a trilogy. Currently this is a no, but never say never. Being locked indoors for a year due to the pandemic allowed me to focus on getting these books written, something that I am sure would have been harder in a normal year. I would also encourage anybody who is interested in writing a book to do it. There can never be too much material on a subject in my opinion. I categorically do not see my books replacing any of the amazing existing works out there. Rather it is a different set of eyes and experiences on the subject.