# Постовой Сергей Собеседовали Александр Сивцов и Максим Овсянников в про профайл. ### Hard skills #### Результат ----- #### Что проверял Понимание базовых сущностей и механик js. #### Как проверял 1. Спросил, какие есть примитивные типы данных в js, в чём разница между `null` и `undefined`, зачем нужен `Symbol`. 2. Спросил про `var`, `let`, `const`, разницу, всплытие. 3. Дал задачу на копирование объектов по ссылке и мутацию ключей. 4. Спросил, что знает про функции в языке, в чём отличие declaration от expression, в чём особенность стрелочных функций. #### Результат 1. Рассказал про все. Про `Symbol` сказал, что знает только теорию на практике не использует. 2. Рассказал все, но явно не сказал что у var функциональная видимость. 3. С задачей разобрался, но медленне чем обычно, много времени потратили на то, чтоб понять что вообще нужно сделать. Предложил атльтернативное решение с `Object.assign`. 4. Запутался в разнице declaration и expression, но после подсказки рассказал про особенности ----- #### Что проверял Понимание контекстного механизма, частичного применения функций. #### Как проверял 1. Спросил, что такое `this`, как работает, чем является в разных ситуациях. 2. Дал задачу на написание собственной реализации `bind`. #### Результат 1. Ответил. 2. Задачу закодил с подсказками. ----- #### Что проверял Понимание функциональных практик написания кода. #### Как проверял 1. Спросил, что такое иммутабельность и зачем нужна. 2. Спросил про HOF и HOC. 3. Спросил про отличия между `filter/map/reduce/forEach` и область применимости каждого из методов. 4. Дал задачу на написание своей реализации `reduce`. #### Результат 1-3. В целом понимает, рассказал. 4. Реализовал свёртку, но с помощью. ----- #### Что проверял Понимание Event Loop'а. #### Как проверял 1. Спросил про то как устроен цикл событий в js 2. Дал задачу на расставление очередности вывода в зависимости от приоритета операции в цикле событий. #### Результат 1. Расплывчато объяснил порядок выполнения и приоритеты типов операций. 2. Задачу решил сразу. ----- #### Что проверял Умение покрывать функциональность тестами. #### Как проверял Спросил, пишет ли тесты. #### Результат Про тесты сказал, что в команде разрабатывается все в соответствии с TDD, но больше уточнять не стал ----- #### Что проверял Понимание DOM, вёрстки, стилизации. #### Как проверял Спросил, что такое DOM, чем отличаются `defer` и `async`, проблему глубоко вложенных селекторов. #### Результат Про DOM рассказал, разницу `defer` и `async` ответил, но неправильно, после подсказки ответил правильно. Про проблему глубокой вложенности css селекторов не ответил ----- ### Анализ Кандидат хорошо знает теорию es6, однако с более ранними версиями спецификации есть проблемы. С наши задачками справлялся относительно хорошо. На протяжении всего собеседования кандидат был вежлив и доброжелателен. Есть минус, что нет особенно опыта работы с redux, но думаю что это быстро приобретаемые знания. ----- ### Итоговый вердикт Рекомендую приглашать на следующий этап.