
Dmitry
25.01.2017
10:45:29
первая часть проверяет soft skills (они дофига важны) + разработку немного, вторая собственно разработку (тут всё по спольски)

Eugene
25.01.2017
10:46:03
Можно првоерить на собеседовании, любит ли кандидат делать code review и как реагирует на критику. Вот только редко кто свой код на собеседованиях показывает, либо нет open source проктов, либо прикрываются NDA
Болше всего меня выводит из себя, я уже писал, это код на бумажке. Ну вообще бессмысленная процедура. Даже когда у собеседуемого есть компьютер, и он набирает код в редакторе/интерпретаторе, он от волнения часто ошибается. Что уж говорить про код на бумажке. А потом ещё с важным видом заявляют: у вас код не выполнится/не скомпилируется, вот тут ошибка в синтаксисе. Тьфу.

Sasha
25.01.2017
10:51:20
Это в каких компаниях такое?

Google

Michael
25.01.2017
10:51:44

Dmitry
25.01.2017
10:52:13
вайтбординг был признан частью дев-сообщества как прямой антипаттерн интервью
если что)

Serge
25.01.2017
11:00:16
Это в каких компаниях такое?
Это я всегда так делаю:) На очень коротких задачках, правда. Количество ошибок по глупости показывает качество кода, которое мы получим от него в хотфиксах за два дня до релиза:)
Вообще, 6-8 строк написать, имхо, не должно быть проблемой
Это как, собеседовать сантехника и попросить показать как газовым ключом пользоваться, а он тебе "ну, надо же на трубе показывать, а то я ошибусь"...

Dmitry
25.01.2017
11:03:04
и он будет прав

Serge
25.01.2017
11:03:13

Dmitry
25.01.2017
11:04:03
что-то тебя на суровость пробивает последние дни!

Serge
25.01.2017
11:04:34
Вот у меня есть 5 кандидатов, из них 2 могут на бумажке писать код, а другие 3 считают это антипатерном

Dmitry
25.01.2017
11:05:01
брать надо тех, которые в разработке лучше
а не в бумажке
вот в чём идея назвать это антипаттерном, как и задачки

Google

Jonh
25.01.2017
11:05:29
Вроде как где-то писали, что нет исследований, подтверждающих, что умение решать подобные логические задачи (про шнуры, например) как-то коррелирует с умением решать технические и инженерные задачи, разрабатывать архитектуру, алгоритмы и т. д. То есть, ценность таких задач не доказана, пока что они могут помочь почесать ЧСВ спрашивающего и отвечающего, ну или наоборот, снизить самооценку отвечающего. :)
это статистика с технических собеседований гугла

Serge
25.01.2017
11:05:51

Dmitry
25.01.2017
11:06:16

Eugene
25.01.2017
11:06:36
Это часть разработки
Я часто пользуюсь бумажкой, но не для написания кода на ней. Вот правда, куча тетрадок исписано, разрисовано, но это же не код

Jonh
25.01.2017
11:06:43

Dmitry
25.01.2017
11:06:49

Serge
25.01.2017
11:07:29
Сказать надо брать того, кто лучше в разработке - это ни о чём. Это цель, очевидная. А как её достичь?

Eugene
25.01.2017
11:08:36

Serge
25.01.2017
11:08:50
Потом опять же, есть ещё soft skills.
Кем надо быть, чтобы неправильно написать for на бумажке?

Eugene
25.01.2017
11:09:33
Тем, кто никогда не писал for на бумажке?

Dmitry
25.01.2017
11:09:59
смотри, идея простая: мы ищем человека делать X, значит и проверять надо умеет ли он делать X

Serge
25.01.2017
11:10:56

Dmitry
25.01.2017
11:10:58
а не проверять умеет ли он Y

Serge
25.01.2017
11:11:43

Eugene
25.01.2017
11:11:49

Google

Dmitry
25.01.2017
11:12:06
это заказная разработка, там не бывает без стресса )

Serge
25.01.2017
11:12:29

Jonh
25.01.2017
11:13:35
http://www.nytimes.com/2013/06/20/business/in-head-hunting-big-data-may-not-be-such-a-big-deal.html
"Years ago, we did a study to determine whether anyone at Google is particularly good at hiring. We looked at tens of thousands of interviews, and everyone who had done the interviews and what they scored the candidate, and how that person ultimately performed in their job. We found zero relationship. It’s a complete random mess, except for one guy who was highly predictive because he only interviewed people for a very specialized area, where he happened to be the world’s leading expert."

Dmitry
25.01.2017
11:14:44

Serge
25.01.2017
11:14:46
Это же нормальная ситуация, часть рабочего процесса: мы сели обсудить будущее решение. Пишутся куски кода, рисуются схемки. Прикидки всякие.
Здесь никто не настаивает на большем, чем чтобы тебя поняли. Но это именно модель ситуации, в которой я буду чаще общаться с человеком, а код в ide в наше время обезьяна может написать.
Меня чаще интересует логика.

Dmitry
25.01.2017
11:16:37
а ещё у тебя вот это https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BA%D0%BB%D1%8F%D1%82%D0%B8%D0%B5_%D0%B7%D0%BD%D0%B0%D0%BD%D0%B8%D1%8F

Serge
25.01.2017
11:17:15
У меня вот есть очень старая задачка, постоянно всякую фигню мне на неё пишут:) там никаких деревьев даже нет

Eugene
25.01.2017
11:17:25
Вот задача простая
Сделать из числа 86732 два числа 86 и 732

Serge
25.01.2017
11:17:52

Eugene
25.01.2017
11:18:22
Да, она как раз на понимание арифметических операций, деление по модулю и всё вот это

Serge
25.01.2017
11:18:36
Но это одна строка
Ну две
Для красоты:)

Dmitry
25.01.2017
11:19:50
я даже условие не понимаю
из любого пятизначного сделать поразрядно двузначное и трёхзначное?

Serge
25.01.2017
11:20:05

Eugene
25.01.2017
11:20:20
И это на практике используется кстати. Формируется номер билда из номера ревизии в скв

Google

Eugene
25.01.2017
11:20:51
Разбить 5-значное число на 2 части

Serge
25.01.2017
11:20:52
Чуть веселее, перевести минуты в часы:минуты

Eugene
25.01.2017
11:23:06
А если без str?

Serge
25.01.2017
11:23:18
:)

Alexey
25.01.2017
11:23:20
divmod(n, 1000)

Dmitry
25.01.2017
11:23:34
в дивмоды лучше не идти, больше шансов ошибиться

Admin
ERROR: S client not available

Dmitry
25.01.2017
11:24:10
а, вы про вторую уже

Eugene
25.01.2017
11:24:40
divmod(n, 1000)
Да, хорошо если кандидат знает про divmod. плюсик ему. Но можно попросить сделать руками то же самое в те же 2 строчки

Serge
25.01.2017
11:24:46

Dmitry
25.01.2017
11:25:38

Serge
25.01.2017
11:25:58

Dmitry
25.01.2017
11:26:39
в этом и опасность таких задачек, они от реальности оторваны

Eugene
25.01.2017
11:26:39
В задачах с временем тоже divmod часто используют. Но тут же главное, чтобы кандидат понимал, что такое divmod и как оно работает, суть деления по модулю ну и т.д.

Dmitry
25.01.2017
11:27:03
то же время, например, нельзя руками трогать - внутри либ по работе со временем куча своих хитростей и костылей, вроде той же leap second
Не, круто, если все всё помнят и делают лицо 'ну это мы только на интервью такое делаем', но тогда в чём опять же смысл это давать?

Google

Serge
25.01.2017
11:28:11
У нас вот был метод, который долго работал, профайлинг не показывал ничего вменяемого.
Я его переписал. 100 строк в меньше 20. Скорость на порядок улучшилась.
Это просто было 100 строк говнокода

Dmitry
25.01.2017
11:29:01
Так зато вы его первую версию написали тогда и попали в сроки

Serge
25.01.2017
11:29:46
И потом мы вспоминаем про диплом. Человек, закончивший нормальный технический ВУЗ, даже в России, никогда не будет числа в строки в такой задаче переводить.

Dmitry
25.01.2017
11:31:42
ну окей, тут баланс. Писать в good enough качестве

Serge
25.01.2017
11:32:07
И с системами счисления

Dmitry
25.01.2017
11:33:13
что-то я сомневаюсь что штука которая номера релиза проставляет требует алгоритмического перформанса

Serge
25.01.2017
11:33:27
Потому что, когда ты пишешь в раже вторую тысячу строк подряд, качество кода должно на подсознательном уровне контролироваться
Я когда вижу, что человек не думая пишет x*x вместо x**2, я просто отхожу в сторону и предвкушаю приятный code review
Видимо надо модифицировать формулу расчета дня недели для заданной даты.

GNU/Docker
25.01.2017
11:39:03
4 символа вместо 3
А в чём соль?
Я понимаю если x*x*x

Dmitry
25.01.2017
11:39:49
соль в суровости
разработка не для слабых!

Serge
25.01.2017
11:40:02
А в чём соль?
Нет смысла просить интерпретатор придумать умножение один раз, если его можно сразу написать

GNU/Docker
25.01.2017
11:40:26
Что?

Eugene
25.01.2017
11:40:39
x*x - тяжёлое наследие Си. Никто не будет в Си вызывать pow для квадрата числа