I was able to teach myself Java without any prior experience or courses and things are working out pretty fine now.
Although I haven't used any other code so I am unaware of their positive or negatives.
So long as your fine with sticking with 2D Java's is fantastic!
Also Hungry has a good point about scratch I've heard good things about that one.