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

Везде пишут, что нужно глубокое знание/понимание языка. Что это значит?
  • Вопрос задан
  • 11715 просмотров
Решения вопроса 1
@MaxKorz
Глубокое знание/понимание JS:
- понимание как работает браузер;
- как работает V8;
- какой код будет оптимизирован движком, а какой нет и почему;
- умение находить утечки памяти и знать что их вызывает;
- умение пользоваться профайлером;

Ну и сам JS: понимание прототипного наследования, замыканий, области видимости, this, promise, call, apply, bind, регулярки и т.п.

Как работает браузер
Под капотом V8
Что убивает оптимизацию V8 (еще)
Написание быстрого JS кода, еще и еще
4 вида утечек памяти в JavaScript и как с ними бороться (перевод)

Бонус - как работает интерпретатор javascript

P.S. очевидно, что достичь глубоких познаний в JS будет сложновато без хотя бы средних познаний в английском
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
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 developer
У каждого HR/техлида, который будет собеседовать, свои представления о прекрасном. Есть база, которую надо знать, иначе будешь плавать категорически, все остальное - по мере необходимости (имхо). Если с инглишем туго, то сожалею, хотя у кантора весьма недурной ресурс, да и есть платные качественные курсы по JS. Опять же зоракс на ютубе доходчиво объясняет базу.

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

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

А вообще, MaxKorz всё верно изложил.
Ответ написан
@zipo
Возможно стоит еще попробовать тестирование, тестовый файлы: onlinetestcentre.com/search/javascript%20microsoft.html
Тестовый движек: loorex.com
Возможно найдете пробелы в знаниях, которые необходимо запонлить
Ответ написан
SowingSadness
@SowingSadness
web-разработчик
Все что выше написали булщит.
Глубокое понимание JS, это умение написать функции наследования через прототипы не по памяти, а потому что понимаешь как это делается.
+ Теперь ещё понимание символов.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
HTML Academy Москва
от 85 000 до 100 000 руб.
KUPIBILET.RU Санкт-Петербург
от 100 000 до 130 000 руб.
18 июля 2018, в 22:20
4000 руб./за проект
18 июля 2018, в 21:54
1000 руб./в час