Что можно считать глубокими знаниями в js?

Везде пишут, что нужно глубокое знание/понимание языка. Что это значит?
  • Вопрос задан
  • 13369 просмотров
Пригласить эксперта
Ответы на вопрос 6
pm_wanderer
@pm_wanderer
junior-HTML
Немного дополню, чтобы новички не пугались. А то страшилок много о том, что надо знать все, хотя в реальности, тех кто действительно "знает все" можно пересчитать по пальцам:

Как работает браузер - можно знать лишь в общих чертах, для общего развития. В повседневной жизни это в 99% случаев не нужно. Браузер предоставляет нам API и мы его используем. То как оно устроено внутри пусть остается инкапсулировано внутри.

Как работает V8 - опять же, достаточно общего представлени об event loop. Все остальное пусть остается скрыто и используется через API.

Оптимизация кода под браузерные движки - в большинстве случаев вообще не надо.

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

Написание быстрого кода - практически не нужно (он и так будет достаточно быстрый). Лучше сосредоточиться над написанием читаемого, тестируемого и поддерживаемого кода.

К общему списку еще можно добавить паттерны проектирования. Это будет намного полезней, чем всякие техники спичечной оптимизации)
Ответ написан
fakey0u
@fakey0u
(javascript) => ['Node.js', 'React']
Я бы конечно определился, что такое более глубокое понимание. Для себя я бы обозначил глубокое понимание, как умение решать "бизнес-задачи" на языке JavaScript, наиболее эффективным образом.

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

Знать и уметь применять паттерны проектирования:

- Singleton
- publish/subscribe
- factory
- proxy
- facade
- strategy

Понимать структуры данных и понимать для чего эти структуры предназначены, сложности алгорит:

- Список, связанный список
- Деревья, бинарные деревья
- Очередь/Стек
- Графы

Уметь писать в ООП парадигме и в функциональном стиле, просто чистый код:

- SOLID
- fp (pipe, compose, curry, functor, monads, etc)
- SOA, понимание Service-oriented architecture

Понимание работы компилятора и интерпретатора, MaxKorz хорошо уточнил.
Ответ написан
Комментировать
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
У каждого HR/техлида, который будет собеседовать, свои представления о прекрасном. Есть база, которую надо знать, иначе будешь плавать категорически, все остальное - по мере необходимости (имхо). Если с инглишем туго, то сожалею, хотя у кантора весьма недурной ресурс, да и есть платные качественные курсы по JS. Опять же зоракс на ютубе доходчиво объясняет базу.

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

Собеседующим главное надо показать, что их задачи ты сможешь решить. Для этого софт-скиллы местами даже гораздо важнее технических скиллов.
Ответ написан
Комментировать
@Batlab
PHP Senior | Python Middle | JS Junior
Я думаю, опыт работы минимум 2 года + знания современных библиотек и фреймворков, возможность самому создавать их.
Ну и иметь парочку проектов не мешало бы.
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
В 99.9% случаев: кодить без jQuery.
Когда звучат такие слова, как "глубокие знания", то речь идёт о скорости исполнения JS-кода и достижение максимально-возможной через знания того, что под "капотом" как функционируют все прослойки.
Ошибочное мнение, что речь идёт о знаниях стандартных JS функций, методов и алгоритмов.

А вообще, MaxKorz всё верно изложил.
Ответ написан
SowingSadness
@SowingSadness
web-разработчик
Все что выше написали булщит.
Глубокое понимание JS, это умение написать функции наследования через прототипы не по памяти, а потому что понимаешь как это делается.
+ Теперь ещё понимание символов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы