Blog about software development


Free Scala progamming course

01 Oct 2016 - by 'Maurits van der Schee'

I have been doing an online (MOOC) Scala programming course via Coursera. It is a free very well-constructed and challenging course taught by prof. Martin Odersky (the creator of Scala) at the EFPL (École Polytechnique Fédérale de Lausanne) in Switzerland. I have finished it within a few weeks and have now started 2 of the 4 follow-up Scala courses to further sharpen my Scala skills.

Free Scala programming courses

The following links allow you to sign up for the 5 individual courses for free:

  1. Functional Programming Principles in Scala
  2. Functional Program Design in Scala
  3. Parallel programming
  4. Big Data Analysis with Scala and Spark
  5. Functional Programming in Scala Capstone

Note that if you follow the specialization link on Coursera it may seem that you have to pay for the courses. This is not true unless you want to receive a certificate at the end. Below you find the reasons that I feel that learning Scala (by taking the above courses) is important.

Apache Spark cluster computing (Hadoop alternative)

Apache Spark is an alternative to Hadoop for people that run into efficiency issues. Spark is capable of holding intermediate result in memory allowing to efficiently execute iterative algorithms. Apart from that it is also built on the concept of having the processor close to the data it needs to process. Spark actually supports, next to Scala, the programming languages Java and Python. And although this seems like a hard choice, it should be noted that all Java classes can be used from within Scala and that the Python runtime is slower than the JVM.

The Play framework (Spring alternative)

If you want to combine the work-flow of writing PHP, with the performance of the JVM, the type-safety of Java and the elegance of Scala, then the Play web framework is for you. It may not be very popular (yet), but it is worth exploring, because it is truly a work of art, combining the best of many worlds. If you don't like Spring for it's ceremony and configuration heavy nature, then you may find that Play is refreshingly different.

Parallel programming skills (Go alternative)

I love programming in the Go language. It makes me feel close to the hardware and has some amazing parallel programming features. But it does not combine well with enterprise software. It is the successor of C, not an alternative for J2EE. Scala allows you to use the full Java JDK API next to it's elegant own API. Scala allows you to seamlessly combine and connect the Scala and the Java world, allowing a smooth transition in large enterprises.

Now get started!

This post may read like a sales pitch (but it is not). I am truly amazed and just can't believe the Internet has brought us free high-quality education. I work in a company that process millions of data points per day and provides real-time insights in that data. These courses are very valuable to me as they help me to understand best practices of processing of data at scale.

NB: Also check out the Scala Starter Kit, a great resource!