Scala & Functional Programming for Beginners
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 27000 student list who 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
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
- (soon) You'll have access to the takeaway slides
- (soon) You'll be able to download the videos for your offline view
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
- map, flatMap, filter
- Scala-only features
- pattern matching
- variance (introduction)
all with live runnable examples and practiced with exercises.
StartObject-Oriented Basics (14:40)
StartObject-Oriented Basics: Exercises (17:08)
StartMethod Notations (16:32)
StartMethod Notations: Exercises (12:09)
StartScala Objects (15:37)
StartAbstract Classes and Inheritance (11:46)
StartInheritance Exercises and Starting Our Own List (15:48)
StartAnonymous Classes (6:25)
StartIntroduction to Generics (26:02)
StartExercise: Extending MyList (26:06)
StartCase Classes (11:40)
StartHandling Exceptions (27:05)
StartPackaging and Imports (12:41)
Get started now!
I'm a software engineer and the lead instructor for 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.
For the last 7 years, I've taught a variety of Computer Science topics to 27000+ 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 6000 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.