se tu quer algo prático, recomendaria tentar pegar um trampo em algo relacionado a system programmimg (c/c++/rust) ou embedded systems, mesmo que de estagiário/júnior. tu vai aprender conceitos de baixo nível (alocação e liberação de memória, escovação de bits, estrutura de dados, threading e por aí vai). se tu quer algo mais academico, eu diria pra tu ver o curso nand to tetris. os caras ensinam desde boolean gates até criar um sistema operacional. tem na coursera se não me engano. e claro, o conteúdo de matemática e estrutura de dados/algoritmos que o pessoal já mencionou também são complementares, se não fundamentais, aos tópicos que mencionei.
Em resposta a Desenvolvimento web está superestimado
1