This course kickstarts the whole tutoring course. It takes a tiny example and map the concepts of classes, fields, methods, object and uses different data-structures such as List, Map and Set. We saw a bit about tests too.
This course map inheritances concepts on a dead simple example. We saw that this example was not that simple when adding inheritance. What are the pros and cons of using inheritance (in general and in this particular example), how implements it in Java, and so on.
You will find the zipped source that we collectively built in pair programming here
Here are drawings to visual see inheritance and concepts related
This course takes place in a cyberdojo. The idea is to code in pair programming, in parallel. You will solve problems in Java, in your session. To do so, and when the monitor will tell you, go with your favorite web-browser to the cyber-dojo server. Click on Enter a practice session and enter the 6digits code that your monitor gave you. You now enter into a cyber-dojo session with precises intructions. You have two sample files (Hiker and HikerTest) that are here to check if everything is running correctly :). Create a new file, and write your Java solution. Create your tests (ask if you need help to do this) and hit Test button. This should takes less than seconds, and you will see if everything went has planned (green) if tests could not be run (compilation error: yellow) or if some tests did not passed (red). Go on, and don't hesitate to test incrementally your code and expand the cases you can handle.
To sum it:
Code academy - This website provides step by step tiny exercices, just to make you familiar with Java syntax, and some OO java aspects. It auto-tests your code, like an IDE and help you along the way.
Codingame - This one is a really cool one. It provides an entire "IDE" and go through some serious games to build from simple to difficult Java programs. It also has a team aspect, meaning that you can build things with your friends.
A course that go through pretty much every Java basics (conditions, for, while, fields, methods, visibility, class, object, exceptions, ...
The MIT course that takes some common mistakes, go through Java, from type to Interfaces and Inheritance and so on.
Java Collections by OpenClassRooms