Eu tenho uma opinião diferente. Hoje em dia, a programação está mais acessível, e eu acho que pra determinadas áreas é até OK começar com Python ou JavaScript, especialmente se você trabalha em um nicho muito específico como inteligência artificial ou web dev.
Entretanto, se uma pessoa quer mesmo se tornar um programador, eu acho que deve começar por C.
C te ensina o básico de tudo.
Várias linguagens nasceram do C, com sintaxe derivada dela. Com o C você aprende estrutura de dados da forma mais tradicional possível, sem as facilidades que você encontraria em Java ou Python. Além disso, C te obriga a aprender gerenciamento de memória, usar malloc, ponteiros, e faz você cair do cavalo várias vezes com os Segfaults.
Linguagens como Java e Python evitam todos esses problemas, e por isso é muito mais difícil transicionar do Java para o C do que o contrário.
Eu lembro que quando comecei a aprender Java depois de programar em C por dois anos, eu achava Java a melhor linguagem do mundo! Tinha tanta facilidade, tanta coisa pronta na biblioteca padrão, era quase um sonho. Mas não dá pra negar que você aprende muito mais apanhando do C do que sendo protegido pelo Java.
Também acho que deve-se evitar orientação a objetos no começo. Java é puramente OOP, e o C não tem esse conceito.
Quem começa pelo Python é imediatamente repelido pela grande complicação do C, e pelos conceitos muito diferentes. Não tem dicionários por padrão no C. Listas muito menos. No entanto, quando você aprende estruturas de dados em C e depois vai pro Python, começa a reconhecer: "Pô, então Python já tem por padrão Listas Encadeadas, HashMaps, Pilhas e Filas? Ah, eu consigo usar um for loop como se fosse um foreach? Caramba, eu não preciso usar ponteiros pra passar por referência?".
Acho que dá pra entender. Pra qualquer um que esteja realmente começando pra virar um programador, eu diria que C é o melhor caminho.