In this post, we have prepared a curated top list of reading recommendations for beginners and experienced. This hand-picked list of the best Scala books and tutorials can help fill your brain this July and ensure you’re getting smarter. We have also mentioned the brief introduction of each book based on the relevant Amazon or Reddit descriptions.
- Programming in Scala: Updated for Scala 2.12 (2016)
- Programming Scala: Scalability = Functional Programming + Objects (2014)
- Functional Programming in Scala (2014)
- Scala Cookbook (2013)
- Scala for the Impatient (2nd Edition) (2016)
- Functional Programming, Simplified (2017)
- A companion booklet to “Functional Programming in Scala”: Chapter notes, errata, hints, and answers to exercises (2015)
- Programming with Scala: Language Exploration (Undergraduate Topics in Computer Science) (2017)
- Introduction to Programming and Problem-Solving Using Scala, Second Edition (2016)
- Programming Scala: Scalability = Functional Programming + Objects (Animal Guide) (2009)
- Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine (Pragmatic Programmers) (2009)
- Learning Scala Programming: Object-oriented programming meets functional reactive to create Scalable and Concurrent programs (2018)
Scala is an object-oriented programming language for the Java VirtualMachine. In addition to being object-oriented, Scala is also afunctional language, and combines the best approaches to OO andfunctional programming. In Italian, Scala means a stairway, or steps.
Author(s): Martin Odersky, Lex Spoon
Get up to speed on Scala, the JVM language that offers all the benefits of a modern object model, functional programming, and an advanced type system. Packed with code examples, this comprehensive book shows you how to be productive with the language and ecosystem right away, and explains why Scala is ideal for today’s highly scalable, data-centric applications that support concurrency and distribution.
Author(s): Dean Wampler, Alex Payne
Functional Programming in Scala is a serious tutorial for programmers looking to learn FP and apply it to the everyday business of coding. The book guides readers from basic techniques to advanced topics in a logical, concise, and clear progression. In it, you’ll find concrete examples and exercises that open up the world of functional programming. Functional programming (FP) is a style of software development emphasizing functions that don’t depend on program state.
Author(s): Paul Chiusano, Rúnar Bjarnason
Scala Cookbook (2013)
Save time and trouble when using Scala to build object-oriented, functional, and concurrent applications. With more than 250 ready-to-use recipes and 700 code examples, this comprehensive cookbook covers the most common problems you’ll encounter when using the Scala language, libraries, and tools. It’s ideal not only for experienced Scala developers, but also for programmers learning to use this JVM language.
Author(s): Alvin Alexander
Interest in the Scala programming language continues to grow for many reasons. Scala embraces the functional programming style without abandoning the object-oriented paradigm, and it allows you to write programs more concisely than in Java. Because Scala runs on the JVM, it can access any Java library and is interoperable with familiar Java frameworks.
Author(s): Cay S. Horstmann
If you’ve had trouble trying to learn Functional Programming (FP), you’re not alone. In this book, Alvin Alexander — author of the Scala Cookbook and former teacher of Java and Object-Oriented Programming (OOP) classes — writes about his own problems in trying to understand FP, and how he finally conquered it. What he originally learned is that experienced FP developers are driven by two goals: to use only immutable values, and write only pure functions.
Author(s): Alvin Alexander
A companion booklet to “Functional Programming in Scala”: Chapter notes, errata, hints, and answers to exercises (2015)
This full-color booklet contains chapter notes, hints, solutions to exercises, addenda, and errata for the book “Functional Programming in Scala” by Paul Chiusano and Runar Bjarnason. This material is freely available online, but is compiled here as a convenient companion to the book itself. All code is colorfully syntax-highlighted.
Author(s): Rúnar Óli Bjarnason, Paul Chiusano
This reader-friendly textbook presents a concise and easy to follow introduction to Scala. Scala is an ideal first programming language, which permits programming in multiple paradigms, and enables developers to be more productive with modern computing infrastructures such as distributed environments.
Author(s): Bhim P. Upadhyaya
Mark Lewis’ Introduction to the Art of Programming Using Scala was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Introduction to Programming and Problem-Solving Using Scala is designed to be used in first semester college classrooms to teach students beginning programming with Scala. The book focuses on the key topics students need to know in an introductory course, while also highlighting the features that make Scala a great programming language to learn.
Author(s): Mark C. Lewis, Lisa Lacher
Learn how to be more productive with Scala, a new multi-paradigm language for the Java Virtual Machine (JVM) that integrates features of both object-oriented and functional programming. With this book, you’ll discover why Scala is ideal for highly scalable, component-based applications that support concurrency and distribution. Programming Scala clearly explains the advantages of Scala as a JVM language.
Author(s): Dean Wampler, Alex Payne
Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine (Pragmatic Programmers) (2009)
Scala is an exciting, modern, multi-paradigm language for the JVM. You can use it to write traditional, imperative, object-oriented code. But you can also leverage its higher level of abstraction to take full advantage of modern, multicore systems. Programming Scala will show you how to use this powerful functional programming language to create highly scalable, highly concurrent applications on the Java Platform.
Author(s): Venkat Subramaniam
Learning Scala Programming: Object-oriented programming meets functional reactive to create Scalable and Concurrent programs (2018)
Learn how to write scalable and concurrent programs in Scala, a language that grows with you. Scala is a general-purpose programming language that supports both functional and object-oriented programming paradigms. Due to its concise design and versatility, Scala’s applications have been extended to a wide variety of fields such as data science and cluster computing. You will learn to write highly scalable, concurrent, and testable programs to meet everyday software requirements.
Author(s): Vikash Sharma
Best Scala Books to Master the Technology
We highly recommend you to buy all paper or e-books in a legal way, for example, on Amazon. But sometimes it might be a need to dig deeper beyond the shiny book cover. Before making a purchase, you can visit resources like Library Genesis and download some Scala books mentioned below at your own risk. Once again, we do not host any illegal or copyrighted files, but simply give our visitors a choice and hope they will make a wise decision.
Reactive Programming with Scala and Akka
Author(s): Atreya, Suraj; Sathyanarayanan, Prasanna Kumar
ID: 2416702, Publisher: Packt Publishing, Limited, Year: Feb. 2016, Size: 3 Mb, Format: epub
Foundations of Scalable Systems
Author(s): Ian Gorton
ID: 3136939, Publisher: O'Reilly Media, Inc., Year: 2022, Size: 2 Mb, Format: epub
Python Web Development with Sanic: An in-depth guide for Python web developers to improve the speed and scalability of web applications
Author(s): Adam Hopkins
ID: 3194223, Publisher: Packt Publishing - ebooks Account, Year: 2022, Size: 2 Mb, Format: epub
Please note that this booklist is not absolute. Some books are truly chart-busters according to Chicago Tribune, others are written by unknown writers. On top of that, you can always find additional tutorials and courses on Coursera, Udemy or edX, for example. Are there any other relevant links you could recommend? Leave a comment if you have any feedback on the list.