Learning Scala in Coursera

Scala is growing, a lot. The (relatively) recent investment of $14M in the company ensures that the language will be taken care of and any remaining issues (like some necessary improvements for the IDE) tackled. Scala 2.10 is around the corner and with it all the performance and APi improvements. And Play is healthier than ever. Good times to be a Scala fan.

Another big step to make Scala more popular has been the Functional Programming in Scala course from Coursera. For people like myself who learned the language via some book and StackOverflow questions, it’s been a very welcomed training to ensure Scala foundations were good enough and to polish the functional approach to coding.

Maybe the approach is very academic, and in fact some problems are solved in convoluted ways just to force the student to implement specific methods. But all in all the course is great. The videos from Martin are polished and the explanations well delivered. And the automatic evaluation method is a nice touch :)

Not only that, the course itself has served as trigger for some other interesting things:

  • A Scala meetup was organized in Dublin, where we were able to chat and learn some more advanced techniques when using Scala
  • I found myself being able to solve problems from 99 Scala problems with less effort, which seems to point to an increase in my Scala skils (update: some code available at Github, will be completing it as time allows)
  • I could convince 3 other guys from my current job to join the course. It’s very good to share and compare notes on the exercises (no copying, I swear!), makes it much easier to understand new concepts.

It’s been long since I felt so comfortable and happy when coding in a given platform or language. Not many people will read this, but if you do: try it! It’s worth the effort. With such an active community and so many companies adopting Play and Scala, it’s silly not to.

In addition to all this, through the Scala course I discovered how great Coursera is as a learning platform. The downside for people addicted to learning like myself is that it could become time consuming in the near future (I joined around 20 courses for the next year) but the fact that you can resign at any time and that you may decide to not deliver the homework but still keep access the theory is of great value. It will be interesting to see if they can solve the issues around peer-grading, as they lower the value of some courses a bit. But the number of relevant subjects is incredible.

So, between Scala and Coursera (and some other projects) I’m keeping myself busy. But lots of fun ahead :)