Как стать автором
Обновить

Комментарии 179

Отчего же нерешаемый? Пьзокристалл от старой зажигалки, самый дешевый микроконтроллер и каменюка впишутся в 100 рублей? :)

Senior software architect detected!

s/software/hardware/
НЛО прилетело и опубликовало эту надпись здесь

по металлическим стенкам волна
гораздо быстрее перейдет до приемника, думаю много придётся играться с напором и направлением что бы отделить полезный сигнал от помех

Современные счётчики по такому принципу видят не только направление, но ещё и расход считают точнее механических счётчиков…
В счетчиках источник УЗ находится внутри потока, а не на поверхности трубы. Если измерять через стенку трубы, то все становится сложнее.
Через трубу тоже можно, более того, это сейчас тренд. Импульс выстрела отсекает микросхема счётчика, прямо в микросекундах задаётся, сколько ничего не слушать.
Так это ж хорошо, что гораздо быстрее. Будет серия всплесков, первый — труба, второй — вода.
Проще будет взять два стетоскопа, которые беглый психбольной закопал под трубой.

Хм. А можно ли догадаться о таком способе, если не знать, что он существует? Не каждый имеет опыт работы с пьезокристаллами, опыт работы с измерительной техникой для этого применения, опыт работы со звуком в жидкости. А если человек уже знает о такой конструкции счётчика — он моментально "решит" задачу.

а ещё программатор, дебаггер, среда разработки, паяльник, электричество и чип и дип в шаговой доступности

К сожалению, такие задачи ничего о кандидате не скажут.

Вот не соглашусь с вами. Именно для поиска таких как вы такие задачи и нужны.
Конечно, для вас они выглядят как некоторое унижение, но, камон, это же собеседование — тут вас и так пытаются унизить каждым вопросом.


Сорри

Приношу свои искренние извинения всем, кого на собеседовании заставлял на бумажке написать регулярку для IPv4.
Зато код не заставлял писать.


Никого не интересует правильный ответ (если он есть). Интересно посмотреть как человек мучается и страдает размышляет над неожиданным вопросом — может ли он в стрессе это делать.

Ну как бы нет. Техническое собеседование не про унижение, по крайней мере в нормальной компании.


Многие вопросы на таких собеседованиях сильно улучшили мои знания. Но не такие угадайки, конечно.

На нормальных собеседованиях никто никого не старается унизить, если что.
И можно найти огромное количество адекватных вопросов не из серии «про козу и капусту/квадратные люки/...», которые отлично определяют мышление кандидата.

Ну на нормальных-то конечно. А статья про нормальное разве?

Тут без примеров прямо беда-беда это все обсуждать.

Мне встречалась недовольство отсутствием правильного с их точки зрения ответа

Я думаю, я просто бы не стал работать в компании, в которой зачем-то программисту нужно испытывать стресс.

Сейчас в очередной раз начнется холивар про собеседования и глупые или сложные вопросы.
И правда, пятница же.

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

2.
В общем решения есть. Но весьма причудливые для столь простой задачи. И все они сложнее очевидного — дойти до конца трубы. В реальном мире бесконечные трубы не встречаются.

Существует основанный на тепловом принципе способ измерения скорости кровотока в подкожных сосудах. Он конечно не может быть точным, но в каких-то условиях может быть и пригодится.
Стесняюсь (а нет, не стесняюсь) спросить, а зачем измерять скорость кровотока И КАК, тысяча чертей, греть ацетиленом пациента без разрушения объекта наблюдения? Или про недопустимость разрушения в задаче не было пункта? Тогда просто две дырки камешком проковырять… Дырки, разумеется, калиброванные, а по разнице столбов жидкости судить о перепаде давления (и, как следствие, скорости)…
А вариант «щаз разрежем и посмотрим» — не подходит?
А вдруг там 100 атмосфер? Или залита не вода, а что-то ядовитое? Ну тот же аммиак
Вода там по ТЗ, но за давление принимается. Тогда так: «поручим джуну разрезать трубу и отойдём».
Вода может в составе иметь ядовитый компонент. Ну, сотую часть процента пирита, к примеру.
Применение джуна это тоже компенсирует. Заодно ещё один тест-сьют пройдёт (или нет).
Да вы задолбаетесь так джунов учить же.
Зато будет основание требовать мидла на эту позицию. Сеньора нельзя, сеньор сам послать может.
НЛО прилетело и опубликовало эту надпись здесь
Вода может в составе иметь ядовитый компонент. Ну, сотую часть процента пирита, к примеру.
Пирит — это железная руда, сульфид железа. Он не ядовит, и не растворяется в воде. Может быть вы имели в виду что-то другое?
Да, иприт, конечно же. Автоисправление.
Вода течёт со скоростью 1 см/час на дне трубы слоем высотой в 1/100 диаметра. Труба, напомню, бесконечная. А ещё она из адамантия и освящена лично Императором…
Тогда остаются только неинвазивные методы, как-то:
1) электромагнитное поле (вода — проводник), если адамантий не экранирует
2) поднять техническую документацию по водопроводу и посмотреть, если документация есть в природе
3) найти в отделе человека, который делал эту фичу или знает, кто её делал, и спросить автора
В задаче с неявными условиями можно бесконечно добавлять различные уточнения.
1) Освящённый императором адамантий экранирует все известные виды излучений и полей. А также неизвестные.
2) Вас всё же реинкарнировало в бурундука. У вас лапки.
3) Вы в бесконечном поле. Там нет отдела.

Аналогично. «Жду божественного откровения», «жду божественного откровения до таймаута», «жду божественного откровения до таймаута, затем принимаю интуитивно-обоснованное решение», «если вероятность 50% устроит, то сразу бросаю монету и получаю ответ»…

Это КВН какой-то

пришла идея тоже с электромагнитным полем. а не подскажете с практической стороны как это сделать? двумя обмотками?

Если она течет на дне ручейком, то очевидно, в сторону уклона.
Если недалеко над трубой зависла нейтронная звезда или небольшая черная дыра, то вода может течь вверх по склону и даже по потолку.

Столь сильная гравитация будет ощутима, т е тогда потолок все равно будет дном. Если только вас не реинкарнировало в бестелесную сущность. Но тут уже не до труб с водой...

Ну раз компания прокладывает трубы из адамантита, значит им нужны не простые сантехники а супермены из Криптона. Рентгеновское зрение для кандидата — преимущество.
Вода течёт со скоростью 1 см/час на дне трубы слоем высотой в 1/100 диаметра. Труба, напомню, бесконечная.

Приподнимем трубу (сделаем горку), по разнице веса «плеч» узнаем направление.
Зачем джуна? Кандидат как раз подойдёт!
пузыри газа рано или поздно выдадут направление движения воды. Нужно только внимательно прислушаться.
При 100 атмосферах не будет никаких пузырей. Ну до определенного процента примесей.
«нам не нужны сисадмины, которые разбирают работающий сервер, что бы доятнуться градусником до процессора»

Разрежем. И окажется, что вода течёт в глаз :))))

На одном собеседовании я предложил пару подобных деструктивных вариантов в задаче с таблетками. Как ни странно, собеседование прошёл.

ЕМНИП там в оригинале смешнее было, ибо задача была сформулирована так:

«Есть труба по которой течет вода, требуется не разрушая трубу определить направление течения воды»

Самое смешное решение было:
"Не сказано, что вода течет внутри трубы, так что достаточно просто посмотреть..."

А способов решения, действительно, множество. И распространение звука и нагрев и много чего еще, в том числе и дойти до конца трубы :)

P.S. Задача из той-же серии (плохо сформулированных), вытащенная из одного из самых продаваемых у нас задачника по физике для старших классов:

Вы стоите на балконе и вертикально вверх кидаете камень весом m, через какое время камень упадет на землю?

Ответ одного студента (который учился на преподавателя и потому там разбирали задачи для старших классов) был следующим:
-товарищ преподаватель, я знаю ответ — бесконечность!
-почему вы так решили?
-Вы стоите на балконе и вертикально вверх кидаете камень, куда он упадет?
-ммм… на балкон…
-ну вот...


P.P.S.
В реальном мире бесконечные трубы не встречаются
Но встречаются закольцованные…
НЛО прилетело и опубликовало эту надпись здесь
Если по закольцованной трубе бесконечно течет вода…

Посмотреть надписи и положения элементов управления на насосе

НЛО прилетело и опубликовало эту надпись здесь

Значит это сверхтекучая вода. Нагреть, подождать разрушения сверхтекучести и наблюдать в какую сторону дернется кольцо.

НЛО прилетело и опубликовало эту надпись здесь

Ну труба тоже расширится, надо еще смотреть у кого коэффициент теплового расширения больше

НЛО прилетело и опубликовало эту надпись здесь

У камней скорость от массы не сильно зависит...

Можно стоять на балконе, но вытянуть руку за его пределы и подкинуть камень вверх — тогда он упадет на землю.
НЛО прилетело и опубликовало эту надпись здесь
Для того чтобы упал на землю его нужно кинуть вниз, а по задаче кидают вверх!
Именно. Даже обычный круг, нарисованный карандашом на бумаге, — отличная демонстрация бесконечности.
А если 2 дырки просверлить на расстоянии, давление разное в них будет?
В общем случае зависит от изначального давления и диаметра трубы, но, поскольку труба безконечная — врятли.
Если просверлить отверстия достаточного диаметра, во второй дырке воды вообще не будет.
Да, т.к. потери по длине трубопровода будут

Тогда можно и просто обрезать трубу и посмотреть, с какой стороны течёт вода.

Добро пожаловать в гидравлику)
Давление будет разным если падение давления на участке трубопровода будет существенным и достаточным для измерения. Нужен дроссель в таком случае)

Да, но существенным оно не будет, ибо у вас бесконечная изначально труба с небесконечным давлением.

1 дырку и воткнуть щуп.

Да, разное. Это как в электрической цепи. Для электрического тока должна быть разность потенциалов. Для воды аналогом будет разность давлений.

НЛО прилетело и опубликовало эту надпись здесь
Этим методом пользуются сантехники. Все ок.
В реальных трубах вода охлаждает быстрее с той стороны, с которй течет. Тоесть греете посредине, после чего открываете кран, смотрите, с какой стороны стало холодное ближе. Реальный кейс.
Зачем они это делают? Ну чтоб знать, какую сторону трубы после разреза затыкать. Да, желательно знать заранее. Или чтоб понять, перекрытие рядом крана закроет отрезок или нет(слева или справа от крана резать).
Теплопроводность то у метала лучше, но тут движение и теплоемкость у воды — больше.

так смысл что вода будет охлаждать трубу при этом сама немного нагреваться, и если предположить что поток слева-направо то слева, на одинаковом расстоянии от места нагрева, металлическая труба окажется чуть холоднее чем справа.

просверлить два отверстия на достаточно большом расстоянии, и в одно из них впрыснуть краситель, если из другого отверстия выходит чистая вода значить она течёт не в сторону второго отвертия
И все они сложнее очевидного — дойти до конца трубы. В реальном мире бесконечные трубы не встречаются.

гхм, даже с обычными трубами в стояке уже может быть проблемой «дойти до конца трубы».

Я не могу придумать реалистичного сценария в котором техник не может дойти до арматуры с указанием направления потока или магистральной трубы. Если вы не техник, то не надо лезть.

С обычными трубами в стояке единственная возможная проблема — у вас нет ключей от подвала или чердака.
Я могу, более того, это реальный и ЧАСТНЫЙ случай.
У вас есть труба, оба конца уходят под плитку, рядом. С другой стороны через 4 метра выходит… один.
Если вам интересно где второй — второй — ввод в квартиру и выходит у соседей из стены.
А на этом куске кран, в котором приржавел шарик закрытия и его надо заменить.
То есть один конец трубы у вас в квартире, другой у соседа. Ни к одному концу вы доступа не имеете. Хм… Я готов поверить что сосед ваш настолько ужасен, что не пускает к стояку, но в вашей-то квартире кто не даёт дойти до конца трубы? Мировое закулисье?
Так оба конца уходят в стену. Заделаны. Как узнать, какой из концов — у вас? Желательно до разрезания трубы.
Сосед уехал в отпуск до конца карантина
НЛО прилетело и опубликовало эту надпись здесь
Не уверен, что можно придать воде радиоактивность таким способом. Даже если можно, сильно сомнительно что она будет фонить гаммой, а бету и альфу труба скорее всего не пропустит.
НЛО прилетело и опубликовало эту надпись здесь
Дело не в количестве излучения. Набор радиоактивных изотопов, которые можно получить из воды облучением гаммой в основном распадается за милисекунды а то и меньше.
НЛО прилетело и опубликовало эту надпись здесь

Разве ни одна частица не может прореагировать с водой?

Это, кстати, самый шикарный из известных мне методов. Респект.

Взять источник нейтронного излучения. Померять гамма-излучение на некотором расстоянии справа и слева. Где больше туда и течет. Если модулировать поток нейтронов, то можно ещё и скорость потока определить. Видел реальную установку, которая на таком принципе работала, только там не вода была в трубах.

Вы находитесь в бесконечном поле. Перед вами металлическая труба толщиной не более стандартной водопроводнной.


Самая дешевая ножовка по металлу уложится в 100 рублевый бюджет. В задаче спрашивают в какую сторону течет вода?.. Через 5 минуты работы я отвечу куда она текла.
Самой дешевой ножовкой по металлу пилить не зажатую в тисках трубу? Я бы оценил ваши шансы на успех процентов в десять. Монету подбросить будет эффективнее.

Бесконечная труба весит бесконечно много, зачем ее дополнительно фиксировать?

Во всём нужна сноровка, закалка, монтировка.

Ну дома я как-то умудряюсь это делать, иногда даже в такой позе что не каждый йога может завернуться. Понятное дело что это не комфортно, не правильно и не рационально… НО!

я тут что подумал. Мы ведь находимся в пустыне? Нам разве действительно важно в какую сторону течет вода?.. Через день-два философии нам будет важно чтобы эта вода текла вот прямо нам в рот…
НЛО прилетело и опубликовало эту надпись здесь
При таком мышлении вас заподозрят в нежелании решать реальную задачу :)
Для простоты расчёта возьмём теплоту сгорания пропана такой же, то есть 50МДж. В секунду мы сможем получить 700 Дж. Этого хватит для нагрева 170 грамм воды.

Раз уж вы взялись примерять умозрительную задачу на реальность, будьте последовательны.
1. Не нужно прогревать весь объем жидкости в трубе. Достаточно прогреть пристеночный слой — а это гораздо меньше жидкости по объему.
2. Если копать дальше, то движение жидкости в трубе неравномерно: ближе к центру трубы жидкость движется быстрее всего, по мере приближения к стенкам замедляется. Нам это только на руку: медленно двигающуюся жидкость легче прогреть.
3. Для определения направления достаточно определить, на каком расстоянии от места нагрева труба имеет примерно одинаковую температуру. Если слева у нас труба становится ощутимо теплее в 5 см от места нагрева, а справа — в 7 см, то очевидно, что поток идет по трубе слева направо: слева металл охлаждается набегающей холодной водицей, справа — тоже охлаждается, но уже водицей потеплей.
3. — то есть, не надо прогревать воду, достаточно прогреть трубу, которая прогреваться и охлаждаться будет быстрее воды.
Про вычисление высоты башни с помощью барометра было веселее, правда, к карьере в IT отношения не имеет.
Три одинаковых камертона, три струбцины и глаза + длинная палка.
Прикручиваем камертоны к трубе на одинаковых расстояниях так, чтобы их ноги перекрывались и мы видели, как они резонируют. Ударяем по центральному и смотрим, какой зазвенит быстрее. Фокус в том, что хотя скорость звука и большая и отличается мало, но и механическая связь слабая, поэтому даже небольшие отличия в акустической длине пути будут заметны.

Можно еще попробовать саму трубу в двух тисках зажать и возбудить на этом отрезке стоячую волну, а потом посмотреть, где у нее пучность. Скорее всего она будет смещена от центра симметрии, но чтобы понять куда — нужно немного пописать, интуитивно кажется, что в направлении движения.
Зачем использовать такие лютые вещи, как газовая горелка? Если по условию температура трубы меньше 50 градусов — то сойдёт кипяток из обычного чайника. И безопаснее (нет открытого огня), и гораздо более распространенней в бытовых условиях

Эта задача все-таки близка к реальности. Не надо греть всю воду в объеме, достаточно греть трубу и понаблюдать с какой стороны труба охлаждается быстрее.


Гораздо чаще встречается другая принципиально ошибочная задача:
Из ванны вода вытекает за 4 мин, а кран наполняет ее за 3 мин. (цифры — условные) За сколько ванна наполнится при вынутой пробке?
Когда я слышу подобную задачу, я внутренне бешусь, а внешне с улыбкой спрашиваю: вам какой ответ давать, общепринятый и неправильный, или полный и правильный?
Как посчитать 1/3 — 1/4 учат в 6-м классе. Но это — не решение, потому что скорость истечения воды константой не является. Приравняв статическое и динамическое давление ρgh = (ρv^2)/2 мы получим, что скорость истечения пропорциональна корню высоты столба жидкости. Ах да, надо оговорить, что считаем площадь ванны много больше площади сливного отверстия, считаем что в сливном отверстии нет разрыва потока и т.д. А потом записать красивое уравнение.
В общем, правильное решение требует кучи дополнительных параметров для последующего решения дифференциального уравнения. А это уже как-то не вписывается в собеседование на разработчика.

А ещё турбулентность надо учитывать! А для этого как минимум определить — вода из крана сразу в сливное отверстие попадает, или рядом, или вовсе с другой стороны.
Эхх, так и до Навье-Стокса недалеко…
Когда я слышу подобную задачу, я внутренне бешусь, а внешне с улыбкой спрашиваю: вам какой ответ давать, общепринятый и неправильный, или полный и правильный?


Правильным ответом будет школьный. В задаче сказано, что вода вытекает за 4 мин, значит именно за это время она и вытекает. Может у ванной сливное отверстие расширяется, может насосы используются, сказано 4 мин — значит 4 мин. А вы пытаетесь подменить начальные условия.
Так в том то и дело, что нет, не будет. За 4 минуты ванна вытекает, если функция остаточного объема воды от времени соответствует свободному вытеканию с начальной точке в полной ванной и времени 0. При таком изменении остаточного объема воды средняя скорость вытекания будет равна 1/4 ванны в минуту.
При наполнении с 0 скорость будет меняться как-то по другому. И если засечь время от старта до финиша, то, скорее всего, средняя скорость не будет равной 1/4 ванны в минуту

Не-а.
Она вытекает за 4 мин — это значит, что некий определенный интеграл равен 4 минуты.
Как объяснить-то…
Давайте без формул проведем качественную оценку.
Ну вот когда вы сливаете воду из ванной, она течет быстро, так? А когда осталось совсем чуть-чуть — она течет медленнее. Намного медленнее.
А скорость воды из крана считаем постоянной.
У вас никогда не было небольшого засора ванной? Ну или попробуйте наполовину закрыть пробку, но так, чтобы вода при полной ванной вытекала быстрее чем наполнялась.
Тогда с полной ванной и открытым краном вначале уровень воды будет уменьшаться, а потом — остановится.
То есть, формально, ванна опустеет за бесконечное время.
А в школном решении с дробями бесконечности быть не может ))

Ну в контексте собеседования программиста, можно ожидать, что программист в состоянии выписать дифур хотя бы в самом простом из возможных приближений, правда?
А если не похоже на то, что его можно быстро аналитически решить, от программиста я бы вполне мог ожидать способности быстро написать хотя бы явную схему Эйлера для его решения.

Ну я бы дифур написал. Хотя и с трудом и возможно с ошибками. Но я по специальности — физик, любил раньше всякие физические головоломки, хотя и работаю разработчиком.
Однако считаю, что требовать от всех программистов знаний физики и математики первого курса — не стоит. Ну то есть это клево, если чел это помнит, но дальше-то что?


Задавая вопрос на собеседовании мы должны приближаться к цели. Цель — понять, подходит нам кандидат или нет. И если кандидат не помнит уравнение Бернулли — что с того?

Так тут вопрос не в том, напишет человек дифур идеально или нет, а в том, как он будет думать в процессе.

Если даже не попытается начать — значит, новые задачи ставят человека в тупик, что красный флаг, по крайней мере — для разработчика.

Дальше вкусовщина, но: если скажет «ну наверное тут надо погуглить X и Y и скорее всего я найду, как в подобных задачах выписывают дифуры. Дальше, наверное, найдется метод, как их решать в книжке Z. Ну и дальше возьмем библиотечку S и решим» — то скорее зеленый флаг, хотя задача и не решена.

Или если бросится писать дифуры «от балды», не признаваясь, что не знает, что тут происходит, лишь бы создать видимость решения — скорее красный, ибо лапша на ушах в реальном проекте нам не нужна.
Взять кувалду. Расплющить трубу. Ответ будет — никуда не течет.

Надеюсь, вы баги в софте чините не аналогичным способом.

НЛО прилетело и опубликовало эту надпись здесь

Zero bug policy ;)

Закоментить часть кода вполне нормальный способ поиска багов.
Идея с кувалдой, возможно, не так и плоха. Если через расплющенное место вода будет в итоге еле-еле сочиться, думаю, что постукав по трубе слева и справа от промятого места — на слух получится определить где труба водой заполнена полностью, а где нет. Это, наверно, сработает, если вода сможет стечь из системы (например, под действием силы тяжести) и образовать пустоту после смятого участка. Но это не есть общее решение.

А зачем вообще определять направление течения жидкости? Ну типа, какая разница?

Чтобы собеседование пройти )
НЛО прилетело и опубликовало эту надпись здесь

Я имею в виду — окей, предположим, что этот вопрос — имитация задания от реального заказчика. Есть вероятность, что заказчику на самом деле нужно что-то другое, но он уже сам себе придумал, что для этого нужно определить, в какую сторону течет вода в трубе.


Т.е. есть смысл попробовать докопаться до первопричины, может быть все проще? Ну или таким образом отсечь заведомо неподходящие способы (разрушительные, например).

Всё же по моему скромному мнению компании где ВАМ задают такие вопросы лучше не ходить, даже если они очень крутые. Поверьте если им действительно нужно найти специалиста, такой ерундой они заниматься не будут

НЛО прилетело и опубликовало эту надпись здесь

"… камертон… услышать эффект Доплера"


Эффекта Допплера не будет ни при каких скоростях. Проявление эффекта Допплера — это изменение частоты, т.е., грубо, за секунду приходит другое, например, бОльшее, количество периодов, чем уходит. Если заниматься прослушиванием бесконечно долго при неизменных условиях, то откуда возьмутся лишние периоды?

Эффект Доплера наблюдается в трубу при текущей по ней воды.
Ибо скорость звука в воде сильно ниже скорости света, такие большие скорости не нужны.
Наколеночным оборудованием можно поймать уже от 5-10м/с, что соответствует скорости в струе обычного душа.
Математику, физику и инженеру дали задачу измерить объем красного резинового мяча.
Математик измерил диаметр и по нехитрой формуле вычислил объем.
Физик измерил объем вытесненной жидкости.
А инженер
Достал из ящика стола справочник объемов красных резиновых мячей и выбрал из таблицы искомое значение по серийному номеру :)

Тоже подумал про это решение: взять таблицу направлений течения воды для указанной местности.
Ну и второй вариант, который реально в программировании постоянно встречается: спросить у коллег.

Позвонить в водоканал, попросить схему трубопровода :)

Что, если собеседование в водоканал?

Думаю, такие задачки задаются для того чтобы понять образ мышления кандидата. Все ответы из серии «вода течет сверху вниз снаружи», «посмотрю документацию и надписи» показывают один склад ума, камертоны, ардуины и газовая горелка — другой. То есть универсального правильного ответа нет (и это, кстати говоря, тоже ответ на задачу).

А если пустить кораблик из спичечного коробка )

А как его засунуть внутрь трубы?

В условиях задачи не сказано что она имеет бесконечность, значит есть точка входа и выхода

Если вы дошли до края трубы, зачем вам кораблик то? Там и так видно
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Встать и уйти с собеседования, ибо задача из серии «угадай, что у меня в голове» )
Изначальная суть подобных задач, чтобы просто посмотреть принципы рассуждения и хода мыслей человека, а так же как он относится в целом к неожиданным задачам. Задавать их должен профи(те не HR первого уровня, а либо уже HR более выского уровня, но лучше непосредственно руководитель или старший член команды).
При хорошем раскладе, можно узнать как мыслит кандидат, боится или пасует перед неизвестными задачами и тп. НО люди и интернет всё испортили, всё перевернулось с ног на голову. Причем как со стороны кандидатов, так уже нередко и со стороны тех кто нанимает.
А решения особого изначально, конечно же у таких задач нет. Есть только ход мыслей, креативность и/или системность мышления и тп. Штука интересная на самом деле и жаль что её начали «взламывать» пытаясь часто искать решения. Впрочем это ожидаемо.
Совершенно не обязательно при этом чтобы задачка была из левой области. Я, например, люблю на собеседованиях задавать вопрос «Как синхронизировать время сервера и клиента». Задачка очевидная, полезная, и не имеющая правильно решения в принципе, только приближённое получше или похуже. А потому очень поучительно посмотреть за ходом мысли соискателя, когда до него это начинает допирать.
Когда читаю новости про какой нибудь большой факап, где причиной называют проблему синхронизации, всегда возникает вопрос, а как же делают эту невозможную синхронизацию? На сколько может расходиться время, чтобы не возникло проблем?
Большинство новостей связано не с тем, что алгоритм на пару миллисекунд ошибся, а с тем что кто-то крупно профакапил и синхронизация не работала вообще.
Задачка, как вы догадываетесь, очень многогранна. :) Если не привлекать никаких сторонних инструментов, то гарантировано можно определить только окно шириной в сумму времени самого быстрого из пакетов, отправленных за всю сессию туда плюс время самого быстрого из всех отправленных пакетов обратно.

Это и то только в предположении, что таймер одного из устройств не уплывает за время сессии на сопоставимое время.
Можно не ошарашивать кандидата тупой задачей, а сразу сказать что интересует какие у него есть изобретательские навыки. При таком уточнении подойдет любая нерешаемая задача.

Возможно, эта задача для того, чтобы определить как разработчик будет решать задачи в формулировке пользователей. Часто они просят что-нибудь добавить/переделать в программе, но это их видимость "решения" какой-то другой задачи.
В данном случае я бы спросил: "Для чего это? Какой нужен полезный эффект?" Возможно, в результате оказалось бы, что это нужно для опеределения направления местонахождения водонасосной станции.

И если так, то нанимать его нужно не как программиста, а как системного аналитика. :))
Зачем автор пытается нагреть всю воду в трубе?
Садитесь — два. Ужасно не верные расчёты, как и ход мысли. И условное собеседование автор «завалил», т.к. потратил много времени на сомнительные расчёты исходы из ошибочной изначальной модели (греть всю воду в трубе).
Интересующий нам перенос тепла осуществляться в слое толщиной несколько миллиметров — вот его и нужно считать, если очень хочется. На практике же нужно прогреть небольшой участок оболочки трубы до состояния хорошо различимого человеком перепада температуры (20..30 градусов) и потом смотреть, как изменяется градиент температуры.
Что я надумал сходу, читая этот вопрос и относясь к нему, как к вопросу на собеседовании? Попробовать найти технологические отметки, запорную арматуру (перекрыть вентиль и постучать по обе стороны), попробовать согнуть/наклонить трубу (вдруг одна ее сторона поднимется и насос захлебнется?), распилить трубу (вроде в условии не говорили, что нельзя), — в общем, всю ту чушь, которую я ожидаю, что меня будут спрашивать, ожидая, что я буду мыслить нестандартно. Двойное ожидание, бред, помноженный на бред.
А про нагрев я бы и не заикнулся, из-за профдеформации. Мне совесть не позволяет подходить к этой задаче даже так, как автор. Не работает это так типа «вот тут грамм воды нагрели, и он уплыл по трубе». А как же учесть диаметр трубы? А материал трубы = коэффициент теплопередачи, а площадь нагреваемого участка? Какова температура воды, окружающей среды и пламени, и, страшно спросить, число Рейнольдса у потока воды в трубе?
Я из-за образования просто не возьмусь и думать над такой задачей без томиков Касаткина/Павлова-Романкова-Носкова или хотя бы необходимых таблиц трубопроводов и номограмм теплоемкостей под рукой.
Как минимум я сильно сомневаюсь, что первичный нагрев самой трубы горелкой не будет обгонять вторичный нагрев трубы потеплевшей изнутри водой — это раз. Два — если я прав, я опять же не готов ответить, нагретый участок будет эффективнее охлаждаться более длительным прямотоком воды со стороны «по ходу» или же более коротким, но более эффективным противотоком с другой стороны. Намекаю, что при некоторых условиях возможно, что труба после нагреваемого участка будет остывать чуть раньше, чем до: )
Когда вы перекроете вентиль с обоих сторон будет вода. Воздух в трубах не появляется, вода мешает, даже если дальше вентилей нет.

Извините, а что такое "более длительный прямоток"?

в сторону более низкого давления
нагреть посередине и потрогать двумя руками с разных сторон и сравнить?
Какой-то сферический конь в вакууме. Проще выйти наружу, посмотреть с какого колодца труба заходит, и станет понятно, куда вода течёт. У специалистов документация, а дилетантам нечего лазить, где ни попадя.:)
Вообще, с такими задачами выходит странный парадокс. С одной стороны, здорово, если кандидат умеет нестандартно мыслить, и может придумать решение.
С другой, в подавляющем большинстве кейсов от программистов требуют строго шаблонизированной и стандартизированной работы. И, проводя аналогию, если он начнет определять направление потока, пристраивая к трубе нагревательную спираль и два датчика температуры, то его коллеги завернут на код ревью и заставят разобрать конструкцию, и установить внутрь трубы датчик направления потока воды, или вообще вместо одной трубы поставить две, оборудованных клапанами, чтобы по одной вода могла течь только в одну сторону, а по другой — в другую. Даже, если это потребует в 10 раз больше кода.

Ровно до тех под, пока это решение не станет intellectual property. Напоминаю, что процессор — это кусок кремния, который обманом и наркотой заставили заниматься вычислениями.

в подавляющем большинстве

Понятно, что есть позиции, где надо мыслить подобным образом. Антивирусы писать, например, или биржевые адаптеры, позволяющие пихнуть ордер на одну микросекунду быстрее врагов, или извлекать фичи о реальных людях, парся открытые и полуоткрытые источники.
Но, вот, когда подобное спрашивают при поиске разрабов еще одной унылой CRM, ERP, или банковской платформы, то непонятно, чего ожидают

Вы думаете в мире унылых ERP/банков нет intellectual property? А как насчёт того ужасного кода, который связал две легаси системы и таки работает? Наверное, его надо рефакторить, но в начале никто не знал что с ним делать и никто не понимал как можно связать ПЕРСВ (или что там у банков его эквивалент) и swift. А кто-то покумекал и связал.


Я к тому, что кулибинство на местах не надо недооценивать. Как в положительном смысле (они делают что-то, что казалось невозможным), так и в отрицательном (после них — выжженая земля).

Спорно. Кулибинов топы не особо любят. Как правило, жирным корпоративным крысам важен не результат, а прогнозируемость, предсказуемость, планирование, прикрытие жопы. Сказать акционерам или СЕО "сделаем командой в 20 человек за год", и сделать за год, предпочительнее, чем сказать "сделаем втроём, наверное, за неделю, а может месяцок", и сделать за два месяца.

Вы сразу говорите про воображаемых "жирных корпорартивных крыс". Вопрос: в Тесле жирные корпоративные крысы? В фейсбуке? В эппл? В гугле?


Понятно, что есть застывшие предприятия в которых инновации мертвы. Но если говорить про создание новых продуктов — бизнес удивительно открыт к новым идеям (в т.ч. от кулибиных), потому что бизнес, который не открыт к инновациям либо нерыночный (монополии, господдержка), либо смывается рынком.

Интересно, что то, что большинство тут считает глупыми вопросами, весьма напоминает вступительные экзамены на ФизФак НГУ, которые я когда-то давно сдавал. Там всегда одна задача была «Задача на оценку» как раз специально с неполными условиями, которые поступающий должен дополнить разумными предположениями. Задачи предназначены для выявления у поступающего наличия здоровых интуитивных представлений о физике.

Нафига это программистам, конечно непонятно, даже студенты мехмата по специалиции термех неспособны были решить большинство этих наших задачек.

Как сейчас помню у меня на вступительных была задачка «На сколько улетит жёваная бумага из харкушки космонавта на луне, если известно, что лёгкие способны создать перепад давления примерно 0,1 атм.»
Хм, наверное, дальше оболочки скафандра не улетит?
А если через дырочку в скафандре стрелять непосредственно перед выстрелом убрав палец затыкающий дырку получите перепад давления 1,1атм. Как раз сделать такие предположения при которых выстрел станет возможным и является частью такого рода задачи.
В лунных скафандрах давление было сильно меньше атмосферы, 0.3 вроде как.
Ибо больше не надо для дыхания, но усложняет передвижение в скафандре.

Мне нужна болгарка. Я распилю трубу и посмотрю, с какого конца вытекает вода.


Ну серьезно, в постановке задачи нет условия "трубу нельзя повреждать".

Автору статьи респект за привлечение внимания к проблеме. Из-за проблем с приближениями куча задач являются не более чем головоломками, и условный «правильный» ответ может вовсе не быть истинным решением задачи.
НЛО прилетело и опубликовало эту надпись здесь
Суммируя всё вышесказанное, задачу нужно было бы поставить следующим образом: Вы находитесь в бесконечном поле. Перед вами металлическая труба толщиной не более стандартной водопроводнной. В ней течёт вода, температуры не выше 50 градусов Цельсия, со скоростью не более 1 м/с и не менее 1мм/с. Начала и конца этой трубы вы достигнуть не сможете.

Не умеете Вы издеваться над интервьюером. Вот как надо!

Посмотрю с какого края вытекает. Очевидно же.
Все стандартные решения подобных задач, подразумевают, что неявные условия интерпретируются в вашу пользу.

Да просто все. Открываем Хабр, пишем статью, собираем парсером ответы. Профит.

НЛО прилетело и опубликовало эту надпись здесь
Назвали уже раз десять
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Конкретно в огородно-полевых условиях с достаточной частотой встречается такая задача. Там это решается так: если труба под солнцем — ищется место где на трубу падает достаточно протяжённая тень и щупается на предмет смещения границы температуры. Тень можно создать, искусственно, засыпав часть трубы землёй, тогда придётся подождать. Если даже пасмурно, то всегда можно покрасить копеечной чёрной краской «Кузбасслак» (раствор гудрона в бензине) участок трубы метров в сто, этого вполне хватит чтобы нагревать трубу простым дневным светом.
Чуть воспоминаний. Сантехник у нас в общаге жил. Чтобы контролировать ситуацию искусственно напускал воздух в стояки. Пока булькает — циркуляция есть.
Здесь так-же — одно отверстие и туда воздух или шарик стальной. И потом слышно будет в какую сторону пойдет поток.
НЛО прилетело и опубликовало эту надпись здесь
Течет вода Урал-реки, куда велят большевики!
Пройтись вдоль трубы в обе стороны. Эффект Допплера должен быть достаточным для определения направления.
Этот анекдот слышал году в 1998. Вопрос был оформлен с географическим уклоном.
Турист в густом лесу, заблудился. Обнаруживает трубу, по которой явно течёт вода. Труба существенного диаметра, трубный дюйм, не менее. Вода течёт, понятно, в сторону населённого пункта, который и ищет турист.
Как узнать, куда она течёт, не разбирая трубу?
Важное входное условие — ты турист. Т.е. человек с комплектом, необходимым для проживания на дикой местности.
Ответ — разводишь костёр под трубой и определяешь, где труба теплее. Туда и течёт.
Т.к. вода течёт явно с существенной скоростью, то других вопросов не возникает.
Труба существенного диаметра, трубный дюйм, не менее.
Ответ — разводишь костёр под трубой и определяешь, где труба теплее.

Интересно, кто-то проверял этот совет на практике?
Какого размера должен быть костёр, чтобы заметно прогреть дюйм воды, текущий с неизвестной (возможно, большой) скоростью?
Насколько я понимаю, бытовые газовые котлы, прогревающие текущую воду, сильно отличаются от конструкции "труба над костром".

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации