Scala Advanced, Part 1 - The Scala Type System

  • Overview
  • Curriculum
  • Instructor
  • Review

About This Course

Mutable State, Scala Type System In-Depth, Implicits

Scala Advanced, Part 1

The Escalate Software Scala Advanced course is intended for experienced Scala developers looking to improve their skills, particularly for library and API design and development. It covers topics needed to be effective in producing high quality, correct, powerful and flexible Scala libraries that are still easy to use by others.

Part 1 provides in depth and thorough knowledge of the Scala type system, an important precursor to any library development. We start off with a look at the dangers, and safe use, of mutable shared state in Scala, covering properties and caching. From there we delve into the Scala type system including:


  • Generics

  • Co- and Contra-Variance

  • Upper and Lower Bounds

  • Type Inference

  • Type Parameters and Type Members

  • Path Dependent Types

  • Refinement Types

  • Structural Types

  • Recursive Types

  • F-bounded Polymorphism

The final two modules then move on to the secondary Implicits type system that augments the regular Scala type system, covering:


  • Simple Implicit Parameters

  • Type Classes

  • Implicit classes, objects and methods

  • Type Class Composition

  • Implicit Constraints

  • =:= and <:<

  • Implicit Class and Type Tags

  • Implicit Conversions

  • extends AnyVal

And more.


After completing this course you will understand the Scala type system in a way that lets you construct your own well designed APIs, reason about type abstraction and calculus, apply implicit constraints and augment the language rules, and much more.

Parts 2 and 3 (available separately) cover topics like best practices, idioms, patterns, advanced functional programming, asynchronous programming, parser-combinators, macros, performance profiling and optimization, and much more. These parts rely on information presented during this advanced part 1 course.

  • Use the full Scala type system to correctly implement general purpose re-usable libraries and APIs for other Scala developers to use easily.

Course Curriculum

Instructor

Profile photo of Dick Wall
Dick Wall

Dick is a Scala Developer with over 15 years of Scala development experience, and more than a dozen years of Scala training experience. As well as consulting in Scala, Dick contributes to a number of open source Scala projects, libraries and tools, and is very active in the Scala developer community. He is also one of the Scalawags, a video...

Review
4.9 course rating
4K ratings
ui-avatar of Héctor Moreno de Mier
Héctor M. D. M.
4.0
1 year ago

It's an interesting course

  • Helpful
  • Not helpful
ui-avatar of Sachin
Sachin
4.0
1 year ago

good

  • Helpful
  • Not helpful
ui-avatar of Meg Li
Meg L.
4.5
2 years ago

WONDERFUL deep dive into Scala. It really expanded my knowledge of the language.

My single complaint is I wish the modules had actual titles instead of, for example, "Module 6 - 17".

  • Helpful
  • Not helpful
ui-avatar of Paul A. Kennedy
Paul A. K.
4.0
2 years ago

There were things that I learned. The exercises were ok. I thought the writing of getters and setters starting out was a bit of a waste of time. The explanation of =:= was bad and possibly wrong. We should be chaining implicits (the final car ordering implicit can chain to Ordering[Tuple2[Int,Int]]). I wanted exercises on =:= and <:<.

  • Helpful
  • Not helpful
ui-avatar of Greg Lim-Stromire
Greg L.
5.0
3 years ago

Excellent exercises!

  • Helpful
  • Not helpful
ui-avatar of Anonymized User
Anonymized U.
4.5
3 years ago

good

  • Helpful
  • Not helpful
ui-avatar of Aleksejs Vesjolijs
Aleksejs V.
5.0
3 years ago

Thank you! The course is absolutely great, as usual!

  • Helpful
  • Not helpful
ui-avatar of Mohemed Ali
Mohemed A.
5.0
3 years ago

It is an amazing course , I enjoyed all the videos.

  • Helpful
  • Not helpful
ui-avatar of Philip Kensche
Philip K.
4.5
3 years ago

Excellent course. Nice examples. I new most of the things already, but few things were new. There could be more exercises, also with different levels of hardness. The current exercises are really basic (which is appropriate for beginners, the the exercises are also nice).

  • Helpful
  • Not helpful
ui-avatar of Yuriy Yarosh
Yuriy Y.
5.0
3 years ago

Solid course, a bit out of date.
Pretty easy going, with a lot of solid explanations. A good replacement for the official Scala Book.

  • Helpful
  • Not helpful
Leave A Reply

Your email address will not be published. Required fields are marked *

Ratings

Courses You May Like

Lorem ipsum dolor sit amet elit
Show More Courses