Okycvsfcflqurkcctjij
3 DAY COURSE

Lightbend Scala Language - Expert

Topics covered at ADV-SCALA-02-03
View Schedule & Book More dates available

Next up:

Are you ready to upgrade your skills and become a Scala Expert Developer? Keen to unleash the full power of Scala by learning Scala's advanced features? Join this Scala Expert course and learn advanced functional programming with Scala, gain a detailed understanding of the type system, implicits, internal DSLs, Custom Scala Collections, and the skills you need to create well designed libraries or DSLs using proven practices.

Upon completion of this Scala Expert course, you will have gained skills in advanced object-functional programming, and know how to leverage Scala's type system, implicits, and other advanced feature to create well-designed libraries or DSL's utilising proven best practices.

Learn how to:

  • Understand all aspects of the object-functional approach
  • Know and be able to apply advanced features of Scala's type system
  • Fully understand implicits and type classes
  • Be confident about creating libraries and DSLs with Scala

  • What the community says

    "Great teacher"

    Delegate on 15th Mar 2019

    "Trond was great, not sure what he can improve on."

    Alan, YNAP

    About the Author

    Trond Bjerkestrand

    Trond Bjerkestrand, co-founder of Groosker, is a Lightbend-certified Scala and Akka trainer and consultant. He is interested in functional programming, payments, startups and bitcoin and is one of the organizers of the Geneva Scala Enthusiasts meetup.

    Thanks to our partners

    1: Recap of important basics

    2: Object-Functional Programming in Depth

    • Recursion and tail-recursion
    • Partial functions and partial function literals
    • Curried methods, partially applied functions
    • Lifting methods into functions
    • Folding

    3: Mastering the Type System

    • Scala type hierarchy
    • Value classes
    • Type parameters
    • Variance
    • Package objects
    • Lower and upper bounds
    • (Abstract) Type members
    • Singleton Types
    • Type refinements
    • Static duck-typing
    • Path-dependent types
    • Self Types

    4: Explicitly Implicit

    • Implicit conversions
    • Implicit resolution, scopes and precedence
    • Library extension via implicit (value) classes
    • Implicit parameters
    • Implicit Values
    • Type classes
    • Implicit parameter chaining
    • Type class examples in the Scala core library
    • Type constructors
    • Context bounds
    • Type witnesses
    • Type tags

    5: Domain Specific Languages (DSLs)

    • DSL Building blocks:
      • By-name parameters
      • Currying
      • Higher-order functions
      • Dot-free operator notation
      • Implicit conversions
    • Phantom types
    • Finite State Machines (FSM)

    6: Scala Futures and Promises

    • Execution contexts and Thread Pools
    • Creating & working with Futures
    • Futures & Failures - callbacks & recovery
    • Futures, concurrency & parallelism
    • Future.sequence/Future.traverse
    • Creating an already completed Future
    • Dealing with Future[Option[_]] and for comprehensions
    • Futures - Do's and Don'ts
    • Promises

    7: Custom Scala Collections

    • Uniform return type principle
    • Collection Builders
    • Like traits
    • Type classes for the tricky cases

    Audience

    If you are an experienced Scala developer (with at least 3 months Scala programming experience) and you would like to learn various advanced features like Scala's type system and implicits to create well designed libraries or DSLs using proven practices, this Advanced Scala course is for you!

    Prerequisites

    To benefit from this Advanced Scala course, you should have proficiency in the fundamentals of Scala and at least 3 months hands-on experience in application development with Scala before attending. If aren't at this level quite yet, you may like to attend our Lightbend Scala Language - Professional course instead, where we will get you up to speed.

    Bring your own hardware

    You are required to bring your own laptop for this Advanced Scala course, with JDK 6 or above installed. A full installation guide for the course software will be provided with your course joining instructions.

    Overview

    Are you ready to upgrade your skills and become a Scala Expert Developer? Keen to unleash the full power of Scala by learning Scala's advanced features? Join this Scala Expert course and learn advanced functional programming with Scala, gain a detailed understanding of the type system, implicits, internal DSLs, Custom Scala Collections, and the skills you need to create well designed libraries or DSLs using proven practices.

    Upon completion of this Scala Expert course, you will have gained skills in advanced object-functional programming, and know how to leverage Scala's type system, implicits, and other advanced feature to create well-designed libraries or DSL's utilising proven best practices.

    Learn how to:

  • Understand all aspects of the object-functional approach
  • Know and be able to apply advanced features of Scala's type system
  • Fully understand implicits and type classes
  • Be confident about creating libraries and DSLs with Scala

  • What the community says

    "Great teacher"

    Delegate on 15th Mar 2019

    "Trond was great, not sure what he can improve on."

    Alan, YNAP

    About the Author

    Trond Bjerkestrand

    Trond Bjerkestrand, co-founder of Groosker, is a Lightbend-certified Scala and Akka trainer and consultant. He is interested in functional programming, payments, startups and bitcoin and is one of the organizers of the Geneva Scala Enthusiasts meetup.

    Thanks to our partners

    Program

    1: Recap of important basics

    2: Object-Functional Programming in Depth

    • Recursion and tail-recursion
    • Partial functions and partial function literals
    • Curried methods, partially applied functions
    • Lifting methods into functions
    • Folding

    3: Mastering the Type System

    • Scala type hierarchy
    • Value classes
    • Type parameters
    • Variance
    • Package objects
    • Lower and upper bounds
    • (Abstract) Type members
    • Singleton Types
    • Type refinements
    • Static duck-typing
    • Path-dependent types
    • Self Types

    4: Explicitly Implicit

    • Implicit conversions
    • Implicit resolution, scopes and precedence
    • Library extension via implicit (value) classes
    • Implicit parameters
    • Implicit Values
    • Type classes
    • Implicit parameter chaining
    • Type class examples in the Scala core library
    • Type constructors
    • Context bounds
    • Type witnesses
    • Type tags

    5: Domain Specific Languages (DSLs)

    • DSL Building blocks:
      • By-name parameters
      • Currying
      • Higher-order functions
      • Dot-free operator notation
      • Implicit conversions
    • Phantom types
    • Finite State Machines (FSM)

    6: Scala Futures and Promises

    • Execution contexts and Thread Pools
    • Creating & working with Futures
    • Futures & Failures - callbacks & recovery
    • Futures, concurrency & parallelism
    • Future.sequence/Future.traverse
    • Creating an already completed Future
    • Dealing with Future[Option[_]] and for comprehensions
    • Futures - Do's and Don'ts
    • Promises

    7: Custom Scala Collections

    • Uniform return type principle
    • Collection Builders
    • Like traits
    • Type classes for the tricky cases

    Audience

    Audience

    If you are an experienced Scala developer (with at least 3 months Scala programming experience) and you would like to learn various advanced features like Scala's type system and implicits to create well designed libraries or DSLs using proven practices, this Advanced Scala course is for you!

    Prerequisites

    To benefit from this Advanced Scala course, you should have proficiency in the fundamentals of Scala and at least 3 months hands-on experience in application development with Scala before attending. If aren't at this level quite yet, you may like to attend our Lightbend Scala Language - Professional course instead, where we will get you up to speed.

    Bring your own hardware

    You are required to bring your own laptop for this Advanced Scala course, with JDK 6 or above installed. A full installation guide for the course software will be provided with your course joining instructions.