Apenas para jogar em uma perspectiva diferente:
Embora muitas pessoas digam que apenas a codificação ensina a codificar, há (com bastante frequência) horas em que chego em casa depois de 8 horas de codificação, e a última coisa que eu faria é sentar (novamente) na frente do meu PC e codificar minhas próprias coisas.
Seria melhor para minhas habilidades de codificação fazer isso? Talvez. Seria melhor para mim? Não sei, todo mundo é diferente. Muitas coisas diferentes podem ser mais importantes que a programação - filhos, namorada, família, hobbies, o que for.
Prefiro as coisas mais teóricas depois do trabalho - leia um livro sobre algumas coisas interessantes, aprenda um pouco de CS teórico, o que for. Só não sente (de novo) na frente do meu pc.
Nunca fez nada com bancos de dados? Leia algo sobre isso. Complexidade computacional de algoritmos? Cave nele. Programação funcional? Coisas loucas para fazer. Há toneladas de coisas que podem ser feitas apenas com uma folha de papel e um livro enquanto relaxa na praia.
De vez em quando, penso por mim mesmo: Uau, criar seu próprio videogame seria divertido. Então pego essa grande pilha de papel e escrevo todas essas coisas incríveis que me vêm à mente. Então saio para pesquisar, procuro coisas que eu possa usar para alcançar meus objetivos, construir grandes edifícios teóricos, jogá-los fora, construir novos e assim por diante. A idéia entrará em código? Não sei. Talvez daqui a 30 anos quando me aposente :-)
Uma coisa é importante:
Seja curioso sobre coisas novas. Mesmo se você acabou de ler sobre todas essas coisas loucas, pense: onde isso seria realmente legal de ser usado? Quais problemas na programação cotidiana ele pode resolver? Talvez um desses pensamentos escape e leve você ao seu PC doméstico para invadir o código. Mas não se force a isso.