Scala 3 & Functional Programming Essentials
Become a Scala programmer. Dive head-first and hands-on into the fundamentals of Scala and functional programming.
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), streaming (Kafka, Akka Streams), microservices (Lagom), web apps (Play) 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 41000 students who took this course 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, Akka, Play, Lagom etc
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
- using functions as values
- anonymous functions (lambdas)
- the underscore notation and alternative syntax
- higher-order functions
- map, flatMap, filter
- pattern matching
- variance (introduction)
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
- (soon) You'll be able to download the videos for your offline view
PreviewObject-Oriented Basics (16:26)
PreviewObject-Oriented Basics: Exercises (24:08)
StartMethod Notations (25:23)
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)
StartAnonymous Classes (10:38)
StartExercise: Extending MyList (27:46)
StartCase Classes (20:02)
StartHandling Exceptions (26:59)
StartImports and exports (16:19)
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 June 2021, I've taught Java, Scala and related tech (e.g. Akka, Cats, Spark) to 41000+ students at various levels and I've held live trainings 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 20000 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.