Programming Books are Redundant, or are they?

The high availability and vast quantity of programming tutorials, blog posts and articles available on the internet has caused a shift in how a developer consumes content. 

Instead of using books, the modern programmer chooses to learn on the job. To learn a language, not by the age old and somewhat obsolete method of studying, but by actually writing code.

Look around the office and you’ll see the same thing on every screen. One side an IDE, the other side a browser window with 20 tabs open, providing a portal into the infinite knowledge of the web. We all do it. It is the most efficient way to write code in an industry that constantly pressures developers to deliver, deliver, deliver.

In this world there is no time for a book.

However, you are here because you want add a depth and breadth to your programming. You feel, as do I, that the cycle of googling and copying from stack overflow is slightly hollow, robotic and unfulfilling.

Your first reflex should be to think. Not to google.

Because of this, I argue that the well written programming book still has a great deal to add to a developers armoury.

If you are really trying to master a programming¬† language you will need to get a handle on some of the more abstract concepts. I’ve found the best way to appreciate the subtleties of a language is to learn from the very same people who created it. There are many well written programming books that are brilliant for this. Pick one up and work through it end to end. I guarantee you will gain an ocean of knowledge, from which you can construct your own programming patterns and begin to contribute your own unique ideas to the community.

To become a contributor rather than a consumer you must first master the art.

For Scala and Spark development I have found the same applies. You can become competent in Scala and Spark by using online resources and extracting code snippets from Stack overflow. But for those of you with the ambition to rise above this crowd and become a producer of content rather than a consumer, the book still remains an imperative part of the journey.

Below are 5 of the best books for becoming an expert Scala and Apache Spark developer.

5 Books for Scala Spark Developers

Programming in Scala: A comprehensive Step-by-Step Scala Programming Guide by Martin Odersky, Lex Spoon, Bill Venners

Learn from the best. Programming in Scala is Written by the designer of the language – Martin Odersky. For that reason, no-one is better qualified to take you on a comprehensive Scala journey.

Starting from the fundamentals, Martin explains what makes Scala so scalable (and therefore perfect for big data applications). The Chapters quickly move on to covering more advanced language features with a lot of great functional programming insights to be gleaned.

The books is hands on and chapters are often a joy to work through. Programming in Scala is a must read for every Scala developer.

Spark: The Definitive Guide: Big Data Processing Made Simple By Bill Chambers

This book provides an in depth tour of Apache Spark and is a perfect reference for developers who will be using Spark regularly. Again, it is written by a creator of Spark and is widely renowned as one of the best Spark books in the industry.

 Fantastic book – a must for Spark enthusiasts

Functional Programming in Scala by Paul Chiusano

This book is the go to guide for all functional programming concepts in Scala. What sets this apart from many other books and online resources is the thorough description of each concept it presents.

Additionally, there are exercises at the end of each chapter to enhance your learning. The exercises are not straightforward and I don’t doubt you will find your approach to problem solving challenged throughout.

This book is really, really worth every penny. No blog or tutorial gets any close to this book’s clarity, completeness and correctness.

Scala Cookbook: Recipes for Object-Oriented and Functional Programming by Alvin Alexander

The Scala Cookbook has a slightly different format to the other books in this list. Instead of being a comprehensive overview of a topic, in each section it sets out a problem you may wish to solve. A solution is provided and there is further discussion around the solution.

This makes the Scala Cookbook a vital resource for learning Scala. More often than not, when encountering a tricky concept in Scala, this book provided a solution. Keep it to hand!

High Performance Spark: Best Practices for Scaling and Optimising Apache Spark

A crucial part of writing data intensive programs in Scala and Spark is ensuring your code is performant. High Performance Spark concentrates on how to tune your Spark applications, providing tips and tricks to making your Spark code fast and efficient. It easy to read but is by no means a beginners guide. 

This book is very helpful for anyone wishing to build big data processing applications in Spark.

Last modified: June 25, 2020