fbpx
Идеальное техническое собеседование

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

– Добрый день! Как до нас добрались? Легко ли нашли офис? Может хотите чаю, кофе или водички? – любезно встретил гостя Виталий.
Костик бросил рюкзак на рядом стоящий стул и уселся в мягкое кресло.
– Да нет, спасибо! Если можно давайте приступим к собеседованию, а то я и так с работы отпросился только на часок.
– Как скажете. Итак, для начала расскажите о том, что больше всего запомнилось вам из интересных задач, сделанных вами за последние несколько лет. – дружелюбно спросил Виталий, потягивая кофе из маленькой чашечки.
– Хм… – призадумался Костик. – Так сразу ответить сложно. Я разные задачи делал, были наверное и интересные. Да и какая разница интересные или неинтересные, мне же не за интерес деньги платят, а за сделанную работу вовремя.
– И что ничего особенного за это время не запомнилось? Может придумали какое-то хитрое решение или красиво получилось решить задачу заказчика? – пытался добиться ответа Виталий.
– Мы всегда что-то хитрое придумываем, ведь без хитрого костыля ничего не заработает. Могу парочку последних описать… Хотя нет, не могу, ведь детали под NDA, а я пока еще не уволился.
– Да нет, пожалуй и не стоит. – сказал Виталий, отмечая что-то у себя в блокноте. – Давайте лучше начнем с пары логических задачек.
– Оооо… Вы что не слыхали? Даже Google уже отказался от таких задачек у себя на собеседованиях. Какой в них толк? – раздраженно ответил Костик. – Ведь я не буду на работе заниматься ничем подобным: ни раскладывать спички, ни рассаживать бабушек, ни взвешивать гирьки. Если конечно вы не дорожите чужим временем, то давайте свои задачки…
– Ладно, можем пропустить эту часть, если она вызывает у вас подобные эмоции. Давайте тогда для разминки несколько простых алгоритмических задачек? – пытался оставаться дружелюбным Виталий.
– Вот уж чего никогда не понимал, так это для чего спрашивать про быструю сортировку и прочий бред на собеседованиях. Уже же все написано для нас. Нужна сортировка? Вызывайте смело Collections.sort! Вряд ли разработчики Java сделали ее небыстрой. – Костик выглядел явно довольным собой, у него не оставалось сомнений, что этот уверенный ответ принесет ему предложение о работе. – Или может поищем подстроку в строке? Для этого уже сотни StringUtils написаны! Да и вообще, любой алгоритм можно за пару минут в интернете найти и прочитать.
– А как насчет структур данных? Давайте обсудим эту тему. К примеру, какова сложность добавления элемента в PriorityQueue? А удаления элемента из LinkedList? – пытался хоть как-то начать более технический разговор Виталий, который начинал уже немного выходить из состояния спокойствия.
– Вот это вы спросили! Для этого даже в интернете не надо искать – ведь есть JavaDoc. Мне его что заучивать перед сном? Сколько пишу на Java и никогда не задумывался над этими вопросами. А все почему? – победно посмотрел Костик. – Потому что не надо использовать сложные структуры где ни попадя. ArrayList, HashSet и HashMap – лучшие друзья разработчика и они решают 99.9% задач.
– Ладно, я вижу с алгоритмами у нас не задалось. Давайте поговорим о программировании на Java. Из вашего опыта, чем отличается абстрактный класс от интерфейса? Когда следует применять один и другой? – постарался не показывать своего раздражения Виталий.
– Вот этот вопрос я нахожу оскорбительным для себя. – обиженно ответил Костик. – Я к вам пришел устраиваться на позицию Senior Java Developer, а не младшего ассистента Junior Java Developer. Вы бы еще меня спросили о том, что такое наследование и полиморфизм, или какие бывают модификаторы доступа…
– Ну извините. Если этот вопрос кажется вам достаточно простым, то расскажите тогда последовательность необходимых шагов для того, чтобы записать текстовые данные в определенной кодировке в выходной поток байт. – предложил альтернативный вариант Виталий.
– А, ну это тоже несложно. Надо создать этот, как его… Writer. Да, точно, Writer. А в него передать этот самый выходной поток. Ну а потом записать туда строку в нужной кодировке. И готово! Я же говорил просто! – обрадовался своему быстрому решению Костик.
– А не могли бы вы подробнее рассказать как именно записать строку в нужной кодировке? И какой конкретно Writer нужно создать? Как в него передать выходной поток? – настаивал на деталях Виталий, крутя в руках не пригодившийся ему пока карандаш.
– Я что похож на JavaDoc? Зачем мне запоминать названия методов, если у меня есть IDE. Это ведь секундное дело пробежаться по классу и найти нужный метод. Наверняка есть метод записи строки с параметром кодировки. Передаешь туда строку, кодировку и готово! Или вы тут код на бумажках все пишете, а уже потом его в компьютер вводите? – Костик был явно доволен своей шуткой, поэтому широко улыбнулся и посмотрел на часы. – Ну вот, уже полчаса прошло, а мы еще ничего серьезного и не обсудили.
– Да уж, время быстро летит. – не без раздражения прокомментировал Виталий. – Давайте двигаться дальше. Расскажите мне о применении шаблона проектирования Decorator. И чем он отличается от Adapter и Proxy. Вы же слышали о шаблонах проектирования?
– Вы не поверите! Не только слышал, но еще и толстенную книгу пролистал. Хотите мое мнение? Шаблоны проектирования создали для того, чтобы было как поумничать на собеседованиях. Ведь это голая теория! Надо просто брать и писать код, а не думать какой шаблон тут нужно применить. А то задача стынет, а все вокруг нее с шаблонами должны плясать. – оттачивал свое чувство юмора Костик.
– Так может тогда нам проще будет написать вместе немного кода? – предложил Виталий. – Вы бы и показали на практике как решать задачи быстро и качественно.
– Что вы имеете ввиду? Сесть и прямо тут с вами писать код? – недоуменно спросил Костик.
– Ну да! Вот есть ноутбук, тут есть IDE на выбор: IDEA, Eclipse, NetBeans. Также установлена Java 7 и все необходимое. Так что?
– Я не думаю, что за 20 минут мы что-то успеем написать. Это время у меня уйдет только на то, чтобы привыкнуть к клавиатуре, разобраться с настройками IDE и вникнуть в суть задачи. А я вам в самом начале сказал, что отпросился с работы только на часок. – оправдывался Костик, смотря на часы. – Расскажите лучше мне о компании, проекте, разработчиках. Как раз успеем.
– Вы знаете, давайте об этом вам лучше расскажут наши HR. Спасибо за собеседование! – раскланялся Виталий.

Вот так вот выглядело бы собеседование. И как принимать решение о приеме на работу такого кандидата? Если я забыл какую-то прикольную отговорку, то обязательно напишите об этом в комментариях.

Не хочешь пропускать ничего интересного? Подпишись на ленту RSS или следи за нами в Twitter!

Обсуждение (
Warning: A non-numeric value encountered in /sata1/home/users/xpinjecti/www/www.xpinjection.com/wp-includes/pomo/plural-forms.php on line 280

Warning: A non-numeric value encountered in /sata1/home/users/xpinjecti/www/www.xpinjection.com/wp-includes/pomo/plural-forms.php on line 280

Warning: A non-numeric value encountered in /sata1/home/users/xpinjecti/www/www.xpinjection.com/wp-includes/pomo/plural-forms.php on line 280

Warning: A non-numeric value encountered in /sata1/home/users/xpinjecti/www/www.xpinjection.com/wp-includes/pomo/plural-forms.php on line 280

Warning: A non-numeric value encountered in /sata1/home/users/xpinjecti/www/www.xpinjection.com/wp-includes/pomo/plural-forms.php on line 280

Warning: A non-numeric value encountered in /sata1/home/users/xpinjecti/www/www.xpinjection.com/wp-includes/pomo/plural-forms.php on line 280
4)

Помню было смешнее обычного когда парень долго рассказывал что не может говорить об очень сложной архитектуре своего текущего проекта потому, что он на NDA и архитектура мол секретная разработка. А потом как-то так бросил – “Ну ладно, у нас есть БД, слой persistence, business logic & presentation”. Далее следует немая сцена.
На вопрос о том, как работает browser часто отвечают, что “я back-end программист – меня это не касается”.
На вопрос о том, как организован presentation, часто слышу примерно “я Java программист и, если вы будете мне давать front-end задачи я от вас уйду, предупреждаю сразу”. Аналогичный ответ на все вопросы касательно JavaScript, как будто корона упадет.
Пару раз на вопрос “какие структура данных Вы использовали в работе?” слышал ответ “никаких, они мне в работе не нужны, я работаю с классами”.
Смешные ответы получал на вопрос “для чего на Ваш взгляд может использоваться TreeSet”, в стиле “ума не приложу, кому в здравом уме может понадобится сортированная коллекция”.
По поводу кода часто отвечали, что пишут код только за деньги.
Понимаю Виталия, но бывает и весело.

Хороший пост, только вроде Senior девелоперов берут и без собеседований 🙂

Из вопросов, обычно спрашиваю о самой “сложной” штуке которую кандидат делал, а по ООП начинаю именно с модификаторов доступа.

На одном из собеседований после того как кандидат не смог ответить на вопрос о различии private vs protected, после заявленного среднего уровня, а вместо этого серьезно так сказал, что так глубоко не копал.

Вообщем, “копать глубоко” это для задротов.

Очень просто принимать решение 🙂 Посоветовать ему обратиться к конкурентам. Вы, типа, такой могучий интеллект не сможете использовать, а у них будет тепло и уютно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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

принять
Pkv Games BandarQQ Online Terbaik Dengan Deposit Super Modern permainan paling populer di situs poker online terbaik di indonesia di situs bukaqq Poker Online Aman dan Terpercaya slot online