06.07.2022
3 минут чтения

Что нужно знать Java разработчику для прохождения собеседования

Сергей Немчинский

Начало у нас будет простое. Для чего мы работаем? Если кто-то скажет «для удовольствия», «для того, чтобы узнать что-то новое» или не приведи Господи «чтобы работать в  команде», киньте, пожалуйста в него чем-нибудь тяжелым. Зачем этот HR к нам пришел? Самое главное и не надо этого стесняться, мы работаем ради денег. Так вот, цель определили. Теперь как к ней идти.

Денег нам не дадут, если мы не устроились на работу, где эти деньги платят. Ну и денег будет мало, если мы не смогли попасть на ту работу, где их много (то есть пришлось удовольствоваться малым… это не наш путь, правда?). Поэтому самым важным умением любого программиста надо признать умение проходить собеседование. Вот этим вопросом мы сейчас и займемся.

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

Как правило, во вменяемых компаниях вас сначала собеседует некий HR, а только потом — технарь. Так вот, вы сразу должны понимать, что HR ничего не решает. Его (её, как правило) бонус напрямую зависит от того, сколько людей она наймет. Поэтому ей экономически выгодно нанимать кого угодно, лишь бы техническое собеседование прошел. Так что прохождению первого собеседования радоваться не будем. ну и готовиться к нему не будем. Почти. Что нужно подготовить к первому собеседованию, так это вспомнить названия последних мест работы (лет за пять, не больше) и быть готовым к вопросам «почему вы оттуда ушли, что не устраивало?». Опять же, HR-ка ничего не решает, но все-таки… Опробуйте сначала на ней свои варианты ответов. С большой долей вероятности, после прохождения технического собеседования вас вызовет начальник и будет задавать все те же вопросы. И вот он уже будет решать — брать вас или нет. И если за последние пять лет вы поменяли 10 работ, причем с каждой вы уходили потому, что не сошлись характерами, будьте готовы — вряд ли вас возьмут. Скандалисты и склочники никому не нужны.

Итак, группы вопросов, которые вам зададут почти в любой компании:

  • (опциональная) По устройству JVM, байт-кода, garbage collector и всякое такое. На самом деле эти темы уже отходят в прошлое, однако надо все это знать. Потому как пригодится и в работе.
  • ООП: три принципа, области видимости и т.п. Знать обязательно. Я лично, любого «программиста», который не знает ответ на вопрос про классы А и В, не возьму. Нефиг позорить гордое имя программера.
  • Collection Framework. Основные интерфейсы, их основные реализации, преимущества и недостатки. Мы же блин работаем с entrprise решениями. То есть — у нас много цифорок и очень  много буковок. И все это надо где-то хранить и как-то обрабатывать. Знание этого пункта ультимативно, хотя бы в основном.
  • (опционально) Многопоточность: треды, семафоры, блокировки. Зависит от специфики работы, может быть важным пунктом, а  может и не быть вовсе.
  • SQL. Знания на базовом уровне, опыт работы (как программиста) с чем-то из распространенных СУБД: DB2, Oracle, MS SQL или на худой конец MySQL. Умение написать просто запрос, выбирающий данные из двух таблиц. Конечно, мы давно все пользуемся ORMами, однако, когда все идет не так, как надо (а оно ВСЕГДА так делает), приходится включать режим show sql и читать-читать-читать глазками.
  • Spring. Знание, практически, ультимативно. Имеется в виду, конечно только dependency injection. Всякие так Spring MVC — не обязательно.
  • Какой-то из фреймворков для построения морды: JSF, Struts, может быть что-нибудь для AJAX или даже FLEX. Не важно. Главное чем-то одним владеть на уровне «профессионально работал на…».

В общем-то и все. Человек, который сумел пройти эти семь пунктов заслужит у меня, например, положительную оценку.

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

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

Сохранить моё имя, имейл и адрес сайта в этом браузере для будущих комментариев