r/learnjava 2d 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

u/AutoModerator 2d ago

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions
  • You include any and all error messages in full - best also formatted as code block
  • You ask clear questions
  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

6

u/aqua_regis 2d ago

!sidebar

3

u/AutoModerator 2d ago

In our sidebar ("About" on mobile), we have a section "Free Tutorials" where we list the most commonly recommended courses.

To make it easier for you, the recommendations are posted right here:

Also, don't forget to look at:

If you are looking for learning resources for Data Structures and Algorithms, look into:

"Algorithms" by Robert Sedgewick and Kevin Wayne - Princeton University

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

2

u/Rengoku_1526 2d ago

Bro code is really good for getting into most programming languages and he even has a dsa playlist in java

1

u/advancedbashcode 2d ago

Udemy, 1 course, followed from end to finish and go from there.

1

u/New_Comfortable4421 2d ago

Ok! Is there any specific ones?

1

u/advancedbashcode 2d ago

Well, is very difficult to recommend something specific. My personal top 3 are: 1. Mosh Hamedani 2. Tim Buchalka 3. Telusko.

Again, it depends on your learning style.

1

u/_prince_ji_official 1d ago

Try chai aur code channel new playlist java foundation

1

u/Waste_Performer9647 1d ago

I personally am getting bored pretty fast with udemy :c Yes I know theory is important, I know i should do the excercises they show but still these courses tend to be veeery long and I prefer hands on practice. Ive recently started doing a course on exercism, it’s quite fun. It’s not very extensive but I think it’s enough to get the ball rolling in the beginning.

1

u/MuaTrenBienVang 21h 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.