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

Training Available Online or In-Person

We offer both online training and in-person corporate training courses for a class size of up to 25 students.


Our Online Courses Available Through Udemy

Applied Scala, Online

Advanced Scala, Online


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 online or in-person, 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.

Course Details

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 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

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 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.

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

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