Bart Duke

The most interesting Coursera courses for Java and Scala developers 

It’s been said that learning doesn’t stop when you leave the classroom, and I’ve found that mostly true. One big difference is that you have to put more effort into it outside of school. Luckily for all of us, there are several great resources for continuing to learn on our own time, and the best thing is that they’re available for all of us, no matter who we are.

One such great resource is Coursera. Coursera is excellent for finding online classes from good universities on a huge range of topics. Whether you want to expand your knowledge or refresh your memory, you can often find something of value there. We’ve taken a look at the current offerings on Coursera that are relevant for Java and Scala developers, and here are some of the most interesting ones we found.

Java Basics and Refreshers

For most of us out there, there are random gaps in our knowledge as far as some of the basics go. We may have skipped that day in class or just didn’t have a chance to use some of these concepts in practive. So every now and then, taking a refresher course or bulking up your understanding of some of the basics can help you out. Here are a few interesting courses that fall under this category.

1. Hardware/Software Interface

It never hurts to have a good understanding of how the low level stuff that you’re coding on work. You can’t ignore the impact hardware has on the performance of your application and this is a good course to learn more about these connections.

2+3. Algorithms Part 1 and Algorithms Part 2

These six week classes from Princeton cover the fundamental elements of algorithms and data types. If you want to brush up on sorting, search, graph-processing, and string processing algorithms, these courses are a great resource for that.


There are two cool classes on Scala being taught by Martin Odersky, the lead designer of Scala. If you’re a Java developer who’s been meaning to check out functional programming or a Scala developer who wants to hear some of this stuff straight from the source, these are two awesome classes. Taking both of them is highly recommended.

4. Functional Programming Principles in Scala

This course covers the cornerstone elements of functional programming through the use of Scala. If you’ve ever had functional programming on your to-do list, this is a great crash course on the elements that you’ll need to know.

5. Principles of Reactive Programming

This is a spiritual part two of the Functional Programming Principles in Scala course. It aims to build on the fundamentals of functional programming by delving into the principles and key elements of reactive programming – which can be looked at as an extension of higher-order functional programming. The course is taught by Martin Odersky, Roland Kuhn and Erik Meijer.

Find the Crap in Your Java App

Show me how >>


Theoretical / Interesting

To be a really strong developer, you need to take more than just pure programming classes. Coursera has several classes that can indirectly make you better or that are just plain interesting and useful in general.

6. Natural Language Processing

This course from Stanford is a cool one to take for a couple of reasons. The first is obviously, that you may need to implement or use a solution like this at some point. And second, while the course focuses on Java and Python, it’s a relevant topic for any language, not just Java or Scala.

7. Data Analysis and Statistical Inference

If you want to analyze benchmarks in Java or look at other stats that your JVM produces, having a strong foundation in data analysis and statistics is super valuable. This course from Duke covers the fundamentals of statistics and arms you with the tools you need to apply this to your app. While not strictly a software-focused course, the knowledge is very applicable for developers.

8. Cracking the Creativity Code

Creativity is a useful attribute to have across most activities, programming included. This course from the Technion covers the creative process, treating creativity as an acquired skill that you can hone with practice. Part 1 of the course is concerned with tools, frameworks, and concepts for discovering new ideas.


Keeping sharp and expanding your knowledge is always a good idea. These courses represent a good overview of what’s available on Coursera today. Fortunately, most of these courses are interesting too, so it won’t feel like you’re grinding for the certificate of completion.

Do you have any other recommendations that we might have missed? Let me know in the comments below.

Josh does product marketing for OverOps. He's a big baseball fan and a small beer nerd.
  • Dima Sirotnikov

    wrong link for no. 7 there

    • Josh Dreyfuss

      Thanks for pointing that out. Fixed now

  • veer singh

    Online learning is the best idea for students who are interested in Java as without a teacher, anyone can learn all concepts of java. If we compare between online courses and institute courses, I think Java development training institutes are the best option for sharpen skills. They provide best management, expert teachers and if students have any doubt, they will get immediate answers.

  • online training courses

    online training learning
    education its very simple way online courses Search our library and find the courses
    that interest you and Free and paid online courses.

  • Sophiee

    If you’re interested in on-site learning of any programming language check out courses available from at ! They offer future-orientated learning combined with gaining of management skills. Doesn’t get much better than that 🙂

  • Bob Oliver

    Great excellent and very helpful and im also learn A java and Scala developer and very thank ful this is topic and i appreciate this topic thank you scala Developer

  • kyui

    It does not seem unreasonable to suggest that the way it has been guiding the people for the educational approaches to deal with the potential measurements promising each way out is smoother to find out the basic things. In that case each way out is the best part to all.