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

Available in days
days after you enroll

Get started now!

Your Instructor

Daniel Ciocîrlan
Daniel Ciocîrlan

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.


Frequently Asked Questions

How long is the course? Will I have time for it?
The course is ~12 hours in length, with lectures 20 minutes each. I recommend at least 1 hour of focused learning at one time.
How is a typical lesson like?
Code is king, and we write it from scratch. In a typical lesson I'll explain some concepts, either briefly on a diagram or directly in the code. We then run live examples, and usually I'll finish the lesson with some exercises, which I then solve on camera after you've tried them yourself.
Can I expense this at my company?
Of course! You'll get a detailed receipt with your purchase, including VAT (if applicable to you), which you can take to your employer to reimburse. Most (wise) companies will reimburse courses like this.
Is the course hard?
I've designed the course to give you a challenge, but not too much that it becomes frustrating. In case you struggle with something, we have a whole group on Slack for discussions, and I'm responsive.
What if I don't like the course?
Then I want to give your money back. Email me at [email protected] with your receipt, and I will refund you. Less than 1% of the Rock the JVM students have refunded a course, and the refund took less than 72 hours.
I'm an advanced Scala user. Should I take this course?
Probably not. I'd recommend the advanced Scala course in this case. I'm willing to bet that there are at least 3 topics or techniques in the advanced course you did not know, even if you've written Scala for 10 years.
I've never written code before. Should I take this course? It says it's for beginners.
The course is for "beginners" in that you've never written Scala before, but the course already assumes existing programming experience. I don't talk too much about the absolute basics, like what's a variable, an object or a method. I assume you know what they are, and I quickly move to how Scala works with them.
How is this different from the Udemy Scala & FP for beginners course?
This course is a complete re-record of the course which you see on Udemy. This premium version has more content, more lessons, more exercises and more code, with a smoother learning curve. It's also specifically built for Scala 3, which is the future.