Get Started
Scala is a programming language distinguished by its strong type system, functional programming constructs, interoperability with Java, and rich ecosystem of libraries and frameworks for building distributed systems, big data pipelines, and blazing fast web applications.
Learn
Scala can be used by people of widely varying levels of programming experience. Like most modern languages, it exposes object-oriented constructs which will feel familiar to most programmers with exposure to other languages. In addition, functional programming constructs appear regularly in Scala code since they are so easily reachable. It is common for some programmers to lack deep exposure to functional, reactive, and asynchronous concepts which appear commonly in well-architected Scala code. Fear not! Scala is designed to be a scalable language for both machines and people. Start where you're at and commit to learning new techniques over time. Scala will reward your efforts by scaling with you as grow.
To aid you along your journey, refer to the following resources:
- Scala School: Twitter's homegrown course for getting new engineers up to speed quickly
Environment configuration
Rather than manually managing various versions of JDKs, Scala, and SBT, you may appreciate them to be managed by SDKMAN as suggested in this article.