Рубріки: Мнение

«Дружище, беги из этой компании!»: вопросы на собеседованиях по Java, которые нельзя задавать

Богдан Мирченко

Цель интервьюера на любом собеседовании — выбрать кандидата, задавая профильные вопросы. Но как уверен разработчик программного обеспечения Арнольд Галович, не все вопросы одинаково полезны и удачны, а некоторые и вовсе не актуальны. О чем уже не стоит спрашивать на собеседовании по Java, чтобы как минимум не тратить время зря, специалист рассказал в своем блоге. 

Вот что он написал. 

Примечание: в списке рассмотрены вопросы, которые задают айтишникам уровня Middle+. Они взяты из гугла. 

Почему Java — платформонезависимый язык?

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

Независимость от платформы больше не имеет смысла как функция для Java, потому что большинство Java-приложений — это бэкенд-приложения, которые разработчики запускают в Docker

Да, где-то до сих пор используют для кроссплатформенности Swing или JavaFX. Но вы когда-нибудь запускали Swing-приложение на разных платформах? Оно вовсе не всегда будет независимым от платформы, просто потому что разные функции не всегда реализованы для разных платформ или работают там по-разному. 

Вот почему этот вопрос не имеет смысла. Особенно при собеседовании разработчика выше среднего уровня. 

Для чего нужен метод public static void main(String args[])?

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

Что такое конструкторы в Java?

Вдогонку к предыдущему вопросу. Его есть смысл задавать, если кандидат только начал изучать Java и программирование. 

Разница между классами ArrayList и Vector в Java?

Вопрос: кто-нибудь пользовался классом Vector в течение последних трех лет? Я лично ни разу не использовал его за всю карьеру. Еще в 2010 году компании Sun и Oracle рекомендовали использовать ArrayList

В чем смысл вопроса? Узнать, знает ли кандидат историю Java вплоть до 1990-х годов? Вопрос не имеет смысла. 

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

Как в Java создать бесконечный цикл?

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

Поверьте, в реальном проекте бесконечный цикл выглядит не так:

while (true) {
    // do stuff
}

Пять способа создания бесконечного цикла от разработчика Лекса Фридмана. 

В чем разница между С++ и Java?

Можно спросить даже, в чем разница между Java и JavaScript, но проверять знание лексики — это плохо. К тому же, зачем Java-разработчику знать специфику С++? 

Перечислите особенности языка программирования Java

Вот как на этот вопрос отвечают сами интервьюеры: 

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

Сколько типов областей памяти выделяет JVM?

Было бы лучше попросить рассказать об управлении памяти в JMV, но, опять же, это специфичный вопрос и индивидуальный для конкретного приложения. Если речь о разработке обычного веб-приложения в Spring или другой библиотеке, знать, как работает память, скорее всего не обязательно. Никто не может знать все. 

Умеете водить автомобиль? Сможете назвать его основные части? Знаете, как двигатель связан с выхлопной трубой? Думаю, на первые два вопроса вы сможете ответить, а на третий — нет. Если вы планируете стать автомехаником, вам нужно знать все о машинах, а если хотите только водить автомобиль — это не обязательно. 

Возвращаясь к заданному вопросу, ответ будет таким:

  • Class(Method)Area;
  • Heap;
  • Stack;
  • Program Counter Register;
  • Native Method Stack.

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

Является ли пустое имя файла .java допустимым именем исходного файла?

Дружище, если тебе задали такой вопрос на собеседовании, беги из этой компании. Поверь, так будет лучше. 

delete, next, main, exit и null: что из этого в Java является ключевым словом?

Что?! Вы просто задаете вопросы из спецификации языка? 

Как установить Java?

Это, наверное, вообще какая-то шутка. 

Как указать путь к файлу в Java?

Чушь. Как это связно с Java? По словам автора вопроса, кандидат должен объяснить, как установить переменную окружения path в Windows, Mac, Linux и Solaris. 

Серьезно? 

Заключение

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

think about it

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023