- Introduction in FP
- Functions
- Function composition
- Higher order functions
- Immutability
- IntelliJ & Scala plugin
- Terminal & REPL
- Variables And Types
- Fun with REPL
- Functions
- String Manipulation
- Type Inference
- Examples
- Control structures
- Packages & imports
- Option vs null
- My first program (App trait)
- Examples
- Introduction to collections
- Collection types (List, Seq, Array, Map, etc.)
- Typed collections
- Examples
- Higher Order Functions & lambda functions (anonymous)
- Operations on collections (traversing, transforming, filtering, etc.)
- For Comprehension & Ranges
- Examples & demo
- Tuples
- Records (case classes)
- Classes, Objects and Type Hierarchy
- Pattern matching
- Examples & demo
- Modules and packages
- Functions & partial functions
- Function application (varargs, Call by Name, Call by Value)
- Examples & demo
- Type aliases & Generic Types
- Recursive functions
- Examples & demo
- Traits
- Enumerations & Sum types
- Pattern matching for records (extractor objects)
- Examples & demo
- Threads and ExecutionContext
- Futures & Promises
- for notation and flatMap
- Composing (chaining) futures
- Introduction to actor model
- Actors and their guarantees
- Actors as state machines
- Examples & demo
- Re-visiting recursive functions and stack safety
- Implicit casts
- Extension methods
- Co[ntra]variance
- View bounds
- Path dependent types
- Examples
- What is Spark?
- Databricks
- Databricks UI & API
- Demo
- Spark architecture (driver & workers)
- Spark data distribution (RDDs, DataFrames, Datasets)
- Examples
- Spark components
- Solving problems using Spark
- Examples & demo
- 1:1 prep for techinical interview & HR interview
- Why soft skills matter
- Technical knowledge coverage
- What kind of interview questions should you expect
- Interview simulation