Jamás recomendaría C ...para 'empezar'.
C es un lenguaje de bajo nivel, antes de poder sacarle provecho se tendrá un follón espantoso en la cabeza con demasiados detalles e imprecisiones volando en el aire sin saber a qué vienen.
Para lo mismo 'empezar', tampoco recomendaría ensamblador. Ensamblador debería ser el segundo lenguaje, pero no para aprender, si no para sondear, pues da una muy buena aproximación a la estructura de los procesadores, aunque luego sea diferente en cada plataforma, la base es la misma.
Desde Python, a Java, Perl, Ruby, Visual Basic (o incluso Pascal, que aunque esté de 'capa caída' para empezar en la programación es muy asequible). Todos ellos son lenguajes de alto nivel y asequibles para entender en un primer contacto de programación. Debería no profundizarse al comienzo, estudiar lo simple de varios de ellos y más adelante ver con cual se siente uno de forma natural más cómodo. Y tirar adelante con él.
Cuando se alcance un nivel medio-avanzado en al menos un lenguaje es cuando procede (si es el deseo), aprender (otros o) lenguajes más complejos, pues ya hay asumido una gran parte que es común a muchos lenguajes y básicamente lo que se hará luego es aprender las diferencias con otros lenguajes. A veces las diferencias se limitan a la sintaxis y a veces son tantas las diferencias que es casi todo un nuevo mundo a explorar como sucede con ensamblador y C... aunque a pesar de las diferencias notables todavía siguen teniendo en común con el resto de lenguajes una meta, y la formalización de lograrlo: la algoritmia.