Lógica, lógica, lógica

Isso deveria ser dado à maioria dos programadores, mas não é para todos

Não importa o idioma que você usa, sempre, sempre, verifique o estado de suas variáveis ​​e compare-as com o que você está esperando. Se você presumir que eles estão preenchidos em algum outro lugar sem verificá-los, você pode ter uma bagunça em suas mãos que pode ser potencialmente muito difícil de depurar.

Sempre crie lógica suficiente para garantir que suas variáveis ​​sejam sempre os tipos de dados, valores corretos e se você estiver lidando com matrizes ou objetos (principalmente em linguagens como PHP, Javascript, etc), sempre faça uma contagem / tamanho deles para ter certeza que eles não estão vazios e sempre verifique se a chave do array existe antes de tentar acessá-lo.

Em conclusão:
supor não levará você a lugar nenhum na programação.