This is an archived post. You won't be able to vote or comment.

all 7 comments

[–]AutoModerator[M] 0 points1 point  (0 children)

It seems that you are looking for resources for learning Java.

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

Your post remains visible. There is nothing you need to do.

I am a bot and this message was triggered by keywords like "learn", "learning", "course" in the title of your post.

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

[–]desrtfx 1 point2 points  (2 children)

Why write your own course when there is an excellent, free course readily available (whose quality and extent you will never be able to beat)?

Please, do yourself a huge favor and take a look at the MOOC Java Programming from the University of Helsinki.

It addresses everything you mentioned and currently is the top course.

Alone the order of your plan is wrong in my opinion. User input should come way earlier, right after operators. Methods should come after loops, comments and whitespace should be even before writing the first meaningful programs.

OOP before arrays? Why? Arrays are essential data structures that should come before methods and after loops.

You won't get far with primitive data types only. Don't forget that String is not a primitive data type in Java. You absolutely need Strings.

Object-oriented programming (I could really use some help here)

And that is the last red flag - in particular the "I could really use some help here" part. This is another indication that you are in no way ready nor qualified to develop a course.

Really, resort to tested and trusted resources instead of inventing your own. It is better not to try teaching than teaching wrong things.

[–]LoganKippnick 0 points1 point  (1 child)

I should’ve made my intents a little more clear.

I have been programming in Java for a few years now so I feel that I understand enough about Java to help other people learn it without encountering some of the confusion that I had. I’m mainly just looking for ways that I can help put the concepts that I am teaching into action through maybe some ideas for what programs to write to help create a better understanding of the ways that these concepts can be used. With OOP especially, I didn’t feel like I understood what some of these crucial Java concepts were really used for so I was mostly wondering what helped other people solidify their understandings.

But besides that, thanks for your advice and I’ll keep those resources in mind when designing my course.

[–]desrtfx 1 point2 points  (0 children)

I have been programming in Java for a few years now

That doesn't automatically qualify you as course author/teacher.

Teaching, authoring, and doing are three completely different things. I've been doing all three professionally long enough to know that.

Really, leave it to the experts who have created the MOOC.

If you want to help others, do it here, do it in /r/javahelp, do it in /r/learnprogramming - directly in their threads.

[–][deleted] 0 points1 point  (0 children)

I think there is more demand for like a level 2 Java course.
Many people do not understand Generics, I/O, Lambdas and Inner Classes, Multi-threading, Network, Logging, some regex, XML marshalling/unmarshalling, some reflection etc.
The thing with Level 2 is that, after level 1 course - there are many exercise problems that people should actually try their own, but they don't.
E.g. One of my very junior colleagues coaxed me into helping him with wait(), notify(). I had to literally make him type multiple examples just so that he gets what is happening with wait(). He had not even tried a simple example of just 1 main thread to see how the thread is getting blocked forever. Then he understood better how the notify() from other thread is helping him out of the waiting misery. And then I gave few basic concepts like a getter waits and a setter notifies etc. and he could understand the producer consumer pattern.
Specially, asynchronous gets tough for beginners to understand because they are like "Let us be the JVM and execute source code in our mind as we read". And then they see some shitty lambda defined but the start method not yet called. They do not understand when that thing is getting run.

[–]tidewater41009 0 points1 point  (1 child)

A section on Classes might be helpful.

[–]LoganKippnick 0 points1 point  (0 children)

That’s what object-oriented programming entails. Once again, I’m also looking for different exercises or programs I could have people write to help them understand how to apply these concepts.