Вернуться в каталог собеседований

Из питониста во фронтендеры: собеседуем джуниора с бэкенд-опытом. Микротаски, промисы и лайвкодинг

Публичное учебное frontend-интервью с бэкенд-разработчиком, который переходит с Python во frontend. Теория о браузере и React сочетается с подробным лайвкодингом и финальной обратной связью.

Hexlet
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 11,8 тыс.
  • Лайки на YouTube: 257
Открыть на YouTube

Таймлайн

Коротко о видео

Учебное публичное собеседование: бэкенд-разработчик Дмитрий Дёмин с опытом Python готовится перейти во frontend, а Ирина Чигринова задаёт вопросы и по ходу объясняет ожидания интервьюера. Они разбирают мотивацию смены направления, браузерный рендеринг, производительность, event loop, React и хуки, затем решают три лайвкодинг-задачи: ограничение повторов символов, порядок промисов и треугольник Паскаля. В финале интервьюер высказывает мнение, что кандидату стоит пробоваться на junior-позиции, но это учебная обратная связь, а не результат реального найма.

Затронутые темы

Что взять на заметку

  • Для вопросов о браузере подготовьте связное объяснение пути HTML → DOM, CSS → CSSOM/render tree → layout → paint, а также различий между обычными script, defer и async.
  • При разборе лагов связывайте 60 FPS с короткими задачами в главном потоке: тяжёлые вычисления дробят на части или выносят в Web Worker, чтобы не блокировать интерфейс.
  • Для анимаций избегайте свойств, вызывающих layout/reflow, включая width, height и margin; изменения DOM и измерения размеров могут быть дорогими.
  • В React нужно уверенно различать state как внутреннее состояние компонента и props как внешние входные данные, а также помнить, что изменение ref само по себе не вызывает ререндер.
  • Хуки должны вызываться в одинаковом порядке на каждом рендере, поэтому useEffect нельзя помещать в условные ветки; зависимости эффекта определяют его повторный запуск.
  • На лайвкодинге сначала уточняйте условие, проговаривайте ход мысли и спрашивайте о забытом API; в задаче на ограничение повторов достаточно счётчика в объекте и результирующего массива/строки.
  • Для асинхронных задач повторите Promise.all и очереди задач, а для треугольника Паскаля — построение каждой строки из соседних элементов предыдущей строки с единицами по краям.

Рекомендуем посмотреть