Introduction to Scala for Java Developers

Scala is becoming one of the most critical next languages for Java developers to master. Its use in big-data, highly-concurrent stream-based systems has positioned Scala as a key technology in cloud-ready initiatives for enterprises.

In this program, participants will learn the key features of Java 8, including streams, and then learn the equivalent implementations in Scala. As the program progresses, students will learn idiomatic Scala for common programming tasks, such as working with collections, data structures, and commonly used algorithms.

Program Overview

Scala is rapidly becoming the lingua franca of big data processing, fast data processing, machine learning, and other exciting new areas in modern computing. This program covers the fundamentals of Scala, completely tailored with the Java developer in mind. Participants will learn the core differences between the two languages, and why Scala is a much more suitable language than Java in some of the most demanding mission-critical domains.

This program also introduces the basics of functional programming. Participants will learn the core concepts of functional programming, along with how and why to leverage these concepts on real-world enterprise projects.

What to expect

This is a 3 day hands-on program with a strong emphasis on participation. Developers will require access to a laptop along with internet connectivity to participate. We will provide all of the required dependencies to follow along with exercises during program delivery.

Curriculum

  • Core Scala syntax
    • Operators, methods, functions, conditionals, loops, try/catch
    • Class, object, def, val, var, import, package
  • Basics of functional programming
    • Higher Order Functions
    • Closures
  • Functional collections
    • Map, reduce, filter
    • Folds (foldLeft, foldRight)
  • Code quality
    • Pattern matching
    • Eliminating null with Option[T]
    • Trait composition
    • Recursion, tail recursion
    • For-expressions
  • Generic Scala
    • Monomorphism vs polymorphism
    • Partial function application
    • Currying
    • Composing functions
  • Laziness
    • Streams
    • Other lazy data structures
  • Team and culture
    • How to effectively introduce Scala to your organization
    • The real-world challenges of introducing Scala to Java teams and how to mitigate them, based on real-world experiences from your instructors
    • Scala best practices – effectively leverage the most valuable features of the language while avoiding complexity traps

Prerequisites

This program introduces the latest features of Java 8, and then contrasts them to the features of Scala. A solid grasp of Java is required, but mastery of all Java 8 features is not expected.

Some experience with Akka is recommended for the streams portion of this program. For groups without prior Akka experience, we recommend first taking our program Introduction to Akka for Java Developers, which teaches the core concepts of flow control and integration patterns, including message-passing and streams.

Contact Us To Discuss Training Contact Us