Scala Programming (2 Days)

A rapid introduction to the basics of Scala programming. This course is designed to get you up to speed on the language features you'll need for building distributed microservice systems. Provides deep insight into the Scala standard library, along with some of the more challenging aspects of working with features such as closures, partial functions, traits, case classes, implicit conversions, futures, and functional programming.

Audience

Professional developers who are interested in learning Scala for distributed computing and microservices

Prerequisites

You should be fluent in a compiled programming language such as Java, C#, or C++, or a modern dynamic language such as Ruby, or Python

Upcoming Public Classes

Enroll early and save.

Course Overview

This fast-paced, two-day intensive course will get you off to a quick start coding in Scala. There's plenty of lab time to allow you to learn by doing. And our exercises are designed to reinforce key concepts in a way that will help you gain proficiency fast. Between lecture sessions and hands-on labs you'll get a first-hand introduction to fundamentals of the Scala programming language, including classes, functions, pattern matching, enumerations, collections, generics, closures, and more.

  • Learn the fundamentals of Scala and the standard Scala libraries
  • Gain hands-on experience working with the REPL and IntelliJ
  • Get familiar with the Scala type system
  • Learn to create, extend, and use Scala classes, functions, and traits
  • Learn how to use case classes, pattern matching, and implicit parameters to simplify code
  • Learn functional programming techniques, including map, reduce, and filter
  • Get familiar with distributed computing concepts using immutability, futures, and promises

Course Outline

Scala Development Environment
Learn to use the REPL and IntelliJ to edit, build, and debug projects, along with numerous pro tips and tricks.
Functions, Tuples, and Closures
Learn to declare and implement Scala functions, work with named parameters, and use tuples as arguments and return values. Understand what closures are, and how they capture state. Learn to work with functions and closures as arguments and as return values.
Collections
Get familiar with the list, array, set, and map collection types provided by the Scala standard library, and get a solid handle on the differences between working with mutable and immutable types.
Working with Generic Types
Understand the purpose, syntax, and usage of Scala's generic types.
Working with Optionals
Understand how Scala handles null values with the Option type, and how to use Option effectively.
Match Statements and Case Classes
Learn to use the powerful pattern-matching capabilities of Scala's match construct in combination with case classes to dramatically streamline code, and simplify program logic.
Type Inference
Learn how to leverage Scala's type inference to write cleaner, simpler code.
Functional Programming Techniques
Learn how to use Scala's immutable collections, along with tail recursion, and high-order, anonymous, partial, and curried functions, to leverage powerful functional programming techniques.
Classes and Objects
Learn the basics of declaring Scala classes, and companion and generic objects; writing method, property, and initializer implementations; and allocating and initializing instances.
Traits
Learn how to leverage reusable traits to compose objects with the mixin design pattern.
Implicit Conversions and Parameters
Discover how to clean up boilerplate code from external libraries, implement conversions, and extend existing classes using implicit conversion. Learn how to use implicit parameters to write cleaner code.
Error Handling
Learn how Scala disconnects error handling from recovery using try statements, as well as Failure and Success types, for graceful error handling in a distributed environment.

Request a Class

Your class, your way.

Don't see what you're looking for? Use the form below to request a class that's better suited to your location and schedule.

I'd like to arrange an onsite class.