Esse tópico tem muita informação bacana - técnica - então vou falar um pouco sobre o que eu respondo quando alguém me pergunta isso, e é uma resposta menos focada em skills e aprendizado:
Por que você quer aprender a programar?
Apesar de parecer uma pergunta que está só 'peitando' o que a pessoa quer, acho que é uma reflexão válida, principalmente se você consegue perceber que a pessoa quer começar pelo hype e não tem muita noção do que vai encontrar pela frente.
Eu tenho muitos amigos que me perguntam como começar, se vale a pena fazer o Bootcamp X ou o curso Y, que os salários de TI são altíssimos, etc. E sinceramente? Zero problemas com isso, cada um com sua motivação - eu mesma voltei a "fazer sites" (que era o que eu fazia na época) porque o mercado de TI estava em alta pra quem queria sair do Brasil :P
Programar é uma delícia - pra alguns - e é uma dopamina ferrada você conseguir quebrar tua cabeça e no fim resolver um problema, mas eu acho que se a gente conseguir orientar melhor as pessoas sobre motivação, resiliência e quaisquer outras palavras bonitas, a gente consegue diminuir o índice de desistência e frustração, hehe.
E não me entendam mal, eu sou absolutamente CONTRA aquele terrorismo de 'vida real' que você só mostra os perrengues, mas acho que além de compartilhar onde/como começar, vale também você mostrar os seus porquês de continuar na área :)
E respondendo a pergunta de forma mais técnica, eu sempre indico que a pessoa NÃO comece logo de cara com linguagem A, B ou C ou framework Z ou W. Eu indico que ela estude muito coisas como lógica, funções, algoritmos... Fundamentos mesmo.
Pra método de estudo, eu não sou uma pessoa que consegue ficar muito focada em teoria por muito tempo, então sempre alterno conteúdo teórico com exercícios (e uma pausa pro cafezinho) :)