Get Programming with Scala alternatives and similar packages
Based on the "Misc." category.
Alternatively, view Get Programming with Scala alternatives based on common mentions on social networks and blogs.
-
Exercism - Scala Exercises
Crowd-sourced code mentorship. Practice having thoughtful conversations about code. -
Learn-by-doing functional programming course on Scala
learn-by-doing course/tutorial for functional programming on scala -
Functional Programming for Mortals
source and examples to Functional Programming for Mortals with Scalaz -
Scalera Blog
Blog about Scala language and its environment (howto's, good practices, tips,...). Weekly posts written in both spanish and english -
List of Scala Online Courses
A list of free and paid Scala online courses by Classpert, An online course search and comparison website -
Scala Days Conferences
A youtube channel that provides full fledged videos, recorded at Scala Days Conferences -
Functional Programming in Scala
Coursera Specialization (5 courses) created by Martin Odersky et al. at the EPFL (Ecole polytechnique fédérale de Lausanne). -
Reactive Programming with Scala and Akka
Use the concepts of reactive programming to build distributed systems running on multiple nodes -
Scala With Cats
Learn system architecture and design using the techniques of modern functional programming with Cats -
Scala for the Impatient 2nd Edition
Covers most Scala features with short and easy to understand explainations.
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of Get Programming with Scala or a related project?
Popular Comparisons
-
Get Programming with ScalavsIntroduction to programming with dependent types in Scala
-
Get Programming with ScalavsDemos and Examples in Scala (Chinese)
-
Get Programming with ScalavsCA Art
-
Get Programming with ScalavsList of Scala Online Courses
-
Scala With CatsvsFunctional Programming for Mortals
README
Get Programming with Scala
Code, exercises, and answers for the book Get Programming with Scala.
Lessons are grouped per unit. Each lesson is a standalone sbt project and
it has the following three packages: listings
, quickchecks
, trythis
.
Have a look at the Table of Contents for links to all the book lessons.
Installation Requirements
Make sure the following tools are installed:
- JDK 8+
- sbt
Running the Code
Code Snippets (Scala Worksheets)
Some lessons are simple snippets (files with extension *.sc) also called Scala Worksheets. They can be interpreted interactively from the REPL by IDEs with dedicated Scala support, such as IntelliJ IDEA and ScalaIDE.
If you a using a text editor or your IDE doesn't support Scala Worksheets, start the REPL from sbt:
sbt console
and evaluate the file as follows:
> :load /path/to/file.sc
Executable sbt Programs
Some lessons are fully fleshed-out programs (files with extension *.scala): in order to run them, they need to be compiled. First, navigate to the folder of the lesson you are interested in.
Suppose you want to review the code for lesson 8:
cd unit1/lesson8
Start sbt:
sbt
Compile and run the code:
> run
If a lecture isn't an executable program, please see section on running Scala Worksheets.
Table of Contents
UNIT 0: HELLO SCALA!
- [LESSON 1](unit0/lesson01): Why Scala?
- [LESSON 2](unit0/lesson02): The Scala Environment
- [LESSON 3](unit0/lesson03): sbt – Scala Build Tool
UNIT 1: THE BASICS
- [LESSON 4](unit1/lesson04): Values and Variables
- [LESSON 5](unit1/lesson05): Conditional Constructs and Loops
- [LESSON 6](unit1/lesson06): Function as the most fundamental block of code
- [LESSON 7](unit1/lesson07): Classes as a representation of our world
- [LESSON 8](unit1/lesson08): CAPSTONE 1 - The Vending Machine
UNIT 2: OBJECT-ORIENTED FUNDAMENTALS
- [LESSON 9](unit2/lesson09): Import and Create Packages
- [LESSON 10](unit2/lesson10): Scope your code with Access Modifiers
- [LESSON 11](unit2/lesson11): Singleton Objects
- [LESSON 12](unit2/lesson12): Traits as interfaces
- [LESSON 13](unit2/lesson13): CAPSTONE 2 - What time is it?
UNIT 3: HTTP SERVICE
- [LESSON 14](unit3/lesson14): Pattern Matching
- [LESSON 15](unit3/lesson15): Anonymous Functions
- [LESSON 16](unit3/lesson16): Partial Functions
- [LESSON 17](unit3/lesson17): HTTP API with http4s
- [LESSON 18](unit3/lesson18): CAPSTONE 3- The Time HTTP Server
UNIT 4: IMMUTABLE DATA AND STRUCTURES
- [LESSON 19](unit4/lesson19): Case classes to structure our data
- [LESSON 20](unit4/lesson20): Higher Order Functions
- [LESSON 21](unit4/lesson21): What is Purity?
- [LESSON 22](unit4/lesson22): Option
- [LESSON 23](unit4/lesson23): Working with Option: map and flatMap
- [LESSON 24](unit4/lesson24): Working with Option: for-comprehension
- [LESSON 25](unit4/lesson25): Tuple and Unapply
- [LESSON 26](unit4/lesson26): CAPSTONE 4 - Rock, Paper, Scissors, Lizard, Spock!
- [LESSON 19](unit4/lesson19): Case classes to structure our data
UNIT 5: LIST
- [LESSON 27](unit5/lesson27): List
- [LESSON 28](unit5/lesson28): Working with List: map and flatMap
- [LESSON 29](unit5/lesson29): Working with List: properties
- [LESSON 30](unit5/lesson30): Working with List: element selection
- [LESSON 31](unit5/lesson31): Working with List: filtering
- [LESSON 32](unit5/lesson32): Working with List: sorting and other operations
- [LESSON 33](unit5/lesson33): CAPSTONE 5 – The Movies Dataset
- [LESSON 27](unit5/lesson27): List
UNIT 6: OTHER COLLECTIONS AND ERROR HANDLING
- [LESSON 34](unit6/lesson34): Set
- [LESSON 35](unit6/lesson35): Working with Set
- [LESSON 36](unit6/lesson36): Map
- [LESSON 37](unit6/lesson37): Working with Map
- [LESSON 38](unit6/lesson38): Either
- [LESSON 39](unit6/lesson39): Working with Either
- [LESSON 40](unit6/lesson40): Error Handling with Try
- [LESSON 41](unit6/lesson41): CAPSTONE 6 – The Library Application
- [LESSON 34](unit6/lesson34): Set
UNIT 7: CONCURRENCY
- [LESSON 42](unit7/lesson42): Implicit and Type Classes
- [LESSON 43](unit7/lesson43): Future
- [LESSON 44](unit7/lesson44): Working with Future: map and flatMap
- [LESSON 45](unit7/lesson45): Working with Future: for-comprehension and other operations
- [LESSON 46](unit7/lesson46): Database queries with Quill
- [LESSON 47](unit7/lesson47): CAPSTONE 7 – The Quiz Application: Part 1
UNIT 8: JSON (DE)SERIALIZATION
- [LESSON 48](unit8/lesson48): JSON (De)serialization with circe
- [LESSON 49](unit8/lesson49): Lazy Evaluation
- [LESSON 50](unit8/lesson50): The IO type
- [LESSON 51](unit8/lesson51): Working with the IO type
- [LESSON 52](unit8/lesson52): Testing with ScalaTest
- [LESSON 53](unit8/lesson53): CAPSTONE 8 – The Quiz Application: Part 2