¿Tienes un buen nivel de inglés? Me sé de un manual de C que te enseña buena ética de programación, y requiere que sepas algún otro lenguaje antes de empezarlo, por lo que tu conocimiento en Java sería perfecto, pero el asunto es que está en inglés para las explicaciones y demás.