Today I will not review a book, but a Java video course: Core Java Complete Video Course by Cay Horstmann, the author of the Core Java books. If you do not know the Core Java books yet, you can read my review of Core Java Volume I: Fundamentals, the latest 10th edition.

When I learned that there exists a Core Java video course I got pretty excited, especially when I found that it features Cay Horstmann himself. The Java video course is available on InformIT website. I have never seen any of their video courses, so I was very curious what can I expect. In this review I am explaining the entire experience that I had with the Core Java video course.

The purchased courses are accessible through the InformIT website in the user account. It takes just one click to get the player window opened. At first I thought that there is no download available, because I couldn’t find anywhere a download button. I am not a big fan of watching video courses through website players, because I hate when my videos are freezing or connection drops in the middle of watching. Waiting for buffering before starting every video is not nice either. In case of Core Java video course I got nicely surprised, because I didn’t experience any issues like this. When I started the first lesson the video started playing almost instantly. The streaming was very stable and I didn’t experience any freezes or other problems. When the player automatically started playing another videos I never had to wait longer than a second or two for the buffering. I found the download option later in the player, there is a small download button next to every lesson. However, I didn’t do download this time. I enjoyed the player a lot. Software engineers and system administrators from InformIT did a great job with developing their streaming service.

The player interface is very minimal, which is good because it does not steal your focus off the lessons. Fancy user interfaces with many buttons and effects are not good when it comes to education. You need to be focused on the video, not on the fancy effects.

The main section of the player consists of two parts. The first part is a sidebar that lists all videos in the course. The videos are organized into lessons. You can collapse and expand any lesson allowing you to see only videos belonging to a single lesson. All the videos are well described and organized, making it easy to navigate through the course. A single video focuses only on a single concept or topic, making the lessons easier to understand. Next to every video is a small icon showing if you already saw it, either partially or in full. It is very useful when you want to come back to the videos later. You don’t have to remember which video was the last one you saw. Each lesson has a download button which can be used to download all the videos to your computer. At first I though it will allow me to download source code used in the lesson, which would be nice because I would not have to download it from a separate page. That would be a nice feature to have, but well, nothing is perfect!

The second part of the player interface is the video player. It is very similar to the one from YouTube, but it is much simpler in use. Beside standard player functionality like play/pause or volume control it has a very useful function that allows you to change the tempo of playing the video. Available speed settings are 0.5x, 0.75x, 1x, 1.5x, 2x. Slower settings are useful when you want to type the code along with the video. The faster settings are great when you want to quickly go through lessons about topics you already know. There is a button for restarting the video which may be useful in case of dropped network connection, but that never happened to me. Instead of refreshing entire browser window you can restart the video alone, keeping your playlist untouched. The player allows to play video in fullscreen, displaying only the video itself on the screen, without the rest of the player interface.

From technical side of the player, it is worth to mention that it is not based on Adobe Flash, but on HTML5. It is a very good move from InformIT side that they didn’t use this terrible technology for their player. It is also a good news for mobile users, who may not have Flash available on their device. On the end of every video the player automatically starts a next one, allowing you to sit and enjoy the course without having to interact with the player controls.

The videos are provided in 720p resolution (HD). The quality of recordings is very good. The image is very sharp, smooth, without interlacing problems or defects like compression artifacts. It can be seen that it was shoot with a professional camera, not in homemade environment. The background in the videos is neutral, it’s just a plain gray color. There are no unnecessary objects in the background that would take your focus off the lessons. When the author explains the code, the code is displayed on the screen and author is visible in the bottom right corner of the video.

The code is clearly visible, it is not too small or too big. I was watching this course on both my 15.6″ laptop and 55″ TV and in both cases I could see everything very easily. Beside code, the author often provides diagrams that help to better understand covered topics.

The Core Java video course beings with the history and design of Java, teaching you what Java is (and what it isn’t). This part is very useful for people that are not familiar with Java at all. There are many old (and false) stereotypes about Java that Cay Horstmann explains and say what is true and what is not.

Lesson 2 is dedicated for instructions how to prepare the Java work environment. You will learn how to setup Java Development Kit, use command line tools and how to compile and run programs.

Lesson 3 explains the fundamental data types and structures in Java. In this lesson Cay Horstmann does not explain what variables are or how arrays or loops work. You should know these concepts from experience in other programming languages. Instead, he explains how these elements behave specifically in Java.

The next lesson is dedicated to the most fundamental concept of Java: objects and classes. As Java is a fully object oriented language, this is very important part of the language to know. If you never worked with object oriented programming in the past, don’t worry. Cay Horstmann doesn’t except you to know this concept. He begins the lesson with the fundamental concepts of object oriented programming, making everything easy to understand for people unfamiliar with OOP.

Going further, the next two lessons of this Java video course are dedicated to more advanced topics of object oriented programming, like inheritance, abstract classes, interfaces, and inner classes. Cay Horstmann also explains lambda expressions, the new exciting feature of Java 8. While lambda expressions is the concept known from functional programming, the Java engineers did a great work of incorporating it into Java object oriented world. Thanks to Cay Horstmann, we can understand how to use this new amazing feature very easily.

Lesson 7 describes the Java’s powerful exception mechanism, and how to use assertions and logging. Lesson 8 and 9 will introduce you to generic programming and collections in Java (if you are interested in generic programming, read my review of From Mathematics to Generic Programming book). The last lessons are showing how to program graphical user interfaces using Swing.

Summarizing, I am very happy with this Java video course. It’s very well constructed, built on the great Core Java book, and the instructor is Cay Horstmann himself. The course is a great supplement for the book, however it’s a good course alone. I am using this course in my preparation for Oracle OCP certification and I found it to be very helpful in understanding everything better. I can honestly recommend this Java video course for anybody who wish to improve his/hers Java skills.



You can buy the course on InformIT website.

If you are interested in the Core Java book, you can get it on Amazon or InformIT website.