О проявлениях взаимонепонимания между математиками и программистами

Mar 04, 2007 22:00


(Написано с уважением к программистам, их традициям и их деятельности.)

Однажды, несколько лет назад, я, больше ради приобретения опыта, пошел на собеседование в питерский офис одной (не самой мелкой, но и не самой крупной) программистской конторы. Собеседование шло вполне себе хорошо до того момента, как интервьюер дал мне следующую задачку (формулировка была точно или почти точно такая):

Написать функцию f, такую что f(3)=5, а f(5)=3

Подумав какое-то количество секунд, я написал:

f(x) = 8-x

Интервьюер посмотрел на меня со всей жалостью, на которую был способен, и заявил, что с такими познаниями я гожусь разве что в уборщики офиса. То есть, так он, конечно, не заявлял, а просто сказал, что решение не годится. Ха, подумал я, это он просто меня проверяет, и твердо заявил, что решение очень даже годится.

Самое удивительное для меня, что он действительно считал, что решение не годится. Аргументировал он это примерно так (за точность воспроизведения не ручаюсь совершенно): представьте, что кто-нибудь подставит в Вашу функцию не 3 и не 5, тогда получится не 5 и не 3, а какое-то иное число, которого нет в условии. В общем, дальше мы довольно долго спорили на тему, годится ли мое решение. Мои аргументы были таковы: во-первых, функция отвечает приведенным в условии требованиям, и во-вторых, если в условии ничего не сказано об остальных значениях функции, то она может принимать любые значения в любых других точках.

Спорил я очень яростно увлеченно, даже когда интервьюер уже потерял интерес к обсуждению и пытался перейти к другим вопросам, поскольку (1) место в этой конторе мне было совершенно не интересно (хотя вид я делал совершенно иной, разумеется), а разобраться хотелось, и (2) я был довольно-таки уверен в своей правоте.

Вопрос к программистам и ко всем: каков пример правильного решения задачи? Чем неправильно мое решение? Что ждал от меня интервьюер? Каковы традиции программистов в отношении формулирования условий задач и ТЗ?
Previous post Next post
Up