Visão de um "semi autodidata":
Eu tive meu primeiro contato com programação com 12 anos com o bizarro Perl. Fazia brute force de Orkut e cheat pra joguinhos em flash 😅.
Aprendi tudo isso na marra: sem paciência pra docs (lembrem-se: 12 anos), eu pegava os códigos dos outros e tentava entender, pesquisava os erros que eu recebia e assim fui.
E foi assim com tudo: Bash, VBA, HTML, PHP, JavaScript... até entrar para a faculdade de Analise e Desenvolvimento de Sistemas.
Escolhi um curso simples já que queria ver como faziam no mercado e já ir trabalhar, por isso prestei mais atenção nas matérias práticas (que não foram muitas).
E funcionou pra mim... mas somente para me trazer até o meu momento inicial.
Apesar dos meus conhecimentos práticos, somente o conhecimento mais profundo da Ciência da Computação podem me levar ao "próximo nível".
Eu senti muita falta de conhecimentos mais basais e precisei ir atrás depois.
Hoje, preciso correr atrás de um prejuízo que eu não teria se tivesse estudado desde o início.
Mas não me arrependo do caminho que tomei: eu provavelmente teria me cansado das matérias "mais lentas" e sido um "aluno nota 6" até o fim do curso.
Mas hoje eu acho NECESSÁRIO um conhecimento de Ciência da Computação para qualquer um que atue como um programador e não só um usuário de framework.