Scala 3 & Functional Programming Essentials
Become a Scala programmer. Dive head-first and hands-on into the fundamentals of Scala and functional programming.
Think differently.
If you're reading this, you probably know already: Scala is one of the most powerful languages on the JVM and is behind some of the best libraries and frameworks for big data processing (Spark), distributed & fault-tolerant computing (Akka/Pekko), streaming (Kafka, Akka/Pekko Streams), effect systems (Cats Effect, ZIO) and many others.
Scala has seen huge demand in recent years, has some of the best-paid engineering positions, and is just plain fun. I know you can't verify the fun for yourself right now, but I personally hardly know anyone who has tasted Scala and then came back to Java out of their own free will. I also have a stadium of 100000+ students (as of Feb 2024) who took my courses and say the same thing.
After this course, you'll be able to:
- understand Scala in production environments and in any project
- expand your existing object-oriented concepts to a new mindset with immutable values
- think code differently with functional programming
- write powerful code very quickly: 1-2 lines of Scala code enough for 50 lines of Java
- contribute to products and open-source projects written in Scala
- write applications in Scala from scratch
- quickly learn any Scala framework and library: Spark, Cats/Cats Effect, ZIO, Pekko and many others
Skills you'll get:
-
Lasting comfort with the Scala language
- think code differently with values and expressions
- use blocks of code as expressions
- write compact code with recursion
- master the 2 recursion techniques
- use the 3 string interpolation techniques in different scenarios
- use the compiler's type inference effectively
-
Extended object-oriented concepts
- immutable values
- the 3 method notations for expressive code
- singleton patterns in one line of code
- inheritance in Scala
- abstract classes and traits
- anonymous classes
- generics (which are generally poorly understood)
- exception handling
-
Functional programming
- using functions as values
- anonymous functions (lambdas)
- the underscore notation and alternative syntax
- higher-order functions
- collections
- map, flatMap, filter
-
Scala-only features
- pattern matching
- variance (introduction)
- for-comprehensions
all with live runnable examples and practiced with exercises.
Plus some extra perks:
- You'll have access to the entire code I write on camera (2000+ LOC)
- You'll be invited to our private Slack room where I'll share latest updates, discounts, talks, conferences, and recruitment opportunities
- You'll have access to the takeaway slides
Course Overview
-
PreviewObject-Oriented Basics (16:26)
-
PreviewObject-Oriented Basics: Exercises (24:08)
-
StartMethod Notations (25:24)
-
StartInheritance (22:02)
-
StartAccess Modifiers (9:07)
-
StartPreventing Inheritance (7:26)
-
PreviewScala Objects (17:10)
-
StartAbstract Classes and Traits (18:48)
-
StartObject-Oriented Exercise: A Linked List (21:56)
-
StartGenerics (22:02)
-
StartAnonymous Classes (10:38)
-
StartExercise: Extending MyList (27:46)
-
StartCase Classes (20:02)
-
StartEnums (9:10)
-
StartHandling Exceptions (26:59)
-
StartImports and exports (16:19)
Get started now!
Your Instructor
I'm a software engineer and the founder of Rock the JVM. I started the Rock the JVM project out of love for Scala and the technologies it powers - they are all amazing tools and I want to share as much of my experience with them as I can.
As of February 2024, I've taught Java, Scala, Kotlin and related tech (e.g. Cats, ZIO, Spark) to 100000+ students at various levels and I've held live training sessions for some of the best companies in the industry, including Adobe and Apple. I've also taught university students who now work at Google and Facebook (among others), I've held Hour of Code for 7-year-olds and I've taught more than 35000 kids to code.
I have a Master's Degree in Computer Science and I wrote my Bachelor and Master theses on Quantum Computation. Before starting to learn programming, I won medals at international Physics competitions.