Cо стороны соискателя (aka разработчик Петя)
Если Петя находится в начале карьеры разработчика — то ему делать тестовые задания будет скорей всего интересно и он готов потратить на это личное время. Для разработчиков уровня Senior и выше подобные задания вызывают уже скуку, тем более не оплачиваемую. А так как обычно разработчик обходит не одну компанию, то количество впустую потраченного времени на тестовые задания может составлять уже дни и даже недели!
Бывают ли действительно клевые задачи? Бывают но очень редко, может быть одна на 100. В основном, все стандартно и не интересно — считать откуда-то данные, что-то с ними сделать, записать куда-то данные (файл/база/сокет..). Или реализовать на месте какой-то известный алгоритм. Почему это так? Да потому что, в большинстве случаев нанимателю нужно просто проредить стопку CV на его рабочему столе, об этом я расскажу подробней дальше.
Cо стороны нанимателя (aka тимлид Вася)
У Васи есть две дюжины вполне подходящих резюме, среди которых надо выбрать достойного кандидата в свою команду. Собеседовать все две дюжины Васе лень, да и незачем, и он решает немного профильтровать очередь и выбрать наиболее достойных. Конечно, Вася знает, что можно пойти путем, как в известном анекдоте:
Старый:
— Ну что, я закончил. Пошли домой?
Молодой, посматривая на пачку необработанных резюме:
— Да у меня ещё работы уйма.
Старый подходит, делит пачку на две, одну выбрасывает в урну. Молодой:
— Как?!
Старый:
— Им не повезло. А зачем нам неудачники?
Но Вася решает пойти по другому распространенному пути — выдать тестовое задание и рассылает его всем кандидатам. И вот далее начинается цирк с конями, который показывает всю абсурдность тестовых заданий.
Собеседующий
Один из худших вариантов для обеих сторон, если тимлид по какой-то причине (занят, не хватает компетенций, тупо лень, пошел пообедать) вместо себя на собеседование отправляет одного члена своей команды и по его отзыву принимает решение. Если так происходит, то тимлид, скорей всего, занимает не свое место в компании.
Время выполнения и объем задания
Я встречал как задания на полчаса, так и на неделю, в среднем, большинство нанимателей понимает, что негоже требовать у кандидата времени больше, чем несколько часов.
Качество кода и оформления
Тут наниматели пытаются реализовать в постановке задач то, чего они лишены в реальной работе — код с комментариями, покрыт unit-тестами, обязательно с code style, а бывали случаи, когда требовали краткий tutorial по программе. В большинстве же случаев в реальной работе совсем другие требования, гораздо прозаичней.
Формат задания
Можно встретить как стандартные задания на дом, так и такие извращения, как:
- написать решение на доске(этим обычно грешат западные компании)
- написать решение в notepad на ноуте компании
- написать решение удаленно в режиме pair programming
Что Вася видит на выходе?
Часть кандидатов отваливается просто потому, что им лень работать бесплатно, части не нравится само задание, часть не вкуривает до конца все условия, заботливо Васей прописанные, и делают немного не то. В итоге очередь из претендентов действительно прореживается, но совсем не по тем принципам, которые ожидал Вася. Со временем, Вася видит, что качество выполненного тестового задания и эффективность работы нового разработчика в команде слабо кореллируют и уже для следующих кандадатов не так настаивает на выполнении тестового задания, переходя на следующий уровень оценки разработчика.
Что бы хотел видеть Вася?
В своих розовых мечтах Вася видит, что кандидат с радостью и энтузиазмом начнет работу над тестовым заданием и выдаст свой лучший код ever, покрытый тестами по самое немогу, с грамотной (но не излишне сложной) структурой и щедро сдобренный толковыми комментариями.
Что дают тестовые задания в реальности?
Разрыв между тестовым заданием и реальной работой настолько велик, что проецировать результат выполнения небольшого задания на 3 часа на долгую работу разработчика было бы весьма наивно. Очень много остается за кадром (дебаггинг, поиск и устранение ошибок, рефакторинг, архитектура проекта сложнее Hello World, взаимодействие с коллегами), что нивелирует практически к нулю какую-то пользу от таких заданий. Примерно с тем же эффектом можно просто подкинуть монетку и быстро решить, подходит кандидат или нет.
Хорош нагонять, автор, наверное в крутых конторах меньше бреда с заданиями
Хорошо известен случай, когда автора пакетного менеджера Homebrew не взяли в Google, лишь по той причине, что на 7-м интервью он не смог на доске написать алгоритм, как инвертировать бинарное дерево. Сколько крутых парней компании теряют от таких невнятных заданий — можно только догадываться.
Что, тестовые задания совсем не нужны?
Находясь на месте Васи, я иногда давал тестовые задания для того, чтобы было что обсудить после его выполнения. Но только, если сам разработчик не против его выполнить. Это хорошо подходит для Junior и Middle-разработчиков, если у них нет кода, который они могут продемонстрировать. Senior'ов и выше небольшим тестовым заданием уже не оценить, тут нужен другой подход.
Могут ли тестовые задания действительно приносить пользу обоим сторонам?
Учитывая минусы традиционных тестовых заданий, некоторые компании стали применять подход, более приближенный к рабочим условиям. Кандидат получает реальное задание из текущего списка задач (backlog) компании, которое может выполняться от одного дня до пары недель и оплачивается по договорной ставке. Таким образом, кандидат получает возможность поработать в режиме trial с новой командой и при этом заработать деньги за потраченное время. Это позволяет оценить кандидата более точно в условиях, приближенных к боевым, но, к сожалению, это могут позволить себе немногие компании.
Дотошный читатель спросит — «ОК, автор, если не тестовое задание, то как еще можно отобрать нужного сеньора?». А это уже тема для отдельной статьи, следите за обновлениями!
Комментарии (159)
JustDont
28.09.2019 12:12Тестовые задания вполне применимы, если они а) хорошо согласуются с предстоящей кандидату работой; б) грамотно составлены и не требуют никаких уточнений, особенно если речь идёт про тестовое задание до собеседования.
Во-первых, предварительное тестовое задание нетривиального объема (т.е. не на 5-10 минут кодинга или гугления) неплохо фильтрует тех, кто идёт на собеседование в режиме «я только спросить», а работа ему на самом деле особо не сдалась. Во-вторых, от прошедших предварительное задание получаем код, на который потом можно посмотреть и пообсуждать (нужно, конечно, еще обязательно убедиться, что этот код кандидат написал сам лично, но это сделать довольно таки несложно).
Но если задание составлено плохо, если оно слишком большое или ТЗ мутное, если, наконец, ТЗ нифига не согласуется с вакансией или образом конторы (я как-то раз получил ТЗ вида «поправь ошибки в коде» от какой-то стильной, модной, молодёжной конторы, которое было написано кодом вида «писал в метро на коленке в notepad.exe, попутно занимаясь более важными вещами») — то такое задание будет фильтровать кандидатов нежелательным для конторы образом. С другой стороны, мне как кандидату это экономит время — неадекват в тестовом задании видно куда лучше, чем в описании вакансии или на публичных ресурсах конторы.DoubleW
29.09.2019 10:03Во-первых, предварительное тестовое задание нетривиального объема (т.е. не на 5-10 минут кодинга или гугления) неплохо фильтрует тех, кто идёт на собеседование в режиме «я только спросить», а работа ему на самом деле особо не сдалась.
Такие кстати могут быть более интересными кандидатами — поскольку уже сидят на не менее интересном месте, и не спеша ищут альтернативу.JustDont
29.09.2019 12:43+1Такие кстати могут быть более интересными кандидатами — поскольку уже сидят на не менее интересном месте, и не спеша ищут альтернативу.
Более интересными для кого? Для них самих?
От того, что у них есть работа и они могут спокойно сидеть и ждать чудо-вакансии — они становятся лучшими разработчиками по сравнению с теми, у кого таки есть определенные временные рамки по поиску работы (а то жрать нечего будет)?VolCh
29.09.2019 14:13Ну при прочих равных на просьбу двух кандидатов не тянуть с решением, я бы не тянул с решением по тому, кто скажет "а то жрать нечего скоро будет" Отрицательное бы озвучил.
JustDont
30.09.2019 09:08В нынешнюю эпоху «не тянуть с решением» озвучивает практически исключительно работодатель. Кандидат же просто пойдет пособеседуется еще в десяток-другой контор. Тысячи их. Нехватка кадров в ИТ никуда не девается.
VolCh
30.09.2019 12:15+1Ну я как кандидат такое озвучиваю, когда есть на руках хороший оффер, по которому уже договорился дать решение к определенной дате, а собеседуюсь ещё в одну компанию — вдруг у них оффер ещё лучше будет. Просто предупреждаю, что если оффер будет после этой определнной даты, то с вероятностью 99% приму уже другой.
DoubleW
30.09.2019 22:44я бы не тянул с решением по тому, кто скажет «а то жрать нечего скоро будет»
А второй и сам торопить не будет же :)
DoubleW
30.09.2019 22:46Более интересными для кого? Для них самих?
Они могут больше повыбирать из «интереса», чем те кого припекает «нужда».
То есть как разработчик он может быть такой же, но думает что ему в этой команде будет «душевней».
А кого припекает может молчит и думает про вас «ну и бардак у них тут, но ипотеку платить надо».
ustasby
28.09.2019 12:45-1Вы даже не представляете сколько можно отсеять безобидным тестовым заданием (или похожем)
$a = [1, 2, 3, 4];
удалите второе значение.
Последний кандидат, с 2 годами опыта, в цикле нашел значение и создал новый массив без него, плакали все. Самое печальное что энчар таких по 20 человек в день готов приглашать на собеседование, некоторые себя мидл+ либо сеньерами называют.JordanoBruno Автор
28.09.2019 12:53-12 года — это джун, ему простительно. Тем не менее, проблему он решил, а это значит, что товарищ не безнадежен. Джун — как мягкий пластилин, из него можно вылепить вполне годную боевую единицу, при желании.
ustasby
28.09.2019 13:42+1Берите себе, лепите. Из таких уже ничего не слепить, пусть картриджи дальше заправляют.
kdmitrii
28.09.2019 12:58+1Что-то я не понял. Удалить элемент "2" из массива состоящего из 4 чисел? В чем представленное решение не найс?
jahr
28.09.2019 13:47И какой же правильный ответ?)
ustasby
28.09.2019 14:00Очевидный — unset($a[1]);
Amokmorg
28.09.2019 15:36т.е. вы не решение хотели, а проверить память?
SADKO
28.09.2019 16:22Базовое владение языком, не?
К тому же, может именно оно требуется.
В тестах на соображалку, можно предложить соискателю использовать любой известный ему язык...
ustasby
28.09.2019 19:24-2Это не память, это минимальная база новичка через неделю, используется сплошь и рядом. Именно проверка на базовые вещи сразу исключает больше половины соискателей, остальных подводит логика. В итоге остается 1 из 10 с кем можно и посидеть. Вот такая действительность, сам думал что народу много толкового, пока не стал команду набирать.
maximw
28.09.2019 16:41А почему не unset($a[2]);? Второй же удаляем, а нумерация с нулевого.
Правильно было бы спросить, а второй это какой? Что делать с ключами, должна ли сохраниться последовательность?ustasby
28.09.2019 21:00-7Вы точно разработкой занимаетесь? Наверное я про таких мидлов и пишу.
maximw
28.09.2019 21:42+3Если вам правда интересно, гугл в помощь. Мои имя и фамилия тут указаны настоящие, можно линкедины да гитхабы всякие найти.
Если это был сарказм и попытка "уколоть", то у вас не получилось.
ustasby
28.09.2019 22:09-1Тогда прочитайте что вы там написали. Особенно про ключи.
maximw
28.09.2019 23:19+6Что конкретно у вас вызывает сомнения?
С ключами все довольно ясно. Т.к. при удалении элемента unset'ом ключи массива не меняются, получается не массив, а словарь Это разные структуры, хотя в PHP это один тип данных. Проиллюстрирую разницу:
Вопрос про ключи и заключался в том, что вам нужно на выходе — массив или словарь?$a = [1,2,3,4]; echo json_encode($a); //[1,2,3,4] unset($a[1]); echo json_encode($a); //{"0":1,"2":3,"3":4}
JordanoBruno Автор
29.09.2019 00:56+4На самом деле, unset — не самое лучшее решение для массивов, как Вы верно заметили.
В данном случае более корректно будет:
array_splice($a, 1, 1);
Это, кстати, хороший пример плохого тестового задания для нормального разработчика, разве что подколоть очередного «php-эксперта».maximw
29.09.2019 01:14+3Я не говорил, что unset хорошее или плохое решение. Я лишь сказал, что надо уточнить задачу, хоть она и кажется предельно простой. Поэтому лучшим ответом на задачу будут встречные вопросы. Что, кстати, само по себе является неплохим показателем зрелости разработчика, как мне кажется.
ustasby
28.09.2019 22:48Бессмысленно спорить и вообще, извиняюсь если задел. 100 раз корил себя что бы не писать больше на хабре, надо в очередной раз выпилится.
Dolios
29.09.2019 10:24+8Конечно, бессмысленно. Вы сели в лужу, о чем вам популярно объяснил ваш оппонент:
https://habr.com/ru/post/469099/#comment_20685681
По вашей постановке не понятно, чтоименно вы хотите получить в итогу и наводящие вопросы от кандидата обязательны. Если вы не хотите этих вопросов, учитесь формулировать задачу так, чтобы не оставалось места для двоякого толкования.
А теперь у вас просто не хватает смелости признать свою ошибку и вы включили режим Новодворской. Тоже, кстати, звоночек. Я бы к такому руководителю работать не пошел.
wadeg
01.10.2019 04:04и вы включили режим Новодворской
Вы хоть догадываетесь, ну или вам говорили и вы запомнили, что это абсолютное, запредельное, просто невозможное скотство?
mamento
28.09.2019 18:53+3Ну вот я бы тоже так не ответил наверное, просто потому что мне бы не пришло в голову что у меня проверяют стандартную библиотеку… вероятно кандидат подумал что проверяют возможность написать алгоритм. Что и показывает не состоятельность таких заданий, не факт что кандидат был плохой
avost
28.09.2019 19:52не пришло в голову что у меня проверяют стандартную библиотеку… вероятно кандидат подумал что проверяют возможность написать алгоритм
Эээээ? Так ведь ни то и ни другое. Проверяют способность решать задачи. А в случае сомнения в правильности понимания условий задачи — способность задавать уточняющие вопросы. Я бы на вашем месте занялся прокачкой обоих этих скилов. По-моему, они у вас хромают :)
AlexTest
28.09.2019 17:42+9Последний кандидат, с 2 годами опыта, в цикле нашел значение и создал новый массив без него, плакали все.
А где в условии написано, что исходный массив можно менять? Человек вам сделал универсальное решение в котором есть и исходный массив и новый, без второго элемента — что в этом плохого?DoubleW
28.09.2019 21:01+2Человек вам сделал универсальное решение в котором есть и исходный массив и новый, без второго элемента — что в этом плохого?
Присоединюсь к этому мнению — возможно человек решил что не может же быть тестовое из одной строки и написал сам решение.
У меня один раз было тестовое: расшарить свой рабочий стол и в текстовом редакторе(не IDE) распахнутом на весь экран написать переворот строки.
Собственно суть таких заданий это посмотреть как человек общается и как думает.Lissov
28.09.2019 23:15+1Присоединюсь тоже — человек с опытом собеседований понимает, что в 95% случаев с таким вопросом от него ждут собственную реализацию а не вызов библиотечного метода. И не расчитывать на 5% — вполне нормально.
DoubleW
29.09.2019 00:15И не расчитывать на 5% — вполне нормально.
ну по хорошему пообщаться надо — но такой шанс могли и не дать, HRша могла молчать дать ТЗ и сказать «вот как сделаете тогда и приходите поговорим».
YemSalat
30.09.2019 11:55+2Вы даже не представляете сколько можно отсеять безобидным тестовым заданием (или похожем)
$a = [1, 2, 3, 4];
удалите второе значение.
Я не особо знаю php, но насколько я понимаю, предложенное вами решение не удаляет элемент из массива, а присваивает ему значение «нe определено»
По логике «удалить» элемент из массива — значит что в итоге в массиве должно стать на 1 элемент меньше. Т.е. чел который фильтровал массив по идее делал все правильно (хотя возможно не оптимально)Lissov
30.09.2019 12:36Интересное и частое явление на собеседовании — кандидат отвечает правильнее интервьюера. И далее весьма интересно для кандидата посмотреть на реакцию.
У меня был даже случай, когда из 3-х интервьюеров один был категорически не согласен со мной, один полностью согласен, и один пытался понять кто из нас прав :)YemSalat
30.09.2019 13:08Я один раз проводил собеседование и спустя какое-то время разговор зашел на тему в которой я сам не очень хорошо разбирался. В итоге вместе с кандидатом полезли гуглить :)
MaxVetrov
30.09.2019 13:47А там вроде написано: удалить значение(value), не элемент :)
На что только люди не пойдут чтобы отсев сделать, а еще говорят нехватка кадров.
Вообще подобную задачу можно за 2 минуты найти либо в инете, либо в справочнике по php.YemSalat
30.09.2019 14:41Мне просто любопытно — насколько часто в ежедневной разработке требуется «удалять значение» в списке :)
Нe элемент, а именно «значение»
Ну и насколько я знаю — в php нету понятия декларированной переменной без значения. Хреновый у них фильтр кандидатов по итогу.sergyx
30.09.2019 15:30Вообще-то unset($a[1]) именно удалит элемент массива, а не присвоит ему значение «не определено».
YemSalat
30.09.2019 16:21Возможно, как уже выше говорил — в php не очень разбираюсь.
Тут вопрос скорее о том, что считать удалением.
При использовании unset получается что-то вроде: `{0: 1, 2: 3, 3: 4}`
Это вообще применимый случай? Теперь $a[1] говорит что такого значения нету. В таком случае это не «массив», а скорее словарь.
Логичнее, на мой взгляд называть «удалением из массива» вот такой результат:
`{0: 1, 1: 3, 2: 4}`
MaxVetrov
30.09.2019 16:30Дырку в массиве сделает, индексы у остальных элементов останутся теми же. array_splice — поставит новые индексы для элементов после удаляемого.
sergyx
30.09.2019 16:52Дырку в массиве сделает
Это понятно, но это уже другая история)MaxVetrov
30.09.2019 18:54Проверил с ссылкой, элемент не удаляется, удаляется запись о том, что элемент присутствует в массиве. Ну да, это уже частности.
$a = [1,2,3,4]; $b = &$a[1]; $b = 99; print_r($a); $a[1] = 100; unset($a[1]); print_r($a); print($b . "\n");
OutputArray
(
[0] => 1
[1] => 99
[2] => 3
[3] => 4
)
Array
(
[0] => 1
[2] => 3
[3] => 4
)
100
knagaev
01.10.2019 10:58А если массив должен быть immutable?
ustasby
01.10.2019 11:10-1Тут нечего обсуждать, это один из 10 пунктов на знание языка, базовое, без каких либо условий. Идиоты пусть пополняют кворки.
knagaev
01.10.2019 11:53Лучше наверно давать не абстрактное задание, а с предметной областью, чтобы можно было предположить логику выполнения этой операции.
Например, это массив — это пакет обрабатываемых заданий, нужно удалить второе задание из него.
P.S. Вы используете несколько радикальную терминологию.
Всё в мире относительно, и не стоит называть людей идиотами, если они вас не понимают.
sshikov
28.09.2019 12:57>У Васи есть две дюжины вполне подходящих резюме,
Где вы такое находите? В моей практике две дюжины — это в лучшем случае студенты, которые ничего не умеют, и это видно по их резюме сразу. И можно сразу предсказать, что после собеседования в лучшем случае останется один.
А чтобы было две дюжины на позицию синьора — я такого вообще никогда не наблюдал, для определенности — за последние 15 лет например. Соответственно, все выводы про тестовые задания никуда не годятся, потому что фильтровать некого.JordanoBruno Автор
28.09.2019 13:07Две дюжины сеньорских резюме — это даже мало для известной компании или компании с хорошим бюджетом для позиции. Это все для популярных технологий, если искать какого-нибудь редкого, типа erlang или embedded или в условном Мухосранске — там да, выбор будет скуден.
sshikov
28.09.2019 13:17Ну видимо мое направление Java разработка достаточно редкое для Москвы. Я никогда сам не видел даже 10 «подходящих» резюме за раз — обычно присылают кандидатов по одному, раз в месяц в лучшем случае. А позиция с вилкой «до 250 на руки» как висела с весны, так и висит…
JordanoBruno Автор
28.09.2019 13:32Джавистов в Москве — пруд пруди, причем весьма грамотных, но 250 — не так много для сеньора. Сбертех +20% премии к рынку давал в свое время, чтоб укомплектовать команды.
sshikov
28.09.2019 14:20Ну, я лишь пересказываю свой опыт. Если вспомнить те же последние 15 лет, то я бы сказал, что я просто не смогу вспомнить две дюжины таких людей, которых можно без всякой натяжки считать синьорами, и которых я бы взял к себе в команду вообще без раздумий. Если у вас они бегают вокруг толпами — это очевидно какая-то другая вселенная. Какая — вопрос интересный. Может у вас джависты — это андроид разработка?
JordanoBruno Автор
28.09.2019 17:10+1Чтоб синьоры шли — нужно их звать хорошо, они — люди разборчивые.
Может у вас джависты — это андроид разработка?
Да не, самые обычые — широкого профиля бэкэндщики-джависты.sshikov
28.09.2019 19:25>Чтоб синьоры шли — нужно их звать хорошо, они — люди разборчивые.
Вот это несомненно.
Static_electro
28.09.2019 13:23Мои три копейки — тестовые задания нужны, чтоб не звать на очные собеседования тех, кто явно не подходит. Причем, онлайн теста на знание языка с вариантами ответов хватает за глаза, не нужно ни интересных задач, ни проекта на 8 часов неоплачиваемого времени.
Предвижу, что сейчас прокомментируют в духе "в таких тестах все варианты кривые". Да, часто. Но 100% правильных ответов там и не надо — нанимать все равно по результатам интервью будут, а не теста.
А без этого теста к тебе приходят синьоры с опытом по семь лет, которые всем хороши, только программировать не умеют :-(JordanoBruno Автор
28.09.2019 13:29онлайн теста на знание языка с вариантами ответов хватает за глаза
Вам может и хватает, но многие конторы совершенно игнорируют даже сертификаты OCP, что уж говорить про онлайн-тесты.Static_electro
28.09.2019 13:35Ну, я и сказал, что это мои три копейки. Я не знаю, как там сертификатами, признаю. У меня ни одного нет — те конторы, куда я пытался устроиться и/или устраивался, это не интересовало, их интересовало могу я писать код так, как говорю, или не могу.
GrieverGraver
28.09.2019 13:27Смысл дать тестовое задание на джуна/мидла как минимум в том, что сразу отваливаются кандидаты, которые не могут его выполнить и затупки, которые не могут написать код в соответствии с тз.
VladVR
28.09.2019 15:11Интересно, про автора Homebrew, может он не прошел собеседование, и это его мотивировало изучить тему и впоследствии применить знания? Вроде как пакетные менеджеры нуждаются в имплементации дерева в своей работе.
SADKO
28.09.2019 16:32Может у него просто настроения не было.
Одно дело когда ты в заранее определённое время решаешь заранее определённую задачу. И совсем другое когда обстановка не рабочая и soft skills activated.
YemSalat
30.09.2019 17:58+1Чтобы сделать что-то популярное, совсем не обязательно иметь хорошую архитектуру. Думаю куча примеров из жизни подтверждает это высказывание.
user_man
28.09.2019 18:53Нужны не тестовые задания, а вменяемая технология разработки ПО, включающая вменяемый персонал, который и будет оценивать вменяемость кандидата (вменяемо оценивать).
Да, нетривиально, но другие варианты неэффективны.
RouR
28.09.2019 19:08Кандидат получает реальное задание из текущего списка задач (backlog) компании, которое может выполняться от одного дня до пары недель и оплачивается по договорной ставке. Таким образом, кандидат получает возможность поработать в режиме trial с новой командой и при этом заработать деньги за потраченное время.
А кандидат должен на слово поверить что оплатят, или будет какой-то договор? А если есть договор, то чем это отличается от испытательного срока по трудовому договору?JordanoBruno Автор
28.09.2019 19:17А кандидат должен на слово поверить что оплатят, или будет какой-то договор?
Это может быть договор, либо сделка через фриланс-биржу.
А если есть договор, то чем это отличается от испытательного срока по трудовому договору?
Очень многим, Вы ни разу на фрилансе или по контракту не работали?
Dolios
28.09.2019 19:45-2Хорошо известен случай, когда автора пакетного менеджера Homebrew не взяли в Google, лишь по той причине, что на 7-м интервью он не смог на доске написать алгоритм, как инвертировать бинарное дерево.
А меня одного удивило, что на 7(!) интервью в Google человека попросили инвертировать бинарное дерево (элементарная задача для джуна)? И что программист не смог это сделать? Задача рекурсией (хоть это и не оптимально) решается студентом за 10 минут, даже если этот студент до этого ни разу не слышал вообще ничего про двоичные деревья и 5 минут из этих 10 потратит на осознание того, что это такое.
Имхо, в этой ситуации люди что-то не договаривают.
DFooz
28.09.2019 20:06+1ну если всё элементарно в этом мире, чего ты ещё премию Тьюринга не получил?
Dolios
28.09.2019 21:01+1ну если всё элементарно в этом мире
Поэтично. Но где ты это вычитал в моих комментариях?
Пускай тебе будет стыдно.
https://leetcode.com/problems/invert-binary-tree/DFooz
28.09.2019 21:41+4вот это
элементарная задача для джуна. решается студентом за 10 минут, даже если этот студент до этого ни разу не слышал вообще ничего про двоичные деревья
бла-бла-бла. Отучайся говорить «просто», если для тебя это просто. У всех разный опыт, каждодневная практика и тп.
ЗЫ: не уточнишь, за что мне должно быть стыдно?Dolios
28.09.2019 21:56Это не для меня просто, это в принципе просто. Рекурсия входит в программу обучения и любой второкурсник, который учится сам, имел с ней дело. Не важно, какой там у кого опыт и каждодневная практика, мы про базовую вещь говорим. Это не задача на знание какого-либо алгоритма, это задача на профпригодность, как по мне.
А стыдно тебе должно быть потому, что ты споришь, не вникнув, о чем, собственно, речь. Поэтому я тебе и дал ссылку на литкод с этим заданием, чтобы ты ознакомился, как ставят такие задачи. Если бы мне сказали: "сделайте инверсию двоичного дерева", — я бы тоже охренел, т.к. не понял бы, чего от меня хотят. Но ты сходи по ссылке и посмотри, как именно формулируются такого рода задачи. Если после такой постановки программист, претендующий на синьора, не сможет задачу решить в принципе, с ним явно что-то не так. Да и гугл не стал бы на 7 интервью такие вопросы задавать.
DoubleW
29.09.2019 00:17-2Да и гугл не стал бы на 7 интервью такие вопросы задавать.
В крупных компаниях все интервью независимые, кроме пре-скрининга и пост интервью с менеджером «за жизнь и планы».tamakio
29.09.2019 05:32+1Нет. Обычно это решается на совещании до интервью или рекрутер описывает какую часть знаний надо проверить.
Говорю на собственном опыте и опыте друзей в роли интервьюера. И как соискатель. Даже видна разница и усложнение заданий. У нас если на первых двух онсайт сессиях кандидат плохо показывает себя — да остальных отменят.
Не знаю отменяют ли в Амазоне, но там нарастает сложность. Первое задание будет на простой алгоритм и умение писать код. Потом дизайн на уровне приложения, потом взаимодействие сервисов.
Но есть и исключения. Когда-то в VMware, второй интервьюер задал проблему, а я даже не стёр её с доски
YemSalat
30.09.2019 12:11+1бла-бла-бла. Отучайся говорить «просто», если для тебя это просто. У всех разный опыт, каждодневная практика и тп.
Блин, сорян, но в «разворачивании бинарного дерева» действительно все настолько просто, что ваш «аргумент» звучит кхм…
Вот вам пример:
foo = { left: 1, right: 2 }
Задача: поменяйте местами значения left и right.
Вы считаете это действительно просто только для каких-то избранных гениев алгоритмизации?
Мне кажется тут скорее проблема в том что у многих людей само выражение «бинарное дерево» вызывает диссонанс и кажется чем-то совсем академическим и нe применимым нa практике.
SbWereWolf
28.09.2019 20:44+1тестовое задание это именно повод поговорить. И это действительно способ отсечь тех кто «просто спросить».
И конечно тестовые задания делаются по принципу — что быстрей то и сделал, и если ты получил дооолгое тестовое, то ты его дооолго не делаешь, и скорей всего работу найдёшь раньше чем до выполнения этого задания дойдёт очередь.
Мне как работодателю, всегда интересно посмотреть на код будущего сотрудника, за 2-4 часа можно написать достаточно кода что бы показать кто ты есть, поэтому чем то громоздким ни когда не гружу.
Тестовых за свою жизнь я сделал не мало, из моих 40 репозиториев на гитхабе, только 5 это какие то проекты, остальное — тестовые.
Тестовые попадаются интересные, одно из 5-ти не чаще, и как правило эти тестовые укладываются в один рабочий день, а чаще в пару часов.
Например написать сложение столбиком двух чисел произвольной размерности ( одно число это 40+ десятичных знаков), тут мы видим и как человек с валидацией работает и как человек делает декомпозицию и делает ли он её вообще, как называет переменные и как оформляет код.
Хорошее задание, возьмите себе на заметку.JordanoBruno Автор
28.09.2019 23:18Хорошее задание, возьмите себе на заметку.
Хорошее для кого, для Вас? Вы уверены, что все кандидаты разделяют Ваше мнение? Да что там все, хотя бы половина?DoubleW
29.09.2019 00:20+1Да что там все, хотя бы половина?
Как по мне кстати то действительно хорошее задание, лучше заданий вида сделать одностраничник на базе фреймворка X и технологии Y. (кроме горящих вакансий где нужен именно такой узкий человек).
SbWereWolf
29.09.2019 03:33что в нём плохого?
задание хорошее для работодателя если он хочет оценить соискателя с минимальными затратами времени для соискателя. Если у вас другое мнение, то я вам своё не навязывал.
billyevans
29.09.2019 08:09+1Вообще я тоже думал, что задания отнимают время и их делать западло несколько в свободное время. Но в реальности выходит, что на подготовку к обычному интервью ты будешь решать идиотские задачки и тратить время абсолютно в пустую ничему не учась, кроме странного скила прохождения интервью.
А решая задачу, можно изучить новый язык-технологию. То есть время реально потратишь изучая что-то новое и потенциально полезное для работы и кругозора.0xd34df00d
29.09.2019 16:21+1Но в реальности выходит, что на подготовку к обычному интервью ты будешь решать идиотские задачки и тратить время абсолютно в пустую ничему не учась, кроме странного скила прохождения интервью.
Эм, а зачем к интервью готовиться и что-то там решать?
billyevans
30.09.2019 05:55Ну тк это совершенно отдельный скил, который вообще не используется на работе. Уметь за 40-50 минут решить какую-то задачку и писать код на доске/бумажке(очень редко бывает на лэптопе) это не то, что делаешь на работе. Я, несмотря, на то, что провожу интервью так сходу не пройду интервью в гугл, фб, убер или еще куда в подобное место, даже про phone screen не уверен. Как думаю и большинство людей, кто-то может бесспорно, да.
Именно поэтому я в реальности и не готовлюсь ;-) Тк считаю, что если меня будут оценивать по такому странному навыку — то и нахер работать в таких местах.
ameli_anna_kate
28.09.2019 22:57+1Несколько раз использовала тестовые задания как пример кода для других работодателей.
Мне не нравится тестовое, если его выполнение займет от четырех часов и больше. Скорее всего сейчас не буду выполнять такое, если это не какая-то крупная компания, в которую сильно хочу.
Нормальные тестовые, на мой взгляд, когда выполнение займет от сорока минут до двух часов. Несколько раз попадались ни чего так задания, в основном задачи спорограммировать, без вёрстки.DoubleW
29.09.2019 00:23Мне не нравится тестовое, если его выполнение займет от четырех часов и больше
Да имхо психологический предел это не более человеко-дня, дальше уже от желания работы именно в этой компании. Да и были бы задачки интересные, а то обычно как сказали выше очередной туду жсон парсер в UI маппер.
Что характерно насколько я знаю в крупных компаниях тестовых нет, то бишь условный гугл не переломится, и может позволить себе пересмотреть и пообщаться со всеми кандидатами, а ООО ПупкинРоссельМашУгорск обязательно попросит тестовое.
Да блин дайте мне с технарями поговорить 15 минут, может я к вам и не захочу после разговора.Lissov
29.09.2019 00:34+1условный гугл не переломится, и может позволить себе пересмотреть и пообщаться со всеми кандидатами
Не-условный Амазон начинает с тестового на полтора часа. А уже потом будет личное общение с технарями.
дайте мне с технарями поговорить 15 минут
и вот это тоже не получится, потому что тот-же Амазон пригласит поговорить с технарями куда-нибудь в другой город часов на 5, и там «вставать и уходить» после 15 минут глупо.
В одном я с Вами совершенно согласен — для условных Гугла и Амазона это адекватно по очевидным причинам, а «ПупкинРоссельМашУгорску» так делать не стоит.DoubleW
29.09.2019 00:36+1и там «вставать и уходить» после 15 минут глупо.
Глупо сидеть 5 часов если через 15 минут уже совершенно точно понятно что «дела не будет».
Другой вопрос, что таким уходом можно получить плохую репутацию.AlexZaharow
30.09.2019 08:56таким уходом можно получить плохую репутацию
Если вы вежливо попрощаетесь, то ничего не испортится.
Я однажды был на собеседовании, которое проходило прям в рабочей зоне. Во время тестового задания послушал что происходит вот прям вокруг и понял для себя, что не хочу тут работать. Ну не продолжать же делать вид, что меня всё устраивает? В какой-то момент обратился к собеседующему, сказал, что не хочу тут работать, поблагодарил, что уделили мне внимание, извинился, что отнял время и ушёл. Ничего не испортилось. Позже нашёл приличную работу. Всё норм.
Я думаю, что честность — это очень важное качество. Я не имею в виду честность перед третьими лицами. Очень важно не обманывать самого себя. Это моя жизнь, моя зона комфорта и поэтому я тоже имею полное право отказаться работать в компании по моим личным причинам, которые я не обязан озвучивать.
Lissov
30.09.2019 23:09Я один раз уже до собеседования понимал, что «дела не будет». О чём аккуратно намекнул сразу. Но если фирма оплатила перелёт и 4 дня проживания, и предпочла продолжить разговор в надежде меня убедить — с моей стороны честно напрячься и предоставить им шанс.
И это был не Гугла и не Амазон, а для них тем более актуально — если уж приехал на собеседование на 5 часов с разными технарями, то даже если конкретный проект не подходит, там много разного — стоит проявить себя и потом обсуждать другие варианты.
Shadow_DarK
28.09.2019 23:15-1есть что нибудь актуально про собеседования backend developer? тут вроде вода)
aidarchikable
29.09.2019 10:03Менял недавно работу (C# backend). После открытия резюме было 2 недели ежедневных собеседований. Первая компания дала тестовое задание, но я даже не успел его выполнить потому что получил подходящий оффер.
Как писали выше вполне неплохой компромис заменить тестовые задания это профильные тесты на знание языка чтобы отсеять случайно пришедших на собеседование.
Когда искал первую-вторую работы, тогда тестовые задания выполнял прилежно и все и максимально быстро, потому что даже одно собеседование в 2 недели было уже праздником. Сейчас же я стараюсь делать тестовые задания, но не в ущерб своему времени и в своём темпе. Но к сожалению даже не успеваю доделать.
kinall
29.09.2019 12:31+1Я давал тестовое задание джунам, но после собеседования — когда вроде бы человек нормальный, адекватный, но надо оценить, как он справится с новым для себя делом в спокойной обстановке.
YemSalat
29.09.2019 14:37+1По своему опыту могу сказать что тестовое здание полезно давать, если трудно принять решение по самому собеседованию, а не всем подряд. И согласен с автором что это скорее для оценки «джунов» или «мидлов». У «синьеров» и так обычно предложений хватает, они с большой долей вероятности просто забьют на тестовое задание и ваше предложение.
VolCh
29.09.2019 14:40Сильно зависит от кучи факторов. Основной, по-моему, кто на данной вакансии по факту продаёт, а кто покупает. Если компания активно хантит уже работающих специалистов без заметного повышения в позиции/деньгах для них, то ей надо продать себя раньше, по сути, чем вообще заикаться о процессе отбора. Типа "вот краткое описание вакансии, вот подробное, вот компании, вот проекта. Если вас заинтересовало, но есть вопросы, то вы можете подъехать к нам и мы опишем подробнее и ответим. Если вас всё устроит, до договоримся о дальнейших шагах".
Заикаться о тестовом когда кандидат ещё даже не кандидат, о компании, о проекте, о позиции ничего не знает, кроме" работу работать, молодой дружный коллектив" и, главное, его и на текущей работе всё в целом устраивает — большая ошибка, повод отсеять себя в качестве неадекватного работодателя, причём надолго.DoubleW
30.09.2019 22:54Заикаться о тестовом когда кандидат ещё даже не кандидат, о компании, о проекте, о позиции ничего не знает, кроме" работу работать, молодой дружный коллектив" и, главное, его и на текущей работе всё в целом устраивает — большая ошибка, повод отсеять себя в качестве неадекватного работодателя, причём надолго.
Особо лютый батхерт это вызывает когда делаешь делаешь это тестовое, а потом отказ.
А через пару недель тебя берут в более интересное место и без тестовых.
KvanTTT
29.09.2019 15:38Когда устраивался на текущую работу сделал домашнее тестовое задание с удовольствием. Честно говоря плохо понимаю, почему многие валятся или забивают на такую, казалось бы, простую вещь. Задание связано с тем, чем предстоит заниматься, поэтому считаю, что оно уж точно не зря дается.
YemSalat
30.09.2019 07:17Честно говоря плохо понимаю, почему многие валятся или забивают на такую, казалось бы, простую вещь.
Потому что у них есть чем заняться? Если у вас одно-два предложения и особо выбора нету, то тестовое задание — это ОК (при этом все-равно небольшое)
А если у вас больше 5ти предложений и каждый даст вам по тестовому зданию?VolCh
30.09.2019 08:00Ещё хуже: в активном поиске работы не находишься, рекрутёр сам выходит на тебя, полной информации не даёт, чем его позиция лучше твоей текущей не понятно, но тестовое тебе уже предлагает сделать.
vdshat
29.09.2019 18:29Пару раз делал тестовые задания. Один раз было довольно интересное — чат-сервер и бот с мониторингом (java). Честно говоря, не думал наниматься, просто задание понравилось. Решил проверить за сколько напишу в таком режиме. Фигню писать не хотелось, а нормальное решение, которое бы можно было хоть в прод выставить заняло больше времени, чем ожидалось. После чего понял, что я на собеседованиях красть время не буду никогда, да и сам не буду в этом участвовать. Но поддался…
Второй раз, нужно было быстренько за 2 часа архитектуру набросать для сервиса каршэринга, хотя на сертификацию на Java Architect неделю дают. Тут была засада, т.к. описание архитектуры в разных компаниях ведется по-разному. И даже, если ты сто раз это делал, то не факт, что твое описание будет принято. Вывод был у нанимателя, что я сам архитектуру никогда не делал. Супер! А кто ж за меня ее делал раньше?! Тем не менее на лида предложение получил, но отказался, т.к. шило на мыло менять не стал. Но опыт был безценен, т.к. еще раз убедился, что оценка всегда субъективна, а время свое на чьито хотелки не должно тратиться, либо должно оплачиваться.DoubleW
30.09.2019 22:56Вывод был у нанимателя, что я сам архитектуру никогда не делал.… Тем не менее на лида предложение получил
Как так то? Вот какой логикой они руководствовались?vdshat
30.09.2019 23:14Хороший вопрос. Дали посмотреть отзыв по секрету: обычно не показывают. Сам дал маху по нескольким довольно легким вопросам, т.к. приболел немного, а переносить интервью не стал, может зря. Но почувствовал уже на интервью, что нужен был архитектор, что уже делал конкретные проекты, а у меня, наверное, такого не было. Отзыв был, довольно, противоречивый, поэтому не особо расстроился.
djalin
29.09.2019 21:37Пробовался как то в местную контору и по запарке прислал резюме два раза. Прислали тестовое… точнее два разных тестовых.
По идее конторка так и работала — один кандидат одно напишет, второй второе, третий слепит.
vdshat
30.09.2019 09:01Хороший поиск и подбор кандидатов пока встречал только в одной компании.
HR проводит блиц-опрос «да»-«нет», без времени на подумать, по языку и ООП. И высылаешь свой лучший, как ты считаешь, код.
Собеседование уже со старшим специалистом, чтоб оценить мышление кандидата.
И финальное собеседование о приеме на работу.
Все было построено, я бы сказал, идеально.
Не тратится много времени специалистов, чтоб отсевать трэшь. После HR-опроса ты уже, примерно, понимаешь уровень кандидата, а не полусаешь «сеньора» с годом реальной работы.VolCh
30.09.2019 12:20А в каком месте происходит "продажа" компании/проекта/вакансии кандидату? Или компания из тех, в которые идут работать ради строчки в резюме?
vdshat
30.09.2019 20:17Как правило на финальном, если кандидат подходит, обговариваются эти моменты и есть возможность, иногда, выбрать направление, если есть несколько вакансий.
По поводу «компаний из тех, в которые идут работать ради строчки в резюме». Бывший сотрудник работает в FB, до этого был в Amazon, говорит, что у нас было интересней, если б столько платили, то не ушел бы.
saipr
Мои тестовые задания (вопросы) такие:
Этого бывает достаточно
JustDont
Вы библиофилов в библиофильскую контору нанимаете?
saipr
Нет, я ищу профессионалов, которые умеют учиться!
А вы как новые знания приобретаете?
JustDont
Наводящий вопрос задам: мы с вами где сейчас общаемся?
TargetSan
Я к примеру разбираю примеры и документацию по требуемой теме. В 95% случаев это проще чем искать непонятно какую книгу (если вообще есть) и выковыривать из неё нужные 2 абзаца по требуемому вопросу. Которых там скорее всего нет. БОльшая часть требуемой информации размазана тонким слоем по форумам и исходникам. О временном лаге книг я вообще молчу.
И нет, это не какой-нибудь свежий React. А к примеру особенность поведения plugin API свежего SolidWorks.
saipr
Странно, зачем выковыривать-то? Мне важно, умеет человек учиться, следит он за развитием отрасли, повышает свои профессиональные знания или он застыл.
JordanoBruno Автор
Может человек застыл на топе, это, знаете ли, для некоторых проектов весьма полезна. Есть множество технологий, которые практически застыли, но дело свое делают, а альтернатив особо-то и нет.
saipr
У каждого свой смысл жизни.
TargetSan
Окей. Я пишу в основном на С++. Мне нужен обзор последнего стандарта. Гораздо полезней для меня почитать референс, пролистать пропозалы, статьи от профильных блоггеров, обсуждения. А книга по С++20 будет фиг знает когда.
sshikov
C++ тут не одинок.
saipr
А вы посмотрите как описывали Си более 30 лет назад:
saipr
Так самое Главное — Вы Читаете. И в этом смысл. ы ищите и читаете. Честь и хвала вам.
sborisov
Постоянно покупаю книги, увы, с электронных носителей не воспринимаю учебную литературу так качественно…
Но я инженер давнишней школы… Видимо привычки из начала 90х
Dolios
А если последняя книга, которую я купил, была фантастика (а также предпоследняя и предпредпоследняя, я трилогию Лю Цысиня купил), то я не прошел квест?
vdshat
Ценность книг в комплексном и системном походе (не берем в расчет плохие книги), что в статьях практически невозможно достичь из-за малого объема. Если человек не осилил книгу по объему, то и большие задачи с множеством переменных и составляющих не по плечу. У меня был начальник, которого от одного вида 1000 страничной книги по С++ передергивало. Но и мышление было на таком же уровне.
Читаете фантастику (именно читаете, а не слушаете или только смотрите), тем более если хорошую, то это очень хорошо, т.к. развито абстрактное мышление и воображение, а это в творчестве необходимо. А если у вас есть еще и знания по требуемым технологиям — вы ценный сотрудник
Ahen
Но при этом он был вашим начальником, а не подчинённым ;)
vdshat
Оценка неудивительная, именно поэтому из последних 30ти кандидатов на мидла прошел только один. С которым нянчится не нужно, как с великовозрастным дитяти и по 5 раз после ревью отправлять на доработку код.
YemSalat
И для каждого из этих пунктов совершенно не обязательно читать конкретно книги. А в большинстве случаев чтение целой книги будет менее эффективно чем другие виды обучения (например интерактивное)
sshikov
В моей области толковых книг не бывает вообще. И это уже много лет так. Они устаревают до написания.
В целом-то идея неплохая, только нужно вопросы под предметную область подкорректировать. Скажем, вопрос вида: «А чему и как вы научились за последний год» был бы более универсальным.
sergyx
Не кажется ли вам, что суждение о способности человека учиться по факту того читает ли он в данный момент какую-то книгу — это признак некой закостенелости? Так можно было делать еще лет 10-15 назад, когда книги успевали выходить до того как информация в них устареет. Сейчас же их можно читать разве что для систематизации знаний, уже полученных из гораздо более оперативных источников, задолго до того как эта книга вышла.
saipr
Человек по книгам учится много чему: и математике, и языкам, и осваивает культуру да всему. Это какая информация устарела при выходе книг Льва Толстого или братьев Стругацких. Шекспира читают до сих пор. И вы пишите что что-то сиюминутное...
sergyx
Стоп, мы говорим о повышении профессионалами своей квалификации или и о художественных книгах?
Если о художественных книгах, то какая информация из книг Льва Толстова или братьев Стругацких может повысить профессиональный уровень?
sergyx
Хотя, если под приобретением новых знаний вы подразумевали не повышение квалификации, а приобретение новых знаний в совершенно других или смежных областях, тогда понятно.
vdshat
Именно, повышение квалификации — это когда человек не застревает на чем-то одном.
ardraeiss
Положим, что на данный момент я(за неимением других подопытных) повышаю квалификацию в вязании крючком, рисовании спиртовыми маркерами и гейдмзиайне. Ну и перечитываю "Семиевие" с прицелом дальше на Бестера и Ф.К.Дика. Серьёзно, всё это в параллель, переключаясь.
Спрашивается: как это всё поможет в работе над совершенно неигровым ПО?
То есть, может и поможет, но вот прямую связь установить затруднительно. Можно вообще в этом увидеть "смотрит на сторону, в геймдев уйдёт, не нужен". Можно "увидит другие взгляды на пользователей и применение". Более-менее я вижу связь с тем, что я буду читать после этих книг.
vdshat
Мы работаем в коллективе и чем более разностороннее и духовно богаче будут люди, тем интересней будет атмосфера. Чем разносторонней будет человек, тем шире он смотрит на проблему и ищет нестандартные пути решения. Чем богаче у него опыт в других областях, тем проще ему влезть в шкуру пользователя, для которого мы и делаем автоматизацию. Довольно часто, к сожалению, слышишь:
— сделать три действия, вместо одного быстрее?!
— а мне так удобней
— а ты сам будешь это делать или пользователь?
— эээ…
Что свести к минимуму подобные «издержки» мы стараемся подбирать именно людей в коллектив, а не абстрактных кандидатов.
ardraeiss
Звучит разумно. Геймдизайнера, который принципиально не играл в им игру, в разработке которой участвовал, вживую видел.
DoubleW
Зря на человека накинулись кстати, его компания, его коллектив — имеет право.
Да со стороны выглядит абсурдно, но может у них такая команда, и если вы не вмещаетесь в нее, это не говорит о том что вы плохой специалист.
Как то я собеседовался в музыкальный радио проект с большой историей, там обязательный был вопрос про любимую музыку, жанры, стили.
Увы по каким то причинам не подошел, вполне возможно кстати из-за ответа на этот вопрос(недостаточно глубоко или энергично ответил).
JustDont
Я всего лишь указал на некоторую, скажем так, узость взглядов. Практически любой нормальный разработчик будет очень много читать (а как еще самообразовываться-то?), но в 2019 году самообразовываться в software development через чтение книг — возможно только в очень узких областях, где книги не устаревают еще до их публикации.
VolCh
Даже устаревшие формально книги могут быть полезны для роста вширь. Ну ничего страшного, если фроненд разработчик будет читать книгу об SQL года так 2000
JordanoBruno Автор
А в чем полезность книги про SQL, да еще такой древней, для фронтент? Где он применит знания?
VolCh
Он растёт вширь, хочет стать фулстэком, как вариант. Или тесты пишет на свой код и нужно инциалищироаать базу под кейсы.
JustDont
Конечно. Но книгу об SQL года так 2000 в 2019 году гораздо проще найти/прочитать, опять же, в интернетах.
VolCh
Кому проще, кому нет. Особенно если к копирайту трепетно относишься, а читалки нет.
MaxVetrov
Зачем устаревшую? Новые же есть. Можно конечно обращаться к старым книгам для отслеживания изменений(эволюции), но лучше новую и читать по диагонали, то что не знаешь и то что не устареет через 2 года, иначе знания «превратятся в тыкву».
VolCh
Новые такого же качества (например, 9-е издание) заметно дороже обычно стоят.
kdmitrii
Ну так это любой продвинутый семиклассник ответит. Даже если не писал в пррдакшн ни строчки.
Anton23
А если я вообще не купил ни одной книги(по программированию)?
saipr
Сочувствую. А хоть в руках держали?
AlexZaharow
Книги можно не только читать, но и писать. У меня, например есть двухтомник, где моя фамилия отлита золотыми буквами, правда она не по программированию, хотя и справочник, но мне пришлось обработать каждую букву в нем. Работа была очень интересной. Так что печатную продукцию можно обсуждать с разных точек зрения.
DoubleW
Я думаю это тоже было бы хорошим началом беседы.
kinall
С кем из героев дома-2 вы себя отождествляете?
Peacemaker
И если ответил хоть что-то, кроме «Не смотрю» — собеседование провалил? =)
kinall
По ссылке примерно так и сказано)
0xd34df00d
Ну давайте снова поиграем в эту игру. Правда, последний раз я в нее играл не с вами, конечно.
Certified programming with dependent types.
Algebra: Chapter 0. В апреле где-то, с тех пор прочитал примерно треть, сейчас пробуриваюсь через скучное для меня умножение и деление (это не веселые диаграмки гонять и доску для крестиков-ноликов чертить).
Ваш вердикт?
DoubleW
Ну вы же прекрасно понимаете что вы оверквалифайед и мы вам не перезвоним.
StrangerInTheKy
"iPhuck 10", пару месяцев назад (ответ совершенно честный — на самом деле купил именно ее). Иииииии???
DoubleW
Продолжим по списку :D
— что такое fork?
— что такое pipe?
— что такое pid?
MaxVetrov
— вилка
— труба
— Pelvic inflammatory disease :)
MaxVetrov
Position-Independent Daemon )
Phone I Do
pipe — raspberry PI Product Edition
fork — flustrated ork
AlexZaharow
"Bird is a word"
StrangerInTheKy
Меня, собсна, интересовало, как вы будете интерпретировать ответ на этот вопрос. Какую информацию о кандидате можно извлечь из его ответа на вопрос "что такое fork", я более-менее представляю. А вот какую из ответа про книгу — не представляю совершенно.
DoubleW
Считайте это заменой разговора о погоде.