Practical Scala for Java Developers

Video description

This video's accompanying source code can be found on GitHub.

You're a Java developer who has heard of Scala and maybe now you’re being asked to work on Scala code. Concerned? Don’t be. Taught by Java-Scala experts Ben Evans and Julian Templeman, this courseanswers the questions you want answered: What is Scala really useful for? Does it help with concurrency? What is functional programming and how much do I really need to know? How do I set up a Scala development environment, how do I test, and what are the must-know Scala idioms? If you’re an intermediate level Java developer with six months of experience under your belt, then this course will quickly transform you from the Scala ignorant to the Scala capable.

  • Develop a thorough understanding of Scala and when to use it instead of Java
  • Learn how to use the OO features and functional features in Scala
  • Understand Scala’s basic syntax, pattern matching, and traits
  • Learn to set up a Scala development environment
  • Understand how to use Scala to write concurrent code
  • Understand the differences between the Scala and Java type systems
  • Master the ability to write/test Scala code and interoperate with Java code

Ben Evans is an author, speaker, consultant and educator. He is the Java editor for InfoQ, an executive committee member for the Java Community Process in London, a co-founder of jClarity, and the author or co-author of several O'Reilly titles including “Java in a Nutshell, 6th Edition,” the forthcoming "Optimizing Java," and "Java: The Legend."

Julian Templeman is a consultant, trainer and writer who has programmed systems of all types and sizes, from single-chip computers for instrumentation, up to Cray and CDC supercomputers. He heads Neuda Technologies, a London company specializing in C++, C#, Java, and Scala.

Publisher resources

Download Example Code

Table of contents

  1. Introduction
    1. Introduction to the Course
  2. Introduction to Scala
    1. Introduction to Scala
    2. Installing Scala
    3. Introduction to the REPL in Scala
    4. Using a Worksheet in Scala
  3. Basic Syntax
    1. Creating a Simple Class in Scala
    2. Case Classes in Scala
    3. Hello World in Scala
    4. Strings in Scala
    5. Scala's Type System
    6. Functions in Scala
    7. More About Functions in Scala
    8. Val and Var in Scala
    9. Expression Evaluation in Scala
    10. Evaluation in Practice in Scala
    11. Control Constructs in Scala
    12. Default Arguments in Scala
    13. Variable Arguments in Scala
    14. Imports and Packages in Scala
  4. Scala and OO
    1. Constructing Objects in Scala
    2. Adding Other Members in Scala
    3. Companion Objects in Scala
    4. Scala and Inheritance
  5. Pattern Matching
    1. What is Pattern Matching?
    2. Basic Matching in Scala
    3. Matching More than one Value in Scala
    4. Patterns and Case Classes in Scala
    5. Using Guards in Scala
  6. Testing
    1. Testing in Scala
  7. Functional Matters
    1. What is Functional Programming?
    2. Defining and Using Lambdas in Scala
    3. Using Functions as Data in Scala
    4. Tail Recursion in Scala
    5. Functions and Methods in Scala
    6. More about Case Classes in Scala
    7. Partial Functions in Scala
  8. Traits
    1. Recap of Java Interfaces
    2. Traditional Java Interfaces and Java 8 Interfaces
    3. Defining and Using Traits
  9. Working with Collections
    1. Introduction to Scala Collections
    2. Mutable and Immutable Collections in Scala
    3. Immutability and Lists in Scala
    4. Basic Functional Operations in Scala
    5. Introduction to Generics and Variance in Scala
    6. Introduction to Lists in Scala
    7. Building Lists in Scala
    8. Fundamental List Operations in Scala
    9. Lists and Pattern Matching in Scala
    10. Flatten and FlatMap in Scala
    11. Map and Filter in Scala
    12. Combining Functional Operations in Scala
    13. Using Collect in Scala
    14. Using Fold in Scala
    15. Using Reduce in Scala
    16. Folding Examples in Scala
    17. Working with Maps in Scala
    18. For Comprehensions in Scala
  10. Nulls and Exceptions
    1. What's Wrong with null?
    2. Introducing Option in Scala
    3. Option and flatMap in Scala
    4. Exceptions in Scala
    5. Introducing Try[T] in Scala
  11. Managing Concurrency
    1. Introducing Scala Concurrency
    2. Creating Futures in Scala
    3. Working with Futures in Scala
    4. Functional Futures in Scala
    5. Futures and Promises in Scala
  12. Calling Scala from Java
    1. Calling Scala from Java
    2. Wrap Up and Conclusion

Product information

  • Title: Practical Scala for Java Developers
  • Author(s): Ben Evans, Julian Templeman
  • Release date: November 2016
  • Publisher(s): O'Reilly Media, Inc.
  • ISBN: 9781491969465