Email the Author
You can use this page to email Nadim Bahadoor about Scala For Beginners.
About the Book
Who Should Read This Book
This book is designed from the ground up with the complete beginner in mind, as well as focusing on day-to-day real-world Scala programming especially within an enterprise context. Therefore, you will find that this book contains more than enough of the basics, in addition to the practical stuff - and of course the content is introduced in a step-by-step way.
This book is also a great guide for experienced programmers from different backgrounds, such as, Java, .NET, C++, and others. It is outright true whilst working in large enterprise projects - whose ecosystem typically comprises of numerous programming languages - and as a result you may need to get up to speed fast so as to work on a Scala project, or alongside a Scala team.
Likewise, data scientists and big data engineers who already code in, say, Python, R, or Java, will have a better understanding of Scala in general and its development environment. This increased awareness will no doubt help to interface with a number of tools from the Scala ecosystem, such as, Apache Spark - a popular big data technology for data analytics, and machine learning.
Naturally, this book is equally intended for the typical programmer, or student, or anyone who wants to quickly learn a modern programming language such as Scala.
Book Structure and Content Organization
The chapters in this book are organized in such a way to gradually and incrementally learn Scala. In fact, each section is logically ordered with a fast-track, or crash course, perspective, such that you can get familiar with Scala in just about 7 days. Nevertheless, it goes without saying that the 7 days time frame is somewhat arbitrary, and will very much depend on your experience level and time commitment. Needless to say that you can skip certain chapters if you are already aware with the content, or decide to follow along, or cherry-pick specific sections, or even carry on at your own pace.
It is worth mentioning, though, that each chapter provides a natural ordering to help you easily build-up your knowledge of the various Scala features. For instance, you will be shown how to use Pattern Matching before being able to apply it within, say, a map(), or a flatMap() function. Of course, I would not recommend cramming the content in just one day - having said that, you can do the whole thing in a short amount of time. The best thinking however is to take the first leap and get started!
In the first chapter - Day One: Scala Overview, Development Environment, And Essentials - you will be provided with a general overview of the Scala programming language, along with step-by-step instructions for setting up your Scala coding environment. You will then be introduced to some of the essential components as prerequisites for the upcoming chapters.
In the second chapter - Day Two: Learn Functions, Classes and Objects - you will create and use functions, classes and objects. Generally speaking, the features that we illustrate in this chapter will somewhat form a large part in your typical day-to-day Scala coding.
In the third chapter - Day Three: Learn Traits, and Akka HTTP Scala Single Project - you will be introduced to traits, and how to use sbt (the build tool for Scala), and begin to create a real-world Scala application.
In the fourth chapter - Day Four: Scala's Immutable and Mutable collections - we start off by reviewing some of the basic data structures in computer science, and then proceed with numerous examples in using Scala's Immutable and Mutable collections.
In the fifth chapter - Day Five: Scala's Ready To Use Collection Functions - we go over the wide range of functions, which Scala provides out-of-the-box to facilitate the everyday interactions with collection data structures.
In the sixth chapter - Day Six: Asynchronous Programming, and Testing Your Scala Application - you will make use of Scala Futures for writing non-blocking code. It will also be time to introduce ScalaTest - a prominent tool for testing Scala applications.
In the final seventh chapter - Day Seven: Your Step-By-Step Scala Application - we put together a Scala application from the concepts that we've learned in this book. In particular, the Scala application will be a multi-project, which is quintessential to most enterprise platforms by having various parts of the system encapsulated in small, and reusable, projects.
Acknowledgements
I would like to take this opportunity to express my sincere appreciation to all the readers at our http://allaboutscala.com blog for their invaluable feedback and comments over the past years. These have greatly shaped up the structure of this book to take into account the true beginner who wants to quickly learn Scala.
Reader Testimonials
Below is what our readers are saying about the tutorials at http://allaboutscala.com
Nadim, your articles are great. I’m on my way to learn Scala and surely this site will be one of my sources. Thank you!
Vinicius Abreu
Thanks for these Nadim Bahadoor! - I find them very valuable!!
Kevin Lawrence
Thanks a lot!!! It saved me !!
Syed Saad
I have to concur with Tree_Ed on that compliment. Especially appreciated is that you take into account the true beginner, not taking for granted anything that we might already know. I have been doing database development for 30 years, and wanted to get to know scala on my way to getting to know spark. These tutorials are excellent and thanks Nadim!
Vic Kirkpatrick
Best tutorials found so far. Thanks for writing in a simple way.
Nikhil Jaitak
Your all articles are good
Vivek Kale
One of the best online tutorial about Scala...I love it ..Im from Python Back around..Fantastic job mr.Author of the site..Looking fwd your real time proj explanation and your book as well, I m going to recommend your site to my friends and scala beginners ... Good job...
Baranidharan Ragupathi
Fantastic site - really useful for someone like me coming from python, C and C#. So many of the tutorials I have seen assume a java background but the tutorials here make it really easy for me to get into the meat of scala. I'm looking forward to the book!
Steve Gailey
Thank you for the content! Having completed most of the chapters, I think it was one of the best learning experiences for me!
Daniel Stoica
This is one stop place for learning spark and scala. Waiting for kafka tutorial eagerly :)
Debashish Das
About the Author
I'm Nadim Bahadoor, and have over a decade of hands-on experience building large scale systems in the Financial (Electronic Trading Platforms), Risk, Insurance and Life Science sectors. My passion for knowledge sharing and open-source steered me to launch http://allaboutscala.com as a platform to publish my hands-on experience with using the Scala ecosystem in Finance, Distributed Systems, Functional Programming, Big Data, Graph and/or Semantically Linked Data and, of course, my favorite - Machine Learning.
From a Financial Engineering perspective, I have in-depth practical knowledge of multi-asset classes, including, Collateralized Mortgage Obligations (CMO), Passed-Through Bonds, Commodities, Futures, Equities, FX, Swaps, and Bespoke Non-Correlated Exotic Risks.
As a committed technology enthusiast, I have hands-on expertise in the productionization of Electronic Trading Platforms, Data Engineering and Machine Learning pipelines, using various popular Big Data tools, such as, Cassandra, Spark, Zookeeper, Gremlin/TinkerPop, Kafka, Datomic, and others - besides having used these products since their early infancy days.
I hold a Master in Computer Science from Stevens Institute of Technology, New Jersey, USA, and also earned a Bachelor of Arts in Economics and Computer Science from Gettysburg College, Pennsylvania, USA.
I was born on the picturesque island of Mauritius, spend as much time as I can with my family, and of course ... code here and there :)