I took this course when I had to create an Android app from scratch for a course with an instructor who had no clue how to teach. There was a lot of time pressure to get things done and learn the basics of Java very quickly, and this course carried me through and taught me the fundamentals quickly and really effectively.
Tim Buchalka's hands-on teaching style and conceptual examples will get your Java skills up to a working proficiency in no time, as long as you follow through on the challenges he puts forward and pay attention to his implementation.
The course is divided up into 24 sections, each comprised of several lectures ranging from around 5 to 20 minutes in length. Often after each concept is introduced in a few lectures, there's a challenge assignment, each of which is fairly detailed, later on requiring you to write several classes, each with their own methods, that can also inherit from or extend one another.
These challenges essentially form problem sets for each section, but they're interspersed throughout so you immediately can apply what you've just learned in a practical scenario that makes you think. Often it takes a bit of extra thinking to apply them, and you can't just repeat the exact code from the lectures with minor modifications.
While each section is fairly self-contained, the course is meant to be taken in a linear fashion, as the later material builds on the earlier material. I ended up watching the videos at a faster speed, as that really makes a difference in the long run in terms of the amount of time spent watching videos, but you can always pause and rewatch certain sections or slow it down if you're a more detail-oriented learner.
The IDE for the course is IntelliJ IDEA, and there's a section at the start of the course that can help you get it installed. If you happen to be a student, you can apply for a JetBrains Student License, which gives you free access to IntelliJ IDEA Ultimate and a number of other JetBrains IDEs for a whole year. Tim uses quite a few of the features of the IDE throughout the course, and it's a very good introduction to the best Java development tool available.
The content covers all the basics of the Java core language and some of the common libraries such as java.util and JavaFX. The course starts off with basics like types, operators, control flow statements, and moves on to cover the basic Java data structures like
It also covers newer content such as lambda expressions, which were introduced in Java 8, as well as more advanced topics like debugging programs and testing in JUnit. All together the course has 361 lectures, which together make up 77 hours of video content. This is a very comprehensive course, and you'll come away with a solid knowledge of Java fundamentals, as well as an excellent understanding of object-oriented programming.
The lecture material is not all that difficult, although depending on your familiarity with programming concepts you might find the pace a little challenging. The challenges themselves can feel daunting at times, as it feels as if you're thrown in the deep end after just seeing how something is done once.
You do of course have the option to look back at the previous material as you do the new challenge, but I personally challenged myself to try and do as much of the coding myself, which really slowed me down, but helped me really learn the concepts on my own a lot faster.
This course is aimed at beginners, but those with experience in other programming languages will still find the challenges interesting and challenging at times. Some of the difficulty also comes from the fact that the implementation of some of the challenges is open-ended, as the API is not defined in very strict terms, leaving you with room to make it your own, but also with some uncertainty as to what is required.
The Bottom Line
I got this course on sale for around CAD $15. At that price the value is absolutely unbeatable, and I would say I enjoyed this course more than any other programming course I've taken so far. If you want to learn object-oriented programming, and particularly if you need to learn Java quickly for a course you're taking or an app you're making, this is the course for you. I would say that I would actually pay full price for this course, which is more than I would say for a lot of the courses on Udemy.