Scala Training

Improve your Scala Skills Rapidly

For any level

Scala Training

No matter your skill level, there's always more to know. Accelerate your learning with our training.

Looking for our online courses with Udemy? They're here!

Our online courses offer the same materials, theory, examples and exercises as our in-person courses but at a fraction of the cost. They also allow a more flexible, self-paced learning experience that may suit you or your company.

The courses, available from Udemy are split into two courses and three parts, each available separately or bundled by Udemy. The courses (Applied and Advanced) correspond to our in-person standard training offerings, and each part is equivalent to one day of learning for the in-person courses.

Click here to see all of our courses on Udemy

Our in-person training can be carried out on your premises, or you can join one of our open training courses as and when they run. For the best experience we recommend a maximum class size of 25, we also recommend a minimum class size of 12 to make the training cost effective.

Our training setup includes a dual screen format when possible, with theory slides in one and practical examples in the other. The course is 50% theory and 50% hands-on exercises with personal help from the instructors if you hit problems.

We can also customize the material offered for in-person training, either from an already prepared list of course modules, or adding custom modules for a small additional development cost.

Applied Scala

3 days

No Scala knowledge is assumed, but students should be proficient in at least one other programming language, e.g.: 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.

  • First Steps in Scala
  • Next Steps in Scala
  • Classes and Objects
  • Built-in Control Structures
  • Functions and Closures
  • Composition and Inheritance
  • Scala's Type Heirarchy
  • Traits
  • Packages and Imports
  • Testing in Scala
  • Case Classes and Pattern Matching
  • Partial Functions
  • Lists and Collections
  • Integrating with Java
  • Using Third Party Libraries
  • Building with SBT
  • Writing Custom SBT Settings and Tasks
  • Optional Module on Either Futures or Akka (if time)

Advanced Scala

3 days

Scala knowledge equivalent to the competency obtained by completing the Applied course will be assumed for all students attending the Advanced Scala 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.

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 covers the Scala type system in depth, including type variance, bounds, implicit conversions, classes and parameters and much more. Day 2 is all about best practices, patterns and techniques you can apply when writing your own libraries. Extractors, serialization of data and asynchronous programming are all covered on Day 2 also. Day 3 covers advanced functional programming topics, including Functors, Applicative Functors and Monads. We also look at macros, the parser-combinator library for creating external DSLs, and how to profile and optimize performance of a Scala application.

  • 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
  • Asynchronous Programming and Patterns with Futures
  • Tail Recursion, Trampolines
  • Functors and Monads
  • Parser Combinators and External DSLs
  • Writing Macros
  • Profiling and Performance Optimization

Happy Clients

What Happy Customers have said about the Escalate Udemy Online Training