Как пройти собес на Java разработчика? 🤔
Часть первая. Техническое интервью.
Появилась у меня мысль поспрашивать гуру из айти, из разработки, как они проводят собесы. 💡
Решила, что начну с Java 😉 а Если спрашивать, то у лучших Денис Родин 👍
JAVA ONE LOVE 💑
Как это делает один из ведущих Java разработчиков и что вам нужно знать, чтобы пройти собес. ✅
Полезно будет и джунам, и мидлам, и синьорам. 👨💻👩💻
Дальше инфа сотка 💯
Денис делит вопросы на собесах по уровню кандидата (джун, мидл, синьер…), чтобы вопросы были более релевантные. 🎯
С чего ты начинаешь тех собес? 🤔
Денис:
Вообще по формату я начинаю с простого вопроса и потом в зависимости от ответа кандидата начинаю "копать в ширь" 🕵️♂️ чтобы понять кругозор кандидата по этой теме.
Вот примеры некоторых вопросов:
1. Какие способы сравнения строк ты знаешь? 🤔
Комментарий: в зависимости от уровня кандидата он может рассказать базу про методы Java equals, hashCode, а если кандидат более скиловый, то тут можно уйти в тему про модель памяти, Java String Pool и каким методом в классе String можно отправить строку в этот пул. 🏊♂️
2. Collections framework. 📚
Обычно все начинается с просьбы рассказать про иерархию интерфейсов в нем. Затем прошу назвать несколько классов из JDK реализующих самые популярные, такие как List и Map. После этого в зависимости от уровня кандидата можно углубиться более детальными вопросами во внутреннюю реализацию тех классов, которые он назовет, и особенностей работы с ними.
3. Работа с исключениями в Java. ⚠️
Здесь так же все начинается с вопроса перечислить базовую иерархию. Затем назвать пару реализаций и в зависимости от уровня кандидата можно углубиться в названные им классы, а также особенности использования исключений в Java и известные best practices.
4. Если кандидат мидл или ниже, то можно ещё поспрашивать про особенности наследования и известные альтернативы, а самое главное понять, что предпочтительнее и какие best practices он знает. 💡
5. Далее блок вопросов про то как он понимает ООП и может ли он привести пример использования. 🤔 Наводящие каверзные вопросы с просьбой привести пример, а не оттарабанить заученные аксиомы.
Тут нужно понять: кандидат просто заучил или может на практике применить? 🤔
6. Далее вопрос про SOLID и другие принципы, которые сможет перечислить. Тут тоже потребуются примеры и каверзные вопросы, чтобы понять — это просто заученная теория или кандидат понимает, что и где применять. 🎯
7. Паттерны проектирования. ⚙️
Куда же без них любимых 😉 Тут также потребуется перечислить, что он реально использовал в проектах и рассказать, как принимал решение использовать именно эти паттерны. Заученные формулировки тут не прокатят. Я сразу это увижу. Также очень важно, чтобы кандидат мог адекватно описать, какие проблемы решает паттерн, а не просто как его написать. Их очень важно применять к месту, где они реально полезны, а не просто потому что кандидат их зазубрил.
8. Spring. 🌱
😉 Без него никак тут всё зависит от уровня кандидата. Много о кандидате скажет первый вопрос о том, какие способы конфигурирования он знает, а затем можно пойти в тему best practices и его личного мнения с примерами, когда и какой метод он применит.
Ещё лучше, если это будет с примерами из практики. Потом можно пробежаться по известным аннотациям и копать глубже в зависимости от скила кандидата.
9. Если на проекте есть Hibernate или Kafka, то обязательно вопросы по ним. Если их нет, но есть база, то вопросы про транзакции и знание SQL. 🗄️
10. Если кандидат скиловый senior+, то отдельный этап (обычно доп собес) по теме System design. 🏗️
Это довольно большая продвинутая тема. Обычно всё сводится к выбору области\домена и затем просьбе спроектировать систему из этого домена. По ходу в зависимости от уровня кандидата будут доп вопросы для проверки его кругозора.
Во второй части выложу какие софт вопросы задаем! И почему!
https://t.me/kruasanova_as #java #собес #интервью #поискработы #ит