Não sou um programador especialista, por isso pode ser o motivo, mas percebi que sempre que crio código complexo (como um jogo de xadrez que fiz recentemente), sou capaz de escrever o código correto para que o programa funcione, embora eu ache que mais tarde - ou mesmo alguns segundos depois! - muitas vezes tenho que fazer uma pausa e pensar em como isso funciona?
Não apenas isso, mas também tendem a não pensar no código e, em vez disso, apenas digito. Por exemplo, no meu jogo de xadrez, decidi usar uma matriz de cinco dimensões para processar movimentos, e descobri que podia fazer isso sem pensar muito. No entanto, quando parei e li sobre isso, achei difícil entender meu conceito tridimensional e demorei alguns minutos para entender completamente o que eu fazia e como o próprio código funciona.
É normal que os programadores, ao escreverem códigos complexos, não entendam o que estão fazendo metade do tempo?