This review is my personal reflection on the famous Udemy course with almost 400.000+ students, Java Programming Masterclass for Software Developers, by Tim Buchalka and Goran Lochert. It aims to cover core Java skills And Java certification for those who want to enter the world of this programming language.
Focuses on Java 11 Experienced instructors Content not limited to Java Updated materials |
Challenges are not clearly explained Videos lagged at times |
Rating:
Overview
The term Java has become so universal that even people with no technical background know about it. Being the core of the Android operating system, Java is superior to its counterparts in terms of the number of users and contributors.
Not only is Java easy to use, but it’s also portable and secure. When a language is that widespread, of course, I want to be involved. And I figured, there’s no better way to enter the Java ecosystem than to follow a path that is well proven.
Surfing through Udemy, I discovered Java Programming Masterclass for Software Developers by Tim Buchalka and Goran Lochert. It appears to be the most popular Java course on Udemy.
The course is said to be specifically designed to “give learners the Java skills they need to get a job as a Java developer.” That’s the hook that has led me to enroll in and then review Java Programming Masterclass for Software Developers.
Who will You Study with?
Let’s check out the profiles of the two instructors of Java Programming Masterclass for Software Developers before digging into the details of the review. In this course, you’ll be studying with Goran Lochert and Tim Buchalka.
Goran Lochert
Goran Lochert has been a software developer for over 12 years, during which time, he created Desktop, Web, and Mobile applications. In addition, he’s been heavily involved in games development and frameworks used to create games. He states to be on a quest to give people the education they never receive at school.
Tim Buchalka
Tim Buchalka has been a professional software developer for major companies such as Fujitsu, Mitsubishi, and Saab. He’s also a trainer at Mercedes-Benz, Paypal, VW, Pitney Bowes, IBM, and T-Mobile. His professional programming experience makes Tim a unique man.
He has also created The Learn Programming Academy, whose goal is to teach one million people to learn how to program in the next three years. Another famous Udemy course by Tim is Learn Python Programming Masterclass with 113.000+ students.
Tim Buchalka and Goran Lochert used to be listed as the main instructors of the course. But now, for some unknown reasons, Goran Lochert’s name has been taken off the Course Description page. Instead, it’s now Kevin McClung who’s the co-teacher with Tim. Aside from the fact that Kevin is a Spanish and ESL teacher, there’s not much information about him.
Course Content
In the second part of this review for Java Programming Masterclass for Software Developers, I want to talk about what you’re going to learn in the course.
Java Programming Masterclass for Software Developers is a huge course with 366 lectures. At 77 hours, the length of the course can be quite intimidating. However, I have to give it up for Tim Buchalka and Goran Lochert for having designed the course so delicately. The structure is so well-organized that it forces me to apply the concepts I’ve learned to solve commonly encountered problems in software development.
Introduction
This part is the same as most Introduction video of other Udemy courses. The instructors, mainly Tim Buchalka, first presents himself then explains the organization of the course content. He also shows the best way to navigate around the course and the required setup to get the most out of the MasterClass
Setup
For me, this is one of the most important sections of the course. It shows how to pick out the most appropriate version of Java and ways to set it up. Instead of just focusing on Windows and Mac, Tim makes an exception by including installation steps for Linux users. For diehard Linux fans like me, this is simply amazing.
Tim has chosen IntelliJ IDEA as the main IDE for the course. This is a free trial. However, you can opt for an extended trial for its Ultimate Edition if interested.
First Steps
Here is where beginners can get used to the Java environment through their first Java application. Like in most training, Tim first finds ways to make students comfortable around Java Runtime Environment. He then eases into the IntelliJ IDEA interface to begin the learning process.
Variables, Data types, Operators
Once familiar with the environment, you can now move on to the basic building blocks of the language. The instructors will also show you the various operations that Java allows you to perform on the data.
Expressions, Statements, Code blocks, Methods, and Coding Challenges
This is another of my favorite section of the course. It provides plenty of Java concepts and gives entrance to the first programming challenge. This is a perfect setup since I can apply what I’ve just learned to solve the integrated exercises.
Control Flow Statements
In this segment, Tim will be presenting ways to control the execution flow of a Java program. Those methods are loops, switch constructs, and conditional statements.
OOP Concepts
Java is an object-oriented programming language. It makes sense to mention OOP Concepts in the course content. And Tim spends a great amount of time doing that. He starts out with classes, constructors, and inheritance and finishes with composition, encapsulation, and polymorphism.
Concepts
Up until this point, you have learned many things that are related or relevant to Java. From this section, you’ll be in touch with more Java concepts. You’ll be introduced to arrays, lists, boxing, unboxing, abstract classes, and interfaces. Once familiar, you’ll move on to Java Generics, which takes up an entire section. Tim also shows you classic Java features like packages, scope, and static/final keywords.
Collections
To understand useful constructs and their implementations, you got to understand the Java collection framework, searching, comparator, maps, sets, and hash sets, to name a few. All of these topics are covered in this Collections segment of the course.
JavaFX
This part tackles command line interface applications to graphical user interface apps. It also handles APIs and event handlers (responsible for the interaction between the application interface and its users). Another concept that catches my attention is multithreading. Multithreading has given Java an edge over its opponents. In Java Programming Masterclass for Software Developers, you’ll learn how to work with concurrency when synchronizing multiple threads. But, that’s not for several sections later.
Exceptions, I/O, and Filesystems
Like other languages, Java offers users options to perform operations on input and output. No need to hassle as Tim will explain with details the concepts of I/O, filesystems, and exception handling.
Lambda Expressions
“Lambda” is a funny-sounding name. Despite that, Lambda expressions are priceless when it comes to Java. These expressions allow users to express instances of single-method classes more compactly. And, as you know, in our modern world, the more compact, the better.
Regular Expressions
Here comes another essential Java feature: Regular Expressions. They are extremely helpful in the field of analytics. With the usage of pattern matching classes, Regular Expressions have become a powerful feature any language must have.
Debugging and Unit Testing
If you’re a programmer, you’ll know how important debugging is. In fact, your debugging skills to troubleshoot the upcoming issues while coding accounts for how much you’re going to earn. Being a hardcore programmer himself, Tim understands the criticality of debugging and unit testing. He makes sure his students understand and execution of code through the usage of watchpoints. He also makes use of real-life examples to introduce the JUnit suite used for unit testing.
Databases
Every programming language must have connectivity to its database. Java is not an exception. Java offers various mechanisms to access different kinds of databases through the libraries available for the language. In this Java MasterClass, Tim focuses on an open-source DB tool SQLite, how to use SQL statements to perform various database operations, and how to use Java DataBase Connectivity APIs to access the database from Java code.
Network Programming
Java is a popular choice for network applications. One reason for Java’s popularity is its robust framework to design and implement client-server applications. In Java Programming Masterclass for Software Developers, you’ll learn about the interfaces that Java uses for HTTP operations.
Java 9 Modules
Java modules is a relatively new concept. It was first introduced in version 9 of the Java Development Kit (or JDK). Java modules help with the categorization of features like Java Platform Module System (or JPMS). This Java 9 Modules section, you’ll get to know the types of the modules, how to declare them and their actual usage.
Migrating Java Projects to Version 9
This segment is located near the end of the course. Though toward the end, it is an important section. As the name suggests, it helps learners migrate Java projects written in older versions to the newer version 9. These steps serve as a guidance to structure the project in a modular way. You’ll learn to categorize the configuration files and resolve the project dependencies. To successfully migrate from older Java versions to newer ones, you must first understand the features offered by JDK 9.
Bonus material
Tim Buchalka concludes Java Programming Masterclass for Software Developers by listing out his other courses at his Learn Programming Academy. I’m not so thrilled about this part as it offers no discount or voucher. Next comes a list of source code organized according to the course sections. I’m not too enthralled about this either.
What I Like About the Course
Java Programming Masterclass for Software Developers is joined by almost 400.000+ students and has got thousands of positive reviews, making it a highly sought-after course on Udemy.
Let’s see what makes the course stand out.
My first impression with this Java MasterClass is that it focuses on Java 8 (and has recently been updated to Java 11).
This is good news for me.
Generally speaking, you would want to learn the latest version of a computer programming language. That’s not necessarily the case with Java.
Oracle, the owners of Java, release new versions of Java every six months. When the new version comes out, the old version will no longer be supported.
However, for the sack of time and security, most companies tend to, or need to, stick to a specific version of Java. Knowing this, Oracle has marked the current version of Java, Java 11, as LTS (Long Term Support). That means Oracle guarantees to support this version for the long term, a number of years at least.
As a result, instead of running around, learning every new version of Java, I can just stick around with Java 11 for now. This can save a whole lot of time and effort on my end.
The instructors are experienced in their field.
You know how when you enroll in an online course, you’ll worry about the teachers, their experience, and their teaching methods?
I do, too.
Well, I’m spending money here. It makes sense to worry.
With Java Programming Masterclass for Software Developers, my worrisome is not that much.
Both Tim Buchalka and Goran Lochert are old-timers in the Java industry. They are also experienced teachers on Udemy. As a matter of fact, Udemy and Udemy students voted Tim one of the top 10 instructors in 2015. This speaks volumes about his credibility over Java and the online tutoring platform.
The course content is not just limited to Java.
You might be yelling at me right now.
“It’s a Java MasterClass! What’s else, besides Java, are you asking for?“
Yeah, I agree. A Java class should focus on Java. However, that should not be the only emphasis. If you just need Java, there are tons of free Udemy courses that do one heck of a job covering it.
I’m glad that this course is more than just Java. Java Programming Masterclass for Software Developers also discusses the tools and practices used by developers to increase productivity.
And instead of focusing solely on desktop platforms, the instructors decide to include Android applications in the mix. Thanks to that, learners can utilize the knowledge to enter the rapidly growing ecosystem of mobile devices.
Despite carrying a huge load of knowledge, the course is not overwhelming as Tim will frequently revisit concepts learned in previous sections.
The materials are frequently updated.
No course is perfect. Neither is this Java class.
But what I like is that Tim and his team take time to revise and update the course to make it more complete.
In fact, at the moment of writing this review, Tim has just sent out a survey to students to see their opinions on his Java Programming Masterclass for Software Developers. He’d then work on improvements for the next update based on that survey.
As the course contents are up to date, it proves to be a continuous learning process for learners.
Another interesting point is that Tim welcomes criticism and support from students. If interested, learners can actually help the instructors generate the content for the next update, or even the next course.
What Turns Me Off
Although Java Programming Masterclass for Software Developers has a lot of features I like (I’d definitely put it in my Top Ten courses), the course is, of course, not without flaws.
The first imperfection appeared when I entered the first challenge.
The challenge itself is great and honestly, very enticing. But, I didn’t realize that at first. I was too busy figuring out what I was supposed to do. This repeats for the subsequent challenges as well.
While Tim has a tendency to explain previous knowledge in lectures, he doesn’t do the same with challenges. The solution he’s looking for is often not accurately conveyed in the description of the challenges. I constantly felt the need to replay the videos to seek the requirements.
I was not alone in this. A lot of students feel the same way. We are all having problems with the challenges used in the course. Well, to be more precise, problems with the way the challenges are presented during the course.
I think Tim wants his students to be thinking about real-world software and all the different components that go into it. However, without the students knowing what those real-world situations look like, the code just becomes muddied.
The second problem I ran into is with the quality of the videos.
The video quality is not that bad. They are still of high quality. However, the stream of the videos lagged at times, especially at high resolution. The performance improved when I switched to lower resolutions.
Imagine having to watch 79.5 hours of blurry videos. That’s not a pleasant experience to have at all.
This is not to blame on the course, but more on the Udemy platform. But, since this is a thorough review for Java Programming Masterclass for Software Developers, I thought I’d mention it. Maybe the problem is already fixed by the time you join the course.
Take It or Skip It?
If you look at the course structure for Java Programming Masterclass for Software Developers, you will see that the content can be fairly exhaustive. With Java evolving every day, I’m guessing the content is not getting any shorter. Tim, however, has done a fantastic job covering most of the important concepts in a decent amount of time.
Though there’s always room for improvement, this course will be a significant stepping stone for all the Java enthusiasts out there.
But that’s not the only “stone.” Udemy also offers other Java courses from beginners to advanced. Make sure to choose one that best suits your needs and level.
Hope that you’ve found my review about the course Java Programming Masterclass for Software Developers on Udemy helpful.
Happy learning!