Escalate Logo
Our Scala Training Courses
Arrange private training for your company or
Take our courses online with Udemy


We offer both corporate training courses, for a class size of up to 25 students, and regular open enrollment classes with a pre-defined agenda, scope and length.

Training Available Online or In-Person

Applied Scala, Online

Advanced Scala, Online

Coming soon...

Training is an essential first step for successful adoption of Scala in your company or on your project. The skills gained from our courses will accelerate your ability to be productive with Scala techniques and tools, and enable you to more quickly find and use the libraries and frameworks that make sense for your needs.

Whether custom or open-enrollment, our training spans theory and practice, with hands-on exercises to drive home the most important points and keep the training lively, entertaining and engaging. It is an approach that has proven very popular with our previous attendees.

Custom Training

We will work with you to understand your needs and tailor a course that matches the needs and existing experience and skills sets of the attendees, as well as the duration you desire. We will help advise on course content when appropriate, for example if we consider inclusion of one topic fundamental to understanding another, we will make that clear up front.

With our custom training courses, you have the freedom to request topics beyond those we cover in the open-enrollment training courses, and if we can accomodate you we will. Some topics may prove to be of greater scope than we can provide in-depth training for. We can always provide an overview, but are also happy to help engage our friends in the wider Scala community for more in-depth coverage of specific topics.

For an idea of the kind of modules we offer as part of our regular, open-enrollment training courses, please see the section below. 

Open Enrollment Courses

We regularly offer set courses that any one can sign up for, although we limit attendance to 25 students to maintain a good learning experience for everyone. Since Bill and Dick teach these courses together, we have a good teacher/student ratio and you will find us attentive and helpful with questions and problems.

We offer two courses covering Scala applied and advanced topics. Both courses assume that attendees have skills and experience in at least one other development language. The advanced course assumes some prior knowledge of Scala (for details, see below). Registrants may choose to attend either or both of the courses, which typically happen during the same work-week. The first three days of the week concentrates on the fundamentals and/or providing a refresher of the skills that will be necessary for the advanced and applied topics handled in the final two days.

Our training has as much hands on exercise work as theory, the format is around 30-45 minutes of theory followed immediately by test-driven exercises to cement the theory with practice. We also keep things interesting with our dual screen presentation format, one screen showing slides and the other live coding demonstrations to illustrate the points and try out examples.

Students enjoying our dual screen presentation format

Applied Scala

Duration 3 days
No Scala knowledge is assumed, but students should be proficient in at least one other programming language, for example: Java, Ruby, C#, Python, etc.

Applied Scala takes you from any level of Scala knowledge (including none) and elevates you to a level where you can effectively and confidently use Scala on a daily basis. The exercises will immerse you in Scala programming and after 3 days you will find that you have familiarity with the language from the amount of coding practice you get. Meanwhile the topics cover all important aspects of the Scala language and introduce the most important parts of the core libraries, including the Collections, Futures and Actors APIs. We round up with a look at using Scala in a mixed Java/Scala environment, and using SBT to build Scala projects, including writing custom settings and tasks.

Topic List:

  • First Steps in Scala
  • Next Steps in Scala
  • Classes and Objects
  • Built-in Control Structures
  • Functions and Closures
  • Composition and Inheritance
  • Scala's Heirarchy
  • Traits
  • Packages and Imports
  • Assertions and Unit Testing
  • Case Classes and Pattern Matching
  • Partial Functions
  • Actors with Akka
  • Lists and Collections
  • Integrating with Java
  • Using Third Party Libraries
  • Building with SBT
  • Writing Custom SBT Settings and Tasks

Advanced Scala

Duration 3 days
Scala knowledge equivalent to the competency obtained by completing the Applied course will be assumed for all students attending the Advanced Topics training. Students who are not familiar with all of the fundamentals of the Scala language may have trouble keeping up, or slow the rest of the class down. There is a price break for attending both courses, so if you are in any way unsure of the fundamentals as listed above, we strongly recommend taking both courses. In the worst case you will probably have a few days of working through fun exercises and being the star of the class.

Picking up where Applied Scala finishes, Advanced is squarely aimed at Scala API and Library programmers, and developers wanting to up their Scala game. Day 1 is the language in depth, including type variance, bounds, implicit conversions, classes and parameters, and custom extractors. Days 2 and 3 move into best practices, patterns, idioms, XML and JSON serialization, Internal and external domain specific languages, functional concepts including functors and monads, and macros.

Topic List:

  • When to use Mutable State
  • Type Parameterization
  • Invariance, Co-variance and Contra-variance
  • Upper, Lower and Context Bounds
  • Abstract Members in Depth
  • Implicit Conversions and Parameters
  • Implementing Types
  • Extractors
  • XML and JSON
  • Type Classes and Phantom Types
  • Modular Programming
  • Object Equality, the Gory Details
  • Scala Idioms and Best Practices
  • Internal Domain Specific Languages
  • Design Patterns for Scala
  • Tail Recursion, Trampolines
  • Functors and Monads
  • Parser Combinators and External DSLs
  • Writing Macros

Copyright © 2010-2017 Escalate Software. All rights reserved.