English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 46 Lessons (15h 12m) | 1.57 GB
Become one of the best Scala programmers. Master multithreading, advanced functional programming and Scala’s phenomenal type system.
Become a pro.
At this point, I don’t need to pitch Scala to you. You’ve seen it in action, you know the basics, and I’m willing to bet you like it at least a bit.
Perhaps you want to contribute to a bigger project, or need to write your own libraries at work so you can reuse them for a large system. Maybe you need to dive deep into a complex codebase or into a massive framework like Akka or Spark, but the internal code looks overwhelming.
This course is for you. The course is for the Scala programmer who understands the essentials and wants to level up.
Now on Scala 3.
After this course, you’ll be able to:
- read any Scala code in any codebase, in any project, no matter how big, difficult or obscure
- contribute to any Scala project of any scale
- confidently write your own Scala libraries
- easily browse through the implementations of existing libraries without confusion
- work with concurrent JVM applications written in Scala
- apply advanced functional concepts, including partial functions, lazy evaluation and monads
- work with infinite collections
- understand Scala’s implicits mechanism, including your power and responsibility
- master Scala’s unparalleled type system
- use the Scala compiler to your advantage
Skills you’ll get:
- Advanced Scala as a language
- use alternative syntax and syntax sugars with ease
- create your own pattern matching patterns
- Advanced functional programming skills
- partial functions & partially applied functions
- infinite, property-based collections
- lazy evaluation
- infinite lazy collections
- monads
- Parallel & concurrent functional programming
- understanding the JVM threading model
- Futures
- Promises
- solving concurrency issues
- parallel collections
- Mastering contextual abstractions
- given values and using clauses
- extension methods
- type classes
- higher-order functions with context-based values
- implicit conversions
- implicits, i.e. the Scala 2 contextual abstractions to be fully bulletproof
- Mastering the Scala type system
- deeply understanding why Scala multi-inheritance is solid
- correctly applying variance (which 99% of Scala programmers can’t… because they don’t understand it)
- applying self types and the layered “cake” pattern
- using higher-kinded types for generic libraries
- imposing type restrictions with recursive types and the academically-fancy-but-common-sense F-bounded
- polymorphism
all with live runnable examples and practiced with exercises.
Table of Contents
1 Welcome
2 Scala Recap
3 Dark Syntax Sugars
4 Advanced Pattern Matching
5 Partial Functions
6 Functional Collections: A Functional Set
7 The Functional Set, Level 2
8 Functional Collection
9 Currying and Partially Applied Functions
10 Lazy Evaluation
11 Lazy Evaluation Practice: A Potentially Infinite List
12 Lazy Lists Proficiency: Exercises
13 Monads
14 Monads: Exercises
15 Parallel Programming on the JVM
16 Concurrency Problems on the JVM
17 JVM Thread Communication, the Producer-Consumer Problem
18 Producer-Consumer, Level 2
19 Producer-Consumer, Level 3 + Exercises
20 Futures: Introduction
21 Futures: Functional Composition
22 Futures: Awaiting
23 Futures and Promises
24 Futures: Exercises
25 Parallel Collections
26 Given Instances & Using Clauses
27 Given & Using: Exercises
28 Extension Methods
29 Organizing Contextual Abstractions
30 Type Classes
31 Type Classes End-to-End Example: JSON Serialization
32 Context Functions
33 Implicit Conversions
34 Legacy (Scala 2) Contextual Abstractions: Implicits
35 Advanced Inheritance
36 Variance
37 Variance Positions
38 Type Members
39 Path-Dependent Types
40 Opaque Type Aliases
41 Literal, Union and Intersection Types
42 Self-Types
43 F-Bounded Polymorphism
44 Structural Types
45 Higher-Kinded Types
46 You Rock!
Resolve the captcha to access the links!