En mi opinion, para aprender al principio(manejarse con if's, for's, whiles...vamos, lo basico), con C es suficiente. Es lo suficiente tocapelotas como para acostumbrarte a hacer las cosas mas o menos bien.
Despues, Java puede estar bien por que tambien es muy ordenado, y comparte la sintaxis, y ademas aprendes OO. Pero una vez tengas un poco de idea de como manejarte, la mayoria de lenguajes son parecidos, todos tienen estructuras de control iguales o equivalentes. Solo es cosa de buscar el que mas te guste, o un proyecto que te guste, y romperte el coco, y de paso aprender las particularidades del lenguaje y poder sacarle mejor partido. Y ese es el momento de empezar a ver patrones de diseño, etc.
Pero personalmente, no me gusta nada ir siguiendo cursitos o cosas asi,ademas suelen ser bastante superficiales. Lo mejor, (aunque quizas no lo mas eficiente
) es meterse a saco a sacar un proyecto personal, de lo que sea (desde una calculadora a una web).
Asi que por lenguaje... empieza por C, o incluso JAVA sin OO, para aprender lo basico de estructuras de control.
Despues, ya segun tus gustos o aspiraciones. No es imprescindible ser un as con los punteros en C para programar bien en cualquier otro lenguaje de mas alto nivel. Aunque no esta de mas haberlos tocado un poco para saber que es.
PD: Te diria que tambien podrias empezar con PHP, si no fuese que es muy facil desviarse del camino y hacer una cosa guarra, y mas si te lias a buscar en google codigo de ejemplo.