I'd recommend C++ if you're serious about it.
I learned on Java, but Java really has you ignore some fundamental concepts that I'm still weaker on than I should be because my first years of programming I never had to think about it. Java is nice for learning basic programming logic, but you miss a lot of the details.
If that gets too frustrating then Java is certainly a valid option. The joke is that C gives you the tools to hang yourself, while C++ ties the noose for you.
The higher level languages are easier to learn, but they also cause you to miss more of the underlying concepts. Python's a nice language for scripting, but I wouldn't suggest sticking with it for much longer than understanding basic programming logic if you want to learn the fundamentals.
--
No amount of planning will ever replace dumb luck.