Scala is a very popular programming language that combines Object Oriented and Functional Programming paradigms. Generally, Scala files get compiled into Java class files and run on top of the JVM.
Recently, Scala has expanded into Javascript runtime using ScalaJS and LLVM runtime based on Java Native.
In this series, we will discuss the basics of the Scala language, to help you get started with your first Scala program.

Basics
- Introduction to Scala
- Main Features of Scala
- Introduction to Scala REPL
- Guide to ScalaDoc
- Guide to Annotations in Scala
- Introduction to Scala 3 and Dotty
- Mutability in Scala
- def, var and val in Scala
- Scala Conditional Expressions
- For Loop in Scala
- Guide to lazy val in Scala
- The return keyword in Scala
- Break Statement in Scala
- Operators in Scala
- Main Method in Scala 3

Scala OOP
- Introduction to Object Oriented Programming in Scala
- Guide to Inheritance in Scala
- Classes and Objects in Scala
- Traits vs Abstract Classes in Scala
- By Value and By Name Parameters in Scala
- Difference Between Class and Case Class in Scala
- Named and Default Arguments in Scala
- Creating Singletons in Scala
- Companion Objects in Scala
- Class Composition with Mixins
- Polymorphism in Scala
- Access Modifiers in Scala
- Package and Import in Scala