💳 Термінова новина! Trustee Plus — найкраще рішення для розрахунку криптою 👉

Мануал для джуна. Что необходимо знать, уметь и понимать для покорения Java

О том, с чего начать изучение Java, что делать, когда не все удается с первого раза, как где искать дополнительные знания, рассказывает Богдан Чупика, автор курса и Java Team Lead в Mate academy.

Оставить комментарий
Мануал для джуна. Что необходимо знать, уметь и понимать для покорения Java

О том, с чего начать изучение Java, что делать, когда не все удается с первого раза, как где искать дополнительные знания, рассказывает Богдан Чупика, автор курса и Java Team Lead в Mate academy.

Содержание

Изменилось ли что-нибудь в требованиях к джунам за последний год?

Каждый год требования растут. Но не столько в плане новых технологий, сколько глубины знаний. Возможно, это связано с повышенной конкуренцией в последнее время (по всем направлениям, не только java).

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

Чего ждать на собеседовании

Теория

Практически всегда спрашивают по коллекциям, ООП, БД (Hibernate, SQL), и об интернете (в большей степени в контексте Spring framework).

Core

  • Перечислите все способы класса Object.
  • Перечислите принципы ООП.
  • Опишите иерархию exceptions.
  • В чем заключается контракт equals&hashCode?
  • Какую проблему решают Generics? Что такое стирание типов?
  • Что такое Immutable object? Как создать Immutable класс?
  • Что такое SOLID? Опишите каждый принцип.

Collections

  • Напишите иерархию коллекций.
  • В чем разница между ArrayList и LinkedList? В какой из этих коллекций будет отрабатывать вставка быстрее на начало, середину и конец?
  • Какова алгоритмическая сложность операций get (int index) в ArrayList и LinkedList?
  • Как работает под капотом HashMap? Опишите, как происходит resize () в HashMap?
  • Опишите принцип работы Stack и Queue.

Java 8

Хотя в сентябре уже вышел в свет релиз JDK 21, однако до сих пор задают много вопросов, связанных именно с 8-й джавой.

  • Какие нововведения появились в 8-м джаве?
  • Какие нововведения появились после 8-й джавы?
  • Что такое стримы в джаве? Какие вы знаете 2 типа операций в Stream API?
  • В чем разница между методами `map ()` и `flatMap ()` в Stream API? Этими методами может быть лайвкодинг.
  • Что такое Optional? Как он устроен под капотом?
  • Что такое лямда?

БД

  • Какие виды джойнов в SQL вы знаете? В чем разница между ними? Здесь может быть лайвкодинг.
  • Зачем нужен Statement в JDBC? В чем разница между Statement и PrepearedStatement?
  • Опишите в деталях процесс, как из джава кода бросить запрос в БД и получить результат в виде джава-объекта.
  • Что такое ORM? Какие основные интерфейсы по фреймворку Hibernate вы знаете?
  • Перечислите основные требования к Entity-классу в Hibernate. Какую проблему решает каждое из указанных требований?
  • Какие наиболее популярные причины возникновения LazyInitializationException и способы ее разрешения?
  • Опишите суть паттерна Proxy.
  • Опишите стратегии подражания сущностям в Hibernate

Spring

  • Перечислите основные модули Spring framework, с которыми вы работали
  • В чем разница между @Controller и @RestController?
  • В чем разница между @RequestParam и @PathVariable? Когда что лучше использовать?
  • Опишите жизненный цикл бина.
  • Какие вы знаете скоупы бина?
  • Как получить информацию о текущем пользователе с использованием Spring Security? Что такое Authentication?
  • Как работают фильтры в Spring Security?

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

  • Какие проблемы могут возникнуть в коде при использовании многопоточности?
  • Что такое монитор?
  • Что такое race condition? Как пофиксировать?
  • Как работает ключевое слово synchronized?
  • Зачем нужно ключевое слово volatile?
  • Что такое deadlock?
  • Как тестировать многопоточный код?
  • Как решить проблему обедающих философов (Dining philosophers problem)?
  • Зачем нужны Lock-ы? Semaphore?

Лайвкодинг

В основном используют задачи на стрим.

1. Дан список строк, представляющих имена. Отфильтруйте имена короче 4 символов. Оставшиеся выведите в верхнем регистре.

  • Input Sample: [Alice, Bob, Charlie, De, Eva]
  • Expected Output: [ALICE, CHARLIE, EVA]

2. Представлен список работников с атрибутами name и salary. Вычислите среднюю зарплату работников и найдите имя работника с высокой зарплатой.

  • Input Sample:

List<Employee> employees = Arrays.asList (

New Employee («John», 50000),

new Employee («Jane», 75000),

new Employee («Doe», 60000)

);

Expected Output:

  • Average Salary: 61666.66
  • Highest Paid Employee: Jane

3. Дан список слов. Сгруппируйте слова по их длине, указав количество символов для каждой группы.

  • Input Sample: [«apple», «banana», «cherry», «date», «kiwi», «fig», «grape»]
  • Expected Output:

{

4 => [«kiwi», «date», «fig»],

5 => [«apple»],

6 => [«banana», «черри»],

5 => [«grape»]

}

А еще могут быть лайвкодинг-задачи на SQL. В основном это задачи на JOIN и на группировку данных.

1. Получите всех клиентов, разместивших по крайней мере один заказ. Откройте имя клиента и идентификатор заказа.

  • Tables:
    • Customers: CustomerID, CustomerName, ContactName, Country
    • Orders: OrderID, CustomerID, OrderDate

2. Для всех заказов, размещенных конкретным работником, получите имя работника, идентификатор заказа и идентификатор продукта, связанный с этим заказом.

  • Tables:
    • Employees: EmployeeID, FirstName, LastName
    • Orders: OrderID, CustomerID, EmployeeID
    • OrderDetails: OrderDetailID, OrderID, ProductID, Quantity

3. Получите общую сумму продаж каждой категории продуктов.

  • Tables:
    • Products: ProductID, ProductName, CategoryID
    • Categories: CategoryID, CategoryName
    • Sales: SaleID, ProductID, SaleAmount

Что может быть в тестовом?

Есть два основных блока тестовых: без использования фреймворка и с использованием фреймворка, в основном Spring Boot. В последних обычно требуют написать очень простой контроллер с набором эндпоинтов. В приложении должна быть та или иная БД, иногда использование стороннего API, тесты и Docker.

На что я обращаю внимание во время интервью

Soft skills: неконфликтность, открытость к фидбеку, опыт работы в команде.

Как скоро человек ориентируется на мои подсказки.

Насколько глубоко само понимание той или иной концепции/структуры данных/фреймворка и т. д. Не нужно зазубривать материал — нужно понимать, какую проблему тот или иной код решает.

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

Что может пойти не так ли?

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

Растеряться в ответе, если известный вам вопрос формулируют по-другому, не так, как вы слышали до этого.

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

Только начинаешь путь в IT? 17 мануалов для джунов, которые подскажут как стать профессионалом своего дела
Только начинаешь путь в IT? 17 мануалов для джунов, которые подскажут, как стать профессионалом своего дела
По теме
Только начинаешь путь в IT? 17 мануалов для джунов, которые подскажут, как стать профессионалом своего дела
Читайте главные IT-новости страны в нашем Telegram
Читайте главные IT-новости страны в нашем Telegram
По теме
Читайте главные IT-новости страны в нашем Telegram
УЧАСТЬ В АЗАРТНИХ ІГРАХ МОЖЕ ВИКЛИКАТИ ІГРОВУ ЗАЛЕЖНІСТЬ. ДОТРИМУЙТЕСЯ ПРАВИЛ (ПРИНЦИПІВ) ВІДПОВІДАЛЬНОЇ ГРИ.
Ліцензія видана ТОВ "СЛОТС Ю.ЕЙ." на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 15.09.23 (рішення КРАІЛ №245 від 31.08.2023); ТОВ "СЛОТС Ю.ЕЙ." – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 26.04.2021 (рішення КРАІЛ №150 від 12.04.2021); ТОВ «СПЕЙСИКС» – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 08.02.2021 (рішення КРАІЛ №34 від 02.02.2021); ТОВ «ГЕЙМДЕВ» – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 16.02.2021 (рішення № 47 від 10.02.2021).
Читайте также
Извечный вопрос: чем отличается Java от JavaScript. Подробный гайд
Извечный вопрос: чем отличается Java от JavaScript. Подробный гайд
Извечный вопрос: чем отличается Java от JavaScript. Подробный гайд
Для кого-то ответ на вопрос о разнице Java и JavaScript очевиден — здесь начинаются шутки о сходстве между ковром и автомобилем (Java похожа на JavaScript так же, как «car» на «carpet»). Несмотря на это, некоторые люди еще могут иметь ложное представление, считая, что это два названия того же языка или что технологии тесно связаны. dev.ua немного проясняет ситуацию.
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Не всегда есть доступ к любимой IDE или время на ее запуск. Но когда нужно быстро проверить какой-то простой функционал или воплотить новую идею, пригодится онлайн-компилятор.
1 комментарий
12 онлайн-курсов по Java для новичков и профи в 2022 году
12 онлайн-курсов по Java для новичков и профи в 2022 году
12 онлайн-курсов по Java для новичков и профи в 2022 году
Java по-прежнему входит в список самых популярных языков программирования. Вместе с Digital Defund составили список курсов, которые подойдут как новичкам, так и людям с опытом программирования, и помогут освоить этот востребованный язык.
112 отзывов на вакансии, $100 за тестовое и работа мечты. История модели из Луцка, которая объездила полмира, из-за пандемии изменила планы и теперь учит IT других
112 отзывов на вакансии, $100 за тестовое и работа мечты. История модели из Луцка, которая объездила полмира, из-за пандемии изменила планы и теперь учит IT других
112 отзывов на вакансии, $100 за тестовое и работа мечты. История модели из Луцка, которая объездила полмира, из-за пандемии изменила планы и теперь учит IT других
Надя Адамович — в прошлом успешная модель. Но из-за пандемии сорвалась контракт на работу в Китай, поэтому Надежда вынуждена была работать таргетологом, сушисткой, а потом решила пойти в IT. Сейчас девушка — UI/UX Designer, заочно учится на факультете международно-экономических отношений в Луцком политехническом институте и работает ментором в Mate academy. Рассказываем ее вдохновляющую историю.
1 комментарий

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментариев пока нет.