Yo también le recomendaría que aprendiese C antes de meterse con un lenguaje orientado a objetos. Que no se mate mucho con C, lo use para aprender los fundamentos (que es una variable, tipos primitivos, funciones, sentencias condicionales e iterativas...) y después cuando lo domine que pase a Java, C++, C# o lo que sea.
Que aun así puede hacer todo eso en Java, pero como se desvie un poco va a empezar a ver clases, objetos y cosas que le van a distraer de aprender cosas fundamentales y necesarias que necesitará dominar antes.