Карьера
Luxoft

Как пройти интервью в Luxoft на позицию Java: чек-лист полезных советов

Язык программирования Java считается самым популярным в мире — на этом языке, пишут и сложные финансовые системы для банков, и развлекательные медиа-порталы, и приложения для мобильных телефонов, и трейдинговые платформы.

Популярность этого языка приводит к сильной конкуренции на IT-рынке. На основании опыта рекрутеров компании Luxoft на одну вакансию программиста Java рассматривается в среднем 5 соискателей. Для трудоустройства в подходящую компанию недостаточно прочитать пару книг или просмотреть ролики на YouTube. Требования как к опытным кандидатам, так и новичкам только увеличиваются.

Директор филиала Luxoft в Санкт-Петербурге Михаил Гедзберг подготовил советы для Java-разработчиков, которые хотят получить работу в проектах компании Luxoft и поделился тем, на что обращают внимание работодатель при техническом собеседовании. Конечно, большинство рекомендаций носят универсальный характер и пригодятся при подготовке к собеседованию в большинстве IT-компаний.

Резюме кандидата начинается с релевантного опыта. В зависимости от сложности проекта, его длительности, обилия используемых технологий (не просто Java Core), руководитель может ожидать от кандидатов релевантный опыт в разработке от 3-5 лет, на более сложных проектах и на senior-позициях — от 8 лет.

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

Как подготовиться к собеседованию

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

1. Алгоритмы и структуры данных (Algorithms & Data structures)

a. Типы данных

b. Виды сортировок

c. Поиск в бинарном дереве

d. NP-полный алгоритм

e. Исправление цикличной зависимость

2. Коллекции (Collection)

a. Интерфейсы (Collection, Set, Map, Queue)

b. Сравнение TreeSet и TreeMap

c. Разница Hashtable и ConcurrentHashMap

3. Исключение (Exceptions)

a. Различия Error и UncheckedException

b. Как избегать catch блока

c. Сравнение NoClassDefFoundError и ClassNotFoundException

4. Управление памятью и сборка мусора (Memory & GC)

a. Какова структура Java Heap?

b. Что такое метод finalize в Java?

c. Принципы Garbage Collector

d. Какие есть утилиты для мониторинга JVM?

e. Сравнение Perm Space и Metadata space в Java 8

5. Многопоточность

a. Сравнение потока и процесса

b. Что такое volatile?

c. Что такое потокобезопасность (thread safe) и как ее добиться?

6. Объектно-ориентированное программирование (OOP)

a. Различия между перегрузкой и переопределением метода?

b. Можем ли мы предотвратить переопределение метода без использования модификатора final?

c. SOLID принципы

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

Базы данных

Минимум одну базу данных (а лучше больше) необходимо знать в совершенстве. В работе понадобится создавать/модернизировать таблицы, настраивать индексы, писать триггеры, формировать сложные запросы, оптимизировать их по производительности.

Да, у баз данных есть общая часть — SQL, но даже тут есть различия — например, MS SQL или Oracle. Добавим в этот список PostgreSQL и MySQL. Первые две — стандарт больших корпоративных систем, последние две — малых или средних.

Для доступа к базам данных существует два разных подхода: JDBC и Hibernate. Выделим несколько топиков по этой теме, о которых может зайти речь на собеседовании:

  • Преимущества и недостатки Hibernate по сравнению с JDBC
  • Какие существуют стратегии загрузки данных в Hibernate
  • Назовите аннотации, используемые в Hibernate

Если ваша платформа получает данные в режиме реального времени, то в мире Java без JMS вам не обойтись. Следует четко понимать:

  • Из каких компонент JMS состоит
  • Основные интерфейсы JMS
  • Стандартные типы JMS-сообщений

Львиная доля мировых систем работает на Unix-подобных операционных системах. Программист, который пишет код на Java и не знает, как запустить свое приложение, просмотреть лог-файлы, настроить демо, явно будет проигрывать. Поэтому здесь уже правильнее говорить не о Java-программисте, а о Java-инженере. Это сотрудник, который умеет писать код, эффективно взаимодействовать с другими участниками команды, следовать SDLC-процессам, инженерным практикам (CI/CD, XP, Scrum/SAFE, Code coverage, BDD).

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

Рост количества данных и пользователей увеличивает количество точек интеграции, поэтому важно уметь масштабировать решения, увеличивать надежность и производительность. Это все относится к современным и обязательным навыкам Senior Java разработчика.

Практическая часть

Ну и напоследок можно порекомендовать некоторые книги, которые помогут освежить знания о Java и лучше подготовиться к собеседованию:

1. Джошуа Блох «Эффективная Java» («Effective Java: Programming Language Guide»);

2. Крейг Уоллс «Spring в действии» («Spring in Action»);

3. Бауэр Кристиан «Java Persistence API и Hibernate» («Java Persistence with Hibernate»);

4. Роберт Мартин «Чистый код» («Clean Code»);

5. Роберт Седжвик «Алгоритмы на Java» («Algorithms In Java»);

6. Мартин Фаулер «Рефакторинг. Улучшение существующего кода» («Refactoring. Improving the Design of Existing Code»);

7. Джез Хамбл «Непрерывное развертывание» («Continuous Delivery»);

8. Майкл Нейгард «Release it! Проектирование и дизайн ПО для тех, кому не все равно» («Release It!»).

Михаил Гедзберг
Директор филиала Luxoft в Санкт-Петербурге
{ "author_name": "Luxoft", "author_type": "editor", "tags": [], "comments": 13, "likes": 2, "favorites": 20, "is_advertisement": false, "subsite_label": "hr", "id": 210842, "is_wide": false, "is_ugc": false, "date": "Fri, 19 Feb 2021 10:47:55 +0300", "is_special": false }
0
13 комментариев
Популярные
По порядку
Написать комментарий...
10

Специально даже зарегистрируюсь ради такого.

Не знаю уж как работа в Люксофте,  но собеседование туда в СПБ было самым худшим опытом из всех что был в жизни.

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

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

Впустую потраченное время и нервы.

Ответить
2

Не, вам не показалось.

Ответить
2

А что за сказки про фидбэк? Не было ни разу ни одного фидбэка, кроме случаев:
1. Прохожу на следующий этап, если не прохожу то связь обрывается
2. Рекомендация была по знакомству - собственно только в таком случае был тот фидбэк который я бы ожидал и сам всем давал.

За некорректный отказ как минимум можно в суд подать на работодателя, а второе это время работодателя - представьте себя вы приходите в магазин и комментируйте все что вы делаете, берете молоко? Сразу вопрос - почему не другие марки, а среди одной марки почему именно эту бутылку когда там 10 стоит, и по каждой дайте обоснованный ответ.

Ответить
0

Обратная связь хороший тон. С другой стороны, если собеседуют сразу взвод то, фидбек, само собой, не дадут. Если небольшой пул кандидатов то обратная связь это не долго.

Ответить
0

Добрый день! Спасибо за отзыв, нам очень жаль, что у Вас был негативный опыт взаимодействия, мы бы хотели это исправить. Пожалуйста, поделитесь обратной связью по адресу: employer_branding@luxoft.com, мы рассмотрим и обсудим Ваш кейс в индивидуальном порядке с отделом по подбору персонала.

Ответить
8

Как: прочитать отзывы о компании Luxoft и не проходить собеседование.

Ответить
6

Собеседование в люксофт было самым ужасным, зачем вы набираете разработчиков вообще???

Ответить

Вчерашний Гоша

4

Самый главный вопрос 'а зачем?' 

Ответить
0

Разработчиков мы нанимаем, потому что у нас сейчас много интересных проектов, которые требуют профессионалов в самых разных областях, включая Java-разработку.

Ответить
2

А я, наоборот, слышал отзывы о том, что в Питерском Luxoft было самое адекватное интервью, и все вопросы были по теме, а не "что вы помните с университета", "докажите, что вы достойны N денег", или вопросы из теста на IQ. Чаще всего это слышал от тех, кто уже в Luxoft.

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

Мне лично приходилось сталкиваться, когда кандидат с большим опытом, не ответив на какой-то простой вопрос, начинает оправдываться, а потом тыкать сертификатами, которые он указал в резюме и упрекать в тупых вопросах. Интервью — это в том числе и тест на адекватность. На определенном уровне профессионализма есть консенсус, что все знать или помнить невозможно, и это нормально. Часть вопросов вообще ничего не значат, например, чем left join от left outer join отличается, но показывают присутствие или отсутствие чувства юмора)

В общем, интервью — это игра, и в нее надо играть чтобы выиграть.

Ответить
2

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

Ответить
1

Собеседовался как-то, спросили что такое ООП - чуть не поперхнулся, когда спросили как создать Синглтон, хотелось положить трубку, в 2020 году, когда везде используется Spring. Не советую тратить время на это.

Ответить
0

С такими отзывами я бы постеснялся свое лицо раскрывать

Ответить

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарий удален

Комментарии

null