Really good explanation by the instructor. Good assignments. The assignments gave a good insights into functional programming. I loved the way the problems were decomposed into neat smaller functions.
As expected Martin is awesome in explaining principle of functional programming. I have started reading the book as well to make sure I keep up with the knowledge which I have gained from this course.
von Mohamed E B•
von Yurii K•
von snabel k•
von Andrey M•
von Vladimir Z•
von Mattia Z•
von Oleg M•
von Raghuwanshi, V•
von Deleted A•
von Krasilov D F•
von Yaron D•
von Damien F•
von Sushmitha v•
von Michael W•
von Oren Z B M•
von David S•
Excellent intro course, but not without issues.
In general, pro's include reasonable length lectures, provided by _the_ leading expert in the field, and designer of the Scala language. Focus on functional programming techniques versus syntax nuance is a significant benefit - Scala is easy to get bogged down in. Pro's also include the fact that lectures have had at least some amount of post-production work done, and manage to make voiceover/slides/whiteboard consistent and coherent better than most similar online classes/tutorials.
The assignments are reasonable, and the time estimates of ~3 hrs each was about right on the average, at least in my case (senior programmer with deep background in C/C++, and just enough Java to be dangerous and dislike boilerplate).
Some drawbacks - there was no clear segue from "basic syntax" to "collections framework". That's _IMPORTANT_. In 20/20 hindsight, I would have benefitted from a big, bold slide before the first mention of "foreach" that said "stop here, go to the text, and skim the chapters on collections for 'foreach' and other common operations. This is a building block for everything to follow, and NOT unique to just lists."
The major factor keeping this from being a '5' in my mind were that the assignments didn't always make sense as written, and I had to go back and forth between the assignment writeup, the source code and the test cases to really sort out what was required. The assignments could become _much_ more effective if they were provided with more test cases, including expected FAILURE cases and not just bare minimal acceptance cases.
von Ezequiel D D D•
This course is very good and helped me to dive into functional programming and Scala language.
Teacher is very clear and videos are good. The idea of mixing functional style programming with a language like Scala makes it a good challenge to learn and/or strength two skills in one course.
At some points I found some of the assignments more focused on algorithmic problems more than functional programming or Scala itself, which can feel a bit complex.
On the other hand classes do not mention almost anything about the performance issues that can arise when using recursion at this level, which leads to overflow or timeout problems when submitting and grading assignments or if they are used in real work situations. I understand for a first course it could be reasonable.
Finally, many exercises in the assignments depend on the previous ones so if you get blocked at one, you may not be able to continue.
Overall, I recommend and It's a good course which will for sure improve your programming skills, and combined with other courses in the specialization can be an interesting challenge.
von James M•
Good introduction to functional programming and Scala. Although, the lectures and assignments can get rather mathy (pointless proof of refactoring using maths, Pascals Triangle, Huffman Coding, Counting Change, etc) If you don't have a mathematical background, I would suggest getting the basics of programming down before starting this course so you have less to worry about.
I found myself reading up about the maths behind some of the assignments before tackling them, when this could've been avoided with less mathematical assignments. I looked into the first assignment of the next module in the specialization and thought to myself: "Why bother" as it just continues the trend of solving more complex mathematical problems -- something rarely tackled as a professional developer.
I would've liked to see the standard collection functions taught and used more frequently: map, flatmap, fold, etc.
von Jim N•
I don't really have any experience in any of these languages except perhaps C from many years ago. However, I do have experience in Lisp and I found that the languages are extremely similar. In many cases I could think in Lisp and write in Scala, which is sort of like Lisp with type annotations, not always, but often. There are a couple of places in the course where the author assumes you know java. I think this is a mistake. You basically need to know the names of some java methods to work the exercise. But I just asked in the forum and someone gave me the correct method names.
von Erin H•
I would echo the other reviews about how it took a long time to get the environment set up. I feel like those videos should be redone since they are a couple years out of date.
Otherwise, the content and instructor was great. You should be familiar with core computer science concepts before doing this course as you jump into concepts like binary trees. The assignments were definitely challenging. Scala is really strict on data types, structures, etc. so some stuff you can get away with in scripting languages commonly used in data (like Python, R, etc.), you cannot get away with here. This probably was the toughest hurdle for me as I have become so accustomed to scripting languages. That being said, the challenge was worth it and you will learn a lot about Scala in this course.