Является слишком трудным этим вопросом об интервью для php dev. задание? [закрытый]

Я наконец достиг прогресса, прочитав о том, как работает обновление. В основном, как уже упоминалось здесь , и это выпуск . При вызове метода Update состояние всей сущности, включая все достижимые сущности через свойства навигации, помечается как измененное. Если вы пытаетесь добавить бенефициаров к существующему сотруднику, SaveChanges () выбрасывает, так как он ожидает изменения записи с предоставленным первичным ключом (ключами), но не находит ни одной в базе данных. Метод обновления казался не лучшим кандидатом.

Я решил сделать метод Update из базы репозитория перезаписываемым в EmployeeRepository, как показано ниже

//Update method in the repository base
//Made method virtual to enable overriding
public virtual void Update(TEntity entity)
{
    if (entity != null)
        _dbSet.Update(entity);
}

//Update method from EmployeeRepository
public override void Update(Employee employee)
{
    var employeeFromStore = _unitOfWork.Employees.Where(p => p.Id == employee.Id)
        .Include(p => p.Beneficiaries)
        .SingleOrDefault();

    if (employeeFromStore != null)
    {
        context.Entry(employeeFromStore).CurrentValues.SetValues(employee);

        //Replacing the whole collection
        foreach (var beneficiary in employeeFromStore.Beneficiaries)
        {
            if (employee.Beneficiaries.Any())
                context.Entry(beneficiary).State = EntityState.Deleted;
        }

        //Adding new collection
        foreach (var beneficiaryToAdd in employee.Beneficiaries)
        {
            var newBeneficiary = new Beneficiary(beneficiaryToAdd.EmployeeId, beneficiaryToAdd.Name);

            employeeFromStore.AddBeneficiary(newBeneficiary.Name);
        }
    }
}

Я считаю, что этот ответ можно улучшить или настроить в соответствии с конкретными ситуациями. Например, кроме очистки постоянной коллекции, можно выбрать обновление

12
задан sprugman 4 May 2009 в 20:22
поделиться

21 ответ

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

, если она предоставляет array_sum или sum_array в качестве ответа почти не имеет значения, особенно если речь идет о php (но если два кандидата равны в противном случае ... я даже не могу вспомнить, когда в последний раз мне приходилось использовать эту функцию ). и использование автодополнения и окраски синтаксиса (с предопределенными ключевыми словами) IDE против тупого текстового редактора имеет большое значение в этом ретроспективном взгляде. в этом случае попросите альтернативу, ручное решение.

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

Решения, которые я предоставляю, плюсы / минусы и то, что он говорит обо мне ...

  • 119115] array_sum (очень быстро и определенно не глючно, но негибко): У меня есть небольшой опыт работы с традиционными проектами php

  • для конструкций / loop (достаточно хорошо, заново изобретая колесо. но может использоваться, если есть другие объекты, чем числа. плюсы: все это поймут): я могу решить простые проблемы, если нет заранее определенных решений для копирования и вставки

  • array_reduce (с предложением реализовать array_reduce , если интервьюер хочет увидеть it): необычно для программиста php, поэтому, похоже, у меня есть знания и опыт вне песочницы php

  • ArraySum-Object (с ArraySum :: add ($ value) метод, который хранит все значения в памяти, но кэширует сумму): я привык, по крайней мере, к некоторым из принципов oop

  • function () {return 11; } (с оговоркой, что это шутливое решение, но действительное): у меня есть (хотя и грубый) юмор для программиста - знак i ' Я лично заинтересован в программировании вне работы ... некоторые интервьюеры, которые являются программистами (но не хакерами), могут интерпретировать это как готовность использовать грязные хаки в качестве заполнителей (aehm) , если ограничения по времени слишком велики туго

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

  • рекурсивное разделение и завоевание : бонус! Я знаю еще больше об алгоритмах.

стараюсь получить как можно больше от этого вопроса (если позволяет время). в конце вы узнаете немного о возможностях программирования и много об опыте (хотя и не обязательно в PHP).

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

Disclaimer

этот вопрос бесполезен, когда ...

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

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

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

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

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

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

17
ответ дан 2 December 2019 в 02:49
поделиться

(я думаю, что метод array_sum ($ array) , как часть PHP, сделает свою работу.)

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

1
ответ дан 2 December 2019 в 02:49
поделиться

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

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

IME, запрашивающий отклики на запоминание памяти (вызов синтаксиса, номера портов и т. Д. И т. Д.), Рассказывает вам о некоторых аспектах индивидуальных способностей, которые иногда нужно задавать. Но более важно копаться в их способностях решения проблем.

0
ответ дан 2 December 2019 в 02:49
поделиться

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

0
ответ дан 2 December 2019 в 02:49
поделиться

У меня был момент «олень в свете фар», когда он задумывался над тем, что это за штука!

Любой, кто подает заявку на работу по программированию, знает, как сложить целые числа вместе (так или иначе, даже если это в цикле), так что я пропущу это и найду что-то более сложное .... но не настолько запутанное! :)

0
ответ дан 2 December 2019 в 02:49
поделиться

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

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

1
ответ дан 2 December 2019 в 02:49
поделиться

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

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

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

Джефф написал об этом несколько лет назад: Почему программисты не могут программировать?

1
ответ дан 2 December 2019 в 02:49
поделиться

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

2
ответ дан 2 December 2019 в 02:49
поделиться

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

2
ответ дан 2 December 2019 в 02:49
поделиться

На самом деле, эти вопросы вроде бы ... легкие.

Я полагаю, что написать их на доске затруднит.

1
ответ дан 2 December 2019 в 02:49
поделиться

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

3
ответ дан 2 December 2019 в 02:49
поделиться

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

Есть пара стандартных вещей, о которых я спрашиваю каждого программиста: сделать выбор по двум таблицам, чтобы получить сумму столбца во второй таблице, удалить записи из одной таблицы, основываясь на значениях во второй, разницу между объектом и строку в качестве параметра метода, и пару вопросов, связанных с html / css.

В течение 5 вопросов я могу отсеять 90% кандидатов, даже не увидев их. Все остальное будет сводиться к идеологии.

3
ответ дан 2 December 2019 в 02:49
поделиться

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

Большинство разработчиков PHP создавали видимые веб-сайты - вы могли видеть их работу.

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

7
ответ дан 2 December 2019 в 02:49
поделиться

Краткий ответ: Нет

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

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

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

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

5
ответ дан 2 December 2019 в 02:49
поделиться

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

4
ответ дан 2 December 2019 в 02:49
поделиться

Нет, это не так уж сложно. Если кто-то не понимает концепцию цикла или как перебирать массив, он не считается программистом. Я также хотел бы, чтобы они знали, что для этого есть встроенная функция (array_sum ()) или, по крайней мере, где ее искать.

Возможно, вы захотите взглянуть на Five Essential Phone. -Экранные вопросы , хотя вам, вероятно, придется немного их переработать в соответствии с вашими потребностями.

12
ответ дан 2 December 2019 в 02:49
поделиться

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

Я думаю, что это хорошо для отсеивания самых худших программистов, но убедитесь, что у вас нет одного конкретного «правильного» ответа и вы отказываетесь принимать что-либо еще. Например, не только принимайте «использовать функцию array_sum ()» в качестве правильного ответа, где на самом деле это просто проверка, чтобы узнать, знают ли они, что функция существует.

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

Не делайте этого. Пожалуйста.

47
ответ дан 2 December 2019 в 02:49
поделиться

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

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

2
ответ дан 2 December 2019 в 02:49
поделиться

Я недавно давал интервью по позиции PHP. Меня попросили написать простую функцию на бумаге (конечно, не так просто, как ваш пример).

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

Что касается вашего примера - это просто. Особенно, если вы принимаете array_sum () в качестве ответа.

0
ответ дан 2 December 2019 в 02:49
поделиться

Честно говоря, я хотел бы подумать, что если человек подаст заявку на должность программиста, он или она, вероятно, будет иметь соответствующие навыки в своем резюме. Почему бы не задавать простые вопросы для решения проблем, если должность не требует каких-то специальных навыков в данном языке? Меня однажды спросили, сколько пиццерий в моей стране. Они были заинтересованы в проверке того, как я подошел к проблеме, и не были заинтересованы в том, насколько я хорош в соответствующем языке программирования. Я думаю, что это был хороший способ сделать это. Я ужасно ошибаюсь, думая об этом?

Редактировать: Или люди часто подделывают свои резюме?

1
ответ дан 2 December 2019 в 02:49
поделиться

Мне больше всего нравится:

while ($foo && $sum += array_shift($foo)) continue;
3
ответ дан 2 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: