Primeiro, apesar da forma como sua pergunta é formulada, não há fim para nenhum estudo, especialmente em nosso campo, onde coisas novas surgem mais rapidamente do que você pode ler sobre elas. Dito isto, quando você deseja melhorar, há as seguintes categorias que eu consideraria. Para o maior benefício / ROI, você deve escolher algo da sua área mais fraca, é claro.
Conhecimento Fundamental
Apesar de conhecer linguagens de programação e ter experiência prática, muitas vezes existem áreas (especialmente aprendidas por si) nas quais questões básicas fundamentais são deixadas incompletas. Pense em coisas como estruturas de dados, algoritmos, estratégias de cache, funções de hash, ...
Observe que isso também inclui os fundamentos das linguagens de programação - tudo, desde compiladores, técnicas de otimização e sistemas de tipos, até teoria das categorias, mônadas e similares.
Se você é bem ensinado, como possui um diploma de nível universitário há vários anos, é provável que já seja forte nessa categoria (longe de terminar o curso, mas com uma base sólida). Caso contrário, tente ler alguns livros nessas áreas para descobrir se algo que você nem sabia estava faltando em seu repertório. Essa categoria é a mais fácil de se superestimar.
Conhecimento Paradigmático
Fico sempre espantado quando os programadores aparecem que pensam que sabem tudo, mas ignoram completamente outros paradigmas comuns. Se você acha que a orientação a objetos é o fim, esta é sua categoria de aprimoramento. Se você acha que a programação funcional também existe e pode até ter ouvido falar em programação lógica, ainda é uma boa escolha. Existem muitos paradigmas por aí e aprender sobre eles tem o efeito profundo de fornecer algo semelhante a uma nova visão do mundo da programação.
Apenas não se esqueça: há frequentemente argumentos (bastante filosóficos por natureza) sobre o que pode ser considerado um paradigma ou não. Não se desvie deles. Seu objetivo deve ser ampliar seu horizonte e isso significa aprender sobre essas coisas, se outra pessoa considera X um paradigma por si só ou não, não faz diferença para isso.
Conhecimento Especializado
O mais fácil de todos - e o menos útil ao mesmo tempo. Obviamente, você pode se comprometer com uma única tecnologia e conhecer todos os seus meandros, mas deve estar preparado para pagar o preço. As tecnologias envelhecem e o fazem em uma velocidade cada vez maior, o que torna quase uma garantia de que o tempo investido aqui será inútil por vários anos adiante.
Também o problema do retorno decrescente brilha aqui. Pela natureza de ser um especialista em algo, você precisa passar inúmeras horas nesse assunto restrito e, portanto, por definição, levará muito tempo para aprender algo novo e esse novo será uma pequena peça de quebra-cabeça que é não vai mudar a visão de ninguém sobre nada.
Conhecimento do domínio
Seja porque é o domínio do seu trabalho, ou simplesmente com base no seu interesse pessoal, mas ser um especialista em ciência da computação e um determinado domínio é muito valioso e gratificante. Não estou falando de áreas laterais do CS aqui, como computação gráfica ou IA. Em vez disso, observe que os computadores se firmaram na vida de todos e isso sujeita todos os outros campos a computadores e a uma área em que você pode entrar.
Este claramente se enquadra na categoria "fora do seu campo", mas não é um "fora" matemático agudo, mas sim um campo de aplicação. Considere a medicina: não estou aconselhando você a se tornar um médico. No entanto, aprender os fundamentos da medicina a fim de aplicar o conhecimento existente sobre ciência da computação aos problemas desse campo realmente vale a pena. Isso varia de técnicas de visualização, além de robótica, a sistemas especializados e mero gerenciamento de dados para contabilidade / administração. Embora você tenha feito tudo isso antes, fazê-lo em outro domínio pode acabar sendo uma experiência totalmente nova.
Porém, lembre-se de que essa é uma mudança muito mais radical em sua direção do que as outras categorias. Você pode não ter nenhum contato com esse campo no seu dia-a-dia, o que dificulta a execução. Pode até significar mudar de emprego. Além disso, você precisará de algum tipo de certificação sobre seu novo domínio - afinal, você é um novato completo nesse domínio e precisa competir com os graduados de estudos interdisciplinares, que já começaram sua jornada para se tornarem especialistas nesse nicho.
Conhecimento Suplementar
Como Mike Brown acrescentou, há também a área de conhecimento que de alguma forma acompanha o seu trabalho atual, mas não é estritamente necessário. Você não precisa ser um gerente de projetos para aprender sobre gerenciamento de projetos, mas, como de costume, conhecimentos adicionais fornecerão uma visão maior sobre como o outro lado funciona. Pode-se até generalizar isso a ponto de focar em habilidades sociais. Acho que todo mundo que trabalhou em um projeto real com outras pessoas sabe o valor delas.