как программисту успешно пройти собеседование / Хабр
Пост подготовлен специально для корпоративного блога Wirex — компании, предлагающей удобное мобильное финансовое приложение для управления личными счетами. Изначально статья задумывалась как подготовительный материал, который автор отправляет своим кандидатам, но в итоге последний решил опубликовать его в открытом источнике, а мы, посчитав тему интересной, сделали перевод для вас, уважаемые читатели.
Тот факт, что вы являетесь хорошим программистом, играет поразительно малую роль при прохождении собеседования. Для того чтобы ваша работа была продуктивной, вам нужно уметь решать огромные, склонные разрастаться проблемы неделями и месяцами. Каждый вопрос на собеседовании, напротив, длится менее одного часа. Для того чтобы хорошо показать себя на интервью, вы должны знать, как быстро решать небольшие проблемы под давлением, при этом ясно излагая свои мысли. Это совершенно другое умение (в то же время я не говорю, что способность с легкостью решать задачи на собеседовании не имеет никакой связи с навыками программирования.
Более того, люди, проводящие собеседование, часто делают это непрофессионально и несколько рассеянно (они бы сами предпочли вместо собеседования заниматься программированием), и поэтому задают вопросы, не связанные с фактическим рабочим процессом. В итоге по ходу интервью кандидаты сталкиваются с предвзятым отношением, недостатком стандартизации и вопросами по сопоставлению с образцом.
Будучи управляющим компании, которая занимается подбором персонала, я хорошо это понимаю. Мы проводим собеседования с инженерами, не изучая их резюме, и по ускоренной процедуре направляем их непосредственно на дальнейшие интервью в другие компании бизнес-инкубатора Y Combinator. За последние девять месяцев мы собеседовали 1000 программистов. Особое внимание мы обращаем на практическое программирование, и позволяем кандидатам выбрать один из семи способов оценивания.
Хорошо то, что прохождение собеседования — это тот навык, который может быть освоен. Мы успешно обучаем кандидатов, чтобы они могли проходить собеседование с лучшими результатами. На самом же деле качество, которое нам приписывают относительно подготовки кандидатов, проходящих интервью в компании YC — это не чистый талант, а скорее усердие.
По большему счету, я убежден, что хорошие программисты не обязаны овладевать специальными навыками, помогающими успешно пройти собеседование. Но ничего не поделаешь со сложившимся положением вещей. Тем временем, если вы хотите произвести лучшее впечатление на собеседовании, то этот пост расскажет вам о том, как, на наш взгляд, наиболее эффективно добиться этого.
1. Проявляйте энтузиазм
Энтузиазм имеет огромное влияние на результаты собеседования. Около 50% наших кандидатов, не прошедших дальнейшие интервью в компаниях, провалили их не по техническим причинам. Обычно компании объясняют это тем, что человек «не вписывается в культуру компании». Однако, в девяти из десяти случаев «вписаться в культуру» — это проявить энтузиазм в том, чем занимается предприятие. Компании нанимают людей, которые проявляют живой интерес к их миссии. Для многих это так же важно, как и технические знания. И в этом есть смысл. Мотивированные сотрудники будут чувствовать себя счастливее и работать усерднее.
Проблема в том, что это может быть наиграно. Некоторые кандидаты умудряются убедить каждую компанию, в которой проходят собеседование, что только об этой работе они всю жизнь и мечтали, в то время как другие (искренне мотивированные и заинтересованные работой) не могут донести свои истинные стремления. Мы снова и снова встречаемся с этим.
Решение здесь одно для всех — научиться показывать свой энтузиазм. Это не значит, что вам позволено обманывать. Собеседование — это как первое свидание. Никто не хочет на первом свидании слышать, что он является лишь одним вариантом из множества, даже несмотря на то, что обычно так и есть. Так и здесь, большинство программистов просто хотят иметь хорошую работу с достойной зарплатой. Но начинать с этого интервью не следует. Лучше всего перед собеседованием подготовить заметки о том, что вам нравится в компании, и упоминать об этом, когда человек, который проводит собеседование, спросит, есть ли у вас вопросы. Хорошим источником идей может быть прочтение недавних постов в блоге компании и пресс-релизов, тогда вы можете упомянуть те материалы, которые показались вам наиболее интересными.
Эта идея кажется довольно поверхностной. Я думаю, что, читая это, вы и сами соглашаетесь. Но (и каждый, кто когда-либо проводил собеседования скажет вам то же самое) процент кандидатов, которые делают это, поразительно мал.
Если вы внимательно подготовите записи о том, почему вы находите компанию интересной, то это действительно увеличит вероятность вашего прохождения. Вы можете даже ссылаться на свои записи по ходу собеседования — это покажет то, что вы готовились.
2. Изучите термины, часто встречающиеся на собеседованиях
Огромный процент задаваемых на собеседовании вопросов касается структуры данных и алгоритмов. Это правда. Мы собираем у кандидатов информацию о вопросах, задаваемых на собеседованиях в компаниях YC, и более 70% вопросов касается именно алгоритмов. Вам не нужно быть экспертом, но знание расположенного ниже списка алгоритмов и структур данных поможет вам получить работу в большинстве компаний.
- Хеш-таблицы
- Связанные списки
- Поиск в ширину, поиск в глубину
- Быстрая сортировка, сортировка слиянием
- Бинарный поиск
- 2D множества
- Динамические массивы
- Двоичное дерево поиска
- Динамическое программирование
- Big-O анализ
В зависимости от вашего образования и ранее выполняемой работы этот список может оказаться простым либо абсолютно пугающим.
Эти понятия гораздо чаще встречаются на собеседованиях, нежели в действительности в веб-программировании. Если вы самоучка или давно закончили учебное заведение, и эти понятия вам незнакомы, то вам следует изучить их для успешного прохождения собеседования. Даже если все это для вас не ново, то освежить знания все равно не помешает. Поразительно большой процент вопросов на собеседовании сводится к поиску в ширину или использованию хэш-таблицы для подсчета уникальных элементов.
Выучить все это не так сложно, как предполагают многие люди, с которыми мы говорили. Алгоритмы обычно объясняются научным языком, и это может сбивать с толку. Но по сути своей, ничто из этого списка не сложнее, чем архитектура современного веб-приложения. Если вы можете (хорошо) построить веб-приложение, то вы сможете выучить и это. Со своей стороны, я могу порекомендовать книгу Стивена Скиены (Steven Skiena) под названием «Алгоритмы.
Изучение алгоритмов и структур данных помогает не только потому, что материал необходим для успеха на собеседовании, но также и потому, что подход к проблемам, взятым в курсе алгоритма, является тем же самым подходом, который работает лучше всего в собеседовании. Изучение алгоритмов поможет вам получить правильное мышление для прохождения собеседования.
3. Пользуйтесь помощью своего интервьюера
Интервьюеры помогают кандидатам. Они дают намеки, реагируют на идеи и обычно руководят ходом собеседования. Но они не помогают всем кандидатам одинаково. Некоторые программисты в состоянии получить значительную помощь таким образом, что человек, который проводит собеседование, не поставит это им в укор.
Другие же осуждаются за любые намеки, которые они получают. Поверьте, вы хотите, чтобы вам помогли.
Это зависит от того, как развивается общение. Если собеседующему вас человеку нравится ваш подход, и вы находите с ним общий язык, то он будет рад помочь вам. Вы можете добиться этого, выработав определенный алгоритм прохождения собеседования. Я рекомендую следующие шаги:
- Задавайте вопросы
- Обговаривайте решение задачи «в лоб»
- Обговаривайте оптимизированное решение
- Пишите код
После того, как вам задали вопрос, начинайте с определения того, о чем именно вас спрашивают. Это как раз тот момент, когда вы должны быть педантичны. Уточните все неясности, которые вы находите. Спросите о пограничных случаях. Приведите конкретные примеры для начала решения задачи и убедитесь, что вы верно поняли, какой конечный результат от вас ожидают. Задавайте вопросы, даже если вы практически уверены в ответах.
Это полезно, потому что дает вам возможность выяснить пограничные случаи и получить все данные, необходимые для решения задачи (умение кандидата «работать» с пограничными случаями — один из ключевых аспектов, который интервьюеры принимают во внимание для общей оценки проведенного собеседования). К тому же это дает вам время на то, чтобы собраться с мыслями до того, как вы начнете решать проблему.
Далее, вы должны говорить о самых простых решениях проблемы, которые только приходят вам на ум. Вы должны говорить, а не браться сразу же за написание кода, потому при словесном объяснении своих идей, вы можете быстрее ответить на вопрос и перейти к следующему, и это больше задействует самого интервьюера, который в свою очередь может помочь, направляя вас. Если же вы сразу перейдете к написанию кода, то потеряете эту возможность.
Кандидаты зачастую пропускают первый шаг, считая, что самое простое решение проблемы слишком очевидно либо ошибочно. Это неправильно. Убеждайтесь в том, что вы всегда находите решения поставленных перед вами проблем (даже если нужно задействовать экспоненциальное время или суперкомпьютер NSA).
После того как вы описали такое простое решение, спросите интервьюера, хочет ли он реализовать его или вам следует придумать более целесообразное решение. Как правило, вас попросят о последнем.
Что касается более целесообразного решения, то излагайте свои мысли, как и в первый раз. Опять же, разговаривайте, а не пишите код, и забрасывайте интервьюера идеями. Можно надеяться, что вопрос будет похож на что-либо уже виденное вами, и вы будете знать ответ на него. Если же нет, то стоит подумать над тем, с какими наиболее похожими на данный случай проблемами вы сталкивались, и на основе этого построить свои ответы. Большинство вопросов на собеседовании связаны с немного завуалированными приложениями классических CS алгоритмов. Нередко интервьюер будет подводить вас к этому алгоритму, но только если вы сами начнете этот процесс.
И наконец, после того, как и вы, и собеседующий вас согласны с тем, что у вас есть хорошее решение, следует приступать к написанию кода. В зависимости от компании, вы будете писать код либо компьютере, либо на доске.
Но поскольку решение у вас уже есть, стоящая перед вами задача не должна выглядеть чем-то замысловатым. Для дополнительных баллов, спросите вашего интервьюера, хочет ли он, чтобы вы написали тесты.
4. Говорите о вариантах решений
Интервью на должность программиста обычно состоит из вопросов, связанных с непосредственно с программированием, и именно о них я рассказывал ранее в этой статье. В то же время вы можете встретиться с вопросами по созданию определенной системы. Компании, судя по всему, склонны к тому, чтобы «помучить» таким образом более опытных кандидатов. В этом случае потенциального работника спрашивают, каким образом они бы разработали ту или иную сложную систему для применения на реальных данных. В качестве примеров используется разработка Карт Google, соцсети или же, например, создание API для банка.
Первое наблюдение: ответ на вопросы, связанные с разработкой такой системы, требует специфических знаний. Никто не потребует от вас создания Карт Google (это заняло кучу времени у множества людей).
В то же время интервьюер ожидает от кандидата какого-то понимания базового принципов разработки такой системы. Не волнуйтесь, обычно все подобные вопросы относятся к бекэнду, поэтому вы можете достигнуть значительного прогресса, если хорошо усвоите соответствующую информацию. Вот неполный список того, что рекомендуется изучить перед собеседованием:
- HTTP (на уровне протоколов)
- Базы данных (индексы, планирование запросов)
- Сети доставки контента (CDN)
- Работа с кэшем (LRU-кэш, memcached, Redis)
- Системы балансировки нагрузки
- Распределенные системы воркеров
Вам нужно не только изучить эти термины, но и понять, как они взаимодействуют друг с другом, формируя реальные системы. Наилучший способ для изучения этих понятиях — это почитать о том, как другие программисты внедряли эти инструменты. Блог High Scalability как нельзя лучше подходит для такого чтения. Данный ресурс публикует детальные материалы о конкретной бэкенд-архитектуры в той или иной существующей компании.
Таким образом вы можете узнать, как каждое решение из списка выше используется в реальных системах.
Как только вы закончите с чтением, ответы на вопросы по созданию таких систем превратятся для вас в последовательное выполнение заданного алгоритма. Начните с самого высокого уровня и затем постепенно спускайтесь вниз. На каждом уровне расспрашивайте интервьюера о требованиях (нужно ли вам представить простой начальный этап разработки, или же следует рассказать, как будет выглядеть полноценная система?) и говорите о нескольких вариантах (например, можно использовать идеи, почерпнутые из онлайн-материалов). Обсуждение различных вариантов и компромиссов в ходе решения задач — это ключ к успеху. Для человека, который проводит собеседование, на самом деле не так важно, сумеете ли вы построить добротную систему. Куда больше его интересует то, насколько умело вы можете рассуждать о поиске оптимального решения, анализируя преимущества и недостатки предложенных вариантов. Практикуйте такие разговоры.
5. Подчеркивайте результаты своей работы
Третий вид вопросов, с которыми вы можете столкнуться на собеседовании, касаются вашего профессионального опыта. Здесь интервьюер обычно просит кандидата рассказать о завершенных проектах. Ошибка многих программистов состоит в том, что они рассказывают исключительно о технической стороне того или иного проекта. Так, большинство специалистов рассказывают об успешном внедрении нейросетевого классификатора или реализации бота для проверки грамматики в Twitter. Это не лучший выбор, потому что человеку, который проводит собеседование, очень трудно судить о масштабе проекта. Многие кандидаты рассказывают о различных сторонних проектах, преувеличивая их значимость, и у интервьюера нет никакой возможности проверить, слышит ли он правду или красивую ложь.
В этом случае оптимальное решение — выбрать какой-то проект, который показал конкретные результаты, и подчеркнуть их. Здесь часто приходится пожертвовать более интересным (технической точки зрения) проектом, но, поверьте, это того стоит.
Подумайте (заранее) о том проекте, который показал наиболее «осязаемые» результаты в реальном мире. Если вы создали игру под iOS, и она набрала 50 тыс. скачиваний, именно эту цифру стоит озвучить. Или, например, вы, проходя стажировку в какой-либо компании, написали интерфейс для доступа в «админку», который впоследствии решено было использовать для работы всех администраторов. Факт использования результата вашей деятельности — это отличный повод рассказать о вашем достижении. Кроме того, выбор более «технического» проекта при ответе на вопрос о своих прошлых достижениях посылает компании информацию о том, что вы сфокусированы на самой работе. Программисты, которых больше интересует «техническая» сторона каждого проекта, а не достигнутые результаты, обычно отсеиваются на начальном этапе подбора персонала (считается, что порой такие специалисты недостаточно продуктивны).
6. Используйте динамический язык программирования, но обязательно упомяните C
Я рекомендую, чтобы на собеседованиях вы использовали такие динамические языки, как Python, Ruby или JavaScript.
Конечно же, вам следует использовать любой язык, который вы знаете лучше всего. Но мы обнаружили, что многие интервьюеры предпочитают C, C ++ или Java, почему-то считая, что именно они являются «настоящими» языками программирования. Несколько классических книг по прохождению собеседований рекомендуют, чтобы программисты выбрали Java или C ++. Но нам кажется, что по крайней мере для стартапов это — плохой совет. Кандидаты добиваются большего успеха, используя динамические языки. На мой взгляд, это происходит благодаря их компактному синтаксису, гибкой типизации, а также литералов списка и хэша. Это нестрогие языки программирования. С ними могут возникнуть определенные трудности при создании сложных систем (что также является очень спорным вопросом), но они хороши, когда вы пытаетесь влепить прямо на доске алгоритм бинарного поиска.
Независимо от того, какой язык вы используете, стоит упомянуть, что вы работали и с другими языками. Компании имеют предубеждения относительно специалистов, владеющих только одним языком программирования.
Если же вы знаете только один язык, вы должны полагаться на то, что вы действительно круто им владеете. Но если вы когда-то сделали что-либо для основных или сторонних проектов на нескольких языках, обязательно скажите об этом не собеседовании. Если вы работали с такими машинно-ориентированными языками, как C, C++, Go или Rust, то упоминание об этом особенно важно.
Языки Java, C# и PHP в какой-то мере являются проблематичными. Мы обнаружили, что у стартапов есть некоторые предубеждения относительно этих языков. У нас есть данные, которые показывают, что программисты, использующие эти языки на собеседованиях, получают более низкие оценки. Это несправедливо, но это правда. Если у вас есть другие варианты, я рекомендую не использовать эти языки на собеседованиях в стартапы.
7. Практикуйтесь, практикуйтесь и еще раз практикуйтесь
Вы сможете лучше выглядеть на собеседовании, если заранее будете репетировать ваши ответы. Все потому, что любое собеседование — это стресс, а стресс негативно влияет на то, как вы себя преподаете.
Решение одно — практика. Собеседования становятся менее трудными, когда вы приобретаете опыт в этом деле и со временем к ним привыкаете. Мы часто замечаем, что первые интервью кандидатов (даже в рамках одного поиска работы) оказываются неудачными, однако затем они обретают уверенность и лучше выглядят на интервью. Есть вам нелегко побороть стресс, то я рекомендую начать с инициирования собеседования. Найдите список вопросов для собеседования (рекомендуем книгу Cracking the Coding Interview, на российском рынке известную под названием «Карьера программиста. Как устроиться на работу в Google, Microsoft или другую ведущую IT-компанию») и проработайте их. Установите таймер, уделяя на каждый вопрос по 20 минут и старайтесь ответить на него как можно быстрее. Потренируйтесь писать ответы на доске (не все компании этого требуют, но это самый худший вариант, который стоит отработать). Лист бумаги и ручка могут послужить вам для симуляции доски. Если у вас есть друзья, которые могут помочь вам потренироваться проходить собеседование, то это замечательно.
Вы можете собеседовать друг друга по очереди. Чтение задаваемых на интервью вопросов также даст вам неплохие идеи, которыми вы можете воспользоваться во время реального собеседования. На удивление очень много вопросов используются повторно (целиком или частично).
Даже опытные (и не подверженные стрессу) кандидаты извлекут из этого выгоду. Прохождение собеседования — это навык, который существенно отличается от работы программиста, и этот навык может атрофироваться. Но опытные программисты часто (и обоснованно) чувствуют, что им не стоит готовиться к интервью. Они учатся меньше. Именно поэтому более молодые кандидаты часто фактически лучше отвечают на вопросы, нежели опытные кандидаты. Компании знают это, и, как это ни парадоксально, некоторые сообщают нам, что для опытных кандидатов они устанавливают более низкий проходной порог ответов на вопросы о программировании.
8. Упомяните о своем послужном списке
Послужной список изначально очень важен для интервьюеров.
Наши кандидаты, которые ранее работали в ведущих компаниях или учились в лучших учебных заведениях, успешно проходят собеседования на 30% чаще, нежели те, которые не могут этим похвастаться (актуально для определенного уровня квалификации по результатам исследования, не учитывающего громкие названия компаний из резюме кандидатов). Мне это не нравится. Это не отвечает принципам меритократии, и это полный отстой, но, если в вашем послужном списке нечто подобное имеется, то в ваших же интересах сообщить об этом интервьюерам. Вы не должны слепо полагаться на то, что они прочитают ваше резюме.
9. Собирайте сделанные вам предложения работы
Если вы когда-нибудь почитаете советы по привлечению инвестиций для основателей, то вы узнаете о том, что самое трудное — это получить предложение от первого инвестора. Как только вы его получили, то посыплются и другие. Это же правило применимо и к предложениям работы. Если у вас уже есть предложение работы, то не забудьте упомянуть об этом на интервью — это оказывает сильное влияние на интервьюера, склоняя его в вашу пользу.
И поэтому стоит воспользоваться следующей стратегией: сделать список интересующих вас компаний и назначать время собеседований в обратном порядке относительно степени вашего интереса. Тогда то, что вы неплохо себя покажете ранее, позднее увеличит ваши шансы получить работу, которая для вас интереснее всего. Вам определенно стоит так сделать.
Заключение
Прохождение интервью является навыком. Если вы замечательный программист — отлично, но этого недостаточно. Все когда-нибудь проваливают интервью, и должная подготовка может помочь каждому увеличить вероятность успеха. Энтузиазм чрезвычайно важен, и для того, чтобы научиться правильно показывать его, вам стоит попрактиковаться. Из-за недостатка энтузиазма на собеседованиях терпят неудачу столько же программистов, сколько проваливаются по техническим причинам. Интервьюеры помогают кандидатам во время интервью, и если вы будете правильно вести себя и правильно общаться, то они обязательно вам помогут.
Практика всегда помогает. Чтение большого количества задаваемых на собеседованиях вопросов и приучение самого себя к испытываемому на собеседованиях стрессу обеспечит вам успех и получение большего количества предложений работы.
Это не идеальная ситуация. Подготовка к собеседованиям дает свои плоды, но на обучение программистов умениям, которые не относятся к созданию качественного софта, тратит время каждой стороны, принимающей участие в процессе подбора персонала. Компаниям следует усовершенствовать процесс проведения собеседований, уменьшив влияние академических знаний в области информатики, заученных фактов и отрепетированных действий. Но реальное положение вещей сейчас отличается от того, к которому мы стремимся, поэтому программисты должны уметь правильно подготовиться к собеседованиям.
Перевод подготовлен компанией Wirex. Подписывайтесь на наши статьи — впереди читателей Geektimes ждет еще много интересного! Надеемся на скорую встречу в блоге Wirex, и не забудьте заказать нашу карту.
Как проводить собеседование с программистом?
Программист – это ценный сотрудник, от которого может зависеть успех целой компании. Поэтому проводить собеседование с программистом при приеме на работу стоит с особой тщательностью. Задачей такой процедуры является не только отсечение некомпетентных кадров, но и выявление реально талантливых соискателей, имеющих широкий потенциал.
Как проверить на собеседовании портфолио программиста?
Многие соискатели, ссылаясь на неосведомленность работодателей, предоставляют огромные портфолио. Но проверить качество такого материала довольно просто. И для этого не обязательно разбираться в программировании.
Чтобы провести такую проверку необходимо задавать, такие вопросы, как:
- Сколько человек работало с Вами над проектом;
- Какую задачу выполняли именно Вы в команде программистов;
- Как Вы тестировали проекты на наличие ошибок в коде;
- Каким образом Вы добивались информационной безопасности и тд.
Если портфолио подлинное, то программист сможет рассказать все о каждом представленном проекте. При этом количество выполненных работ не должно вас привлекать. Часто, это является инструментом непрофессиональных кадров.
Определяем опыт программиста
Такой показатель также можно легко подделать. Но чтобы этого не произошло, вам стоит выяснить следующую информацию:
- Когда соискатель начал писать первый код;
- В каких группах работал;
- Имелся ли опыт работы в нескольких проектах одновременно;
- Вносил ли соискатель решающий вклад в развитие проекта.
Также важно выяснить, если ли у вашего будущего сотрудника собственные сайты в интернете или программы. Положительный ответ будет означать приверженность к своей работе.
Профессиональные вопросы для программиста
Заключительным этапом собеседования может стать беседа на профессиональную тематику.
Спросите у программиста, что такое:
- Распределение памяти;
- Рекурсия;
- Многопоточность;
- Компиляция и проч.
Далее можно дать задание по написанию кода. Составляйте такой тест, учитывая специфику той работы, которую требуется выполнять в вашей компании. В первую очередь, стоит искать сотрудника, который может делать повседневную работу, а лишь затем “крутого” профессионала.
Каждый программист должен иметь острую интуицию и высокую сообразительность. Для выявления таких качеств можно использовать задания на смекалку.
Но не стоит судить соискателей излишне строго. Проводите собеседование с программистом с целью найти реально полезного сотрудника, а не “сверх человека”. Тогда ваши поиски быстро закончатся с успехом, и бизнес вашей организации будет стабильно развиваться.
Доверьте поиск программиста нашей компании, и мы предоставим профессионала для разработки вашего проекта.
10 вопросов, которые каждый разработчик программного обеспечения должен задать на собеседовании
Как однажды сказал великий Бенджамин Франклин: «Не готовясь, вы готовитесь к поражению». Хотя эту фразу можно применить ко многим сферам жизни, она также верна с точки зрения подготовки к собеседованию.
Правильное планирование имеет решающее значение, поскольку кандидаты начинают готовиться к предстоящему собеседованию. Независимо от того, будет ли ваше обсуждение проходить лично или посредством видеоконференции, ваши интервьюеры быстро смогут сказать, действительно ли вы выполнили свою домашнюю работу.
Тем не менее, несмотря на то, что акт тщательного «изучения» компании имеет решающее значение для успеха на собеседовании, кандидаты не могут пренебречь составлением набора вопросов, которые можно задать своему потенциальному работодателю. Вот мои 10 главных вопросов, которые каждый разработчик программного обеспечения должен задать на собеседовании:
1.
Какова текущая структура команды и как эта роль вписывается в эту структуру? То, как менеджер по найму ответит на этот вопрос, в конечном итоге многое скажет о корпоративной культуре организации. Вы не только сможете определить, кто работает в вашем отделе, но также узнаете, будут ли вас поддерживать QA и команда тестирования. Убедитесь, что вы понимаете размер команды разработчиков, к которой вы могли бы присоединиться. Будете ли вы «большой рыбой в маленьком пруду» или «маленькой рыбой в большом пруду»?
2. Какая самая большая проблема для команды? На этот вопрос можно ответить по-разному, и все они могут склонить вас к компании или от нее. Например, если в отделе не хватает персонала, ваша должность может сыграть важную роль в решении критической проблемы и повышении эффективности рабочего места. Однако, если вы обнаружите, что ваша команда не имеет поддержки со стороны компании или не имеет средств для достижения своих целей и задач, это может быть потенциальным предупреждающим знаком.
Важно уловить чувство стандарта, которого вы будете придерживаться, если на самом деле согласитесь на эту должность. Будут ли определенные KPI производительности, которым вы должны будете следовать? Как выглядит средний график завершения проекта? Как часто будут проводиться обзоры эффективности? Некоторые компании используют свои собственные измерения производительности и эффективности. Понимание того, как ваш потенциальный работодатель оценивает успех, может иметь важное значение для вашего общего опыта работы.
4. Какие возможности профессионального развития предлагает ваша компания? В современном мире программы обучения и развития (L&D) являются обязательными для любой компании, стремящейся нанять лучших специалистов. Во время собеседования обязательно узнайте о типах семинаров и учебных лагерей, которые ваш потенциальный работодатель может предложить для повышения ваших навыков.
Спросите, готова ли компания заплатить за курс или сертификацию, которые помогут улучшить вашу производительность на рабочем месте. Узнайте, сможете ли вы принять участие в сетевых мероприятиях или других возможностях профессионального развития за пределами офиса. Выясните, доступны ли в компании какие-либо внутренние программы наставничества, чтобы учиться у руководителей высшего звена.
Значительная часть вашего интервью будет посвящена тому, чтобы узнать больше о видении компании на будущее. Вы должны не только узнать, где находится компания в настоящее время, но и получить представление о том, куда организация будет двигаться через два, десять или двадцать лет. Если менеджер по найму сможет правильно ответить на этот вопрос, вы сможете представить свою потенциальную роль в содействии долгосрочному росту компании.
6. Как вы расставляете приоритеты и планируете проекты? Начальство может улучшить или испортить ваш рабочий процесс.
То, как эти лидеры работают над установлением приоритетов и делегированием полномочий, несомненно, будет иметь для вас большое значение. Обязательно хорошо разбирайтесь в руководителе вашего отдела и в том, как он ведет свой бизнес. Если вы видите, что вам трудно работать с их личностью или стилем руководства, это может быть причиной для беспокойства.
Целью этого вопроса является изучение вашей ожидаемой степени полномочий по принятию решений в компании. Будет ли востребован ваш вклад, чтобы помочь вашему отделу прийти к выводам о дизайне, или вы будете играть в этом процессе скорее второстепенную роль? Этот ответ может быть важным показателем того, как компания оценивает ваш предыдущий опыт работы и предвидит уровень вашей будущей вовлеченности. Кроме того, если организационные узкие места или чрезмерный надзор со стороны руководства кажутся распространенными проблемами, узнайте, как организация будет с ними бороться.
Убедитесь, что компания использует технологию, с которой вы чувствуете себя комфортно и имеете опыт работы. Использует ли организация лучшие и самые яркие платформы на рынке, или она застряла на старой, архаичной системе? В конечном счете, чем больше вы сможете познакомиться с современными технологиями, тем большую пользу это принесет вашему долгосрочному профессиональному развитию.
9. Какую новейшую технологию/инструмент/инфраструктуру внедрила ваша команда?Хотите узнать, насколько инновационной является компания на самом деле? Не смотрите дальше этого вопроса! Вы сможете определить готовность организации экспериментировать с новыми платформами и программным обеспечением. Если вы разработчик, которому нужно иметь в своем распоряжении новейшие технологии, обязательно обратите пристальное внимание на то, как организация дает свой ответ.
10.
Какую методологию разработки программного обеспечения использует ваша команда? Получите представление о процессах и процедурах, которым необходимо следовать при проектировании и разработке платформ и программного обеспечения компании. Узнайте, использует ли организация наиболее эффективную методологию для поддержки своего размера. Придерживается ли компания гибкого подхода или предпочитает традиционную методологию водопада? Узнав больше о подходе организации к созданию своего продукта или программного обеспечения, вы сможете определить, соответствует ли рабочая среда компании вашим личным достоинствам.
Я всегда обращаю внимание своих кандидатов на этот момент: собеседование — это улица с двусторонним движением. Не только работодатель пытается узнать вас, но и вы пытаетесь узнать больше о работодателе. Задавая правильные вопросы во время собеседования, вы получите более глубокое и всестороннее представление о компании и о том, сможете ли вы представить себе будущее работы в этой организации.
Но сначала обязательно проведите исследование! Ваше чувство подготовки в конечном итоге окупится в долгосрочной перспективе.
16 вопросов на собеседовании веб-разработчика
К Роберт Халф 28 ноября 2022 г., 14:50 \r\n\r\nHire Talent
\r\n\r\n\r\n
\r\n
Какие 16 вопросов на собеседовании веб-разработчика вы должны задать?
\r\n\r\n
- \r\n\t
- Какой ваш любимый проект и как вы подошли к нему? \r\n\t
- Как бы вы объяснили такое понятие, как _____, коллеге без технического образования? \r\n\t
- Расскажите мне о случае, когда вам нужно было провести презентацию. \r\n\t
- Назовите веб-сайт или приложение, которое вас раздражает. Что с этим не так? \r\n\t
- Расскажите мне о шагах, которые вы предпринимаете, когда приложение перестает работать.
\r\n\t - Расскажите мне о случае, когда вам пришлось отвечать на негативные отзывы. \r\n\t
- Расскажите мне о случае, когда вы думали, что вас несправедливо обвинили в ошибке, и как вы с этим справились. \r\n\t
- Каковы самые большие проблемы при работе над интерфейсом приложения? \r\n\t
- Расскажите мне о проектах, над которыми вы работаете (или работали) в свободное время. \r\n\t
- С какими API вы работали? \r\n\t
- Что вас волнует в будущем веб-разработки? \r\n\t
- Какие системы управления контентом вы предпочитаете? \r\n\t
- Есть ли у вас опыт работы с SQL? \r\n\t
- В чем самая большая разница между разработкой для мобильных устройств и компьютеров? \r\n\t
- Можете ли вы найти ошибку в этом коде? \r\n\t
- Можете ли вы описать, как вы справляетесь со сжатыми сроками на работе? \r\n
\r\n
\r\n\r\n
Веб-разработчики играют жизненно важную роль в создании цифрового бренда вашей организации.
Когда вы нанимаете на эту должность, вам нужен человек с сильными техническими навыками, хорошим пониманием дизайна и мышлением, ориентированным на безопасность.
\r\n\r\n
Вам также нужен человек с непревзойденными навыками общения. Ваш новый веб-разработчик будет тесно сотрудничать с дизайнерами, аналитиками и заинтересованными сторонами, чтобы создать первоклассный цифровой опыт. Донесение сложных идей до нетехнической аудитории может быть столь же важно, как свободное владение любым языком программирования.
\r\n\r\n
Вот 16 вопросов для собеседования веб-разработчика, которые помогут вам определить подходящего человека для вашей команды.
\r\n\r\n
1. Какой ваш любимый проект и как вы подошли к нему?
\r\n\r\n
Подобные вопросы на собеседовании веб-разработчика помогут вам узнать о стиле работы кандидата — о том, как он решает проблемы, управляет отзывами пользователей, взаимодействует с обеспечением качества и сотрудничает в команде.
\r\n\r\n
2. Как бы вы объяснили такое понятие, как _____, коллеге, не имеющему технического образования?
\r\n\r\n
Ваш новый веб-разработчик должен будет эффективно взаимодействовать со своими нетехническими коллегами в таких отделах, как продажи и маркетинг. Проверьте их способность общаться на языке без жаргона по таким темам, как:
\r\n\r\n
- \r\n\t
- MVC (модель, представление, контроллер) \r\n\t
- Адаптивный дизайн \r\n\t
- Часто используемые облачные платформы, такие как Amazon Web Services (AWS) и Microsoft Azure \r\n\t
- API-интерфейсы \r\n\t
- Архитектура микросервисов \r\n
\r\n\r\n
3. Расскажите мне о времени, когда вам приходилось проводить презентацию.
\r\n\r\n
ИТ играют стратегическую роль во многих компаниях, и вашего веб-разработчика могут попросить присутствовать на собраниях и предоставлять отчеты о ходе работы руководству.
Хорошие кандидаты не обязательно должны быть экстравертами, им просто комфортно выступать перед другими. Затем спросите, как соискатели справились с вопросами аудитории и что они узнали из общего опыта.
\r\n\r\n
4. Назовите веб-сайт или приложение, которое вас раздражает. Что с этим не так?
\r\n\r\n
Этот вопрос для собеседования веб-разработчика оценивает уровень интереса кандидата к хорошему веб-дизайну и его способности решать проблемы. Хороший ответ — тот, в котором кандидат делает больше, чем просто жалуется на чужую работу. Квалифицированные веб-разработчики предложат реальные решения практических вопросов, например, как улучшить время загрузки или оптимизировать взаимодействие с пользователем.
\r\n\r\n
5. Расскажите мне о действиях, которые вы предпринимаете, когда приложение перестает работать.
\r\n\r\n
Решение проблем лежит в основе веб-разработки, поэтому послушайте, как кандидаты говорят об устранении неполадок.
Разбирают ли они ситуацию и анализируют возможные причины? Знают ли они, когда просить о помощи и где найти ответы? Как они реагируют, если их первая идея решения не срабатывает?
\r\n\r\n
6. Расскажите мне о случае, когда вам приходилось отвечать на негативные отзывы.
\r\n\r\n
Веб-разработчики должны иметь дело с отзывами бета-тестеров и реальных пользователей, которые могут быть негативными и, следовательно, обескураживающими. Идеальный кандидат на должность веб-разработчика должен знать, как принимать отзывы, анализировать их и претворять в жизнь. Послушайте, как кандидат решает проблему и находит решение.
\r\n\r\n
7. Расскажите мне о случае, когда вы думали, что вас несправедливо обвинили в ошибке, и как вы с ней справились.
\r\n\r\n
Это сложный вопрос, но это хороший способ оценить отношение кандидата к командной работе.
Если интервьюируемый быстро бросает коллег под автобус, это красный флаг. Вы хотите нанять дипломатичного веб-разработчика, который быстро не разочаруется и будет работать над решением.
\r\n\r\n
8. Каковы самые большие трудности при работе над интерфейсом приложения?
\r\n\r\n
Веб-разработчики тесно сотрудничают с остальной командой разработчиков. Они понимают, как структурированы данные, какие функции доступны, как вызываются API и как настраиваются веб-сервисы. Этот вопрос на собеседовании поможет отличить разработчика от дизайнера.
\r\n\r\n
9. Расскажите мне о проектах, над которыми вы работаете (или работали) в свободное время.
\r\n\r\n
Технологии развиваются быстро. Нанимая веб-разработчика, вы ищете того, кто вкладывает часть своего времени в развитие своих навыков и остается в курсе новых тенденций.
Кандидаты должны иметь возможность обсудить некоторые личные проекты, как прошлые, так и настоящие, и, возможно, даже показать вам свою работу.
\r\n\r\n
10. С какими API вы работали?
\r\n\r\n
Все кандидаты должны были работать с API-интерфейсами известных коммерческих сервисов, таких как Twitter, Slack, Dropbox и набор API-интерфейсов, предлагаемых Google. Кандидаты также должны быть в состоянии объяснить, как вызывать функции API и интегрировать результаты в их дизайн. Опытные профессионалы могли помочь разработать и задокументировать свои собственные API. Они смогут рассказать о том, как они работали с командой разработчиков над созданием безопасных и полезных интерфейсов.
\r\n\r\n
11. Что вас волнует в будущем веб-разработки?
\r\n\r\n
Это открытый вопрос, и кандидаты могут говорить о таких технологиях, как Web3, достижениях в области искусственного интеллекта (ИИ), 5G и граничных вычислениях, метавселенной или любых других актуальных темах.
. Вы можете уточнить этот вопрос, спросив, как кандидат надеется развить свои навыки. Это может привести к разговору о программе профессионального развития вашей компании, которая может помочь вам и кандидату установить долгосрочные ожидания от совместной работы.
\r\n\r\n
12. Какие системы управления контентом вы предпочитаете?
\r\n\r\n
Большинство кандидатов имеют опыт работы с популярными системами управления контентом (CMS), такими как WordPress или Joomla. Если да, попросите их рассказать вам о созданных ими темах или модулях. У некоторых кандидатов может быть опыт работы с безголовой CMS, у которой нет внешнего интерфейса, или с развязанной CMS, где внешний и внутренний интерфейсы взаимодействуют через уровень API.
\r\n\r\n
Опыт работы с автономными или несвязанными CMS посылает убедительный сигнал о том, что кандидат обладает продвинутыми навыками веб-разработки.
\r\n\r\n
13. Есть ли у вас опыт работы с SQL?
\r\n\r\n
Веб-разработчики не могут напрямую взаимодействовать с базой данных, но они должны понимать, как структурированы данные. Любой практический опыт работы с SQL, например работа администратором базы данных, может быть очень ценным.
\r\n\r\n
14. В чем самая большая разница между разработкой для мобильных устройств и компьютеров?
\r\n\r\n
Мобильный дизайн необходим для всех веб-проектов. Более половины всего веб-трафика приходится на мобильные устройства, и поисковые рейтинги Google отдают предпочтение веб-сайтам, оптимизированным для телефонов и планшетов. Подходящий кандидат на роль веб-разработчика должен знать, как оптимизировать сайт для всех платформ. Они также должны быть в состоянии озвучивать важные различия, такие как размер экрана, сенсорный ввод, ограниченная многозадачность и разнообразие подключаемых модулей браузера.
\r\n\r\n
15. Вы можете найти ошибку в этом коде?
\r\n\r\n
Обычно во время собеседования кандидатов просят написать код на лету, что не является идеальным вариантом. Альтернативой является предоставление кандидату фрагмента кода, такого как класс Java и код JavaScript, который его вызывает, со стратегически размещенными ошибками и просьба к интервьюируемым отладить его. Это быстрый способ установить как технические знания кандидата, так и внимание к деталям.
\r\n\r\n
16. Можете ли вы описать, как вы справляетесь со сжатыми сроками на работе?
\r\n\r\n
Разработка веб-приложений строго ограничена сроками, и необходимость сдать высококачественный проект в срок и в рамках бюджета часто может быть очень высокой. Этот тип открытых вопросов на собеседовании об управлении сроками может помочь вам понять, как кандидат справляется со стрессом на работе, как он планирует свое время и какова его общая рабочая этика.
Поощряйте кандидата делиться примерами того, как он преодолевал препятствия в прошлом, чтобы уложиться в критические сроки проекта.
\r\n\r\n
Ответив на эти вопросы на собеседовании веб-разработчика, вы сможете определить кандидатов с впечатляющими техническими навыками и сильными коммуникативными качествами — именно то, что вам нужно, чтобы помочь вашей компании предоставить первоклассный цифровой опыт.
\r\n
\r\n
\r\n
\r\n”,”keywords”:”технологии, тренды, как проводить собеседования с кандидатами, малый бизнес”,”статьяРаздел”:”Оценка Кандидаты на вакансию”,”dateCreated”:”1669647000″,”headline”:”16 вопросов веб-разработчика на собеседовании, которые должен задать каждый менеджер по найму”,”author”:”Robert Half”,”datePublished”:”2022-11-28″, “publisher”:{“@type”:”Организация”,”name”:”Robert Half”,”logo”:{“@type”:”ImageObject”,”url”:”https://www.
roberthalf. com/themes/custom/rhalf/assets/images/ogImageFallback.jpg”}},”mainEntityOfPage”:”https://www.roberthalf.com/blog/evaluating-job-candidates/16-web-developer-interview- вопросы, которые должен задать каждый менеджер по найму”,”dateModified”:”2023-01-16″}
Веб-разработчики играют жизненно важную роль в создании цифрового бренда вашей организации. Когда вы нанимаете на эту должность, вам нужен человек с сильными техническими навыками, хорошим пониманием дизайна и мышлением, ориентированным на безопасность.
Вам также нужен человек с непревзойденными навыками межличностного общения. Ваш новый веб-разработчик будет тесно сотрудничать с дизайнерами, аналитиками и заинтересованными сторонами, чтобы создать первоклассный цифровой опыт. Донесение сложных идей до нетехнической аудитории может быть столь же важно, как свободное владение любым языком программирования.
Вот 16 вопросов для собеседования веб-разработчика, которые помогут вам найти подходящего человека для вашей команды.
1. Какой ваш любимый проект и как вы к нему подошли?
Вопросы для собеседования веб-разработчика, подобные этому, помогут вам узнать о стиле работы кандидата — о том, как он решает проблемы, управляет отзывами пользователей, взаимодействует с обеспечением качества и сотрудничает в команде.
2. Как бы вы объяснили такое понятие, как _____, коллеге, не имеющему технического образования?
Ваш недавно нанятый веб-разработчик должен будет эффективно взаимодействовать со своими коллегами, не являющимися техническими специалистами, в таких отделах, как продажи и маркетинг. Проверьте их способность общаться на языке без жаргона по таким темам, как:
- MVC (модель, представление, контроллер)
- Адаптивный дизайн
- Широко используемые облачные платформы, такие как Amazon Web Services (AWS) и Microsoft Azure
- API
- Архитектура микросервисов
3.
Расскажите мне о случае, когда вам нужно было провести презентацию.ИТ играет стратегическую роль во многих компаниях, и вашего веб-разработчика могут попросить присутствовать на собраниях и предоставлять отчеты о ходе работы руководству. Хорошие кандидаты не обязательно должны быть экстравертами, им просто комфортно выступать перед другими. Затем спросите, как соискатели справились с вопросами аудитории и что они узнали из общего опыта.
4. Назовите веб-сайт или приложение, которые вас раздражают. Что с этим не так?
Этот вопрос для собеседования веб-разработчика оценивает уровень интереса кандидата к хорошему веб-дизайну и его способности решать проблемы. Хороший ответ — тот, в котором кандидат делает больше, чем просто жалуется на чужую работу. Квалифицированные веб-разработчики предложат реальные решения практических вопросов, например, как улучшить время загрузки или оптимизировать взаимодействие с пользователем.
5. Расскажите мне о действиях, которые вы предпринимаете, когда приложение перестает работать.

Решение проблем лежит в основе веб-разработки, поэтому послушайте, как кандидаты говорят об устранении неполадок. Разбирают ли они ситуацию и анализируют возможные причины? Знают ли они, когда просить о помощи и где найти ответы? Как они реагируют, если их первая идея решения не срабатывает?
6. Расскажите мне о случае, когда вам пришлось отвечать на негативные отзывы.
Веб-разработчики должны иметь дело с отзывами бета-тестеров и реальных пользователей, которые могут быть негативными и, следовательно, обескураживающими. Идеальный кандидат на должность веб-разработчика должен знать, как принимать отзывы, анализировать их и претворять в жизнь. Послушайте, как кандидат решает проблему и находит решение.
7. Расскажите мне о случае, когда вы думали, что вас несправедливо обвинили в ошибке, и как вы с этим справились.
Это сложный вопрос, но это хороший способ оценить отношение кандидата к командной работе. Если интервьюируемый быстро бросает коллег под автобус, это красный флаг.
Вы хотите нанять дипломатичного веб-разработчика, который быстро не разочаруется и будет работать над решением.
8. Каковы самые большие трудности при работе над интерфейсом приложения?
Веб-разработчики тесно сотрудничают с остальной командой разработчиков. Они понимают, как структурированы данные, какие функции доступны, как вызываются API и как настраиваются веб-сервисы. Этот вопрос на собеседовании поможет отличить разработчика от дизайнера.
9. Расскажите мне о проектах, над которыми вы работаете (или работали) в свободное время.
Технологии развиваются быстро. Нанимая веб-разработчика, вы ищете того, кто вкладывает часть своего времени в развитие своих навыков и остается в курсе новых тенденций. Кандидаты должны иметь возможность обсудить некоторые личные проекты, как прошлые, так и настоящие, и, возможно, даже показать вам свою работу.
10. С какими API вы работали?
Все кандидаты должны были работать с API-интерфейсами известных коммерческих сервисов, таких как Twitter, Slack, Dropbox и набор API-интерфейсов, предлагаемых Google.
Кандидаты также должны быть в состоянии объяснить, как вызывать функции API и интегрировать результаты в их дизайн. Опытные профессионалы могли помочь разработать и задокументировать свои собственные API. Они смогут рассказать о том, как они работали с командой разработчиков над созданием безопасных и полезных интерфейсов.
11. Что вас волнует в будущем веб-разработки?
Это открытый вопрос, и кандидаты могут говорить о таких технологиях, как Web3, достижениях в области искусственного интеллекта (ИИ), 5G и граничных вычислениях, метавселенной или любых других актуальных темах. Вы можете уточнить этот вопрос, спросив, как кандидат надеется развить свои навыки. Это может привести к разговору о программе профессионального развития вашей компании, которая может помочь вам и кандидату установить долгосрочные ожидания от совместной работы.
12. Какие системы управления контентом вы предпочитаете?
Большинство кандидатов имеют опыт работы с популярными системами управления контентом (CMS), такими как WordPress или Joomla.
Если да, попросите их рассказать вам о созданных ими темах или модулях. У некоторых кандидатов может быть опыт работы с безголовой CMS, у которой нет внешнего интерфейса, или с развязанной CMS, где внешний и внутренний интерфейсы взаимодействуют через уровень API.
Опыт работы с автономными или автономными CMS посылает убедительный сигнал о том, что кандидат обладает продвинутыми навыками веб-разработки.
13. Есть ли у вас опыт работы с SQL?
Веб-разработчики не могут напрямую взаимодействовать с базой данных, но они должны понимать, как структурированы данные. Любой практический опыт работы с SQL, например работа администратором базы данных, может быть очень ценным.
14. В чем самая большая разница между разработкой для мобильных устройств и компьютеров?
Удобный для мобильных устройств дизайн необходим для всех веб-проектов. Более половины всего веб-трафика приходится на мобильные устройства, и поисковые рейтинги Google отдают предпочтение веб-сайтам, оптимизированным для телефонов и планшетов.
Подходящий кандидат на роль веб-разработчика должен знать, как оптимизировать сайт для всех платформ. Они также должны быть в состоянии озвучивать важные различия, такие как размер экрана, сенсорный ввод, ограниченная многозадачность и разнообразие подключаемых модулей браузера.
15. Вы можете найти ошибку в этом коде?
Обычно во время собеседования кандидатов просят написать код на лету, что не является идеальным вариантом. Альтернативой является предоставление кандидату фрагмента кода, такого как класс Java и код JavaScript, который его вызывает, со стратегически размещенными ошибками и просьба к интервьюируемым отладить его. Это быстрый способ установить как технические знания кандидата, так и внимание к деталям.
16. Можете ли вы описать, как вы справляетесь со сжатыми сроками на работе?
Разработка веб-приложений строго ограничена сроками, и необходимость выполнения высококачественного проекта в срок и в рамках бюджета часто может быть очень высокой.
