- Что такое множество?
- Что такое кортеж?
- Что такое декартово произведение?
- Какие структуры данных вы знаете? Что такое очередь, стэк, FIFO, LIFO?
- Что такое хэш? Хэш-таблица?
- Что такое граф?
- Как вы понимаете понятие трудоёмкость или временная сложность алгоритма? Как она вычисляется? Какова трудоёмкость поиска элемента в массиве? В хэш-таблице?
- Что такое протокол? Какие протоколы вы знаете?
- Расскажите про HTTP протокол. Что такое клиент, сервер, как они взаимодействуют?
- Из чего состоит HTTP-запрос?
- Какие методы HTTP вы знаете? Какие из них имеют BODY? Какие нет?
- Чем отличаются GET и POST?
- Чем отличаются PUT и PATCH?
- Что такое идемпотентность? Какие методы считаются идемпотентными?
- Что такое API?
- Что такое REST API и зачем он нужен?
- Какие группы статус-кодов вы знаете? Расскажите в двух словах про каждую из групп 1xx, 2xx, 3xx, 4xx, 5xx.
- Чем отличаются REST и GraphQL?
- Слышали ли вы что-нибудь про GRPC? Чем он отличается от REST и GraphQL?
- Какие библиотеки и встроенные методы используются для обработки HTTP-запросов на стороне клиента? Какие на стороне сервера?
- Что вы знаете об HTTPS? Об TCP/IP?
- Чем отличаются протоколы TCP и UDP?
- Что вам известно о доменной системе имён DNS? Как она работает на примере сайта
development.starling.com
?
- Чем отличается RAM и ROM память?
- Что такое поток?
- Что такое однопоточность и многопоточность? Какие у них плюсы и минусы?
- Какие проблемы встречаются при многопоточность? Что вы знаете о состоянии гонки? Что происходит, когда два потока обращаются к одному ресурсу одновременно? Какие есть способы решения проблемы?
- Из каких этапов состоит разработка?
- Какие специальности в IT-сфере вы знаете, за что они отвечают?
- Что такое польская нотация? Обратная польская нотация?
- Что такое конкатенация строк?
- Зачем нужны регулярные выражения? Как с ними работать?
- Что такое указатель? Какой размер он имеет? Что можно делать с указателями?
- Что такое синтаксис? Что такое семантика? Чем они отличаются?
- Что такое система контроля версий и зачем она нужна на проекте? Почему будет трудно писать код без неё?
- Что такое коммит? Как сделать коммит?
- Какие команды Git ты помнишь? Как переключиться на другую ветку?
- Зачем нужен команда git stash?
- Как работает Git? Что такое дельта изменений? Чем отличается Git от своих альтернатив?
- Чем отличается git pull и git fetch?
- Чем отличается git merge и git rebase?
- Какие существуют стратегии merge в Git?
- Что такое Git flow и как он работает? Что такое environment? Какие environments ты знаешь?
- Какая сейчас версия HTML используется? Чем отличается от предыдущих версий?
- С чего начинается HTML-документ? Что такое Doctype и зачем он нужен? Что содержит
dtd
файл? - Зачем нужны семантические теги? Какие семантические теги вы знаете? Почему нельзя просто всегда использовать
<div>
? - Из каких блоков состоит HTML?
- Что размещается в блоке head?
- Где стоит хранить css: в head или body? Аналогичный вопрос касается скриптов.
- Как сделать так, чтобы скрипты загружались параллельно? Можно ли сделать так, чтобы один скрипт дожидался выполнения другого? Если да, то каким образом?
- Какие типы HTML-элементов ты знаешь? Чем отличаются блочные и строчные элементы?
- Как переводится CSS? Что такое каскад? Как работает алгоритм каскада, из каких этапов состоит?
- Что такое специфичность? Как её вычислить? Покажите на примере.
- Что такое наследование в CSS? Какие свойства наследуются, а какие нет? Имеет ли наследование специфичность?
- Что такое CSS Box model.
- Что такое z-index и как с ним работать? На каких элементах он работает?
- Как зафиксировать элемент на экране?
- Какими способами можно позиционировать элемент по центру?
- Какая самая большая проблема в CSS? Есть ли область видимости в CSS? Что вы знаете о CSS Modules?
- Что такое BEM? Зачем нужны методологии в CSS? Какие из них вы знаете?
- Что такое SCSS/SASS/LESS? Что такое постпроцессоры и препроцессоры?
- Какие типы вёрстки вы знаете? Чем отличается респонсив и адаптивная вёрстка? Посредством чего в CSS они реализуются?
- Что такое viewport и viewport values
- Как высчитывается em и rem? Чем они отличаются?
- Как вы охарактеризуете язык JavaScript?
- Охарактеризуйте типизацию языка JavaScript.
- Расскажите про события в JavaScript? Как работает Event Loop? Что такое таски и микротаски? Чем они отличаются и какие вы из них знаете?
- Что вам известно про область видимости (Scope), замыкание (Closure), Lexical environment?
- Какие примитивные типы данных есть в JavaScript?
- Как вы понимаете фразу: функция - это объект в JavaScript. Виды функций и их различия.
- Какие парадигмы есть в JavaScript? Как использовать ООП, классы в JavaScript?
- Что вы знаете о прототимном наследовании в JavaScript? Что такое прототип, скрытое свойство
__proto__
? - Что такое ключевое слово
this
? Где оно встречается в JavaScript? - Как можно явно привязать контекст? Чем отличаются методы
apply
,call
иbind
- Зачем нужен тип данных
Symbol
? - Какие методы массивов вы знаете? Какие из них изменяют исходный массив, а какие возвращают копию?
- Что такое асинхронность в JavaScript?
- Что такое функция обратного вызова (
callback
)? Какую роль эта функция выполняет? - За что отвечает встроенный объект
Promise
? Какие состояния есть у промисса? Как навешивать обработчики наPromise
? Что такоеPromise Chaining
? - Что такое
async/await
и чем он принципиально отличается отPromise
? Что возвращает функция с пометкой async? - Зачем нужен
eval
в JavaScript? Стоит ли его использовать? - Что такое строгий режим (
"use strict"
) в JavaScript? Зачем он нужен?
- Что такое DOM? В виде какой структуры данных он представляется?
- Что такое Selector API в JavaScropt? Какие методы этого API вы знаете?
- Производительно ли работать с DOM?
- Зачем нужен jQuery? Что можно с ним делать?
- Как подписаться на событие пользователя? Как работать с addEventListener? Как отписаться от события?
- Что такое всплытие (hoisting) и погружение (capturing)? Как с ними работать? Зачем нужен третий параметр addEventListener?
- Зачем нужны методы event.preventDefault и event.stopPropagation?
- Что происходит, когда вы что-то вводите в поисковое окно
- Что такое Critical Rendering Path и из чего он состоит
- Что такое совместимость?
- Что такое полифилл?
- Какие инструменты есть в Chrome Dev Tools?
- Чем отличаются LocalStorage от IndexedDB, от Session Storage?
- Может ли браузер понимать SCSS, TypeScript? Что такое трайспайлер? Babel?
- Что такое React? Для чего используется? За что отвечает?
- Чем отличаются фреймворк и библиотека? React - фреймворк или библиотека?
- Как вы понимаете component-based подход?
- Какие принципы React вы можете выделить?
- Что такое JSX? Можно ли написать React-приложение без JSX?
- Может ли браузер понимать JSX? Если нет, то что нужно для того, чтобы превратить JSX в JS? Что вы знаете о транспайлерах, о Babel?
- Что такое состояние? Какими способами можно управлять состоянием в React?
- Чем отличаются функциональный и классовый компонент?
- Что такое жизненный цикл и хуки жизненного цикла? Жизненный цикл классового компонента. Как вы понимаете слово mounting?
- React Hooks. Что это такое, зачем нужны, как работают под капотом. Какие хуки вы знаете? Какие доводилось использовать и для чего?
- Что такое мемоизация? Чем отличаются memo, useMemo, useCallback?
- Что такое High Order Component (HOC)? С какими HOC-ами вам доводилось иметь дело?
- Что такое композиция? Пример композиции в React. Сравнение композиции и наследования.
- Чем отличается useState и this.setState?
- Зачем нужно передавать callback в this.setState? Почему state в React обновляется асинхронно?
- Что вы знаете о Context API?
- Зачем нужны порталы в React?
- Что вы знаете о Virtual DOM? Зачем он нужен? Как работает?
- Что такое PropTypes и зачем они нужны?
- Что и когда лучше: React Hooks + Context или Redux? Когда можно избежать использования Redux?
- Можно ли использовать TypeScript и React вместе? Доводилось ли вам это делать?
- Что такое состояние в приложении? Зачем нужны инструменты для управления состоянием?
- Назовите три основных принципа Redux.
- Жизненный цикл Redux.
- Как подключить Redux Dev Tools?
- Как использовать асинхронные функции в Redux? Что вы знаете о redux-thunk и redux-saga.
- Что такое middleware?
- Всегда ли нужно использовать Redux? Когда стоит его использовать и когда не стоит?
- Что такое NodeJS? Охарактеризуйте его.
- Как работает Event Loop в рамках NodeJS.
- Чем отличается SQL и NoSQL?
- Что такое отношение в SQL? Что такое реляционная база данных?
- Какие типы связей между отношениями вы знаете в SQL?
- Что такое нормализация базы данных? Чем оно отличается от денормализации? Какие преимущества и недостатки у нормализации и денормализации бд? Какие нормальные формы вы знаете ?
- Что такое транзакция? Какие принципы транзакций вы знаете? Что вы знаете об принципах ACID? Как работать с транзакциями в микросервисной архитектуре? Что вы знаете о паттерне Saga?
- Какие типы операций в SQL вы знаете?
- Напишите SQL-запрос, который выбирает работников с зарплатой > 1000$, группирует их по заданному критерию, а затем сортирует их. Зарплата и работники хранятся в разных таблицах, которые нужно предварительно соединить.
- Что вы знаете об агрегационных функциях SQL? Какие из них знаете? Когда их можно применять?
- Какие блоки вы знаете у метода aggregate в MongoDB? Зачем нужна проекция?
- Что такое популяция?
- Что такое ORM? С какими ORM доводилось работать? Зачем использовать ORM?
- Какие движки баз данных вы знаете?
- Что такое индексы? Зачем их используют? В каком виде хранятся индексы?
- Что такое статическая типизация? Чем она отличается от динамической?
- Что такое компилятор? Зачем он нужен TypeScript?
- Какие типы данных есть в TypeScript? Обязательно ли их указывать?
- Чем отличается класс и интерфейс? Возможно ли множественное наследование в JavaScript/TypeScript?
- Какие парадигмы программирования вы знаете?
- Почему JavaScript можно назвать мультипарадигменным языком программирования?
- Что такое ООП? Что такое объект и класс? Приведите примеры из реальной жизни.
- Какие принципы ООП знаете? Что такое наследование?
- Какие паттерны ООП знаете?
- Что такое композиция в ООП? Чем отличаются композиция и наследование? Что лучше использовать и когда?
- Что такое SOLID? Раскройте смысл каждой буквы, приведите примеры.
- Что вы знаете о функциональном программировании?
- Что такое каррирование?
- Что такое мемоизация?
- Чем отличаются ФП и ООП? Когда и что лучше использовать?
- Что вы знаете о пирамиде тестирования? Из каких слоёв она состоит? Сколько и каких должно быть тестов на проекте? Приведите пример Unit-теста, интеграционного теста(API-теста), end-to-end теста.
- Что такое подход TDD? Чем он отличается от BDD? С какими фреймворками для тестирования вам приходилось работать?
- Какие паттерны тестирования вы знаете? Что такое загрушка?
- Что такое регрессионное тестирование? Стоит ли его проводить и почему?
- Как тестировать "чёрный ящик"?