Интересно, но я заинтересовался программированием после математики, которая была моим интересом в средней школе, классе так с 5 по 8, благодаря книгам Перельмана и Гартнера.
Программирование имеет все черты математики - строгость и красоту. Красота, к сожалению, убивается столь же нещадно, как и в математике, к которой я успел немного прикоснуться.
Отлично помню несколько веселых эпизодов, связанных с программой для решения квадратного уравнения - это еще в школе. Там нужно было поставить проверки на все возможные некорректные входные условия.
Никто не говорит, что проверка входных данных не нужна - но "фишка" в том, что она всегда нужна в меру. Понятие меры - понятие уровня искусства, а не формального метода. Если вы проектируете встраиваемую систему для работы на самолете - лучше, чтобы вы вставили все проверки, которые есть, да запустили тесты методом "белого" и "черного" ящика. Просто потому, что от надежности вашей системы зависят жизни людей.
Но если заниматься конвертером электронных валют или выводом отчетов из БД - кой черт вставлять проверки на потерю соединения с БД через каждые 2 строки? Уверяю, что это просто приведет к тому, что этот код будет выкинут в момент, когда его нужно будет обновить, если его автора, конечно, не будет поблизости.
Красота программирования - красота решения отдельных задач. Именно поэтому существуют и должны изучаться такие языки, как Лисп, Пролог, Рефал, PHP, Ruby, Python и многие другие - они идеально подходят для решения своих задач. Хотя я и попал на кафедру с соответствующими курсами случайно, получилось просто отлично.