Skip to content

Instantly share code, notes, and snippets.

@ozio
Last active September 28, 2021 16:55
Show Gist options
  • Save ozio/7c53238788df366d869081bc3c826b5b to your computer and use it in GitHub Desktop.
Save ozio/7c53238788df366d869081bc3c826b5b to your computer and use it in GitHub Desktop.
Вопросы, которые мне задавали (или не задавали) на позицию Senior Frontend Developer (~10 их)

Я не пытался тут собрать все вопросы, которые хорошо бы задавать, а лишь те, что мне задавали (если не указано обратное), так что не неситесь жаловаться, что вы не нашли своих любимых и коварных. Так же, я не привожу список всяких логических задачек, которых, слава богу, было минимум и задачек с написанием кода на листке бумажки что, к сожалению, всё ещё распространено.

React:

  • Жизненный цикл компонента? В какой метод какие аргументы приходят? Где и как лучше обновлять стейт?
  • Что такое функциональный компонент и PureComponent? В чём разница?
  • Что такое Redux?
  • Что такое сайд-эффекты?
  • Какие бывают миддлвары в Redux?
  • Для чего нужен redux-thunk?
  • На чём построена redux-saga (на генераторах) и для чего она нужна?
  • React Router и redux-router. Что? Зачем? Почему?
  • Для чего нужен второй аргумент в функции setState?
  • С какой версии React пользуешься и какие крупные изменения за это время произошли?
  • Какие ломающие изменения произошли в 16 версии?
  • Что такое Context API и какие в нём произошли изменения?
  • Что такое Flux-архитектура и в чём её отличия с реализацией Redux?
  • React и Vue - что лучше и для каких задач?
  • Redux и MobX - что лучше и для каких задач? Какие ещё есть библиотеки для управления стейта приложения?
  • Server-Side Rendering (меня не спрашивали, но могут спросить там, где нужен SEO)?
  • Что такое Higher-Ordered Component?
  • Что такое React Native? Зачем оно? В чём отличия от обычного React? (да, именно так мне его и задали)

JS:

  • Так что же наконец такое, это замыкание!?
  • Как работает Event Loop? Таски, микротаски, очереди, etc.?
  • Что такое garbage collector в js и как он работает? (нет ссылок - нет объекта, есть ссылка - есть страдание)
  • Что такое делегирование? (когда вешаем обработчик на контейнер и проверяем клик по элементу внутри - ага, всё ещё спрашивают)
  • Что такое LocalStorage и в чём его отличия от Cookie? Как защитить запись в куке, чтобы её не смог прочитать js (флаг HttpOnly)?
  • Что такое WebSocket? Что такое long-polling и в чём их разница? Какие проблемы они решают?
  • ServiceWorker / WebWorker / SharedWorker? Что это? Зачем это? Как это?
  • event.preventDefault() и event.stopPropagation() - зачем и когда?
  • Что интересного в новых proposal и чего ждёшь больше всего?
  • Что такое higher-ordered function? (однажды мне задали дополнительный вопрос - "можно ли в неё передать функцию?" и это был очень странный вопрос!)
  • Что такое Promise? Как отлаживать ошибки?
  • Что такое Async/Await и во что его компилят транспиллеры? И как их отлаживать?
  • Что такое генераторы?
  • Что такое Proxy?
  • TypeScript / Flow? Что это и зачем это?
  • Что такое optimistic rendering? Как бы реализовал?
  • Что такое virtual scroll? Как оно работает?
  • Что такое node.js?
  • Что такое d3? Для чего она нужна?

CSS:

  • Если дело вообще касается css, то почему-то всё ещё спрашивают про способы "оцентровать блок по центру экрана". В 2к18!
  • Препроцессоры и их плюсы/минусы относительно друг друга (это обычно вопрос про опыт и почему-то про postcss так никто и не спросил)?
  • css-modules / styled-components. Что это? Зачем это? Плюсы-минусы?
  • Какие бывают значения display и есть ли элементы, которые по-умолчанию inline-block (img)?
  • Чем отличается opacity: 0 от opacity: 0.00001?
  • Чем отличается visibility: hidden от display: none?
  • Что такое float? Как обнулить (боже)? Из чего состоит .clearfix (БОЖЕ!)?
  • В чём разница box-sizing: content-box от border-box?
  • Через какие директивы реализуется респонзив?

Другое браузерное:

  • Что такое SVG? Какие есть способы вставить SVG на страницу? SVG-анимации?
  • Что такое canvas и почему он такой быстрый? (не спрашивали, но думаю, что спрашивают, где это требуется)
  • Какие бывают способы оптимизации приложения? (спрайты, минификация, лейзи-лоад, etc.)
  • Сколько запросов одновременно можно отправить из браузера на определённый домен? Как решают проблему с ограничением? Решает ли её http/2?

Общее по программированию:

  • Какие бывают паттерны? Перечисли какие знаешь и поясни коротко? (я обычно говорил про медиатор, фабрику и декоратор)
  • Какие паттерны проектирования знаешь и в чём особенности? (говорил про MVC и MVVM, но особенно рассказать не мог)
  • Что такое чистая функция (pure function)?
  • Какие языки программирования бывают (функциональные/императивные)? В чём суть этих парадигм? К какой парадигме относится JS?
  • Чем компилируемые языки отличаются от интерпретируемых? Какие есть интерпретируемые языки? Где интерпретируется их код?
  • Что такое Rx?
  • Что такое REST и в чём его отличие от RPC? CRUD?
  • Чем отличается GET от POST? Какие ещё виды запросов есть и для чего используются?
  • На каком уровне OSI находятся http / tcp / ping / json / витая пара?
  • Что происходит после запроса из браузера на открытие какой-то страницы?
  • S.O.L.I.D.?
  • Что такое JSON? Что такое XML? Продолжи список (мне вспомнился только YAML)? Можно ли сконвертировать XML в JSON?
  • Что такое protobuf и messagepack? В чём отличие?
  • Что такое микросервисы? Зачем они? Какие проблемы решает микросервисная архитектура?
  • Что такое мутабельность и иммутабельность?

После этого всего в голове остаётся один самый важный вопрос: стал ли я счастливее, узнав ответы на все эти вопросы, господи!?

@applicato
Copy link

спасибо

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment