So you want to learn Java? There are many guides, tutorial, videos etc. to help you learn it. Most of them do only seem to solve a specific problem, while learning a programming language is a continuous process of problem solving, getting stuck, having code-smell and then cleaning the smell out. Ok, drop the last two points, these points are things you might understand later in your carreer. This checklist will present you tasks / quests you can solve during your learning process. All of the problems you will face here were solved already, most software engineers of today worked with these kinds of problems at some point in their carreer as well.
The most significant skill software developers of today have is the skill to break a problem