FizzBuzz — это распространенный вопрос на доске для программирования собеседований:
Напишите программу, которая печатает числа от 1 до 100. Но для числа, кратного трем, вместо числа печатайте «Шипение», а для числа, кратного пяти, печатайте «Жужжание». Для чисел, кратных как трем, так и пяти, выведите «FizzBuzz».
Стандартный ответ имеет высокую читаемость и использует цикл. Как бы отнеслись к этому интервьюеры, если бы я повеселился с этим распространенным вопросом? Например, я пишу все это в одну строку или запутываю каким-то сумасшедшим синтаксисом? Будут ли они думать: «Это весело! Тебя наняли!» Или они выгнали бы меня на обочину за то, что я не показал, что умею писать цикл?
Этот вопрос был вдохновлен https://codereview.stackexchange.com/questions/49058/single-line-fizzbuzz-solution-in-linq и https://codegolf.stackexchange.com/questions/88/obfuscated-fizzbuzz-golf . .
Будут ли они думать: «Это весело! Тебя наняли!» Или они выгнали бы меня на обочину за то, что я не показал, что умею писать цикл?
Вот в чем проблема с этой мыслью — вы не можете заранее знать, как ваш интервьюер воспримет такое веселье.
Некоторые работодатели сочтут вас забавным, остроумным и, вероятно, с вами будет весело работать.
Другие сочтут вас незрелым, неспособным следовать простым инструкциям и не заслуживающим внимания.
И невозможно узнать, что они подумают, пока вы не попробуете.
Мы часто думаем, что мы смешнее и гораздо умнее, чем на самом деле кажемся другим. Так что, если вы не чувствуете себя очень удачливым или если вы действительно не хотите эту работу, зачем делать такую ставку, если вам это не нужно?
Играйте прямо во время собеседований и приберегите трюки и веселье после того, как вас наймут.
FizzBuzz
(очень обобщенные). Это можно легко сделать в C# с помощью LINQ и в PHP с помощью самых стандартных функций. Это не всегда плохо. И это 2 языка, используемые в производственном коде.Я спрашивал интервьюера что-то вроде: «Вам нужен код, который я буду писать на работе или для удовольствия?» и пусть решают. Возможно, они просят показать обе версии.
Это напоминает мне The Fizz Buzz from Outer Space . В то время как этот потенциальный сотрудник думал, что ему будут аплодировать за его нестандартность, он думал, что на самом деле это подчеркивает худшие черты. Помимо того, что он выглядел дерзким и претенциозным, его также было трудно понять, и это вызвало большие споры о том, действительно ли он понял стоящую перед ним задачу. Вскоре стало очевидно, что он не подходит для этой работы. Кроме того, кандидат на программирование должен уже знать, что работодатель ожидает увидеть несложное решение, которое показывает, что он практичный программист. Не отклоняйтесь от цели и ожидаемого результата, если вы намеренно не хотите провалить собеседование.
Может быть вариант показать умное решение FizzBuzz или вариант. Сначала покажите действительно чистое простое решение.
Если интервьюеры просто кивают и переходят к следующему, на этом дело заканчивается.
Если они захотят обсудить ваше решение, вы можете представить умную альтернативу, дав понять, что это просто для развлечения, а не то, что вы когда-либо делали в реальном коде.
Когда я проходил собеседование по поводу работы в Linux-системах, мне дали «шипение», потому что это то, что есть на их собеседованиях для программистов. (В этой компании работает много кодеров)
Поэтому я ответил на это с помощью сценария оболочки bash, а не блефовал через какой-то псевдокод. Это означало, что мой ответ был актуальным и полезным для этой должности.
Ответ : Собеседование — это шанс показать, что вы подходите для этой должности, а не возможность похвастаться. Докажите, что вы можете сделать работу правильно, это ваша задача на собеседовании.
Боюсь, @paparazzi прав. Никто не любит умников.
Ваша цель — показать, что вы можете написать самый красивый, удобный и эффективный код; это то, что они хотят нанять.
Выражайте свое недовольство заданием в свободное время.
В течение десятков экранов с использованием fizz buzz я жаждал кандидата, который решил бы это творчески. Программирование — это творческая профессия, и творческое решение стандартного вопроса о программировании может помочь вам выделиться. Планка довольно низкая для шипучки, поэтому заниматься чем-то вроде игры в гольф, вероятно, пустая трата времени, но есть решения, которые обеспечивают баланс между сырым, жестко закодированным for
циклом и тайным заклинанием.
Рассмотрим сходство fizz buzz с другими, более практичными задачами программирования. Предоставьте интервьюеру возможность изменить параметры вопроса. Предложите написать альтернативное решение, которое подходит для работы. Какие интерфейсы должны быть у fizz buzz, подходящие для разных парадигм программирования?
Получайте удовольствие от творчества в рамках ограничений, демонстрируя, что вы можете делать работу хорошо. Это тот вид творчества, который нам нужен в нашей отрасли.
1) Скажите, что вы уже видели FizzBuzz.
2) Сделайте самое простое решение.
3) Упомяните, что вы знаете о других остроумных решениях.
Некоторым интервьюерам они могут быть интересны, а некоторым нет (я бы не стал). Проблема с поиском остроумного решения заключается в том, что оно почти гарантирует, что FizzBuzz займет больше времени, чем должно, и вы можете не решить или у вас будет меньше времени, чтобы решить другие проблемы.
FizzBuzz — очень простое упражнение, которое, я надеюсь, не так уж распространено.
Если вы посмотрите на оригинальный пост в блоге, в котором это описывалось , вы увидите, что он был придуман с одной целью: проверить, умеют ли люди программировать вообще . По-видимому, существует или была проблема с людьми, которые приходят на собеседования по поводу работы программистом, которые не могут написать даже очень простую процедуру с нуля, и это отсеивает их.
В остальном это неинтересно, так что просто покончим с этим и перейдем к сути интервью.
Интервью служат двум целям. Во-первых, убедить их в том, что вы наймете вас, а во-вторых, убедить их в том, что вы примете решение пойти за ними, если они сделают предложение. Так что подумайте о том, что вы хотите сделать в этих терминах, поможет ли это мне продаться или поможет мне отсеять те места, где я не хочу работать?
Готовы ли вы работать только там, где ваш творческий ответ сочтут забавным? Вам потребуется гораздо больше времени, чтобы найти работу, но она может быть более подходящей для вашей личности.
Впечатлит ли это их? Ну, это зависит от того, хороший, основательный, правильный, скучный ответ произведет впечатление с большей вероятностью, чем плохо продуманный смешной. Хорошо продуманный, но творчески выполненный ответ может выделить вас из толпы, но...
FizzBuzz — это вопрос, отсеивающий сорняки. Это не для того, чтобы продемонстрировать свои навыки высокого уровня или чувство юмора, это используется интервьюерами, чтобы определить, есть ли у этого человека какие-либо навыки вообще. Вы были бы поражены, если бы вы никогда не брали интервью, как много людей не могут на самом деле решить все это. Это один из тех вопросов, которые редко помогают вашему делу, а только вредят ему. Что-то вроде вопроса о том, где вы видите себя через пять лет или почему вы хотите оставить свою текущую должность.
Из-за этого лично я нашел бы другой способ показать, что у меня есть творческие способности или навыки высокого уровня, чтобы выделиться из толпы. Я бы сделал это, продемонстрировав свои настоящие достижения и сумев справиться с реальной технической частью интервью (а не с вопросом о сорняках) на более высоком уровне, чем большинство людей. Это то, что составляет суть интервью и на что вы должны потратить свое время. Покончите с FizzBuzz, а затем сосредоточьтесь на материалах, которые действительно показывают, кто вы и чего вы можете достичь.
Я бы предпочел, чтобы вы делали что-то вроде написания собственной функции модуля, а также делали это обычным способом. Вам нужно будет выразить намерение вашего решения, чтобы иметь возможность придумать альтернативу, а также понять, что вы не будете пытаться что-то подобное с производственным кодом, если вы не сможете привести веские доводы в пользу неясной альтернативы.
К сожалению, некоторые люди слишком много читают об этом подходе. Найти хороших программистов сложно, но они настойчиво ищут любой намек на черту характера, которая делает вас непригодным для их корпоративной культуры. Это позор. Если часть культуры состоит в том, чтобы относиться к себе слишком серьезно, вы можете сделать это просто для того, чтобы отсеять потенциальных рабочих мест, где у них нет чувства юмора.
Я думаю, что неуместно использовать fizzbuzz, чтобы показать, что вы забавны или умны.
Я действительно думаю, что может быть уместно использовать fizzbuzz, чтобы продемонстрировать больше, чем вашу способность писать цикл.
Вы можете написать fizzbuzz, который будет объектно-ориентированным и расширяемым.
Вы можете написать fizzbuzz, который будет функциональным.
Вы могли бы написать fizzbuzz с учетом оптимизации.
Вы можете написать fizzbuzz, который включает в себя тесты.
Вы можете написать fizzbuzz API.
Вы можете написать git-клон существующего fizzbuzz (но потом написать его самостоятельно, чтобы убедиться, что вы можете кодировать)
Кодовый гольф или запутанная болтовня были бы бессмысленными и, возможно, неуважительными по отношению к задаче. Собеседование предназначено для демонстрации знаний. Имейте это в виду при любом задании или задании.
Моника Челлио
лопата