• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

"нарисуйте дом"

  • Автор темы Автор темы klizardin
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
K

klizardin

Это достаточно известная задача при тестировании кандидата на работу программиста. Но все же, слишком часто приходиться повторять "В НАЧАЛЕ ЧТО а потом КАК". Очень часто убеждаемые "не верят" этому принципу и мыслят в духе: ну это же не всегда, вот можно поступить так и так, или но ведь всегда же разрабатывали так и все было хорошо. И оказывается очень полезным проиллюстрировать это убеждение -- дать возможность некоторому программисту заняться разработкой в миниатюре и почувствовать некоторые "абстрактные принципы".

И так в начале берем чистый лист бумаги (один), шариковую(!) ручку (обязательно, ну во всяком случае не карандаш (поймете дальше почему)) и говорим: "Твое задание нарисовать дом. Нарисуй дом."

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


Тогда переворачиваем лист бумаги на 90 градусов и спрашиваем: "Разве это дом?"
84231231.jpg


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

Далее, вы соглашаетесь, что можно было бы принять и такой дом, хотя вы все же хотели чтобы дом был и другой. Но и это нарисованный дом не отвечает вашим требованиям. Вы хотели экологический дом -- дом который бы стоял прямо на земле, т.е. дом, у которого не было бы нижней линии. И просите стереть линию "пол". Вот так:
84231394.jpg


Ну и пока программист пытается стереть то, что было нарисовано шариковой ручкой тем же обычным ластиком, вы можете напомнить о важности этапа проектирования ДО начала кодирования. Так как затраты на изменение того, что уже реализовано намного больше возможных затрат на детальное выяснение требований на этапе разработки.
 
В предлагаемом сценарии тестирования кандидата есть некоторые неувязки (ну или автор недостаточно ясно объяснил свою позицию).
Не говорится, что конкретно ожидает эйчар от кандидата. Видно только, что его ничего в данном решении не устроило.
Что хотел сказать эйчар, когда перевернул листок с домом?
Почему у дома не должно быть фундамента (стерли нижнюю линию)?

Господин автор, вы хотели сказать, что главное - это в начале выяснить требования заказчика, какой же дом он хочет получить? (чтобы боковая стена была полом, или чтобы пола не было вовсе)
Так как после создания продукта изменить его уже крайне сложно (шариковая ручка как метафора)?

Или что?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab