JavaScript книги, курсы | что читать/смотреть | с чего начать

Приветствую, я сейчас делаю роадмап/план изучения по фронтенду, недавно закончил расписывать вводные уч. материалы по js, думаю это будет многим полезно, сделал в формате отдельного поста.

Сам роадмап в телеге, все в лайве, примерные сроки 6 месяцев, если хотите изучить фронтенд, welcome ( https://t.me/into_frontend ).

1. Взаимозаменяемость уч.материалов

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

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

На практике это означает, что можно как угодно жонглировать учебными материалами. Если произошел какой-то затык и после изучения определенной темы, она все еще остается непонятной, хорошая идея - посмотреть как об этом рассказано в других книгах/курсах. И чем больше учебных материалов, тем выше вероятность найти подходящее объяснение.

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

2. Начать выстраивать план изучения лучше с какого-то опорного уч.материала

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

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

В JS для роли такого опорного материала отлично подойдут:

Для начинающих:

2.1.https://learn.javascript.ru - легендарный сайт, он всем хорош, однако ребята которых я менторил приходили ко мне вот с какой проблемой:

-прочитал главу на learnjavascript, все понял, задачи в конце решил, после открываю codewars, беру задачи по теме, не могу решить без открытой в соседней вкладке той самой прочитанной/понятой/прорешенной главы, как так?

Дальше мы обсудим эту тему, важно - это не проблема уч.материала, с ним все в порядке, это проблема самого языка, ничего тут не поделаешь, js имеет это странное свойство - маскироваться под очень простую понятную штуку, а потом ‘ускользать’, когда дело касается реального применения.

Для продолжающих:

2.2.Флэнаган Дэвид, JavaScript. Полное руководство (книга с носорожком)

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

Я ее буквально сейчас держу в руках, и на задней обложке красуется “книга предназначена для программистов, желающих изучить js”, еще раз, ‘для программистов’, а не для новичков.

В любом случае, книга великолепна, ее обязательно надо будет прочитать. И как опорный материал - лучше некуда.

3.Ускользающий js

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

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

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

В js все с точностью до наоборот, можно хоть сразу приступать к реальным задачам, и решать, разумеется, криво-косо, компонуя из кусков кода, который даже не до конца понимаешь. И это огромная проблема, сколько угодно случаев, когда начинающий уверен на 100% в знаниях ЯПа(ну он же на нем проектики воял), а потом оказывается, что решить пресловутый fizzbuzz(задача, буквально, про самые основы) не получается.

Я как-то делал видео (там есть привязка ко времени, но если не сработает - 8:35) про питон, где затрагивал весьма искусственно разбиение на уровни(планирования и реализации). Так вот, js - это игровая площадка для уровня планирования.

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

4. JavaScript с нуля, Чиннатхамби Кирупа

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

На гугл книгах(прост вбейте название в гугле, справа будет карточка книги) доступен предпросмотр 80 страниц, тут проще один раз посмотреть, чем читать почему она хороша.

5. Freecodecamp

Freecodecamp[англ.] - является олицетворением вот этого ‘научим всех программировать’. Если вы спросите программиста из Америки/Канады, то вероятность 90% порекомендуют его или аналоги(например, codeacademy). Из аналогов выделяется тем, что это буквально пик подобных проектов.

Freecodecamp ‘nonprofit organization’, т.е. у них все бесплатно, но время от времени будут просить сделать донат, по моему в виде подписки(разумеется, все добровольно, можно и не делать).

Есть курсы начиная с основ html и до React-a, дают сертификаты(честно скажу, никому никакие сертификаты не нужны, но все же), куча задач, вполне себе хорошая теория, и оч крутой форум. Также есть отдельные задания-проекты.

6. Введение в программирование, hexlet

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

https://ru.hexlet.io/courses/introduction_to_programming очень крутой курс введения в программирование, подача на высшем уровне.

Этот же курс есть на степике https://stepik.org/course/13929 , правда там он несколько урезан

7. Выразительный JavaScript

Один из самых примечательных вводов в ЯП. Отличная книга, много кода, много примеров, все хорошо объяснено, отдельно хочется отметить главы-проекты, чего только стоит проект - создание маленького языка программирования.

Ну и разумеется, документация JS, там есть отличные туториалы, стоит ознакомиться.

9. Есть еще один курс, о котором нельзя не упомянуть. Сразу скажу - сложный, но абсолютно потрясающий. Я бы даже сказал, что он единственный в своем роде. Более полного и глубокого я не видел, что сказать это настоящий академический подход.

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

5858
19 комментариев

Потом реакт, вью, нода, казино, блэкджек, девчонки.

14
Ответить

В чём смысл в тысячный раз одно и то же публиковать? Эти «роадмапы» и списки одних и тех же книжек на медиуме штабелями похоронены.

7
Ответить

Как зачем? 100500-ый телеграм канал сам себя не прорекламирует.

2
Ответить

На мой взгляд, пример проблемы с learn.js - явно демонстрирует важность правильной работы со справочниками. Важно не просто прочитать, но именно понять и осознать.

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

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

5
Ответить

О, привет обсидиановым друзьям

1
Ответить

Я бы вдобавок посоветовал бесплатные курсы от https://rs.school/ . Есть таски с дедлайнами, тесты, много практики, на ютубе лекции и лайв кодинг. Для тех кто с 0 вкатывается есть подготовительные курсы около 2х месяцев. Дальше курс по core js, затем по выбору React или Angular. Можно и node js попробовать если интересно. Есть командные таски и и тех интервью с менторами. В каждом курсе можно получить ментора (но может и не повезти), который поможет с вопросами. Есть каналы в дискорде где можно пообщаться по теме. Сам прошел и всем рекомендую.

4
Ответить

Да, они очень круты, думал написать, но там курс для новичков стартует только в декабре(это который нулевой), а ненулевой стартанул вроде как совсем недавно и след.набор в феврале только.

Ответить