A tanfolyamról
Scala is among the most popular programming languages and powers the code of several top websites around the world including Twitter, LinkedIn and The Guardian. This workshop gives you a comprehensive overview of the language and helps you dive deep into its concepts and fundamentals through a practical, hands-on tutorial.
Scala, as the blended name indicates, is a scalable language. Scala language is built on top of JVM(Java Virtual Machine) and offers all the features of an Object Oriented Programming(Oop). It has the expressive power of a dynamic programming language without compromising on type safety. Scala is described as a multi-paradigm programming language that can express common programming patterns in a concise, elegant, and type-safe way. Scala plays a significant role in Big Data, as the language is used to develop Apache Spark.
Benefits:
Scala runs on top of the JVM (Java Virtual Machine) and hence offers all the associated benefits like the Java libraries, administrative tools, garbage collection and much more. The language is more functional and faster compared to Java.
- The most significant benefit of learning Scala language is a big bolster to your paycheck.
- You can land in one of these top companies if you are an advanced programmer in Scala
- According to a survey by JetBrains, nearly 5% of software developers use Scala for their projects, and the number is expected to go up by another 4% in the future.
Organisations can also benefit using Scala for their programming needs.
- Scala language is an Open Source software, so there is no extra cost associated with obtaining the licenses
- People from all over the world contribute their research in the Scala community
- Scala is highly scalable, functional and faster than traditional Object-Oriented Languages
- Many top companies are using Scala with the Big Data application, Spark.
What you will learn
- Introduction
- Get introduced to Scala and learn about the new features of Scala; understand the types of Scala.
- Functions
- Defining a function, learn about polymorphic functions, higher order functions and recursion
- Implicit & Type Classes
- Types of implicit; recap the implicit scope resolution rules, and learn about type classes.
- Testing in Scala
- Understand situations where property-based testing is useful and formulate them to produce test data
- Functional Programming
- Learn about functions and high order functions. Also, learn about the usage of the collection library.
- Pattern Matching
- Learn about Pattern matching, its usage and benefits and learn about exceptions and tuples.
- Built-in effects
- Learn how the aspects like Option, Either, Try and future are covered by Scala's standard library.
Who should attend
- Data scientists
- Data Engineers
- Analytics Professionals
- Developers & Testers
- Big data professionals
By the end of the course
- You will be proficient in coding using Scala
- Have knowledge in object oriented basics
- Work with loops and expressions
- Deal with optional values
On completing the Scala 101 online training, you will learn:
- About the need for Scala and its uses
- All about the Scala syntax and object oriented principles
- Writing Scala programs and testing them
- About for loops, for expressions, inheritance and traits
- Pattern matching
We provide the course in English.
Tematika
Curriculum
1 Introduction to Scala
Learning Objectives:
Get introduced to Scala and learn about the new features of Scala; understand the types
- What is Scala?
- Origin of Scala
- Features of Scala
- Scala Collection Library
- Understanding types in Scala
- Ways to parameterize a type
- Kinds of types
- Using types to express domain constraints
2 Deep Dive into Functions
Learning Objectives:
Look in detail at different flavors of defining a function. Apply the knowledge about types to make our functions polymorphic and of a higher order. Learn about recursion, tail recursion, and trampolining as important aspects of functional programming for the JVM.
- Ways to define a function
- Polymorphic functions
- Higher order functions
- Recursion
- Trampolining
- Object-oriented aspects of functions
Hands-on:
Implement a head-recursive function. Implement a tail-recursive function for factorial calculation. Implement a recursive function for factorial calculation using trampolining.
3 Implicits and Type Classes
Learning Objectives:
Learn about different types of implicits and recap the implicit scope resolution rules. Learn about type classes, the central implementation mechanism that's utilized in modern functional programming libraries.
- Types of implicits
- Context bounds
- Type classes
- Type classes and recursive resolution
- Type class variance
- Implicit scope resolution rules
Hands-on:
Implement implicit conversions, implicit classes, and implicit parameters.
4 Testing in Scala
Learning Objectives:
Understand the situations in which property-based testing can be especially useful, and look at how the expected properties can be formulated and the test data can be produced.
- Scala testing ecosystem
- Introduction to Behavior Driven Development
- ScalaTest
- Concept of property-based testing
- Properties
- Generators
- Shrinkers
- Properties as laws
Hands-on:
- Define an invariant property for sorting a list.
- Define an idempotent property for sorting a list.
- Define an inductive property for sorting a list.
5 Collections and Functional Programming
Learning Objectives:
Learn about functions and high order functions. Also, learn about the usage of collection library.
- Overview and usage collection library
- Immutability, persistent data structures and structural sharing
- Functions and high-order functions
Hands-on:
Use Immutability, persistent data structures and structural sharing.
6 For Loops and For Expressions
Learning Objectives:
Revisit for loops and for expressions, learn about the differences and compose high order functions.
- For Loops
- For Expressions
- Difference between for loops and for expressions
- Composing high-order functions
Hands-on:
Implement for loops and for expressions.
7 Inheritance and traits
Learning Objectives:
Learn about linearization, scala type system and traits.
- Scala type system
- Mix-in traits
- Linearization
Hands-on:
Mix-in traits in a class to use Linearization process.
8 Pattern Matching
Learning Objectives:
Learn about Pattern matching; exceptions, tuples.
- Usage and benefits
- Catch exceptions
- Deconstruct tuples
Hands-on:
Implement pattern matching by using exceptions and tuples.
9 Exploring Built-In effects
Learning Objectives:
Learn how the mentioned aspects are covered by Scala's standard library.
- Foundations of encoding runtime aspects with types
- Option
- Either
- Try
- Future
Hands-on:
Explore built-in effects and the effects defined in the standard library, apply option, try, either and then future.
Kinek ajánljuk
Előfeltételek
Prerequisites
There are no such prerequisites that you need to meet in order to take up a Scala course. However, it is recommended to have some prior knowledge on programming language construct.