Вопросы по грейдам
На собесе проверяют не знание фактов, а понимание причин. «Что такое HashMap» — слабый вопрос. «Почему HashMap не синхронизирован и что делать в многопоточной среде» — хороший вопрос. Готовьтесь объяснять «зачем», а не только «что».
Junior — базовые конструкции и Spring:
- Отличия
==и.equals(), контракт equals/hashCode - Коллекции: ArrayList vs LinkedList, HashMap internals
- ООП: наследование, полиморфизм, интерфейсы vs абстрактные классы
- Spring IoC,
@Component/@Service/@Bean, жизненный цикл бина - REST: HTTP методы, коды ответов,
@RestController - Транзакции:
@Transactional, ACID
Middle — глубже в Java и распределённые системы:
- Многопоточность: synchronized, volatile, ThreadLocal, ExecutorService
- JVM: GC (типы, когда срабатывает), ClassLoader, JIT
- JPA: N+1, fetch типы, кэши первого/второго уровня
- Kafka/RabbitMQ: гарантии доставки, consumer groups, offset
- Паттерны: какие использовал на практике и зачем
Senior — архитектура и системное мышление:
- CAP-теорема, eventual consistency, saga pattern
- System design: как спроектировать URL shortener / чат / feed
- Оптимизация: как находите bottleneck, опыт с индексами, кэшем
- Лидерство: как принимаете технические решения в команде
Копнуть глубже
Формат STAR для технических вопросов. «Расскажи о сложной задаче» — отвечайте по STAR: Situation (контекст), Task (что нужно было сделать), Action (что конкретно вы сделали), Result (что получилось, в цифрах если возможно). Интервьюер слушает не задачу — он слушает как вы думаете и что вы сделали лично.
Глубина vs ширина. Лучше глубоко знать меньше тем, чем поверхностно — всё. Если назвали HashMap — будьте готовы объяснить реализацию (buckets, load factor, treeification в Java 8). Если сказали «использовал Kafka» — как именно, что случалось при сбоях, как настраивали.
System Design собес. Обычно: «спроектируй X за 45 минут». Алгоритм:
- Уточните требования: сколько пользователей, read/write ratio, latency требования
- Высокоуровневая схема: компоненты и их связи
- Углубитесь в самые нагруженные части
- Обсудите trade-offs: выбрали SQL — почему не NoSQL?
Не ищите «правильного ответа» — его нет. Оценивают процесс мышления.
Частая ошибка: выучить ответы. Интервьюеры чувствуют заученность. Лучше понять принципы и строить ответ на ходу, иногда ошибаясь — это выглядит честнее, чем идеально зазубренный текст с запинками при уточняющем вопросе.
• формат STAR и как отвечать на «расскажи о сложной задаче» (если дошёл до 2-го слоя).