I’ve spent my last 7 weeks trying to follow Martin Odersky’s Scala courses on the Coursera platform.
In doing so, my intent was to widen my approach on Functional Programming in general, and Scala in particular. This article sums up my personal thoughts about this experience.
Time, time and time
First, the courses are quite time-consuming! The course card advises for 5 to 7 hours of personal work a week and that’s the least. Developers familiar with Scala will probably take less time, but other who have no prior experience with it will probably have to invest as much.
Given that I followed the course during my normal work time, I can assure you it can be challenging. People who also followed the course confirmed this appreciation.
Functional Programming
I believe the course allowed me to put the following Functional Programming principles in practice:
- Immutable state
- Recursivity
Each assignment was checked for code-quality, specifically for mutable state.
Since in Scala, mutable variables have to be defined with the var
keyword, the check was easily enforced.
Algorithmics
I must admit I only received the barest formal computer programming education. I’ve picked up the tricks of the trade only from hard-won experience, thus I’ve only the barest algorithmics skills.
The offered Scala course clearly required much needed skills in this area and I’m afraid I couldn’t fulfill some assignments because of these lackings.
Area of improvement
Since I won’t code any library or framework in Scala anytime soon, I feel my next area of improvement will be focused on the whole Scala collections API.
I found I missed a lot of knowledge of these API during my assignments, and I do think improving this knowledge will let me code better Scala applications in the future.
What’s next
At the beginning, I aimed to have 10/10 grade in all assignments but in the end, I only succeeded to achieve these in about half of them. Some reasons for this have been provided above. To be frank, it bothers the student part in me… but the more mature part sees this as a way to improve myself. I won’t be able to get much further, since Devoxx takes place the following week in Antwerp (Belgium). I’ll try to write about the conferences I’ll attend to or I’ll see you there: in the later case, don’t miss out my hands-on lab on Vaadin 7!