Se você pesquisar, eu já respondi bastante sobre isso: https://www.google.com/search?q=maniero+fundamentos+prograna%C3%A7%C3%A3o. Inclusive várias coisas no meu perfil aqui.
Quando eu falo em especializar em dev é tudo, é não se especializar em alguma coisa, pelo menos no início, é aprender tudo o que precisa. Aos poucos você vai se especializando, mas não tem como fazer isso quando sabe pouco. A decisão será de outra pessoa ou não terá base alguma sua.
Importa pouco como começar, desde que comece, pegue sério, e constante, sem pular etapas. Faça o básico bem feito, depois vá para outras coisas.
Um lista de como começar eu não faço porque precisa ser feito com dedicação e responsabilidade. Eu vou fazer, um dia, quando eu tiver tempo para cuidar disso da maneira como merece. Isto está no meu TODO e vou publicar para ajudar a todos. Farei lista de assuntos, temas, tecnologias, conceitos, caminhos, livros, etc.
Comece pela Wikipedia. Vá no Stack Overflow, veja o que tem mais popular.
Se você tiver o direcionamento de que quer aprender os fundamentos, eles vão vindo se pesquisar. O problema é que as pessoas direcionam para aprender uma tecnologia, aí as pesquisas delas trazem só isso.