Eu acho que você aprendeu um idioma quando não o vê. Você não vê os ciclos de acesso e dados, mas o fluxo de trabalho do algoritmo.
Você não faz truques com a passagem de parâmetros e processamento de array, macros mágicas. Você não pensa no seu código como um material de autopromoção para mostrar a seus amigos e professores, mas para expressar sua compreensão de um problema e sua vontade para com o computador da maneira mais legível.
Você tem hábitos que ajudam a evitar muitos erros apenas seguindo-os, como: use {} blocos de código e () em expressões mesmo se tiver certeza absoluta de que "será apenas uma linha" ou "Não sou bobo e sei ordem de precedência do operador ".
Você para de contar quantas classes, padrões e APIs de estrutura você conhece. É para isso que serve o intellisense, as referências e os tutoriais, e o Google. Mas quando você olha para um problema, você sabe imediatamente quais partes ele pode ser dividido e com quais ferramentas e algoritmos você os resolverá.
O que você faz funciona é elegante e pequeno . Você gosta de codificar e encontra facilmente seus erros. Sim, os mestres também cometem erros porque são humanos - mas eles os encontram rapidamente porque sua estrutura de código os leva ao lugar certo.
E finalmente perceba: você aprendeu a pensar, analisar e resolver problemas; comparado a eles, o idioma real é secundário, apenas a caixa atual de regras e ferramentas.