yo he programado en lenguajes obsoletos, pero que te ayudan a coger buenas maneras a la hora de programar
ADA y Pascal son fuertemente tipados y cuando compilas el compiulador te ayuda a aprender... leugo cuando vas a C, todo te compila , pero nada funciona xD (C te da mas libertad, pero con mayor libertad mayor responsabilidad, asi que esto dejalo cunado ya pilotes un poco )

empiezas con operaciones basicas, funciones, logica booleana, recursividad, niveles de abstraccion, estructura adecuada de datos, logica de punteros y asi...etc etc qeu hay mil movidas

empieza poco a poco, lee mucho ejemplos y manten MUCHO ORDEN xD.. el goto, el halt, exit son cosas que un buen progrmador no deberia usar... al menos al principio.. luego cada uno se monta lo qeu quiere...

empieza por aprender lo mas correcto, luego lo mas potente, luego lo optimizado y leugo has lo que te salga de los webos (esto se lo permiten unos pocos xD)

ah... yo uso linux + anjuta + ddd, un buen OS, un buen editor y un debugger siempre son bien recibidos, el ddd es mi compañia en las frias noches de invierno xD asi se aprende a progrmar creo, xD... (o comprate un mac y metele el Xcode )

yo de cosas orientadas a objetos no se mucho, asi que no te peudo ni afirmar ni negar que sea bueno aprender java (hay universidades qeu empiezan por java, me parece muy curioso)

eso si, usa los Internets xD que hay mucho libros y paginas con ejemplos y teoria...
google es tu amigo empollon, preguntale