Вернуться в видеотекуКрушитель алгоритмов? Собеседование frontend разработчика#4
Запись тренировочного frontend-собеседования с вопросами по JavaScript, двумя задачами лайвкодинга и архитектурным кейсом о многоязычном приложении. В конце интервьюеры дают кандидату устную обратную связь.
- Направление
- Frontend
- Формат
- Мок-собеседование
- Длительность
- 52 мин
Коротко о видео
Это тренировочное собеседование frontend-разработчика: кандидат рассказывает о проектах, пяти месяцах коммерческой работы с TypeScript, React, Redux Toolkit Query, Docker и Material UI, а также о разработке ERP-системы с аутентификацией и ролями. Затем интервьюеры проверяют JavaScript: контекст и bind/call/apply, event loop, Promise, Set/Map, браузерные хранилища и базовую алгоритмическую сложность. В лайвкодинге кандидат проектирует EventEmitter и решает задачу на проверку корректной скобочной последовательности; в конце обсуждается архитектура многоязычного приложения с админкой и динамическими страницами. По итогам интервьюеры дают положительную устную обратную связь, но решения о найме или оффере в записи нет.
Затронутые темы
Что взять на заметку
- Подготовить короткий, точный рассказ о рабочем проекте: назначение ERP-системы, свою зону ответственности, аутентификацию, ролевой доступ и устройство клиентского кода с кастомными хуками.
- Повторить различия bind, call и apply, а также уметь объяснить, зачем функции нужен контекст на практическом примере.
- Разобрать event loop без смешения сущностей: call stack, Web APIs, очередь macrotask, очередь microtask, Promise и влияние длинной очереди microtask на рендеринг.
- Систематизировать статические методы Promise и их поведение при успешных и отклонённых запросах, особенно для сценария с несколькими параллельными запросами.
- Потренировать EventEmitter: хранение обработчиков по имени события, методы on/emit/off, удаление конкретного callback и безопасное поведение для незарегистрированного события.
- Уметь обосновать сложность решения: один проход O(n), вложенные проходы O(n²), доступ по индексу массива или ключу объекта в типичном случае O(1); для скобок учитывать разные типы скобок.
- Для мультиязычной админки разделять статические UI-переводы и динамический контент: статические строки хранить в переводах i18n, а языковые версии материалов из админки — в данных страницы по языковому ключу.