Задание на собеседование по кодированию - не уверен, какую технологию использовать [дубликат]

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

После собеседования мне прислали задание, по сути, создать простое веб-приложение, и им были ясны следующие два момента:

  • Я мог использовать любую технологию, которую хотел
  • У меня нет надлежащего срока, так как они не очень торопятся

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

Во время интервью мне удалось узнать, какие технологии они используют на более регулярной основе, и я уже работал с этим в течение очень короткого времени, что ставит меня перед следующей дилеммой:

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

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

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

@Dukeling Я согласен, что они связаны, но не совсем дубликаты. Этот сформулирован более общим образом, этот касается конкретного сценария и настроек, которые необходимо учитывать, чтобы решить, что лучше всего подходит для ОП.
Возможный обман на рабочем месте.stackexchange.com/q/61792
Что-то в фразе «У меня нет дедлайна, так как они никуда не торопятся» мне немного пахнет подозрительно. Может быть, я просто воображаю, но это звучит так, как будто они просят вас сделать бесплатную работу в рамках «собеседования». Они не спешат кого-то нанять? Зачем вообще нанимают? Даже если они могут какое-то время обходиться без нового сотрудника, я ожидаю, что они захотят своевременно завершить процесс собеседования, уже начав его.
@ Стив-О, иначе они просто наймут кого-то другого, если ты не сдашь его до Рождества.
@Steve-O Crosstalk известен тем, что просит соискателей решить реальные проблемы, а затем отказывает им по явно ложным причинам, как только они отправляют свою работу, так что это серьезная проблема. Но я думаю, что это зависит от сложности задания. Если это действительно «простое веб-приложение», шансы на то, что оно решит реальную проблему, довольно малы.
@DawoodibnKareem кажется очень близким, но есть небольшая разница. Предлагаемый дубликат устарел по сравнению с новыми технологиями, это технология, которую OP знает, а не технология, которую использует компания. В первом неизвестно, что использует компания, в этом неизвестно, то ли устарело, то ли нет.

Ответы (6)

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

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

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

Я бы, вероятно, добавил к этому, что ОП должен избегать делать что-то, чтобы продемонстрировать то, что вы знаете, и вместо этого писать наиболее удобный и тестируемый код. У меня были кандидаты, которые писали код, который они не стали бы писать в рабочем коде, или убеждались, что я «знал, что они могут», когда инструкции явно направляли их на тестируемый и поддерживаемый код.
Хороший вопрос @SandyChapman. Я бы также сказал, не забывайте добавлять комментарии! Нет комментариев = мгновенный отказ для меня.
Я бы выбрал тот, с которым вы лучше всего знакомы и который подходит для Интернета . Это может быть простая проверка, чтобы увидеть, выбрали ли вы правильное решение.

Используйте технологию, с которой вы лучше всего знакомы.

Компания, скорее всего, хочет узнать, как вы думаете, не обязательно, знаете ли вы тонкости и синтаксический сахар PHP, Perl, Ruby и C. Не так давно я начал работать в компании, которая использует Ruby on Rails, никогда не написал строчку RoR в своей жизни. Возможно, вам даже сойдет с рук псевдокод, но я бы не рекомендовал его.

То, как вы думаете, важнее, чем точка с запятой.

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

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

У любого варианта есть свои плюсы (а может и минусы).

Вариант 1, Лично Знакомая Технология , (Плюсы):

  • Демонстрирует вашу компетентность в том, что вы знаете
  • Помогает выполнить его в срок
  • Если компания готова использовать новые технологии, вы показываете, что можете помочь внедрить эти изменения.

(Минусы):

  • Вы откладываете неизбежное, если вам абсолютно необходимо использовать то, с чем они сейчас работают.

Вариант 2, стандартная технология компании (плюсы):

  • Показывает, что вы готовы учиться (я знаю, вы сказали, что работали с этим, но недолго)
  • Показывает, что вы можете взяться за дело, если они в вас нуждаются.

(Минусы):

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

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

спасибо за редактирование :) Добро пожаловать в The Workplace BTW. Я также согласен с тем, что, несмотря на отсутствие крайнего срока, ОП должен делать это своевременно (но не так быстро , иначе они могли бы каждый раз ожидать такой скорости)
нет проблем, извините, если это было немного придирчиво, я не мог отправить с отредактированным менее чем 6 символами :/ также, спасибо :D да, я не хотел говорить быстро, но это трудно выразить каким-то образом кроме "своевременно"
Если вы когда-нибудь увидите действительно уместную ошибку, которая состоит менее чем из 6 символов, возможно, вы можете подумать об этом: meta.stackexchange.com/a/82535/332286 Тем не менее, все внесенные вами изменения были приемлемы для меня, поэтому я принял это .
Лол, это довольно умно, я запомню это

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

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

Позвольте компании решить, какие языки программирования или фреймворки вам следует изучить, после того, как они рассмотрят ваше задание. В некоторых случаях в компании применяется более одного языка/фреймворка в зависимости от проекта. Высшее руководство решит, какую команду вам назначить, и, таким образом, выучит новые языки/фреймворки. Я полагаю , что у вас будет достаточно времени, чтобы наверстать упущенное в этом случае.

Так почему бы вам просто не сделать все возможное в задании, чтобы показать им, что у вас есть?

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

Здесь много факторов, но я думаю, что вы должны использовать технологию, которую использует компания.

why?

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

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

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

Как уже говорили другие, у обоих подходов есть свои плюсы и минусы. DarkCygnus и gitguddoge высказали мнение, которое я считаю, пожалуй, самым важным. Они, вероятно, оценивают, насколько хорошо вы знаете то, что знаете, и насколько хорошо вы понимаете общие принципы.

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

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

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

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