Как стать автором
Обновить

Комментарии 163

Дотошный читатель скажет — «ОК, автор, если не тестовое задание, то как еще можно отобрать нужного сеньора?».

Мои тестовые задания (вопросы) такие:


  • какую книгу сегодня читаем?
  • какую книгу последнюю купил (именно купил) и когда?
  • что такое fork?
  • что такое pipe?
  • что такое pid?
    Этого бывает достаточно
какую книгу сегодня читаем?
какую книгу последнюю купил (именно купил) и когда?

Вы библиофилов в библиофильскую контору нанимаете?

Нет, я ищу профессионалов, которые умеют учиться!
А вы как новые знания приобретаете?

Наводящий вопрос задам: мы с вами где сейчас общаемся?

Я к примеру разбираю примеры и документацию по требуемой теме. В 95% случаев это проще чем искать непонятно какую книгу (если вообще есть) и выковыривать из неё нужные 2 абзаца по требуемому вопросу. Которых там скорее всего нет. БОльшая часть требуемой информации размазана тонким слоем по форумам и исходникам. О временном лаге книг я вообще молчу.
И нет, это не какой-нибудь свежий React. А к примеру особенность поведения plugin API свежего SolidWorks.

проще чем искать непонятно какую книгу (если вообще есть) и выковыривать из неё нужные 2 абзаца по требуемому вопросу.

Странно, зачем выковыривать-то? Мне важно, умеет человек учиться, следит он за развитием отрасли, повышает свои профессиональные знания или он застыл.

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

У каждого свой смысл жизни.

Окей. Я пишу в основном на С++. Мне нужен обзор последнего стандарта. Гораздо полезней для меня почитать референс, пролистать пропозалы, статьи от профильных блоггеров, обсуждения. А книга по С++20 будет фиг знает когда.

C++ тут не одинок.

Так самое Главное — Вы Читаете. И в этом смысл. ы ищите и читаете. Честь и хвала вам.

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

А если последняя книга, которую я купил, была фантастика (а также предпоследняя и предпредпоследняя, я трилогию Лю Цысиня купил), то я не прошел квест?

Ценность книг в комплексном и системном походе (не берем в расчет плохие книги), что в статьях практически невозможно достичь из-за малого объема. Если человек не осилил книгу по объему, то и большие задачи с множеством переменных и составляющих не по плечу. У меня был начальник, которого от одного вида 1000 страничной книги по С++ передергивало. Но и мышление было на таком же уровне.
Читаете фантастику (именно читаете, а не слушаете или только смотрите), тем более если хорошую, то это очень хорошо, т.к. развито абстрактное мышление и воображение, а это в творчестве необходимо. А если у вас есть еще и знания по требуемым технологиям — вы ценный сотрудник
У меня был начальник, которого от одного вида 1000 страничной книги...

Но при этом он был вашим начальником, а не подчинённым ;)

Оценка неудивительная, именно поэтому из последних 30ти кандидатов на мидла прошел только один. С которым нянчится не нужно, как с великовозрастным дитяти и по 5 раз после ревью отправлять на доработку код.
Хорошо, а при чем тогда вопрос о покупке книги? Пиратская нотка в человеке бросает тень на его профессиональные качества?
Поддержка автора напрямую приветствуется, а плата издательству — по желанию ;)
умеет человек учиться, следит он за развитием отрасли, повышает свои профессиональные знания

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

В целом-то идея неплохая, только нужно вопросы под предметную область подкорректировать. Скажем, вопрос вида: «А чему и как вы научились за последний год» был бы более универсальным.
Не кажется ли вам, что суждение о способности человека учиться по факту того читает ли он в данный момент какую-то книгу — это признак некой закостенелости? Так можно было делать еще лет 10-15 назад, когда книги успевали выходить до того как информация в них устареет. Сейчас же их можно читать разве что для систематизации знаний, уже полученных из гораздо более оперативных источников, задолго до того как эта книга вышла.

Человек по книгам учится много чему: и математике, и языкам, и осваивает культуру да всему. Это какая информация устарела при выходе книг Льва Толстого или братьев Стругацких. Шекспира читают до сих пор. И вы пишите что что-то сиюминутное...

Стоп, мы говорим о повышении профессионалами своей квалификации или и о художественных книгах?
Если о художественных книгах, то какая информация из книг Льва Толстова или братьев Стругацких может повысить профессиональный уровень?
Хотя, если под приобретением новых знаний вы подразумевали не повышение квалификации, а приобретение новых знаний в совершенно других или смежных областях, тогда понятно.
Именно, повышение квалификации — это когда человек не застревает на чем-то одном.

Положим, что на данный момент я(за неимением других подопытных) повышаю квалификацию в вязании крючком, рисовании спиртовыми маркерами и гейдмзиайне. Ну и перечитываю "Семиевие" с прицелом дальше на Бестера и Ф.К.Дика. Серьёзно, всё это в параллель, переключаясь.
Спрашивается: как это всё поможет в работе над совершенно неигровым ПО?


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

Мы работаем в коллективе и чем более разностороннее и духовно богаче будут люди, тем интересней будет атмосфера. Чем разносторонней будет человек, тем шире он смотрит на проблему и ищет нестандартные пути решения. Чем богаче у него опыт в других областях, тем проще ему влезть в шкуру пользователя, для которого мы и делаем автоматизацию. Довольно часто, к сожалению, слышишь:
— сделать три действия, вместо одного быстрее?!
— а мне так удобней
— а ты сам будешь это делать или пользователь?
— эээ…
Что свести к минимуму подобные «издержки» мы стараемся подбирать именно людей в коллектив, а не абстрактных кандидатов.

Звучит разумно. Геймдизайнера, который принципиально не играл в им игру, в разработке которой участвовал, вживую видел.

НЛО прилетело и опубликовало эту надпись здесь
Я всего лишь указал на некоторую, скажем так, узость взглядов. Практически любой нормальный разработчик будет очень много читать (а как еще самообразовываться-то?), но в 2019 году самообразовываться в software development через чтение книг — возможно только в очень узких областях, где книги не устаревают еще до их публикации.

Даже устаревшие формально книги могут быть полезны для роста вширь. Ну ничего страшного, если фроненд разработчик будет читать книгу об SQL года так 2000

А в чем полезность книги про SQL, да еще такой древней, для фронтент? Где он применит знания?

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

Ну ничего страшного, если фроненд разработчик будет читать книгу об SQL года так 2000

Конечно. Но книгу об SQL года так 2000 в 2019 году гораздо проще найти/прочитать, опять же, в интернетах.

Кому проще, кому нет. Особенно если к копирайту трепетно относишься, а читалки нет.

НЛО прилетело и опубликовало эту надпись здесь

Новые такого же качества (например, 9-е издание) заметно дороже обычно стоят.

НЛО прилетело и опубликовало эту надпись здесь
А если я вообще не купил ни одной книги(по программированию)?

Сочувствую. А хоть в руках держали?

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

НЛО прилетело и опубликовало эту надпись здесь
И если ответил хоть что-то, кроме «Не смотрю» — собеседование провалил? =)
По ссылке примерно так и сказано)
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
какую книгу последнюю купил (именно купил) и когда?

"iPhuck 10", пару месяцев назад (ответ совершенно честный — на самом деле купил именно ее). Иииииии???

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Меня, собсна, интересовало, как вы будете интерпретировать ответ на этот вопрос. Какую информацию о кандидате можно извлечь из его ответа на вопрос "что такое fork", я более-менее представляю. А вот какую из ответа про книгу — не представляю совершенно.

НЛО прилетело и опубликовало эту надпись здесь
Тестовые задания вполне применимы, если они а) хорошо согласуются с предстоящей кандидату работой; б) грамотно составлены и не требуют никаких уточнений, особенно если речь идёт про тестовое задание до собеседования.

Во-первых, предварительное тестовое задание нетривиального объема (т.е. не на 5-10 минут кодинга или гугления) неплохо фильтрует тех, кто идёт на собеседование в режиме «я только спросить», а работа ему на самом деле особо не сдалась. Во-вторых, от прошедших предварительное задание получаем код, на который потом можно посмотреть и пообсуждать (нужно, конечно, еще обязательно убедиться, что этот код кандидат написал сам лично, но это сделать довольно таки несложно).

Но если задание составлено плохо, если оно слишком большое или ТЗ мутное, если, наконец, ТЗ нифига не согласуется с вакансией или образом конторы (я как-то раз получил ТЗ вида «поправь ошибки в коде» от какой-то стильной, модной, молодёжной конторы, которое было написано кодом вида «писал в метро на коленке в notepad.exe, попутно занимаясь более важными вещами») — то такое задание будет фильтровать кандидатов нежелательным для конторы образом. С другой стороны, мне как кандидату это экономит время — неадекват в тестовом задании видно куда лучше, чем в описании вакансии или на публичных ресурсах конторы.
НЛО прилетело и опубликовало эту надпись здесь
Такие кстати могут быть более интересными кандидатами — поскольку уже сидят на не менее интересном месте, и не спеша ищут альтернативу.

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

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

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

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

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
2 года — это джун, ему простительно. Тем не менее, проблему он решил, а это значит, что товарищ не безнадежен. Джун — как мягкий пластилин, из него можно вылепить вполне годную боевую единицу, при желании.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь
А почему не unset($a[2]);? Второй же удаляем, а нумерация с нулевого.

Правильно было бы спросить, а второй это какой? Что делать с ключами, должна ли сохраниться последовательность?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

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


Если это был сарказм и попытка "уколоть", то у вас не получилось.

НЛО прилетело и опубликовало эту надпись здесь
Что конкретно у вас вызывает сомнения?

С ключами все довольно ясно. Т.к. при удалении элемента 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}
Вопрос про ключи и заключался в том, что вам нужно на выходе — массив или словарь?
На самом деле, unset — не самое лучшее решение для массивов, как Вы верно заметили.
В данном случае более корректно будет:
array_splice($a, 1, 1);


Это, кстати, хороший пример плохого тестового задания для нормального разработчика, разве что подколоть очередного «php-эксперта».
Я не говорил, что unset хорошее или плохое решение. Я лишь сказал, что надо уточнить задачу, хоть она и кажется предельно простой. Поэтому лучшим ответом на задачу будут встречные вопросы. Что, кстати, само по себе является неплохим показателем зрелости разработчика, как мне кажется.
НЛО прилетело и опубликовало эту надпись здесь

Конечно, бессмысленно. Вы сели в лужу, о чем вам популярно объяснил ваш оппонент:
https://habr.com/ru/post/469099/#comment_20685681


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


А теперь у вас просто не хватает смелости признать свою ошибку и вы включили режим Новодворской. Тоже, кстати, звоночек. Я бы к такому руководителю работать не пошел.

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

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

не пришло в голову что у меня проверяют стандартную библиотеку… вероятно кандидат подумал что проверяют возможность написать алгоритм

Эээээ? Так ведь ни то и ни другое. Проверяют способность решать задачи. А в случае сомнения в правильности понимания условий задачи — способность задавать уточняющие вопросы. Я бы на вашем месте занялся прокачкой обоих этих скилов. По-моему, они у вас хромают :)

Это только по вашему ;)

Последний кандидат, с 2 годами опыта, в цикле нашел значение и создал новый массив без него, плакали все.
А где в условии написано, что исходный массив можно менять? Человек вам сделал универсальное решение в котором есть и исходный массив и новый, без второго элемента — что в этом плохого?
НЛО прилетело и опубликовало эту надпись здесь
Присоединюсь тоже — человек с опытом собеседований понимает, что в 95% случаев с таким вопросом от него ждут собственную реализацию а не вызов библиотечного метода. И не расчитывать на 5% — вполне нормально.
НЛО прилетело и опубликовало эту надпись здесь

От опыта зависит.

Вы даже не представляете сколько можно отсеять безобидным тестовым заданием (или похожем)
$a = [1, 2, 3, 4];
удалите второе значение.

Я не особо знаю php, но насколько я понимаю, предложенное вами решение не удаляет элемент из массива, а присваивает ему значение «нe определено»

По логике «удалить» элемент из массива — значит что в итоге в массиве должно стать на 1 элемент меньше. Т.е. чел который фильтровал массив по идее делал все правильно (хотя возможно не оптимально)
Интересное и частое явление на собеседовании — кандидат отвечает правильнее интервьюера. И далее весьма интересно для кандидата посмотреть на реакцию.
У меня был даже случай, когда из 3-х интервьюеров один был категорически не согласен со мной, один полностью согласен, и один пытался понять кто из нас прав :)
Я один раз проводил собеседование и спустя какое-то время разговор зашел на тему в которой я сам не очень хорошо разбирался. В итоге вместе с кандидатом полезли гуглить :)
НЛО прилетело и опубликовало эту надпись здесь
Мне просто любопытно — насколько часто в ежедневной разработке требуется «удалять значение» в списке :)
Нe элемент, а именно «значение»
Ну и насколько я знаю — в php нету понятия декларированной переменной без значения. Хреновый у них фильтр кандидатов по итогу.
Вообще-то unset($a[1]) именно удалит элемент массива, а не присвоит ему значение «не определено».
Возможно, как уже выше говорил — в php не очень разбираюсь.
Тут вопрос скорее о том, что считать удалением.
При использовании unset получается что-то вроде: `{0: 1, 2: 3, 3: 4}`
Это вообще применимый случай? Теперь $a[1] говорит что такого значения нету. В таком случае это не «массив», а скорее словарь.
Логичнее, на мой взгляд называть «удалением из массива» вот такой результат:
`{0: 1, 1: 3, 2: 4}`
НЛО прилетело и опубликовало эту надпись здесь
Дырку в массиве сделает

Это понятно, но это уже другая история)
НЛО прилетело и опубликовало эту надпись здесь
А если массив должен быть immutable?
НЛО прилетело и опубликовало эту надпись здесь
Лучше наверно давать не абстрактное задание, а с предметной областью, чтобы можно было предположить логику выполнения этой операции.
Например, это массив — это пакет обрабатываемых заданий, нужно удалить второе задание из него.
P.S. Вы используете несколько радикальную терминологию.
Всё в мире относительно, и не стоит называть людей идиотами, если они вас не понимают.
>У Васи есть две дюжины вполне подходящих резюме,
Где вы такое находите? В моей практике две дюжины — это в лучшем случае студенты, которые ничего не умеют, и это видно по их резюме сразу. И можно сразу предсказать, что после собеседования в лучшем случае останется один.

А чтобы было две дюжины на позицию синьора — я такого вообще никогда не наблюдал, для определенности — за последние 15 лет например. Соответственно, все выводы про тестовые задания никуда не годятся, потому что фильтровать некого.
Две дюжины сеньорских резюме — это даже мало для известной компании или компании с хорошим бюджетом для позиции. Это все для популярных технологий, если искать какого-нибудь редкого, типа erlang или embedded или в условном Мухосранске — там да, выбор будет скуден.
Ну видимо мое направление Java разработка достаточно редкое для Москвы. Я никогда сам не видел даже 10 «подходящих» резюме за раз — обычно присылают кандидатов по одному, раз в месяц в лучшем случае. А позиция с вилкой «до 250 на руки» как висела с весны, так и висит…
Джавистов в Москве — пруд пруди, причем весьма грамотных, но 250 — не так много для сеньора. Сбертех +20% премии к рынку давал в свое время, чтоб укомплектовать команды.
Ну, я лишь пересказываю свой опыт. Если вспомнить те же последние 15 лет, то я бы сказал, что я просто не смогу вспомнить две дюжины таких людей, которых можно без всякой натяжки считать синьорами, и которых я бы взял к себе в команду вообще без раздумий. Если у вас они бегают вокруг толпами — это очевидно какая-то другая вселенная. Какая — вопрос интересный. Может у вас джависты — это андроид разработка?
Чтоб синьоры шли — нужно их звать хорошо, они — люди разборчивые.
Может у вас джависты — это андроид разработка?

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

Мои три копейки — тестовые задания нужны, чтоб не звать на очные собеседования тех, кто явно не подходит. Причем, онлайн теста на знание языка с вариантами ответов хватает за глаза, не нужно ни интересных задач, ни проекта на 8 часов неоплачиваемого времени.
Предвижу, что сейчас прокомментируют в духе "в таких тестах все варианты кривые". Да, часто. Но 100% правильных ответов там и не надо — нанимать все равно по результатам интервью будут, а не теста.
А без этого теста к тебе приходят синьоры с опытом по семь лет, которые всем хороши, только программировать не умеют :-(

онлайн теста на знание языка с вариантами ответов хватает за глаза

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

Ну, я и сказал, что это мои три копейки. Я не знаю, как там сертификатами, признаю. У меня ни одного нет — те конторы, куда я пытался устроиться и/или устраивался, это не интересовало, их интересовало могу я писать код так, как говорю, или не могу.

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

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

Может у него просто настроения не было.
Одно дело когда ты в заранее определённое время решаешь заранее определённую задачу. И совсем другое когда обстановка не рабочая и soft skills activated.

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

Да, нетривиально, но другие варианты неэффективны.
Кандидат получает реальное задание из текущего списка задач (backlog) компании, которое может выполняться от одного дня до пары недель и оплачивается по договорной ставке. Таким образом, кандидат получает возможность поработать в режиме trial с новой командой и при этом заработать деньги за потраченное время.

А кандидат должен на слово поверить что оплатят, или будет какой-то договор? А если есть договор, то чем это отличается от испытательного срока по трудовому договору?
А кандидат должен на слово поверить что оплатят, или будет какой-то договор?

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

А если есть договор, то чем это отличается от испытательного срока по трудовому договору?

Очень многим, Вы ни разу на фрилансе или по контракту не работали?
как минимум не надо человек в кадрах оформлять и прочие бумажки.
Хорошо известен случай, когда автора пакетного менеджера Homebrew не взяли в Google, лишь по той причине, что на 7-м интервью он не смог на доске написать алгоритм, как инвертировать бинарное дерево.

А меня одного удивило, что на 7(!) интервью в Google человека попросили инвертировать бинарное дерево (элементарная задача для джуна)? И что программист не смог это сделать? Задача рекурсией (хоть это и не оптимально) решается студентом за 10 минут, даже если этот студент до этого ни разу не слышал вообще ничего про двоичные деревья и 5 минут из этих 10 потратит на осознание того, что это такое.


Имхо, в этой ситуации люди что-то не договаривают.

ну если всё элементарно в этом мире, чего ты ещё премию Тьюринга не получил?
вот это
элементарная задача для джуна. решается студентом за 10 минут, даже если этот студент до этого ни разу не слышал вообще ничего про двоичные деревья

бла-бла-бла. Отучайся говорить «просто», если для тебя это просто. У всех разный опыт, каждодневная практика и тп.
ЗЫ: не уточнишь, за что мне должно быть стыдно?

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


А стыдно тебе должно быть потому, что ты споришь, не вникнув, о чем, собственно, речь. Поэтому я тебе и дал ссылку на литкод с этим заданием, чтобы ты ознакомился, как ставят такие задачи. Если бы мне сказали: "сделайте инверсию двоичного дерева", — я бы тоже охренел, т.к. не понял бы, чего от меня хотят. Но ты сходи по ссылке и посмотри, как именно формулируются такого рода задачи. Если после такой постановки программист, претендующий на синьора, не сможет задачу решить в принципе, с ним явно что-то не так. Да и гугл не стал бы на 7 интервью такие вопросы задавать.

НЛО прилетело и опубликовало эту надпись здесь

Нет. Обычно это решается на совещании до интервью или рекрутер описывает какую часть знаний надо проверить.
Говорю на собственном опыте и опыте друзей в роли интервьюера. И как соискатель. Даже видна разница и усложнение заданий. У нас если на первых двух онсайт сессиях кандидат плохо показывает себя — да остальных отменят.
Не знаю отменяют ли в Амазоне, но там нарастает сложность. Первое задание будет на простой алгоритм и умение писать код. Потом дизайн на уровне приложения, потом взаимодействие сервисов.
Но есть и исключения. Когда-то в VMware, второй интервьюер задал проблему, а я даже не стёр её с доски

бла-бла-бла. Отучайся говорить «просто», если для тебя это просто. У всех разный опыт, каждодневная практика и тп.

Блин, сорян, но в «разворачивании бинарного дерева» действительно все настолько просто, что ваш «аргумент» звучит кхм…
Вот вам пример:
foo = {
  left: 1,
  right: 2
}

Задача: поменяйте местами значения left и right.
Вы считаете это действительно просто только для каких-то избранных гениев алгоритмизации?
Мне кажется тут скорее проблема в том что у многих людей само выражение «бинарное дерево» вызывает диссонанс и кажется чем-то совсем академическим и нe применимым нa практике.
тестовое задание это именно повод поговорить. И это действительно способ отсечь тех кто «просто спросить».
И конечно тестовые задания делаются по принципу — что быстрей то и сделал, и если ты получил дооолгое тестовое, то ты его дооолго не делаешь, и скорей всего работу найдёшь раньше чем до выполнения этого задания дойдёт очередь.
Мне как работодателю, всегда интересно посмотреть на код будущего сотрудника, за 2-4 часа можно написать достаточно кода что бы показать кто ты есть, поэтому чем то громоздким ни когда не гружу.
Тестовых за свою жизнь я сделал не мало, из моих 40 репозиториев на гитхабе, только 5 это какие то проекты, остальное — тестовые.
Тестовые попадаются интересные, одно из 5-ти не чаще, и как правило эти тестовые укладываются в один рабочий день, а чаще в пару часов.
Например написать сложение столбиком двух чисел произвольной размерности ( одно число это 40+ десятичных знаков), тут мы видим и как человек с валидацией работает и как человек делает декомпозицию и делает ли он её вообще, как называет переменные и как оформляет код.
Хорошее задание, возьмите себе на заметку.
Хорошее задание, возьмите себе на заметку.

Хорошее для кого, для Вас? Вы уверены, что все кандидаты разделяют Ваше мнение? Да что там все, хотя бы половина?
НЛО прилетело и опубликовало эту надпись здесь
что в нём плохого?
задание хорошее для работодателя если он хочет оценить соискателя с минимальными затратами времени для соискателя. Если у вас другое мнение, то я вам своё не навязывал.
Вообще я тоже думал, что задания отнимают время и их делать западло несколько в свободное время. Но в реальности выходит, что на подготовку к обычному интервью ты будешь решать идиотские задачки и тратить время абсолютно в пустую ничему не учась, кроме странного скила прохождения интервью.
А решая задачу, можно изучить новый язык-технологию. То есть время реально потратишь изучая что-то новое и потенциально полезное для работы и кругозора.
НЛО прилетело и опубликовало эту надпись здесь
Ну тк это совершенно отдельный скил, который вообще не используется на работе. Уметь за 40-50 минут решить какую-то задачку и писать код на доске/бумажке(очень редко бывает на лэптопе) это не то, что делаешь на работе. Я, несмотря, на то, что провожу интервью так сходу не пройду интервью в гугл, фб, убер или еще куда в подобное место, даже про phone screen не уверен. Как думаю и большинство людей, кто-то может бесспорно, да.
Именно поэтому я в реальности и не готовлюсь ;-) Тк считаю, что если меня будут оценивать по такому странному навыку — то и нахер работать в таких местах.

ТакЪ?

/*
https://habr.com/ru/post/469099/comments/#comment_20685083
написать сложение столбиком двух чисел произвольной размерности ( одно число это 40+ десятичных знаков)
 */

package test;

public class SumTest {
  public static void main(String[] args) {
    System.out.println(sum("123456", "789"));
  }

  static String sum(String s1, String s2) {
    if (s1 == null || s2 == null || s1.isBlank() || s2.isBlank()){
      throw new IllegalArgumentException();
    }

    StringBuilder res = new StringBuilder();
    int n1;
    int n2;
    int temp;
    int overflow = 0;
    int i1 = s1.length() - 1;
    int i2 = s2.length() - 1;
    int maxLength = Math.max(i1, i2);

    for (int i = 0; i <= maxLength; i++) {
      n1 = i1 >= 0 ? s1.charAt(i1) - '0' : 0;
      n2 = i2 >= 0 ? s2.charAt(i2) - '0' : 0;
      if (n1 < 0 || n1 > 9 || n2 < 0 || n2 > 9) {
        throw new IllegalArgumentException();
      }
      i1--;
      i2--;

      temp = n1 + n2 + overflow;
      overflow = temp / 10;
      res.append(temp % 10);
    }

    if (overflow > 0) res.append(overflow);

    return res.reverse().toString();
  }

}

На мой вкус пустую строку можно на вход получить, её надо интерпретировать как 0.

Валидацию на не цифровые символы я бы сделал регулярным выражением.

И конечно в эксепшенах надо давать намёк на причину ошибки, лучше давать подсказки о том как ошибку исправить.

Так или не так, проверяется юнит тестами.

На PHP это делается одной командой :)) Поэтому к этому тестовому надо давать комментарий о том что требуется решить через алгоритм сложения в столбик, то есть с контролем переполнения десятичной позиции.

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


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

НЛО прилетело и опубликовало эту надпись здесь
условный гугл не переломится, и может позволить себе пересмотреть и пообщаться со всеми кандидатами

Не-условный Амазон начинает с тестового на полтора часа. А уже потом будет личное общение с технарями.
дайте мне с технарями поговорить 15 минут

и вот это тоже не получится, потому что тот-же Амазон пригласит поговорить с технарями куда-нибудь в другой город часов на 5, и там «вставать и уходить» после 15 минут глупо.
В одном я с Вами совершенно согласен — для условных Гугла и Амазона это адекватно по очевидным причинам, а «ПупкинРоссельМашУгорску» так делать не стоит.
НЛО прилетело и опубликовало эту надпись здесь
таким уходом можно получить плохую репутацию
Если вы вежливо попрощаетесь, то ничего не испортится.
Я однажды был на собеседовании, которое проходило прям в рабочей зоне. Во время тестового задания послушал что происходит вот прям вокруг и понял для себя, что не хочу тут работать. Ну не продолжать же делать вид, что меня всё устраивает? В какой-то момент обратился к собеседующему, сказал, что не хочу тут работать, поблагодарил, что уделили мне внимание, извинился, что отнял время и ушёл. Ничего не испортилось. Позже нашёл приличную работу. Всё норм.
Я думаю, что честность — это очень важное качество. Я не имею в виду честность перед третьими лицами. Очень важно не обманывать самого себя. Это моя жизнь, моя зона комфорта и поэтому я тоже имею полное право отказаться работать в компании по моим личным причинам, которые я не обязан озвучивать.
Я один раз уже до собеседования понимал, что «дела не будет». О чём аккуратно намекнул сразу. Но если фирма оплатила перелёт и 4 дня проживания, и предпочла продолжить разговор в надежде меня убедить — с моей стороны честно напрячься и предоставить им шанс.
И это был не Гугла и не Амазон, а для них тем более актуально — если уж приехал на собеседование на 5 часов с разными технарями, то даже если конкретный проект не подходит, там много разного — стоит проявить себя и потом обсуждать другие варианты.
есть что нибудь актуально про собеседования backend developer? тут вроде вода)
Менял недавно работу (C# backend). После открытия резюме было 2 недели ежедневных собеседований. Первая компания дала тестовое задание, но я даже не успел его выполнить потому что получил подходящий оффер.
Как писали выше вполне неплохой компромис заменить тестовые задания это профильные тесты на знание языка чтобы отсеять случайно пришедших на собеседование.

Когда искал первую-вторую работы, тогда тестовые задания выполнял прилежно и все и максимально быстро, потому что даже одно собеседование в 2 недели было уже праздником. Сейчас же я стараюсь делать тестовые задания, но не в ущерб своему времени и в своём темпе. Но к сожалению даже не успеваю доделать.
Я давал тестовое задание джунам, но после собеседования — когда вроде бы человек нормальный, адекватный, но надо оценить, как он справится с новым для себя делом в спокойной обстановке.

Скорее понять, умеет ли кандидат читать…

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

Сильно зависит от кучи факторов. Основной, по-моему, кто на данной вакансии по факту продаёт, а кто покупает. Если компания активно хантит уже работающих специалистов без заметного повышения в позиции/деньгах для них, то ей надо продать себя раньше, по сути, чем вообще заикаться о процессе отбора. Типа "вот краткое описание вакансии, вот подробное, вот компании, вот проекта. Если вас заинтересовало, но есть вопросы, то вы можете подъехать к нам и мы опишем подробнее и ответим. Если вас всё устроит, до договоримся о дальнейших шагах".
Заикаться о тестовом когда кандидат ещё даже не кандидат, о компании, о проекте, о позиции ничего не знает, кроме" работу работать, молодой дружный коллектив" и, главное, его и на текущей работе всё в целом устраивает — большая ошибка, повод отсеять себя в качестве неадекватного работодателя, причём надолго.

НЛО прилетело и опубликовало эту надпись здесь

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

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

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

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

Пару раз делал тестовые задания. Один раз было довольно интересное — чат-сервер и бот с мониторингом (java). Честно говоря, не думал наниматься, просто задание понравилось. Решил проверить за сколько напишу в таком режиме. Фигню писать не хотелось, а нормальное решение, которое бы можно было хоть в прод выставить заняло больше времени, чем ожидалось. После чего понял, что я на собеседованиях красть время не буду никогда, да и сам не буду в этом участвовать. Но поддался…
Второй раз, нужно было быстренько за 2 часа архитектуру набросать для сервиса каршэринга, хотя на сертификацию на Java Architect неделю дают. Тут была засада, т.к. описание архитектуры в разных компаниях ведется по-разному. И даже, если ты сто раз это делал, то не факт, что твое описание будет принято. Вывод был у нанимателя, что я сам архитектуру никогда не делал. Супер! А кто ж за меня ее делал раньше?! Тем не менее на лида предложение получил, но отказался, т.к. шило на мыло менять не стал. Но опыт был безценен, т.к. еще раз убедился, что оценка всегда субъективна, а время свое на чьито хотелки не должно тратиться, либо должно оплачиваться.
НЛО прилетело и опубликовало эту надпись здесь
Хороший вопрос. Дали посмотреть отзыв по секрету: обычно не показывают. Сам дал маху по нескольким довольно легким вопросам, т.к. приболел немного, а переносить интервью не стал, может зря. Но почувствовал уже на интервью, что нужен был архитектор, что уже делал конкретные проекты, а у меня, наверное, такого не было. Отзыв был, довольно, противоречивый, поэтому не особо расстроился.
Пробовался как то в местную контору и по запарке прислал резюме два раза. Прислали тестовое… точнее два разных тестовых.

По идее конторка так и работала — один кандидат одно напишет, второй второе, третий слепит.

Хороший поиск и подбор кандидатов пока встречал только в одной компании.
HR проводит блиц-опрос «да»-«нет», без времени на подумать, по языку и ООП. И высылаешь свой лучший, как ты считаешь, код.
Собеседование уже со старшим специалистом, чтоб оценить мышление кандидата.
И финальное собеседование о приеме на работу.
Все было построено, я бы сказал, идеально.
Не тратится много времени специалистов, чтоб отсевать трэшь. После HR-опроса ты уже, примерно, понимаешь уровень кандидата, а не полусаешь «сеньора» с годом реальной работы.

А в каком месте происходит "продажа" компании/проекта/вакансии кандидату? Или компания из тех, в которые идут работать ради строчки в резюме?

Как правило на финальном, если кандидат подходит, обговариваются эти моменты и есть возможность, иногда, выбрать направление, если есть несколько вакансий.
По поводу «компаний из тех, в которые идут работать ради строчки в резюме». Бывший сотрудник работает в FB, до этого был в Amazon, говорит, что у нас было интересней, если б столько платили, то не ушел бы.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории