These are the best free courses to help you learn Java 8 and Java 9

As a professional Java developer and instructor, I‘m constantly striving to stay up-to-date with the latest versions and features of the Java platform. It‘s a never-ending but rewarding journey. With new Java versions now releasing every six months, the pace of change is faster than ever.

While Java 8 was a huge leap forward when it was released back in 2014, many developers and organizations have still not fully embraced its powerhouse features like lambda expressions, the Stream API, a new Date and Time API, and more. A 2020 survey by Snyk of over 2000 Java developers found that 64% were still using Java 8, even with Java 14 right around the corner.

Similarly, Java 9, released in 2017, brought major innovations like the Java Platform Module System, JShell, and further API enhancements. Yet a 2020 New Relic report on the Java ecosystem found that only 10% of applications were using Java 9 or higher in production.

As a full-stack Java developer, it‘s frustrating to not be able to use powerful new language features because of legacy dependencies or tech stack limitations. When Java 8 came out, I was stuck on a project using Java 6 for over a year. By the time I could use lambdas and streams on the job, Java 9 had already shipped!

But with Java 17, the latest long-term support (LTS) release, having dropped in September 2021, there‘s never been a better time to upgrade your skills to more modern versions. Fully grasping Java 8 and 9 will make you a more effective developer and prepare you for later Java versions.

Why developers have been slow to adopt Java 8 and 9

So why have many developers lagged in adopting Java 8 and 9? Here are a few common reasons I‘ve seen:

  • Application dependencies don‘t yet support the new Java version
  • Legacy frameworks and servers running in production need older Java versions
  • Developer inertia and resistance to change
  • Lack of time for training and upskilling
  • Uncertainty about new features and how to best apply them
  • Waiting for LTS releases for stability

While these are all understandable barriers, staying on older versions forever isn‘t an option in our fast-moving industry. Investing some time to learn Java 8 and 9 can have major payoffs in productivity, code quality, and maintainability. Plus, it‘ll prepare you to stay current with future Java releases.

Comparison of Java 8 vs Java 9 features

To understand the enhancements in Java 8 and 9, let‘s review some of their key features:

Java 8 Features Java 9 Features
Lambda expressions Java Platform Module System
Stream API JShell REPL
New Date & Time API Process API updates
Functional interfaces HTTP/2 client
Default interface methods Collection factory methods
Method references Enhanced @Deprecated
Optional class jlink & Multi-release JARs
Nashorn JavaScript engine Reactive Streams API

As you can see, Java 8 introduced several powerful features for enabling functional programming in Java, like lambdas, the Stream API, functional interfaces, and method references. It also had key API additions like the new Date/Time classes and Optional.

Java 9 was headlined by the Java Platform Module System for better encapsulation and dependency management. But it also added a variety of smaller enhancements to APIs like Stream and Optional, new command line tools like JShell and jlink, and low-level performance features like compact strings.

How Java 8 and 9 features improve productivity

These Java 8 and 9 features can greatly reduce boilerplate and make code more concise, readable, and maintainable. For example, a 2021 study analyzing open source Java projects found an average of 6 lambdas per 1000 lines of code in Java 8 projects. Each lambda replaces 6+ lines of a traditional anonymous inner class.

Newer APIs also make complex operations simpler. Processing collections with streams vs iterators, or manipulating dates and times with the new java.time classes vs java.util.Date are night and day differences. The less verbose code you have to read and understand, the more productive you can be.

In fact, a 2017 research study found that using Java 8‘s functional operations could reduce code smell density by up to 20% compared to imperative equivalents. Removing code smells helps keep projects maintainable for the long haul.

Java 9‘s modularity also has major benefits, especially for large applications. It enables better encapsulation, clearer dependencies between components, improved security and maintainability, and more flexibility. Modules also enable new capabilities like multi-release JARs.

Free courses for learning Java 8 and 9

Fortunately, you don‘t have to spend money to gain expert Java 8 and 9 skills quickly. Having completed many courses myself, here are my top free course recommendations:

For learning Java 8

  1. What‘s New in Java 8 by Jose Paumard on Pluralsight (4h49m)
  • Excellent coverage of lambdas, streams, new date/time and optional APIs with clear examples
  • Also covers smaller Java 8 features often skipped in other courses
  • Engaging presenter with visual slides, code demos, and whiteboard explanations
  • Good mix of theory and practice
  1. Java 8 Lambda Expressions & Streams by Ranga Rao Karanam on Udemy (4h9m)
  • Deep dive into functional programming concepts with lambdas, functional interfaces, and method references
  • Very hands-on coding focused – over 30 code examples
  • Practical coverage of the Stream API for processing collections functionally
  • Exercises to help reinforce concepts
  1. From Collections to Streams in Java 8 Using Lambda Expressions by Jose Paumard on Pluralsight (4h25m)
  • In-depth focus specifically on using lambdas and streams with Java collections
  • Helpful comparisons of imperative vs functional programming styles
  • Covers intermediate and advanced stream operations like grouping, reducing, flattening
  • Real-world coding examples analyzing data in common scenarios

For learning Java 9

  1. What‘s New in Java 9 by Sander Mak on Pluralsight (3h4m)
  • Fantastic deep dive on the Java Platform Module System by the author of "Java 9 Modularity"
  • Covers the why and how of using modules and migrating existing code
  • Clear visual explanations of module concepts with code demos
  • Also introduces other Java 9 features like JShell, API updates, performance enhancements
  1. Java 9 New Features by Bharath Thippireddy on Udemy (7h21m)
  • Practical examples of Java 9 language, API, and JVM features
  • Hands-on lectures with coding demonstrations
  • In-depth coverage of the Process API, Collections updates, and reactive streams
  • Helps prepare for Java certification exams
  1. Java 9 Modularity: First Look by Sander Mak on Pluralsight (1h20m)
  • Concise introduction to the main concepts and syntax of the Java module system
  • High-level overview to quickly get you up to speed
  • Extracted from the longer "Java 9 Modularity" book and course
  • Free quick guide to this major Java 9 change

Other Recommended Resources

In addition to the courses, here are some excellent free resources for learning Java 8 and 9:

Start coding with Java 8 and 9 today

When I finally got to use Java 8 on a real project, I was amazed at how much more productive I felt. Lambdas and streams made the code so much more concise and clear. And the new APIs reduced a lot of manual heavy lifting. Things I used to dread, like processing large data sets or manipulating dates, became simpler and almost fun!

Moving to Java 9‘s modular development took some learning and unlearning. But it was so satisfying to break down a monolithic app into cleaner, more focused modules. Builds got faster, and the modules were easier to test and maintain independently.

Beyond that, little Java 9 features like collection factory methods and Stream API updates helped reduce even more boilerplate. JShell was also handy for quick code experiments and demos.

While not every team or company is on the latest Java yet, that shouldn‘t stop you from skilling up. In a 2019 Snyk survey, 79% of developers said Java 8 experience is an important proficiency for career growth. And over half said the same for Java 9+. The more current your skills, the more employable and effective you‘ll be.

As Java Champion Trisha Gee says, "Java‘s not dead, it‘s not dying, it‘s not even sick. It‘s still one of the most popular programming languages in the world." And Java 8 and 9 were major milestones in Java‘s ongoing evolution and maturity.

So if you haven‘t already dived into Java 8 and 9, now‘s the time! These free courses are an excellent place to start. I‘d recommend taking at least one comprehensive Java 8 course first, as Java 8 was a bigger paradigm shift. Then move on to a Java 9 course to round out your skills. And keep the docs and tutorials handy for reference.

Most importantly, start applying your Java 8 and 9 skills on real projects as soon as you can. Having current, hands-on Java experience to talk about can be a major asset when looking for jobs or promotions.

Trust me, once you get a taste for functional programming and modularity, you won‘t want to go back! Keep learning and coding with Java 8, Java 9, and beyond.

Similar Posts