Scala for the Impatient

Scala for the Impatient

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 4h 01m | 1.24 GB

Scala for the Impatient LiveLessons, best-selling author and professor Cay S. Horstmann builds upon your knowledge of Java and introduces Scala as a “better Java.” You will see how Scala blends object-oriented and functional programming and gives you the choice of when and how to use each paradigm.

Scala is a modern programming language for the Java Virtual Machine (JVM) and combines the best features of object-oriented and functional programming. Scala has quickly risen in popularity because it allows developers to write programs more concisely than in Java, as well as to leverage the full power of concurrency. Since Scala runs on the JVM, it can access any Java library and is interoperable with Java frameworks.

Scala for the Impatient LiveLessons begins by covering the basics you need to know when learning a new programming language: values and types, branches and loops, functions, and data structures for collecting elements. The course then turns to the object-oriented features of Scala in lessons 4 and 5. At this point, you are ready to put Scala to work as a better Java. But to go beyond that point, the final two lessons teach you how to take advantage of the functional part of Scala. When you have completed this course, you will know enough Scala to effectively use Scala frameworks such as Play or Apache Spark.

Throughout the course, lab exercises are included in the lessons for hands-on practice. Learning a programming language is not a spectator sport. You will only learn by doing. For each lab, Cay introduces the exercise and then it is your turn to practice. It’s recommended that you pause the video, bring up your development environment, and get to work! When you are done, compare your solution against the solution presented in the video.

After this course, you will be able to:

  • Understand core language features: values and types, control structures, and functions
  • Use arrays, maps, and tuples for collecting elements
  • Comprehend object-oriented programming in Scala: classes, objects, packages, inheritance, and traits
  • Understand functional programming in Scala and how to work with higher-order functions
  • Leverage Scala’s powerful pattern matching and case classes
  • Know enough Scala to use frameworks such as Apache Spark, Play, Akka, and Spray
Table of Contents

01 Scala for the Impatient – Introduction
02 Learning objectives
03 1.1 Know the story behind Scala
04 1.2 Use Scala worksheets
05 1.3 Work with values, variables and fundamental data types
06 1.4 Invoke functions and methods
07 1.5 Work with Scaladoc
08 Lab Exercise Part 1 – The Scala Worksheet
09 Lab Exercise Part 2 – Functions
10 Lab Exercise Part 3 – Scaladoc
11 Learning objectives
12 2.1 Understand conditional and block expressions
13 2.2 Use the тАЬfor eachтАЭ and тАЬfor comprehensionтАЭ control structures
14 2.3 Define functions
15 2.4 Understand named, default, and variable function arguments
16 Lab Exercise Vowels
17 Learning objectives
18 3.1 Work with arrays and array buffers
19 3.2 Transform arrays
20 3.3 Use common array algorithms
21 3.4 Work with maps and tuples
22 Lab Exercise Part 1 – Removing All but the First Negative Number
23 Lab Exercise Part 2 – Word Counts
24 Lab Exercise Part 3 – Grouping
25 Lab Exercise Part 4 – Partitions and Zips
26 Learning objectives
27 4.1 Declare classes, instance variables, and methods
28 4.2 Appreciate the benefit of immutabilty
29 4.3 Understand object construction and class parameters
30 4.4 Understand the uniform access principle
31 4.5 Use the operator notation for binary methods
32 4.6 Understand objects and the role of companion objects
33 Lab Exercise Part 1 – ItтАЩs About Time
34 Lab Exercise Part 2 – Uniform Access
35 Lab Exercise Part 3 – Operators
36 Learning objectives
37 5.1 Understand packages and package nesting
38 5.2 Work with import statements
39 5.3 Declare subclasses and traits
40 5.4 Understand mixins and layered traits
41 Lab Exercise Part 1 – Mixing in Missing Methods
42 Lab Exercise Part 2 – Reversing the Mixin Order
43 Lab Exercise Part 3 – Buffering
44 Learning objectives
45 6.1 Understand the concept of functional programming
46 6.2 Work with higher-order functions
47 6.3 Apply the map, filter, and reduce methods
48 6.4 Understand the concepts of closures and currying
49 6.5 Develop control abstractions
50 Lab Exercise Part 1 – Life Without Loops
51 Lab Exercise Part 2 – Reductions
52 Lab Exercise Part 3 – Do-It-Yourself while
53 Learning objectives
54 7.1 Understand the match statement
55 7.2 Appreciate the similarity between the match statement and exception catching
56 7.3 Work with extractors
57 7.4 Design and use case classes
58 7.5 Work with the Option type
59 7.6 Know how to choose between case classes and polymorphism
60 Lab Exercise Part 1 – Pattern Matching
61 Lab Exercise Part 2 – Articles and Bundles
62 Lab Exercise Part 3 – The Option Type
63 What didnтАЩt we cover
64 Scala for the Impatient – Summary