Curioso ter deixado de fora dois casos citados em uma famosa frase:
There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton
Em tradução livre: "Existem apenas duas coisas difíceis em Ciência da Computação: invalidação do cache e dar nomes às coisas."
Claro que tem um certo tom de brincadeira ao limitar a lista a apenas duas coisas, mas são problemas difíceis mesmo. A invalidação do cache está bem explicada aqui, interessante ler para ver como é mais complicado do que parece. Já dar nomes às coisas, pode parecer uma coisa besta, mas não é.
Obviamente não é uma lista exaustiva, a computação está cheia de problemas complexos. Sobre o item 4 (programação concorrente), também tem uma frase que faz piada com isso:
Eu tinha um problema, achei que podia resolver com threads. Ago ra eotenh u .prois doblemsa"
Pois é, threads (assim como qualquer coisa em computação) não são uma solução mágica. Usar várias threads não garante que tudo ficará mais rápido, e fazer direito é mais difícil do que parece.