Scala Applied, part 3 is the final part of this Scala programming language course. The course in its entirety is aimed at giving you a full, day-to-day working knowledge of Scala programming, including some of the most common core library APIs.
This part starts with a final language feature for Scala (continuing from the other language features covered in parts 1 and 2). Pattern matching, partial functions and case classes are examined, how they can be used together, and how partial functions can help you avoid certain runtime errors by validating input to a function before you call it.
Then we delve into the collections API in the core libraries (a very in-depth 2 module examination of the capabilities and performance tradeoffs of the various collection options), and finish up with a look at using Scala on Java projects, using Java libraries from Scala and how to harness build tools (particularly SBT) to build your project and even write custom settings and tasks. Following that we look at the Futures API in the core libraries.
This course is also a good lead-in to the Stairway to Scala Advanced 3 part course which concentrates on in-depth language features, higher level functional abstractions, common patterns and idioms, type theory and other more advanced Scala concepts that will be particularly helpful for anyone writing their own libraries and APIs in Scala.
Scala Applied, Part 2 covers Scala features that are different from other languages or maybe unique to Scala. It is intended to follow on from Part 1, and dovetails nicely into that flow. In particular, by following this course you will:
- Understand Scala’s composition and inheritance features
- Create abstract classes and pure abstract members (methods and fields)
- Override and overload methods
- Create primary and auxiliary constructors
- Call superclass constructors and methods
- Understand and use parametric fields
- Create factory methods in companion objects
- Construct simple DSLs (Domain Specific Languages)
- Understand top and bottom types and how Scala uses them
- Write correct equals and hashCode methods
- Use traits to mix behavior into classes
- Know the different styles of packages and visibility modifiers
- Be able to import anything from anywhere
- Write pre-conditions and post-conditions
- Test your code with unit testing
Who this course is for:
- Anyone wanting to learn the Scala programming language
- This is part 2 of a 3 part course, please check you have skills equivalent to part 1 before taking this course
- We do assume the student has some programming knowledge in a modern programming language
- Students should follow and complete the Stairway to Scala Setup instructions, available for free on Udemy, before starting this course
- Students should have also completed Stairway to Scala Applied Part 1 or have equivalent skills before starting this course
- Students will need a laptop or desktop computer with sufficient performance and resources to compile and run the coding exercises
The course is half theory, half practice with hands on coding exercises built around test driven development examples. If you complete all three parts, with all the exercises, you will find that in addition to a strong grounding in the language theory, you will have the practical skills and comfort to code in Scala, as well as having the tools necessary to do so.
Unlike many other courses that teach a specific aspect of the Scala language, for example reactive programming or functional concepts, Stairway to Scala Applied provides a balanced and thorough introduction to the whole language and its concepts, including libraries like Actors and Collections. It is intended to accelerate your Scala learning curve and make you able to use Scala productively by the end of the course.
The course is taught by two highly experienced Scala developers who use Scala on a daily basis for real world commercial projects, and have done so for several years each.
Most of the lectures are practical demonstrations accompanied by a slide. You can download the slide deck and follow along on your computer, but the lectures are also presented using Udemy mashups, so the slide and practical demo can be switched between at will. If you hear typing, it’s best to bring up the practical demo screencast instead of the slide in order to follow along.
Who this course is for:
- Anyone interested in programming using the Scala programming language
- Students should have some programming experience in another language, but no prior Scala language knowledge is assumed.
- Developers wanting to get to a good working knowledge of Scala as quickly as possible