# Course Structure - PD I Certification

Here's a structure of all the learning that you have to do in the journey to become a sought-after Salesforce developer. As always, this is our narrow view of how content can be organised for a structured study - there is no one right answer.

You will also find presentation guides created for teachers and to an extent self-learners - look for Teaching Aids section under each chapter.

The structure outlined below has been applied in dozens of classes - so you can be rest assured that the "thing" works. But, we are always listening to new ideas. We understand if this way of teaching/understanding Salesforce does work for you, but appreciate if you could tell us your opinion!

# Course Structure - Developer Certification

Pre-requisites: Completed Admin course [ or ] Working knowledge of salesforce applications - incl. configuration, and data security.

# Lesson 1: Introduction and Overview

  1. Course Introduction
    • Overview and objectives of this course
    • Platform Developer I certification overview
    • Preparation from Day 1: Theory, Workshops, Notes, Flash Cards
  2. Salesforce and Multi-tenancy
  3. Salesforce architecture recap
    • developer perspective of architecture
    • MVC pattern
  4. Device AppExchange strategy
    • Practical guide to use AppExchange
  5. Salesforce Help and Documentation

# Lesson 2: Configuration Deep-dive 1

  1. Core SFDC objects
    • Capabilities recap
  2. Relationships in SFDC
    • Using Schema builder
    • Master-Detail vs Lookup
    • Relationship b/w common objects like Account, Contact, Opportunity, Case and Leads
  3. Formula fields
    • What is possible?
    • Know differences of functions in formula fields vs. validation rules
  4. Roll-up Summary fields
    • What is possible?
    • Use cases
  5. Validation rules
    • Validation rules and how/when to use them?
    • Differences from using workflow/ visual flows / process flows
  6. Recap record-types
    • Capabilities and usage
  7. Workshop: Configuration Deep-dive 1
    • Use Schema Builder to create objects and fields
    • Identify differences b/w Schema Builder and other Configuration options
    • Identify use cases for formula fields and validation rules
    • Create formula, validation rules for given use cases

# Lesson 3: Configuration Deep-dive 2

  1. Workflows
    • Create workflows to automate field updates
    • Create tasks and send emails
    • Limitations
  2. Process
    • Use Process Builder
    • Understand limitations
  3. Flows
    • Create flows
  4. Demo: Use cases for Flow, Process and Workflows
  5. Workshop: Configuration Deep-dive 2
    • Workflow
    • Process
    • Flow
  6. Accessing SFDC Data from Backend
    • Salesforce Workbench
    • SOQL
    • SOSL
    • Use cases for SOQL and SOSL
  7. Demo: Using Salesforce Workbench & Developer Console
  8. Other declarative customization
    • Customization and features of Heroku platform
  9. Declarative options vs. Code
  10. Quick Recap of UI Configuration & Business Logic in UI
  11. Workshop: SOQL and SOSL
    • Prepare and execute DML statements

# Lesson 4: Introduction to Apex

  1. Apex Overview
    • What is Apex?
    • Variables and constants in Apex
    • Primitive and complex data types
    • Lists, maps and sets
    • Apex triggers
    • Apex classes and methods
    • Using SOQL and SOSL within Apex
    • Governor limits
  2. Demo: Write Apex
    • Use Developer console to write simple Apex
    • Debugging methods and tools
  3. Workshop: Write simple Apex

# Lesson 5: Apex Deep-dive 1

  1. How does Apex fit in the OOP paradigm?
    • Class constructors
    • 'this' keyword
    • Inheritance
    • Interface
    • System classes and methods
  2. Demo-driven Lessons: Bulkification vs. single record processing
  3. Workshop: Apex
    • Create triggers & classes using OOP concepts
    • Bulkified code
  4. Apex error handling
    • adderror()
    • try/catch
  5. Workshop: Apex error handling

# Lesson 6: Apex Deep-dive 2

  1. Order of execution and Apex
    • Triggers vs. rest of logic in SFDC for data updates
    • Recursion/cascading
  2. Data security in Apex
    • Sharing rules
    • Access for Apex creation/execution
    • Differences between anonymous execution, triggers, and classes
  3. Testing
    • Importance of test classes
    • Code coverage
    • How to write test class for triggers, controllers and classes?
    • Execute one or multiple test classes
    • Execution in anonymous vs. tests
  4. Debug logs
  5. Workshop: Write test classes

# Lesson 7: Apex Deep-dive 3

  1. Introduction to Apex Frameworks and Separation of Concerns
  2. Introduction to test data management
  3. Workshops:
    • Write advanced / production grade Apex

# Lesson 8: Introduction to Visualforce

  1. Visualforce Overview
    • What is VF?
    • When to use VF pages?
    • Architecture
  2. Visualforce components
    • Pages
    • Components
    • Tags
    • Expression syntax
  3. Visualforce controllers
    • Standard controllers
    • Custom controllers
    • Controller extensions
  4. Demo-driven Lessons: Simple VF page vs. configured page
  5. Visualforce data
    • Data binding and traversing data
    • Actions
    • Action and navigation methods
    • Handling errors
  6. Workshop: Create VF pages using standard and custom controllers

# Lesson 9: Visualforce II and Lightning

  1. Testing VF pages and controllers
  2. Using static resources, Javascript and Stylesheets in VF
  3. Workshop: Use VF to write complex UI
  4. Security vulnerabilities in VF and Apex
    • Know of common security vulnerabilities and how to avoid them

# Lesson 10: Lightning II

  1. Lightning overview
    • What is Lightning?
    • Why Lightning?
    • Architecture
  2. Demo: Showcase Lightning pages vs. VF
  3. Creating Lightning UI
    • Apps
    • Components
  4. Workshop: Create simple Lightning apps
    • Lightning components
    • Lightning pages & apps
  5. VF pages in Lightning
    • Style sheets to access VF page

# Lesson 11: Deployments in Salesforce

  1. Deployment considerations
    • Development environments in real-world
    • Describe different tool-sets for deployment
  2. Metadata deployment
    • ANT tool
    • Change sets
    • Salesforce DX
  3. Business data updates and deployment
  4. Workshop:
    • SFDC schema access using REST API
    • Create environments and use change-sets
    • Data migration

# Lesson 12: Tools for Developers

  1. Introduction to IDE
    • Eclipse IDE and VS Code
    • Changes to the development and deployment lifecycle
  2. Introduction to Git
    • What is Git?
    • How to use Git?
    • Usage of Git with SFDC
  3. DevOps workflow
    • Version control as source of truth
    • Development & deployment in real-world
    • Code merge
    • Static code analysis tools
    • Test automation
  4. Demo:
    • DevOps flow
  5. Workshop:
    • Use IDE
    • Create and deploy components
    • Use DevOps flow to develop & deploy changes

# Lesson 13: Revision and Prep

  1. Exam Prep and Next Steps
    • Mindset
    • Study of scenarios & questions
    • Multiple choice questions
    • References for further preparation
  2. Workshop: Developer Certification Exam Samples
  3. Q & A

# Lessons 13-15: Workshops on Real-world Case Studies

  1. Solve case studies
  2. Practice tests