# 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
- Course Introduction
- Overview and objectives of this course
- Platform Developer I certification overview
- Preparation from Day 1: Theory, Workshops, Notes, Flash Cards
- Salesforce and Multi-tenancy
- Salesforce architecture recap
- developer perspective of architecture
- MVC pattern
- Device AppExchange strategy
- Practical guide to use AppExchange
- Salesforce Help and Documentation
# Lesson 2: Configuration Deep-dive 1
- Core SFDC objects
- Capabilities recap
- Relationships in SFDC
- Using Schema builder
- Master-Detail vs Lookup
- Relationship b/w common objects like Account, Contact, Opportunity, Case and Leads
- Formula fields
- What is possible?
- Know differences of functions in formula fields vs. validation rules
- Roll-up Summary fields
- What is possible?
- Use cases
- Validation rules
- Validation rules and how/when to use them?
- Differences from using workflow/ visual flows / process flows
- Recap record-types
- Capabilities and usage
- 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
- Workflows
- Create workflows to automate field updates
- Create tasks and send emails
- Limitations
- Process
- Use Process Builder
- Understand limitations
- Flows
- Create flows
- Demo: Use cases for Flow, Process and Workflows
- Workshop: Configuration Deep-dive 2
- Workflow
- Process
- Flow
- Accessing SFDC Data from Backend
- Salesforce Workbench
- SOQL
- SOSL
- Use cases for SOQL and SOSL
- Demo: Using Salesforce Workbench & Developer Console
- Other declarative customization
- Customization and features of Heroku platform
- Declarative options vs. Code
- Quick Recap of UI Configuration & Business Logic in UI
- Workshop: SOQL and SOSL
- Prepare and execute DML statements
# Lesson 4: Introduction to Apex
- 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
- Demo: Write Apex
- Use Developer console to write simple Apex
- Debugging methods and tools
- Workshop: Write simple Apex
# Lesson 5: Apex Deep-dive 1
- How does Apex fit in the OOP paradigm?
- Class constructors
- 'this' keyword
- Inheritance
- Interface
- System classes and methods
- Demo-driven Lessons: Bulkification vs. single record processing
- Workshop: Apex
- Create triggers & classes using OOP concepts
- Bulkified code
- Apex error handling
- adderror()
- try/catch
- Workshop: Apex error handling
# Lesson 6: Apex Deep-dive 2
- Order of execution and Apex
- Triggers vs. rest of logic in SFDC for data updates
- Recursion/cascading
- Data security in Apex
- Sharing rules
- Access for Apex creation/execution
- Differences between anonymous execution, triggers, and classes
- 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
- Debug logs
- Workshop: Write test classes
# Lesson 7: Apex Deep-dive 3
- Introduction to Apex Frameworks and Separation of Concerns
- Introduction to test data management
- Workshops:
- Write advanced / production grade Apex
# Lesson 8: Introduction to Visualforce
- Visualforce Overview
- What is VF?
- When to use VF pages?
- Architecture
- Visualforce components
- Pages
- Components
- Tags
- Expression syntax
- Visualforce controllers
- Standard controllers
- Custom controllers
- Controller extensions
- Demo-driven Lessons: Simple VF page vs. configured page
- Visualforce data
- Data binding and traversing data
- Actions
- Action and navigation methods
- Handling errors
- Workshop: Create VF pages using standard and custom controllers
# Lesson 9: Visualforce II and Lightning
- Testing VF pages and controllers
- Using static resources, Javascript and Stylesheets in VF
- Workshop: Use VF to write complex UI
- Security vulnerabilities in VF and Apex
- Know of common security vulnerabilities and how to avoid them
# Lesson 10: Lightning II
- Lightning overview
- What is Lightning?
- Why Lightning?
- Architecture
- Demo: Showcase Lightning pages vs. VF
- Creating Lightning UI
- Apps
- Components
- Workshop: Create simple Lightning apps
- Lightning components
- Lightning pages & apps
- VF pages in Lightning
- Style sheets to access VF page
# Lesson 11: Deployments in Salesforce
- Deployment considerations
- Development environments in real-world
- Describe different tool-sets for deployment
- Metadata deployment
- ANT tool
- Change sets
- Salesforce DX
- Business data updates and deployment
- Workshop:
- SFDC schema access using REST API
- Create environments and use change-sets
- Data migration
# Lesson 12: Tools for Developers
- Introduction to IDE
- Eclipse IDE and VS Code
- Changes to the development and deployment lifecycle
- Introduction to Git
- What is Git?
- How to use Git?
- Usage of Git with SFDC
- DevOps workflow
- Version control as source of truth
- Development & deployment in real-world
- Code merge
- Static code analysis tools
- Test automation
- Demo:
- DevOps flow
- Workshop:
- Use IDE
- Create and deploy components
- Use DevOps flow to develop & deploy changes
# Lesson 13: Revision and Prep
- Exam Prep and Next Steps
- Mindset
- Study of scenarios & questions
- Multiple choice questions
- References for further preparation
- Workshop: Developer Certification Exam Samples
- Q & A
# Lessons 13-15: Workshops on Real-world Case Studies
- Solve case studies
- Practice tests