Resources for Learning Java

At AMPATH, we have some developers starting who are new to programming in Java, so we are looking for some good resources (websites, books, free online tutorials, etc.) to get them familiar with programming in Java before we start teaching them about programming for OpenMRS. These are people who already know how to program (e.g., in PHP or C#), just not in Java yet.

Some of the online resources we’ve found include:

Some books:

More specific to OpenMRS:

Do you have a favorite resource for getting people started in Java programming? Any listed in this topic that you tried and didn’t like?




No one should be learning Java :frowning:

I beg to disagree with Judy. Java is thus far the most solid and complete programming paradigm, running on billions of devices today.

Burke, my recommendation will be “Java Actually, by Dr. Khalid Mughal” from University of Bergen, who conducted a week long Java programming workshop at IHS (former IRD), where we learnt the art of programming on Java. You can in fact, contact him for an in-house workshop at AMPATH as well. He’s very capable…


I’ve been learning Java at University for the past 2 years and feel the best resource I’ve used has been head first. There is a head first Java book, followed by a head first design patterns book, both i’d recommend.


There is a San Francisco java learning meetup which gets together to learn the basics of programming and Java together by following the online coursework for UC Berkeley’s CS 61B. MIT also has free computer science courses - a good algorithms course etc… (Just google MIT opencourseware)

1 Like

The most challenging part for me as a new developer is identifying which packages to import in my controllers. Any guidance on these are also very much appreciated!

For those of you familiar with Reddit:

A list of Java MOOC’s (Massive Open Online Course’s)

1 Like

JAVA 2: The complete reference would be the best source for the person who has some programming background. The primary reason for this book is the in-depth information available for useful java class libraries.

1 Like

From my experience I think The Java Tutorials is the best place to learn about java since it is the official documentation of java(updating regularly with new features).

youtube has some great tutorial series like thenewboston which very helpful for beginners.

Head first java is a great books for newbies.

1 Like

For those who are already familiar with OOP I will recommend- “Sun Certified Programmer for Java 6 Study Guide”. Very easy to read, but the result impress. There are no boring technical details, like in Thinking in Java (Eckel), you will enhoy read that! :smile:

1 Like

I think this would be a good resource. Since they are already familiar with programming and OOP(given that they know C#). I don’t think following a book will be a good idea.

for Spring, Mkyong’s blog helped me alot. Hope it will be a good starting point for beginners.

Here is a more hands on tutorial for Hibernate

1 Like

@judy, further topics on learning other (“better”?) languages are also welcome :stuck_out_tongue: :openmrs:

@michael Dont make me call you out on your post on python… Maybe a new thread on angular?

1 Like

What about scala? :wink:

1 Like

Nobody mentioned Visual basic.NET :joy:

1 Like

If you are using a modern IDE like eclipse or intelliJ, this is something you don’t worry about, as long as you know the simple class name, IDE’s autocomplete feature will take care of the rest

Good luck with microsoft technologies in the OpenSource world

1 Like

At my social business, Usbong (, we use online materials from They have courses on Intro to Java Programming, among others.

Here’s a copy of their syllabus.

Lesson 1: Introduction to Computers, Programming Languages, Algorithms, and the Java Programming Environment Lesson 2: Introduction to Classes and Objects Lesson 3: Graphics Lesson 4: Fundamental Data Types Lesson 5: Decisions Lesson 6: Iterations Lesson 7: Arrays, ArrayLists and Simple Array Algorithms Lesson 8: Methods (Parameter Passing, Instance vs. Static Methods) Lesson 9: Inheritance

Hope this helps! Mike

1 Like

Hey burke, I want to contribute to this organisation and I have a question for you. I am already familiar with Java and have a 2 year experience coding on Java. Shall I learn Java EE as well? I haven’t done any Web Dev with Java, just GUI and Desktop Applications.

Thank you

1 Like

@mavrk, an overview of the Java technologies we use can be found here:

My recommendation would be to start by reading the Getting Started as a Developer wiki page and try to work on an introductory ticket, learning what you need to as you progress.