Recently I completed a Scala course provided by one of the creators of Scala Martin Odersky. The course contains 6 weeks of material including lectures, quizzes and assignments. I took the course since my new role requires knowing Scala to use with Spark for several projects. Ideally, I wanted to understand how code is wrote and nuances compared to other languages. I relate this to Python learning how to write Pythonic code or using list comprehension instead of for loops.
Overall the content of the course was exactly what I expected. Several lectures on objects, classes, data structures and conditional logic. I appreciated explanations of why decisions were made in a language. One thing courses can’t offer this one can is the philosophy behind language choices.
Application of that knowledge from lectures was a bit difficult. Since Scala was advertised as a functional programming language the homework's heavily emphasized recursion which in itself is difficult unless you’ve been practicing LeetCode problems or fresh out of college. After learning about types and pattern matching, the next homework assignment revolves around Huffman coding trees, which is extremely difficult. From a simple example to an already difficult topic proved to be tiresome.
However, that being said the course covers everything and teaches you how to write Scala-esque code. At minimum you’ll see one example of an implementation for each concept.
Course expectations are set to ~10 hours a week, but self-paced with freedom to skip weeks. Initially the hours requirement seems reasonable, but in later weeks expect to be nearly ~20 hours. The homework is incredibly difficult and requires heads down time to figure out a lot of it.
Outside of hours, the pace is incredibly fast through the videos. Jumping from concept to example to concept is a bit overwhelming. However, I’d highly recommend Googling a lot of the content. Topics such as variance require extra research outside of the lectures, but I don’t blame instruction for that. That being said be willing to spend extra hours a week outside of what is offered on Coursera.