GrabDuck

Как успешно пройти собеседование на Java-разработчика. Советы интервьюеров

:

DOU побеседовал с Java-программистами, которым по долгу службы приходится проводить собеседования на позиции Java-разработчиков, и на основе их замечаний составил ряд советов, которые могут быть полезны тем, кто в ближайшем будущем собирается сменить место работы. Советы будут также актуальны и для тех, кто хочет впервые испытать себя в качестве Java-программиста.

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

Теория

Что касается технической части собеседования на позицию Java-разработчика (не важно, джуниора, миддла или синьора), то к ней нужно основательно подготовиться. Скорее всего, вам зададут так называемые «50 вопросов Java», касающиеся синтаксиса и семантики Java. Ответы на эти вопросы спрашивают как у разработчиков с впечатляющим стажем, так и у новичков в этой отрасли. Часто опытные программисты гнушаются повторением этих вопросов, а иногда даже критикуют их использование на собеседованиях. И в итоге проявляют себя не в лучшем свете, когда не могут уверенно ответить на самые простые из них, особенно на фоне новичков, досконально разобравшихся в данном перечне и с легкостью дающих ответ по любому пункту.

Пока соискатель не окажется на месте интервьюера, он не поймет, почему задают эти вопросы. Объяснение же здесь простое. IT-компания заинтересована нанимать лучших специалистов, несмотря на то, что весь багаж их знаний и опыта может и не понадобиться для поставленных задач. Хорошему программисту компания с легким сердцем будет платить высокую зарплату. Плохой же работник может «аукнуться» компании в дополнительную сумму денег, а также усилий и времени, которые другие разработчики потратят на исправление его ошибок. Поэтому компании важно определить реальный уровень кандидата. И эта ответственность ложится на плечи интервьюера. Те, кто проводили собеседования, знают, что совсем нелегко за пару часов понять реальную квалификацию совершенно незнакомого человека. Конечно, соискатель может «зазубрить» ответы, но поскольку собеседования проводят опытные специалисты, то им ничего не стоит задать уточняющие вопросы, которые позволят установить истинную компетенцию кандидата. Поэтому действительно важно разобраться во всех технических нюансах.

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

Как ни странно, но кандидатов на позицию Java-разработчика спрашивают также и по SQL. Но в данном случае от вас не потребуют чрезвычайно глубоких знаний на уровне DBA. Вероятнее всего, вам зададут вопросы по синтаксису и семантике. Например, попросят решить простую задачку — скажем, сджойнить пару таблиц. А также могут спросить о видах индексов в базах данных и уровнях изоляции в транзакциях. Для подготовки к этим вопросам может быть достаточно прочтения нескольких статей в англоязычной Вики.

Еще одна часть технических вопросов связана с фреймворками. Но их обычно задают для позиции миддл и синьор. Интервьюеров чаще всего интересуют фреймворки Spring и Hibernate, поскольку они используются в подавляющем большинстве проектов. Поэтому если вы хотите хорошо показать себя на собеседовании, стоит освежить знания. Это касается и тех фреймворков, которые вы использовали в последних проектах, указанных в вашем резюме. Вас наверняка попросят раскрыть детали, связанные с их использованием. Например, если вы работали с Hadoop, то ожидается, что вы сможете рассказать как минимум о концепции map-reduce.

Практика и мотивация

Что касается практической части собеседования, то здесь вам дадут задание написать простую программку. Например, перевернуть связный список или распечатать все элементы дерева. И здесь важен следующий момент: когда вы приступаете к выполнению задания, главное — не делайте это молча. Потому что интервьюер хочет понять ваш подход к решению задач. Важно продемонстрировать ход своих мыслей. Даже если вы не знаете решения, то не теряйтесь, а начинайте рассуждать вслух. Слыша ваши рассуждения, интервьюер сможет дать вам подсказку, которая натолкнет вас на правильное решение. Помните, что собеседование — это не экзамен, где требуется однозначный ответ. Здесь главное — показать, что вы знаете свое дело и умеете искать решения проблем.

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

Не стоит засиживаться на одном проекте более двух лет. Время не стоит на месте: технологии развиваются, появляются новые подходы в разработке. А если вы работаете над одним и тем же проектом на протяжении нескольких лет, то ваши знания устаревают и теряют ценность. И, в конечном счете, ваша рыночная стоимость как специалиста падает. Чтобы сменить проект, совсем не обязательно покидать нынешнюю IT-компанию: можно перейти на другой проект и внутри нее.

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

Самый же лучший способ научиться успешно проходить собеседования — это самому стать интервьюером :)

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