Introduction to Salesforce Apex Course

Learn the fundamentals of Apex, no prior coding experience necessary!

Course Content

Expand All
Lesson Content
0% Complete 0/1 Steps

About Instructor

Luke Freeland

Luke is a 15 x certified Salesforce Architect and full-stack Developer who provides Salesforce technical consulting services out of his company, Metillium, Inc. He has been developing and creating custom Salesforce applications since 2011. He has done numerous custom applications using Visualforce, Apex, Triggers, Lightning Web Components (LWCs), Aura components, declarative tools and more. He also has done numerous integrations using the Salesforce APIs and other tools. He loves training others and skilling them up!

13 Courses

Not Enrolled
This course is currently closed50.00

Course Includes

  • 10 Lessons
  • 59 Topics
  • Course Certificate


  1. Hi There, I’m enjoying the course .
    I think I found a mistake (apologies if not):

    1. Introduction to Apex > Salesforce Apex Course
    2. Variables Section
    3. Exercise Section
    4. Exercise #3
    The answer indicated :

    Integer myInteger = 100;
    system.debug(‘myInteger = ‘+ 100);

    However the answer should be:
    Integer myInteger = 100;
    system.debug(‘myInteger = ‘+ myInteger);

  2. Course was great – would recommend breaking up the very lengthy functions & classes. I could have used some exercises at a couple of points midway to ensure I had what was covered down before moving on.

  3. Here’s my two pennies on a better course organization + content for this course. (i.e. What I was hoping it would cover)

    1) Take all the Execute Anonymous syntax lessons, collections & examples and put them in an Appendix called “Beginner programming concepts”
    2) Start with Execute Anonymous / Hello World
    3) Functions & Classes section next
    4) Explain & setup a sandbox
    5) Define a few super simple Salesforce use cases, build corresponding trigger code in a sandbox.
    6) Explain how to write & execute tests.
    7) Explain promoting Apex from sandbox to production.

    1. Greg,

      Thanks for the feedback. My intent with this course is to teach people the “Beginner programming concepts” without any prior knowledge. I wanted students to have a deeper understanding of these concepts rather than a superficial knowledge since these fundamentals are so crucial and applicable across programming languages and even Flows. Triggers, Tests, and Deployments are often introduced in a beginner course like this but there is a lot to learn there to do it properly. To keep the course from being too long, those items will be covered in other courses. For example, I’m working on the Triggers course now.

      1. Understood Luke. With a programming background I am probably not the target audience for this course. I look forward to learning more about Triggers, Unit Tests, and more real world SF use cases, etc in your future courses. Keep in the good work.

        Also one last comment/opinion, I don’t think that Apex/SF Dev Console is where most people should start to learn basic programming concepts like variables, loops, etc. but that’s just me.

        1. Greg,

          Thanks for the continued feedback. More courses are coming. They just take a while to produce. The “Introduction to SOQL” course is scheduled for later this month. The “Trigger” course is being worked on now. After that, I’m thinking a “Testing” course is next.

          Your last comment I interpret as there is a better place to learn programming. Out of curiosity, what do you suggest? Javascript seems to be the most popular one since Web programming is in demand. Perhaps Python?

          1. That’s a good question. I’m an old duffer, so my first programming course was Fortran. Then Pascal. Then Perl. Then Java. Never did much Javascript per se.

            Java to me will always be my bread and butter because of how embedded OO concepts in its framework. I find Java (and reading JavaDocs) is a natural and easy transition into Apex.

            For basic concepts of variables, loops, branching etc. If I had to pick one for TODAY, I would say a scripting/interpreted language like Python would be the best starting point.

            Everyone has a different background and reason to learn Apex, so I 100% agree there is not one universal learning path that is perfect for everyone.

  4. Hi Luke,
    Exercise 2 in Variables shows
    Boolean myBoolean = true;
    myBoolean = false;
    system.debug(‘myFirstBoolean is ‘ + myFirstBoolean);
    but that would return an error as the variable name here is myBoolean and not myFirstBoolean. I hope you don’t mind. I’m really enjoying the course and this is exactly what I’ve been looking for!

  5. Hi Luke ,

    Lesson “While Loop” in “Loops” last code block on the page has
    ” List accounts = new List();” in the example code.
    Assuming this is a mistake.


  6. On the Static Functions module toward the end, I keep getting this error when I try and execute: “static can only be used on methods of a top level type”

    Any advice?

    1. Patrick, I suspect you’re trying to use a static on an inner class, which is a class defined within another class. Static functions and static variables can only be defined on the first class at the very top of the file. That is known as the outer class or parent class. If you can share your code or provide a more specific example of where the code isn’t working, I can provide further guidance.

      1. Hi Luke,

        I’m just trying to get the code in your example to execute.

        public class StaticSummer {

        public static Integer sum(Integer endInteger) {
        IntegerSummer summer = new IntegerSummer();

        return summer.sum(endInteger);

        Integer sum1To100 = StaticSummer.sum(100);

        system.debug(‘sum1To100: ‘ + sum1To100);

        1. Never mind Luke. I figured it out. I was just reading the typing the lessons, vs. watching the videos. I missed a lot of context on the Apex Class stuff. Once I started watching the video for that section, it made sense.

        2. Patrick,

          First, make sure the “IntegerSummer” class was created. If not, create it in its own separate class as described in the “Returning a Value” section.

          Next, create the “StaticSummer” Apex class with this code:

          public class StaticSummer {

          public static Integer sum(Integer endInteger) {
          IntegerSummer summer = new IntegerSummer();

          return summer.sum(endInteger);


          Lastly, execute this code in Execute Anonymous to run the StaticSummer’s sum function with 100 as the input:

          Integer sum1To100 = StaticSummer.sum(100);

          system.debug(‘sum1To100: ‘ + sum1To100);

    1. The course certificate can be found on the course overview page. There is a button to download it. The option will only appear if every lesson and topic has been marked as complete and the course is showing as 100% complete.