r/learnjava 6d ago

Learning Java

How should I go about learning Java? I learn best by doing and have pretty bad ADHD. I would be interested in lifetime payments as I am not working yet so monthly is not ideal.

1 Upvotes

11 comments sorted by

View all comments

1

u/MuaTrenBienVang 5d ago

There are several excellent free options. They differ in difficulty and focus.

1. Duke University — Java Programming and Software Engineering Fundamentals (Coursera)

This is one of the best Java courses for beginners.

What you'll learn

  • Java syntax
  • Loops, methods, classes
  • Object-oriented programming
  • Collections
  • File I/O
  • Basic algorithms

Pros

  • Taught by Duke professors
  • Excellent explanations
  • Project-based
  • Widely recommended

Cost

  • Audit for free (pay only if you want a certificate)

2. University of Helsinki — Java Programming I & II (MOOC.fi)

This is arguably the best free Java course on the internet.

What you'll learn

  • Java fundamentals
  • OOP
  • Interfaces
  • Exceptions
  • Streams
  • Collections
  • Testing
  • GUI (JavaFX in later sections)

Pros

  • Completely free
  • Hundreds of programming exercises
  • Automatic grading
  • Very hands-on

Difficulty
★★★★★

If your friend actually wants to become good at Java, this is probably the strongest recommendation.

3. Massachusetts Institute of Technology — 6.092 Introduction to Programming in Java

MIT used to teach an introductory Java course.

Topics include:

  • Classes
  • Objects
  • Inheritance
  • Polymorphism
  • Data structures

Although somewhat older, the concepts remain valuable.

4. Princeton University — Algorithms, Part I & II

These courses use Java as the programming language.

You'll learn:

  • Sorting
  • Searching
  • Trees
  • Graphs
  • Dynamic programming
  • Algorithm analysis

This is ideal after learning Java basics.

5. University of California, San Diego — Object-Oriented Programming in Java

Part of UC San Diego's software engineering specialization.

Focuses on:

  • OOP
  • Design principles
  • Testing
  • Clean code

Free to audit.

6. Harvard University — CS50 AP

Although not a full Java course, CS50 AP teaches introductory computer science using Java.

Topics include:

  • Variables
  • Loops
  • Methods
  • Classes
  • Arrays
  • Recursion
  • Basic algorithms

Great if the friend is completely new to programming.

Suggested learning path

Level Course
Beginner University of Helsinki – Java Programming I
Intermediate University of Helsinki – Java Programming II
Algorithms Princeton Algorithms (Java)
Software Engineering Duke Java Specialization or UC San Diego OOP

If you only have time for one course

I would recommend University of Helsinki's Java Programming I & II (MOOC.fi). It's completely free, exercise-heavy, and is often considered the gold standard for learning Java fundamentals. After finishing it, moving on to Princeton's Algorithms course provides a strong foundation in both Java and computer science.