Дапамажыце dev.by 🤍
Падтрымаць

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

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

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

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

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

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

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

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

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

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

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

  1. Алгоритмы и структуры данных (Algorithms & Data structures)
    • Типы данных
    • Виды сортировок
    • Поиск в бинарном дереве
    • NP-полный алгоритм
    • Исправление цикличной зависимость
  2. Коллекции (Collection)
    • Интерфейсы (Collection, Set, Map, Queue)
    • Сравнение TreeSetи TreeMap
    • Разница Hashtable и ConcurrentHashMap
  3. Исключение (Exceptions)
    • Различия Errorи UncheckedException
    • Как избегать catch блока
    • Сравнение NoClassDefFoundErrorи ClassNotFoundException
  4. Управление памятью и сборка мусора (Memory & GC)
    • Какова структура Java Heap?
    • Что такое метод finalize в Java?
    • Принципы Garbage Collector
    • Какие есть утилиты для мониторинга JVM?
    • Сравнение Perm Space и Metadata space в Java 8
  5. Многопоточность
    • Сравнение потока и процесса
    • Что такое volatile?
    • Что такое потокобезопасность (thread safe) и как ее добиться?
  6. Объектно-ориентированное программирование (OOP)
    • Различия между перегрузкой и переопределением метода?
    • Можем ли мы предотвратить переопределение метода без использования модификатора final?
    • 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

Чытайце таксама
Python больш не самы папулярны на GitHub. Яго змяніў вельмі малады язык
Python больш не самы папулярны на GitHub. Яго змяніў вельмі малады язык
Python больш не самы папулярны на GitHub. Яго змяніў вельмі малады язык
7 каментарыяў
Apple адкрыла Swift для распрацоўкі Android-аплікацый
Apple адкрыла Swift для распрацоўкі Android-аплікацый
Apple адкрыла Swift для распрацоўкі Android-аплікацый
«Я думаў, што паміраю»: Дуроў заявіў, што яго спрабавалі атруціць
«Я думаў, што паміраю»: Дуроў заявіў, што яго спрабавалі атруціць
«Я думаў, што паміраю»: Дуроў заявіў, што яго спрабавалі атруціць
Эйчар назвала 4 памылкі на сумоўі, якія вам не даруюць
Эйчар назвала 4 памылкі на сумоўі, якія вам не даруюць
Эйчар назвала 4 памылкі на сумоўі, якія вам не даруюць
3 каментарыя

Хочаце паведаміць важную навіну? Пішыце ў Telegram-бот

Галоўныя падзеі і карысныя спасылкі ў нашым Telegram-канале

Абмеркаванне
Каментуйце без абмежаванняў

Рэлацыраваліся? Цяпер вы можаце каментаваць без верыфікацыі акаўнта.

kong_en_ge
kong_en_ge пенсионер в Сад и Огород
1

Если к собеседованию нужно готовиться -- эта вакансия не ваша.

1

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

1

Это че к собесу еще готовиться надо и такой список книг пересмотреть.

Кстате если кто хочет найлегчайшим способом покинуть РБ и легализоваться в РП, то Люксофт хороший вариант. Да есть ПБХ и можно самому, но если цель как можно легче пройти путь до ВНЖ, то у люксофта целые отделы работают над помощью и легализацией иностранцев. (как и у Епама впрочем)

0

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

Anonymous
Anonymous - в Будзьма!
0

Как показывает опыт знакомых, самостоятельный поиск в linkedin - лучший вариант.

0

вот так да вопросы... ни одного вопроса с java 8 нету, а на дворе уже как бы 21 год, 13 на проде часто вижу.
Эх пойду про сортировку и поиск в бинарном дереве читать, прям каждый день с этим сталкиваюсь.

0

"ни одного вопроса с java 8 нету" - а вы их удивите