Самая сложная часть получения работы - это прохождение собеседования.

В разработке программного обеспечения собеседования имеют разные этапы и выходят за рамки обычного «каким вы видите себя через пять лет?» клише. Чтобы узнать, подходит ли кто-то для работы, вам нужно знать, как он думает, а не только то, что он знает. Разработка программного обеспечения - дело непостоянное, и вам нужно получить от человека, стоящего перед вами, все, что только возможно: как они думают, как они подходят к проблемам, как они справляются с трудностями. Для этого нужны вопросы, хорошие и, зачастую, странные, чтобы определить не только характер, но и технику.

1 Что такое JavaScript?

Это может показаться обыденным, бессмысленным или даже неуместным, но этот простой вопрос может вызвать много драмы. Достаточно часто мы знаем, как использовать вещи, мы знаем, как и что они из себя представляют, но когда дело доходит до их описания, мы застреваем. Если бы вам пришлось прямо сейчас на месте определять JavaScript, насколько хорош будет ваш ответ? Подумай об этом.

2 Как вы организовываете свой код?

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

3 Что за всплывающее событие?

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

4 Что такое функциональное программирование?

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

5 Что такое this в JavaScript?

Да, вы правильно прочитали. Что такое ключевое слово «это» в JavaScript? Этот вопрос становится очень популярным в интервью, в основном потому, что он ставит в тупик многих разработчиков. Когда многие люди не знают ответа на вопрос, вы знаете, что вам нужно задавать его чаще. (ответ: при выполнении функции JavaScript устанавливает свойство для этой функции с именем this. This является объектом и относится к контексту выполнения)

6 Когда следует использовать классическое наследование?

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

7 Что означает ненавязчивый в JavaScript?

Это то, что вы не слышите каждый день, так что это хороший вопрос, чтобы заморозить людей. JavaScript - обширный язык, поэтому существует множество концепций, с которыми вы, возможно, не знакомы, и человек, задающий вопрос, это знает. (ответ: ненавязчивый - это методология JavaScript, которая помогает преодолевать несоответствия в браузере за счет разделения функциональности и структуры страницы)

8 Следует ли хорошему разработчику JavaScript использовать фреймворки?

В каждом интервью вы хотите показать, что вы знающий и опытный программист. Дело в том, что демонстрация того, что вы очень хороши, может укусить вас в зад. Это один из вопросов о обоюдоострых мечах, вы должны быть осторожны, как вы его схватите, иначе вы можете порезаться. Независимо от того, что вы ответите, вы получите следующий вопрос: «Почему?» что может загнать вас в угол. Дело в том, что хорошие навыки кодирования не означают, что вам нужно делать все с нуля, даже если вы можете, отличные навыки кодирования - это практичность и эффективность.

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

9 В чем ваша самая большая слабость как разработчика?

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

Дело даже не в этом (хотя хорошо разбираться в плохих вещах - это хороший навык, например, это не ошибка, это особенность), а в том, чтобы научиться узнавать себя таким, какой вы есть на самом деле. У всех нас есть слабые места, и они не обязательно плохие, все зависит от того, как вы их используете. Подумайте о своих недостатках, проблемах и слабостях, подумайте о том, какова их роль в вашем процессе, и найдите хороший и честный ответ.

Эти вопросы интервью не предназначены для того, чтобы вы запомнили идеальные ответы на все из них, мы представили 9 в этой статье, и вы легко можете найти еще 90, связанных с техническими аспектами JavaScript и многим другим. Вопросы должны помочь вам, в конечном итоге они должны быть информативными, но, прежде всего, они призваны помочь вам лучше понять, как думать на собеседовании, и да, какие аспекты JavaScript (должны) знать.

Изменить

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