В течении жизни программист должен успеть сделать следующее:

Придумать алгоритм сортировки,
Придумать алгоритм шифрования,
Придумать генератор случайных чисел.