Oracle MOOC about Java 8 with Lambdas and Streams

3 min read
Yesterday was end of Oracles Massive Open Online Course about JDK 8 with Streams and Lambdas.
I really liked it and learned a lot about Streams and Lambdas so I decided to write some lines about it. Maybe some interested people will read my experiences about this course and enroll to the next one. The course contained three lessons. Each lesson contained 1-1,5h of videos. After watching the videos or reading the slides there were some homework exercises which took round about 1-2h to do all the excercises of each lesson. At the end of each lesson the participant had to pass a quiz with at least 70%.


Lesson 1

The first lesson began with an introduction to lambdas and why we need them, their syntax and examples of how to convert the well known loops to lambdas.
At the beginning it was pretty strange for me. I had to map the foreach approach I used all the years to code without loops, but I really like it.
After watching the videos by Simon Ritter (@speakjava) who was the instructor of this course, the participant hat to do the homework and the first quiz. The homework contained four excercises only and the videos and slides prepared well for this quiz. Nevertheless the method references part of this lesson was not that clear or maybe in my opinion. I had to do a mapping from loops to lambdas and in addition to that from lambdas to method references. This took some time, but maybe it's because I'm not an native speaker. Nevertheless I would like to see more examples for this mapping from loops to lambdas with method references.

Lesson 2

The second lesson focused on Streams API and its source, intermediate and terminal operations. It also covered the new Optional class for handling null values to avoid NullPointerExceptions.
After the sections of lesson two there were a homework and quiz as well. The first three of seven excercises of the homework were about manipulating Lists of Strings with Lambdas and Streams by using map() and filter() methods. The other excercises left were about operations on files like reading comma separated files, sorting and converting the read lines and so on.
The second homework was as simple as the first one. The videos were very good and after watching them and playing around with streams and its operations, passing the second quiz wasn't a problem. The participant had to invest another 1-2h for watching the videos and 1-2h to do the homework.

What I really liked was Trisha Gees (@trisha_gee) tip about Comparators by using comparingInt() method. Didn't know this smart way before. Thanks for that btw :-)

Lesson 3

The last lesson mainly focused on performance topics and the differences between parallel and sequential streams. It also dealed with performing reduction using streams, creating finite and infinite streams and debugging streams.
In comparison to the homework before the third homework was much harder. I had to invest 2-3h to do the homework, but it was pretty important. The participant has to calculate the Levenshtein distance between strings by using parallel and sequential streams to get a feeling of when to use which one and their differences in performance depending on the kind of task.

Conclusion

I really liked the course and I will definitely enroll in Oracles future Online Courses. I have learned a lot about streams and lambdas and I feel well prepared for using streams and lambdas. I highly recommend you to enroll to the next Open Online Course. It's definitely not a waste of time!

See you :-)


Be Social, Share!