WTF is an AC?!?
Actually I would disagree that C++ and JAVA are good beginner's languages, but depending on how they are taught they could be, and for me the same goes for C# and especially VB. I think coding needs to be taught the way we teach people to drive. You learn all the rules, you obey the rules and you are tested on the rules. Then when you get out in the real world you learn when to break the rules.
Now I am not saying C++ and JAVA are bad languages, just not the best to begin with especially if self taught. There is a term in cooking called "Mise en Place", it means to have everything in its place ready to go and planned out when preparing a meal, all the dicing, measuring, cutting, pots and pans all ready and organized. Then when it comes time to cooking the dish it become about the assembly.
That is what is missing from most languages. Now traditional Pascal and I believe Modula has this. You have to declare your variables, constants and methods before hand. You cannot just willy-nilly add a variable in-line code to work around an issue. And I think we would have better code if developers learned to code like this. Mise en place, plan out your methods and variables before hand, and lay out the structure, then fill in the actual code. Once competent coding like this then start getting loose with the code.