Меня зовут Кирилл, ещё вчера я учился на Хекслете, а сегодня работаю в «Авито». У нас высокие требования к разработчикам, поэтому я бесконечно занимаюсь самообразованием, а также рассказываю новичкам, как стать классным специалистом и всё время прогрессировать.
- Не начинайте погружение с You Don't Know JS
- Не надо просто читать спецификацию, в этом нет смысла
- Не пытайтесь во время обучения полностью постичь асинхронность, без опыта в разработке сделать это сложно
- Пробуйте различные источники и форматы обучения
- Итого
Я написал статью для начинающих разработчиков, которые уже прошли или завершают профессию на Хекслете и используют JavaScript как основной рабочий инструмент. Делюсь советами, которые помогут новичкам углубить знания, не забивая голову бесполезной на первых этапах обучения информацией.
Не начинайте погружение с You Don't Know JS
Начнём с простого. Всё, что вам нужно знать про логику мира JavaScript для того, чтобы начать погружение — это то, что на обложке культовой книги «Секреты JavaScript ниндзя» изображён самурай.
Тогда я еще не знал этого, поэтому начал изучать дополнительные материалы параллельно с прохождением профессии на Хекслете. На меня свалилась гора информации и много советов из разных источников. Один из советов — изучать You Don't Know JS. Это замечательный источник, но для новичка он практически бесполезен.
Нужно повариться в разработке и иметь опыт написания кода, чтобы понимать суть того, что пишет Кайл Симпсон (Kyle Simpson). Я мучался и читал, дошёл до конца и почти ничего не понял. Спустя год с удовольствием пролистал все части и почерпнул много нового.
Не надо просто читать спецификацию, в этом нет смысла
Ещё один вредный совет звучит так: «Читай спецификацию». Вы же не учитесь дайвингу, когда едва держитесь на воде? Так и в разработке: информация для опытных специалистов не поможет, пока вы не знаете основ.
Можно, конечно, заглянуть в документацию, чтобы понять какие-то особенности работы той или иной конструкции, но последовательное чтение спеки может отбить желание углубляться в язык.
Не пытайтесь во время обучения полностью постичь асинхронность, без опыта в разработке сделать это сложно
Несмотря на то, что я прошел курс по асинхронному программированию, эта часть профессии у меня и многих студентов вызывала много вопросов. Это нормально, хорошее понимание асинхронной модели придёт к вам с опытом работы в реальных проектах.
Приблизить это время поможет книга Secrets Of The JavaScript Ninja. В ней тема асинхронности раскрыта очень глубоко и с примерами. Не лишним будет узнать, как работает Event Loop. Если бы я это сделал немного раньше, было бы легче двигаться вперед.
Пробуйте различные источники и форматы обучения
В какой-то момент мне стало сложнее получать новую информацию из книг, я стал их пролистывать. Тогда финальным рывком в моём обучении стал видеокурс от Кайла Симпсона Deep JavaScript Foundations. С некоторыми взглядами Кайла я не согласен, но нельзя отрицать, что он один из самых мощных JavaScript-разработчиков, которые занимаются обучением.
В конце концов у меня сложилась целостная картинка мира языка и инфраструктуры, нашёл много ответов на важные вопросы и систематизировал информацию, которую получил ранее из книг.
Итого
Если бы я мог дать совет себе в прошлом и составить список книг, то он был бы такой (порядок имеет значение):
1. Eloquent JavaScript
Написана простым и понятным языком, читается на одном дыхании — отличный кандидат для первой книги.
2. Secrets Of The JavaScript Ninja
Здесь уже можно найти больше интересных деталей и подробностей. Очень хорошие примеры.
3. You Don't Know JS
Поможет закрепить, углубить и систематизировать полученные знания.
Ну и десерт для самых пытливых умов: видеокурс Кайла Симпсона Deep JavaScript Foundations. После этого этапа, если вы всё ещё настроены нырять вглубь, практически единственным источником становится спецификация, где можно найти ответы на любые вопросы.
Удачи в погружении!
Мой профиль в LinkedIn.