My best advice to you is don't learn basic java, get more in depth, if you can, learn a bit of another language and you'll understand how things work even further. And you should just make small projects that are challenging since they test your skill in programming, and the most important, your logic skill.
In my high school class, every assignment we do, I get the visual image in my head within 10 seconds or right away, while the others don't even know what's going on, it's because I have a lot of experience doing challenging things like these that logic solving becomes a second sense to you.