Sob o título " etc. " vem algo que pode facilmente levar 50% ou mais do seu tempo.
Aprenda a depurar.
Isso significa aprender o método científico . Quero dizer, realmente aprendendo. E depois aplicá-lo com brutal auto-honestidade . Aprenda a declarar com precisão o que você sabe que é verdade, o que você sabe que não é verdade e as coisas que você não sabe. Toda vez que você atribui um item à categoria errada, você acaba tornando sua vida muito mais difícil.
Aprenda a dizer "eu acho" em vez de "eu sei". Você só diz "eu sei" quando "pensa" que algo é verdadeiro (ou falso), e então o prova!
Muitos erros são triviais, mas podem ser difíceis de ver porque você "sabe" qual deve ser o código ... exceto que não. Encontre um amigo para explicar. Peça que eles sejam um "idiota especialista": alguém que não conhece o seu código, mas que você sabe que não pode deixar de lado o BS. Não se surpreenda se, no meio de uma descrição para eles, você parar de repente e dizer: "e assim você pode ... ver ... ver isso ... sh * t. Obrigado."
Erros não triviais requerem um arsenal de técnicas. Um clássico que pode rapidamente destacar a maioria dos bugs não relacionados ao tempo é o Wolf Fence, no Alasca. Há um lobo em algum lugar do Alasca; construir uma cerca cortando o estado ao meio. De que lado está o lobo? Corte esse lado ao meio. Espuma, enxágüe, repita. Fazer isso 20 vezes em locais bem escolhidos no código reduz a área em que o bug (lobo) pode estar para 1/1048576. Mate aquele lobo.
Dica: procure ondas de mão - físicas, mentais ou qualquer outro tipo. Assim que você (ou seu colega) recuar / desviar / minimizar a atenção dada a uma parte do código, fique totalmente irritado . Como a área onde você conhece o bug não pode ser, mesmo que você tenha passado horas / dias procurando a coisa d * mn e ainda não a encontre ... essa é a localização de maior probabilidade para o bug. Ninguém recebe um 'tchau' , ninguém (incluindo a máquina, o sistema operacional, o compilador ou você ) recebe qualquer tipo de "respeito devido". Há um erro. Período. Fim da frase. Agora vá matar a coisa d * mn.
Não conheço nenhuma escola que ensine a depuração como um assunto em si mesma. Na IMNSHO, essa pode ser a evidência mais flagrante de que eles (universidades / professores) não estão ensinando você a ser um programador, mas sim ensinando você a ser ... como eles? Duro? Possivelmente. Verdade? Tirar suas próprias conclusões. Agora prove.