Pull to refresh

Comments 37

Опять квизы под вопросы замаскировали. Ну, такое. На любителя.

Сеньор? Серьезно? Это вопросы из учебника для джуниоров. Сеньоры в это области даже не работают.

Да даже я, не js разраб, и то ответил как минимум на 6 вопросов. Элементарщина, которую надо знать любому джуну, как работает язык под капотом.

Статья конечно интересная. Но уровень Senior...? А джун тогда кто?

Джун то же самое только без опыта. И может ещё сказать "не знаю" на некоторые вопросы. А вот кто давно работает не может сказать не знаю", вот и вся разница на собеседование, плюс он должен показать портфолио.

Без опыта это трейни, джун как раз должен знать подобные тонкости. Сеньор их просто уже не помнит

Все кроме последнего можно выкинуть к чертям. Никакого смысла они не несут.

Чему равно [] == ![]?

Либо я угадаю и мои тесты пройдут; либо не угадаю и тесты обвалятся, и я тут же поправлю. Если вообще когда-нибудь напишу такое. А если напишет кто-то другой, то на ревью его заверну. Вот и всё сеньорство.

Ну вот, теперь новоиспечённые интервьюеры понесут дальше в массы эти свежие и интересные задачи, вместо нормальной подготовки к собеседованию.

Наличие таких вопросов на собесе, это сразу звоночек. Ну а те, кто реально умеют проводить собеседования, конечно не понесут такое к себе

В том и проблема, что хабр имеет авторитет при поиске информации.

Т.е. в кейсе, когда начинающий интервьюер будет собирать пул задач, он примет эти советы как актуальные.

Про звоночек согласен. Вероятность сильно повышается, что технологии и процессы в команде такие же актуальные как и вопросы :)

Помню первое собеседование, интервьювер задавал кучу вопросов, вроде "что будет если написать fn(--i++), на что я ему ответил что если такой код напишу в проекте, мне нужно по рукам бить. Даже прошел собеседование )

Ну тут не угадать, задают тебе вопрос на проверку адекватности и рассуждений или слепо следуют советам аналогичных сухих статей.

Просто статья в контексте собеседования, а не только про особенности работы JS. Хорошо бы какой-то пример привести из реальности в каждом пункте.

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

Когда уже люди поймут, что это вопросы просто на знание принципов работы языка, и это не значит, что это нужно писать в реальном проекте. Точно также, как решения и победы в спортивном программирование почти всегда не будут иметь общее с реальным кодом коммерчески продуктов. Но победитель олимпиад, как минимум не плохо будет разбираться в принципа работы языков, математике, структурах данных.

Ну и надо понимать, что разным компаниям нужны разные кадры. Для вебстудии заказной разработки может быть вообще достаточно человека с сугубо прикладными навыками составления простых реакт компонентов. Заказы сдаются, зарплата платится, все счастливы.

console.log(1 + '1' - 1);
Можете ли вы угадать поведение операторов + и — в ситуациях, подобных описанной выше?

А теперь правильный ответ: если я увижу такое в коде, посмотрю, кто его наложил, и напишу менеджеру злое письмо.

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

В отличии от джуна, сеньор на такую чепуху наверное и не ответит, но по факту сделает в миллион раз больше продуктовых задач и проектов от 0 до production.

Ужас любой компании когда к ним приходят теоретики, с SOLID(упоротыми) заветами и вопросами на собесе подобно данной статьи.

Истинный сеньор шлет всех подальше на первом примере console.log(1 + '1' - 1);

вера в святые патиерны это та ещё проблема

Если на позицию сеньора вам задают подобные вопросы - разворачивайтесь и уходите. По вопросам на собеседовании можно многое понять о адекватности собеседующего и о общей культуре разработки в компании. Такие вопросы - это сразу красный флаг.

Мне кажется это не для синьеров, а для грандов). Весь пост пронизан тем самым теплым ламповым джаваскриптом - без strict modе, let/const, arrow functions, async/await и статического код анализа. Эх, где ты мой 2003?

Во втором вопросе не только вопрос туп, так еще и ответ неверный. Функция duplicate(arr) кроме того, что создаёт новый массив, еще и меняет старый... Бред какой-то, если честно

А где там создаётся новый массив? Метод возвращает изменённый переданный массив.

Ну по ТЗ у них было создание: "В этом фрагменте кода нам требуется создать новый массив с дублированными элементами. На первым взгляд, код создает новый массив newArr путем дублирования каждого элемента из исходного массива arr.  "

Другое дело, что они по ссылке меняли объект, в общем функция не делает то, что нужно и делает то, что не нужно. Причём как исходная, так и полученная...

Мдя. Человек который собеседует либо пытается узнать что ты знаешь чтобы понять как это применить в проекте, либо показать как много он знает по сравнению с тобой.
Здесь явно второй вариант. Хуже чем собесевование с таким человеком может быть только работа с ним\ней.

Настоящий сеньор глядя на такое говорит, что так просто делать не надо - код должен быть явным. А там, где по какой-то причине неявное поведение надо, должен быть понятный комментарий, описывающий что и почему.

Простите, но что за срань-то? Сейчас, в свете популярности TypeScript ответ на вопрос:

что выведется в "1 + '1' - 1"

будет однозначный:

TS2362: The left-hand side of an arithmetic operation must be of type  any ,  number ,  bigint  or an enum type.

Вот так, благодаря автору статьи, я сразу стал сиьнором JS, хотя я даже джуном JS никогда не был, но с JS немного знаком.

  1. Не использовать var

  2. Не смешивать типы

    Я синьор?

уже по наличию var и хренотятине в duplicate, в результате которой новый массив так и не получили, я понял, что статью выдавил из себя июнь или трейни, и дальше чисто до комментов долистал )

UFO just landed and posted this here

Во-первых есть тайпскрипт, хотя и в js все логично, если немного подумать, и на практике это не встречается, во-вторых зачем в 21 веке бывший шаблонизатор php, когда есть нода, джава, питон, го

Отличие сеньйора от джуна в том что сеньйор скажет что это срань собачья и в реальной разработке использовать такое нельзя. Но если очень хочется позаниматься ментальной гимнастикой, всегда можно просто открыть мануалы и разобраться что на самом деле произойдёт. Джун же считает что это сакральные знания, которые отличают айти помазанных от черни.

Спасибо, никогда не поздно напомнить, что js - это ад на земле, но альтернатив нету. Добавлю свой пример, который стоил мне двух дней дебага : оказывается в for(var i in []) i - это строка. То, что во всех других циклах - число и в этом контексте не может быть ничем иным кроме числа, внутри такого цикла даётся как строка.

Всё же софт в большей части состоит не из такого шаманского и узкоспециализированного кода. Знать наверное приятно, такие мелочи добавленные из за несовершенства языка и недальновидностью создаелей этого языка. Но всё же для программиста в первую очередь, без деления на касты требуется знать архитектурные паттерны, алгоритмы, подходы и т.д
Если такими вопросами опеределяют сеньера, это забавно.

Сидишь ты такой, пытаясь понять, почему докер-контейнер с переписанным на njs сервисом у тебя в марафоне работал, а в новом кубере не хочет, и что он там в кибане говорит по логам, а тебе "console.log(1 + '1' - 1);" ? Серьезно? :)

Sign up to leave a comment.