Functional Programming in Scala Specialization - A review
Aug 13, 2019
The last year or so I have been working (on and off) on EPFL’s Functional Programming in Scala Specialization offered on Coursera, and I was so amazed at the quality of the courses that I felt like writing a review. So here goes:
1.) Functional Programming Principles in Scala - The first course of the series, but arguably not the easiest. The course is more about Functional Programming than learning Scala, and if you, like me, have worked mostly with imperative programming throughout your life then the course could be challenging. Prof. Odersky does a really good job in not just making concepts like tail recursion and currying approachable, but also helps you in understanding why these concepts exist in the first place. The course requires some math knowledge and expertise with visualizing stack frames.
2.) Functional Programming Design in Scala - This course goes deeper into Functional Programming concepts, including maps and flat maps, for-comprehensions, monads and side-effects. Assignments were WAY harder (IMO) than the first course but discussion forums are your friend. The course goes deep into code design and reorganization, and introduces observer pattern in the context of functional programming. Going through references on a pure functional language like Haskell would help a lot in understanding the context in which these concepts are used for.
3.) Parallel Programming - Coming Up!
4.) Big Data Analysis with Scala and Spark - Coming Up!
5.) Functional Programming in Scala Capstone - Coming Up!
P.S.: A more straightforward introduction to Scala - https://www.scala-exercises.org