Які методи ви використовуєте при опитуванні розробників? [зачинено]


28

Я усвідомлюю, що про цю річ було багато дискусій, і вони часто перетворюються на догми навколо того, чи задаєте ви питанням "100 логічних піратів" чи ви змушуєте їх писати "fizz buzz".

Мене цікавить, які методи та питання були ефективними для вас під час опитування потенційних розробників для роботи.

Одна техніка на відповідь, щоб ми могли проголосувати за них, будь ласка.

Відповіді:


21

Окрім реальних технічних питань, і, як правило, наприкінці інтерв'ю, я намагаюся зрозуміти рівень їх зацікавленості в галузі та культурі з такими питаннями:

  • Ви бачили щось недавно, пов’язане з програмуванням, яке вам було цікавим і хотіли б рекомендувати іншим програмістам? Нова мова, інструмент, платформа, техніка, веб-сайт?

  • Чи можете ви назвати будь-яку відому людину в нашій галузі, чия робота вам подобається, або яка надихає і чому? (розробник, засновник веб-сайту, автор, доповідач тощо)

  • Що ти зараз читаєш чи яка остання прочитана книга, пов’язана із програмним забезпеченням?

  • Які сайти, пов’язані з програмуванням, ви часто відвідуєте?

Хоча відмова відповісти на ці запитання взагалі (на жаль, це трапляється дуже часто) не означає для мене «не наймання», вони багато говорять про те, як людина підходить до професії розробки програмного забезпечення.


4
Я, мабуть, пішов би далеко, щоб сказати, що це найважливіше, що слід оцінити в будь-якому інтерв'ю з програмним забезпеченням. Ви можете стверджувати, що написання коду важливіше, але люди, які нещодавно висвітлювали щось подібне або в університеті, можуть здогадатися про це, хоча дуже важко підробити справжній справжній інтерес.
Майк Б

5
Я не здивований, що це популярна відповідь на цьому веб-сайті. Тут аудиторія за визначенням оцінює "культуру програміста". (Я згоден з відповіддю, але я зустрів декількох відмінних програмістів, які не змогли б пройти цей тест, особливо тих, хто
переважає

2
@AShelly: Так, я згоден. Тому я не вважаю це питання істотним для відхилення чи прийняття програміста. Це просто ще одна техніка, яку ви можете використовувати під час співбесіди.
Серхіо Акоста

16

Змусити їх написати код, реальний код.

Інтерв'юер може дозволити вам вибрати мову програмування, яка вам найбільше подобається, будь то C ++, Java, C # або що завгодно, і попросити вирішити просту проблему, наприклад, виконати якусь роботу зі струною або подвійно пов'язаним списком чи будь-яким іншим. Якщо у вас є проблеми з використанням вашої кращої мови для вирішення простої проблеми, то є проблема. Будь ласка, ознайомтеся з повідомленням у блозі Стіва Єгге та особливо у розділі "Психічна підготовка".


6
Так, але не надто багато.
Дамовіса

Написання реального коду допоможе вам потрапити у двері елітних програмних компаній (Google, Amazon, Microsoft, ...) та сміливо вибирати решту.
grokus

3
Будь ласка, детальніше поясніть свою відповідь. Що ви маєте на увазі під "реальним" кодом? Який код не "реальний"?
МАК

+1 @MAK: Погоджено, що таке реальний код? Якщо це код, який ви хотіли б використовувати у виробничому програмному забезпеченні ...
Стівен Еверс

1
Я б вважав «реальним кодом» чимось на кшталт того, щоб попросити респондента написати функцію «strdup ()». Він має реальне використання та викриває їхній досвід та ставлення до таких речей, як управління пам'яттю та поводження з помилками.
JBRWilkinson

11

Нехай кілька людей з вашої команди опитують їх самостійно. Діліться своїми думками після цього, не розмовляйте між ними, перш ніж опитати їх. Якщо говорити між ними, то буде залежати ваше судження, і ви не матимете незалежних суджень.

Для технічних людей, які опитують їх, змушують їх писати код. Що стосується нетехнічних, не намагайтеся запитати те, чого ви не відчуваєте. Переконайтесь, що у вас є хоча б деякі технічні люди, які беруть інтерв'ю.

Інтерв'ю не повинні проводити лише керівники, це має бути надзвичайно важливим для кожного працівника, з яким вони працюватимуть у майбутньому.


2
+1 за "співбесіди не повинні проводити лише керівники". Якщо новий прокат не зможе скоротити код так само, як і їхні колеги, у команді виникнуть заворушення.
JBRWilkinson

7

Мені подобається співбесідник, який пояснює свої попередні проекти та те, що вони робили. З цієї відповіді у мене можуть виникнути подальші запитання: чому вони робили щось певним чином, як вони вирішували певну проблему, якщо згадували про неї, але найголовніше, що було метою проекту та які бізнес-проблеми вирішили.

Я роблю це, щоб побачити, чи можуть вони сформулювати так, щоб змусити мене зрозуміти, що вони робили, і побачити, чи зрозуміли вони, що роблять.

Дивно, що останнє питання про мету проекту та бізнес-проблему вирішило, що подорожує багато людей. Вони поняття не мають, Чому взагалі робився проект, над яким працювали. Якщо ви не знаєте, чому ваш проект існує в першу чергу, мене змушує задуматися, чи сприяєте ви рішенням, чи просто так, як вам кажуть.

(Зрозуміло, я кидаю цю туди, оскільки всі інші відповіді, як правило, є технічними. Я хочу, щоб люди знали, чому вони вирішують і ті проблеми, які вони вирішують, інакше вони, як правило, вирішують неправильні проблеми, які не має кінцевий користувач " т байдуже :)


6

Попросіть їх прийняти важливе архітектурне рішення

Наприклад. Ось програма x, яка виконує y кількість підзадач одночасно. Яку б ви обрали, багатопроцесову або нарізну структуру.

Які переваги / недоліки обох. Наскільки вони б добре працювали і як їх можна використовувати для використання багатоядерної багатопроцесорної платформи, які ваші особисті переваги? Особисті упередження можуть допомогти визначити, чи доводилося їм коли-небудь реально застосовувати знання та надавати їм точку стрибка, щоб поділитися своїм досвідом?

Є багато питань, з якими інтерв'юер міг би поставити такі:

  • TCP або UDP?
  • Динамічна або статично набрана мова?
  • Монолітне застосування чи кілька менших додатків?
  • Що б ви використали для міжпроцесорної комунікації?
  • Збережені процедури чи ORM?

Більшість із цих тем - це типи, які передбачають інтимне знання про те, як / чому комп'ютерна система працює так, як це робиться. Всі вони - питання / рішення проблем, на які немає однозначної відповіді, тому вони дають уявлення про те, наскільки добре ця людина здатна адаптуватися або подолати проблеми, що стоять перед ними. Не той тип понять, який можна легко підібрати без деякого практичного досвіду.

Примітка: Якщо заявник написати якийсь песудо-код, теж обов'язково, але ця відповідь вже прийнята.


Я хочу до цього додатись, щоб переконатися, що питання не є доменним для компанії, яка проводить співбесіду.
JBRWilkinson

1

Просто дайте їм базовий код, який потрібно зробити на дошці - наприклад, виконання пов'язаного списку, сортування чи щось подібне.

Ви можете судити про те, наскільки вони комфортні з їхньою мовою без допомоги компілятора, і ви можете судити про їх розумовий процес (особливо якщо вони ніколи такого не реалізовували - більшість "нових" програмістів ніколи не робили).


8
Я не погоджуюсь. Пов'язані списки та сортування - це досить добре відомі проблеми із консервами для загальної проблеми. Кожен, хто написав один, знає, як вони працюють, але більшість людей не заважають писати свої власні, тому що більшість мов уже добре справляються з цим.
Еван Плейс

Я згоден з Еваном. На практиці часто достатньо знати про ефективність різних алгоритмів сортування / пошуку та основних структур даних. Знати, як їх реалізувати, є акуратним, але зрештою марним. Крім того, у більшості завдань програмування важливіше знати, як вибрати правильну рамку / бібліотеку для завдання, ніж як реалізувати QuickSort у трьох рядках.
Алан Плюм

0

Поговоріть, дозвольте їй просуватися і вигулюватись по технічному та професійному маршруту та шукайте проникливі чи дурні коментарі по дорозі. Це дає вам 3/4 того, що вам потрібно від співбесіди, оцінки: навичок та особистості людей, загального інтелекту та грубої оцінки технічних навичок.

Використовуйте свої "інтерв'ю" для інтерв'ю як початкових тем та для того, щоб підтримувати розмову у відповідності до технічних тем - можливо, вам буде потрібно час від часу скидати бесіду (наприклад, виконувати вправу кодування), щоб адекватно досліджувати сфери, які викликають занепокоєння / інтерес.

Справжня хитрість цієї техніки полягає в тому, щоб переконатися, що вони все говорять, інакше ви ризикуєте сприятливо оцінити, оскільки вони змусили вас почувати себе розумними, слухаючи / погоджуючись з усім, що ви сказали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.