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 00:01:47
  2. Introduction to Scala
    1. Introduction to Scala 00:04:22
    2. Installing Scala 00:10:00
    3. Introduction to the REPL in Scala 00:12:34
    4. Using a Worksheet in Scala 00:04:35
  3. Basic Syntax
    1. Creating a Simple Class in Scala 00:11:10
    2. Case Classes in Scala 00:09:46
    3. Hello World in Scala 00:06:02
    4. Strings in Scala 00:05:58
    5. Scala's Type System 00:04:16
    6. Functions in Scala 00:08:45
    7. More About Functions in Scala 00:05:26
    8. Val and Var in Scala 00:02:57
    9. Expression Evaluation in Scala 00:06:39
    10. Evaluation in Practice in Scala 00:04:04
    11. Control Constructs in Scala 00:04:51
    12. Default Arguments in Scala 00:05:22
    13. Variable Arguments in Scala 00:03:43
    14. Imports and Packages in Scala 00:06:23
  4. Scala and OO
    1. Constructing Objects in Scala 00:05:48
    2. Adding Other Members in Scala 00:05:51
    3. Companion Objects in Scala 00:07:54
    4. Scala and Inheritance 00:12:33
  5. Pattern Matching
    1. What is Pattern Matching? 00:06:43
    2. Basic Matching in Scala 00:07:02
    3. Matching More than one Value in Scala 00:04:18
    4. Patterns and Case Classes in Scala 00:07:14
    5. Using Guards in Scala 00:04:43
  6. Testing
    1. Testing in Scala 00:12:27
  7. Functional Matters
    1. What is Functional Programming? 00:10:13
    2. Defining and Using Lambdas in Scala 00:08:55
    3. Using Functions as Data in Scala 00:02:58
    4. Tail Recursion in Scala 00:13:34
    5. Functions and Methods in Scala 00:05:28
    6. More about Case Classes in Scala 00:02:17
    7. Partial Functions in Scala 00:08:07
  8. Traits
    1. Recap of Java Interfaces 00:04:49
    2. Traditional Java Interfaces and Java 8 Interfaces 00:10:09
    3. Defining and Using Traits 00:10:05
  9. Working with Collections
    1. Introduction to Scala Collections 00:09:25
    2. Mutable and Immutable Collections in Scala 00:03:57
    3. Immutability and Lists in Scala 00:05:54
    4. Basic Functional Operations in Scala 00:05:02
    5. Introduction to Generics and Variance in Scala 00:10:40
    6. Introduction to Lists in Scala 00:04:30
    7. Building Lists in Scala 00:04:01
    8. Fundamental List Operations in Scala 00:06:00
    9. Lists and Pattern Matching in Scala 00:07:06
    10. Flatten and FlatMap in Scala 00:02:56
    11. Map and Filter in Scala 00:04:29
    12. Combining Functional Operations in Scala 00:08:26
    13. Using Collect in Scala 00:05:21
    14. Using Fold in Scala 00:06:57
    15. Using Reduce in Scala 00:03:04
    16. Folding Examples in Scala 00:05:21
    17. Working with Maps in Scala 00:07:31
    18. For Comprehensions in Scala 00:14:49
  10. Nulls and Exceptions
    1. What's Wrong with null? 00:06:59
    2. Introducing Option in Scala 00:08:47
    3. Option and flatMap in Scala 00:02:02
    4. Exceptions in Scala 00:01:38
    5. Introducing Try[T] in Scala 00:11:12
  11. Managing Concurrency
    1. Introducing Scala Concurrency 00:04:14
    2. Creating Futures in Scala 00:04:52
    3. Working with Futures in Scala 00:05:20
    4. Functional Futures in Scala 00:02:30
    5. Futures and Promises in Scala 00:08:44
  12. Calling Scala from Java
    1. Calling Scala from Java 00:11:54
    2. Wrap Up and Conclusion 00:00:34

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