Задачи на собеседовании программистов

skif

Житель центра
#1
Обычно, в каждой компании есть свои любимые задачи, которые получает большая часть соискателей. Иногда они бывают интересными :)
Иногда они не решаются в рамках собеседования.
И совсем уж иногда их можно долго обсуждать.

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

skif

Житель центра
#3
Вот думал сейчас сделать конкурс.

Я вот очень люблю давать соискателям задачу "реализовать двусвязный список на любом языке программирования".
Думал сделать тут конкурс и победителю под фанфары вручить литр 10-16-ти летнего виски, типа Bushmills. Правда для офлайн задачи, да еще и за вискарь – это слишком просто.

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

Феликс

Администратор
Команда форума
#5
в моей жизни было всего 3 собеседования, после первого я проработал более 4х лет в той конторе, после второго - поработав пару дней я понял что мне там делать нечего, поле третьего я проработал в конторе пол года и свалил.Вопросы? не помню, обычно я говорю много и веду разговор, словно призентацию проекту делаю )))))
 

Diesell

Троглодит
#6
Какой смысл давать задачу, реализация которой выложена на википедии и находится за 1 мин :)
 

Strontium

Известный деятель города
#7
Вот фиг когда забуду, когда меня на моей первой работе протащили через один тест.
Посадили за комп, там были пейзажи и регуляторы насыщенности цвета. Несколько минут картинка стояла, потом искажалась в цвете и ее надо было восстановить при помощи регуляторов, таких фото было около 15, потом комп долго что-то считал и вычислял и выдал распечатку всех моих качеств, мне специалист прочла его под гулкие удары моего сердца. Еще никогда стлько правды я о себе не слышал. При всем при этом там не было чего-то расплывчатого, все крайне точно обозначено. Признаюсь, челюсть у меня не сразу на место стала после этого. Понятия не имею что за программа, но это фантастика!
 

diamond

Гость города
#8
То ли везло, то ли нет, но при устройстве на работу что в отечественные, что в зарубежные IT конторы, спрашивали опыт и верили на слово, затем давали испытательный срок и в итоге принимали на работу) Я считаю правильный подход - опираться на уже имеющиеся показатели. Естесственно, если предметная область будущего места работы схожа с предыдущими.
 

root

Администратор
Команда форума
#9
один раз был на собеседовании.
Вопрос был один, это ты root с armavir.ru? я сказал - да.
После этого был принят :)
Из этого можно сделать вывод: будьте пользователями Armavir.Ru и Вас обязательно возьмут на то место, куда вы хотите :)
 

skif

Житель центра
#10
Какой смысл давать задачу, реализация которой выложена на википедии и находится за 1 мин :)
Речь идет не о задаче на дом, а о задаче на час, во время собеседования. Это раз.
Я готов спорить на что угодно, – человек не знающий что такое двусвязный список, непонимающий как он работает не сможет мне объяснить, почему он решил задачу именно таким образом. А готовое решение откуда угодно скачивайте.

Не верится? Ну вот в лоб: есть ip 91.230.16.152, есть подсеть 91.230.16.128/27.
Задача 1: написать программу на любом известном вам ЯП, проверяющую вхождение адреса в диапазон без использования спец. библиотек и средств языка для работы с TCP-адресами. При решении приоритетны читаемость и простота кода.
Задача 2: написать программу на любом известном вам ЯП, проверяющую вхождение адреса в диапазон без использования спец. библиотек и средств языка для работы с TCP-адресами. Решение должно демонстрировать производительность близкую к максимально возможной в рамках выбранного языка и аппаратной части.
Задача 3: Дополнить решения задач 1 и 2 синтетическим тестом производительности и, в наглядной форме, отобразить результаты.

Задачи 1 и 3 в сумме на 1 час.
Задача 2 – сильно зависит от опыта соискателя.

Ну и само собой, соискателю (если он представляет интерес) придется объяснить, почему он решал задачу именно так.
 

skif

Житель центра
#11
Опираться на опыт соискателя со слов соискателя – это наверное возможно. Но неприемлимо, в случае, если соискатель будет заниматься разработкой софта в коллективе.
В каждый момент времени руководитель должен знать, какими ресурсами он располагает.
 

skif

Житель центра
#12
Ну что, есть желающие на конкурсной основе налабать двусвязный список (с обоснованием решения) или сделать тестовое (домашнее) задание на вакансию "программист ruby on rails"?)
С меня литр 16-ти летнего виски. Да не съем я сегодня ни грамма мяса!:)))
 
#13
один раз был на собеседовании.
Вопрос был один, это ты root с armavir.ru? я сказал - да.
После этого был принят :)
Из этого можно сделать вывод: будьте пользователями Armavir.Ru и Вас обязательно возьмут на то место, куда вы хотите :)
Прикинь... прихожу в КубаньЭнерго... и там пожилой чел спрашивает - " Ты Бриск с Armavir.Ru????".......
 

skif

Житель центра
#14
Смельчаку, который предоставит свой вариант двусвязного списка (формулировка задачи) достанется:

(разыгрывается только бутылка, стакан и лишние 50 грамм в приз не включаются:)

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

Это символическое поощрение умственных усилий можно получить в середине апреля в Армавире или самовывозом из Ростова по факту признания победы)
Предложение актуально до 15 апреля.

Что-то я со скуки разошелся)
 

diamond

Гость города
#15
Помимо слов, если человек уже занимался разработкой софта, у него должно было накопиться портфолио, которое скажет о его опыте, хотя это конечно не гарантирует что соискатель не демонстрирует чужие работы. В людом случае испытательный срок необходим, потому что собеседование никогда не даст полной картины о том, какими ресурсами человек обладает, но оценку, максимально приближенную к реальности дать может при правильном подходе, например таком, как вы описывали выше.
 
#17
skif, расскажите лучше где эти самые двусвязные списки применяются (пример из жизни). (Всё, что в голову пришло с помощью БД решается проще).
Хорошая задачка где-то попадалась мельком
а) "Найти все простые числа до миллиона".
б) "Ускорить алгоритм в 2 раза".
 

skif

Житель центра
#18
Убраться в хлам!
Ну или ограничится опьяненим от разбухшего ЧСВ и презентовать бутылку тому, кто ценит ее вкус.

Diamond, насчет испытательного срока, портфолио и прочего – все верно.
Когда человеку 20 лет и он талантлив, то такой человек уверен, что знает все и с любой задачей может разобраться очень быстро. Даже если там предметная область на 50 тыщ страниц А4:)) Поэтому такие люди имеют склонность приувеличивать свои достижения.
Но на самом деле достаточно беглой беседы, маленьких вопросов и пары ложных утверждений (которые обычно подхватываются и подверждаются соискателями), чтобы досточно точно определить уровень знаний, если тот находится где-то между junior и senior.

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

diamond

Гость города
#19
Убраться в хлам!
Ну или ограничится опьяненим от разбухшего ЧСВ и презентовать бутылку тому, кто ценит ее вкус.
:D

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

skif

Житель центра
#20
skif, расскажите лучше где эти самые двусвязные списки применяются (пример из жизни). (Всё, что в голову пришло с помощью БД решается проще).
БД – это совсем другая история.
Двусвязные списки нужны в том случае, если нужно итерироваться по множеству в обоих направлениях. Или, если зная указатель на элемент, нужно произвести какие-то действия с элементом, например удалить или переместить его. В случае односвязного списка сделать это будет не просто. Вобщем, это такая низкоуровневая абстракция активно используемая в куче фундаментальных алгоритмов.
Хорошая задачка где-то попадалась мельком
а) "Найти все простые числа до миллиона".
б) "Ускорить алгоритм в 2 раза".
а) Тут в первую очередь матчасть. Либо учился и помнишь, либо нет. Как работает голова это знание не особенно покажет.
б) А это эзотерика :)