Si realmente te interesa la programación,
Stanford Engineering Everywhere tiene unos cursos excelentes. El curso
Programming Methodology http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111 es un curso de introducción a la programación a través del lenguaje Java.
Es muy bueno realmente, y está enfocado más que nada en enseñar buenos principios de programación, y no en terminar convirtiéndote en un gurú del lenguaje Java; lo que yo creo que es muchísimo mejor, ya que programar es mucho más que aprenderse una sintaxis determinada de un lenguaje cualquiera. Acá ya vas a aprender lo esencial del paradigma orientado a objetos y todo.
Eso sí, está en inglés (como casi todo lo bueno en el ámbito de la informática). Y el profesor es excelente, pero ¡habla rapidísimo! También se pasa contando chistes todo el rato (hasta lleva un sable de luz a la clase y cada tanto lo saca a relucir...
)
Como dijo Oblivi0n, yo también te recomendaría C#. ¡Es que trabajar con Visual Studio es una maravilla! (ideologías aparte...). Pero las diferencias entre la sintaxis de Java y las de C# son mínimas, así que después de aprendido uno aprendes el otro en cuestión de días.
Comentarios aparte:
Mis primeros pasitos en la programación fueron con Phyton, pero me quedo toda la vida con los Java/C#/C++/C. Me gusta que el código esté bien estructurado y ¡saber de qué tipo son las variables con las que estoy trabajando! Phyton parece un gran collage, bueno para hacer sobre todo pequeños scripts. (¡Hacking con phyton!
)