Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Предисловие
В прошлой статье я рассказывал о пользе курсов, о минусах и плюсах модного онлайн-образования. Сегодня же я хочу рассказать о книгах, именно о тех книгах, которые, на мой взгляд, могут серьезно повысить вашу компетентность во многих вопросах JS.
Многие, возможно, зададут вопрос: "А зачем книги? Есть же браузер, не?". Безусловно, разработчик должен уметь пользоваться поисковой строкой, уметь искать, и, наверное, самое главное - уметь правильно задавать вопросы, но книги нужны для более глубокого понимания того, с чем вы работаете. Книги позволяют взглянуть на некоторые вещи с "академической" стороны.
Мы можем провести аналогию с образованием в высших учебных заведениях. В любом ВУЗе мы читаем книги, которые были написаны кандидатами технических наук и профессорами, чтобы потом сдать сессию, получить хорошую стипендию и жить дальше до следующей сессии, повышая сложность материала на каждой контрольной точке. Теперь смотрим на сферу и видим, что мы читаем академический материал, после идем на собеседование, удачно его проходим, получаем желанный оффер, а после повышаем свою квалификацию к следующей контрольной точке (новому рабочему месту или новой должности). В принципе, с алгоритмом мы разобрались. Идем дальше.
Сейчас кто-то скажет, что мы читаем книги только для собеседований, но на самом деле это не так. Конечно, чтобы решать задачи на всплытие или удаление всех дубликатов в массиве книги не нужны - достаточно браузера или опытного разработчика на habr, который в своей статье распишет что да как. Но вот оценка решений, подбор оптимального решения и оптимизированной реализации, которая не требует потом десятки часов рефакторинга - тут могут помочь только книги в связке с опытом разработки. Скажем прямо - книги дают более глобальное понимание всей frontend-разработки, глубокое понимание работы сложных и примитивных механизмов в языке, умение оценивать правильность решения проблемы на основе тех же самых паттернов проектирования, делать код более читаемым, более оптимизированным.
Каждый frontend-разработчик получает высшее самообразование посредством чтения таких материалов, постоянного обучения, постоянной самокритики. Я с уверенностью могу сказать, что человек, который спустя 10 лет недоволен своим кодом, несмотря на все старания и усилия освоить технологию - хороший разработчик.
Дэвид Флэнаган "JavaScript. Подробное руководство"
Не буду прикреплять картинки, так как они слишком сильно удлиняют страницу. Обойдемся просто небольшим описанием.
Дэвид Флэнаган - https://twitter.com/__DavidFlanagan
(его твиттер) автор книг по Ruby, Java и JavaScript.
Его книга "JavaScript. Подробное руководство" стоит вашего внимания, только потому, что там есть все. Нет, это не преувеличение. Уделите внимание первым главам про типы - очень хорошо описано, как преобразуются типы в js. Если и найдете в интернете что-то подробнее по типам, то будьте уверены - статья в интернете написана на основе этой книги. Очень хорошо описаны главы про js в браузерах, стоит прочесть, и, как сказал мне мой тимлид с прошлой работы - законспектировать. Стоит обратить на эту книгу внимание как только вы попали в frontend, и постепенно, повышая свои скилы на работе, читать этот манускрипт.
Как видите, здесь не указывается издание, потому что на 2020 год - их 7. Каждое издание рассказывает о своем стандарте JS, но самое ожидаемое на рынке - последнее, седьмое. На Российском рынке его с декабря можно купить, до этого мы все довольствовались шестым изданием, которое вышло в 2012 году.
Про седьмое издание и что там появилось новенького бессмысленно рассказывать, потому что это - не один пост на habr. Если кратко, то главы про итераторы, классы, асинхронность, метапрограммирование на js, и многое-многое другое. Лучше посмотреть самим на его сайте - https://davidflanagan.com/ . Там есть раздел, где можно глянуть что нового появится в седьмом издании. Однозначно, стоит почитать.
Кайл Симпсон: cерия книг "Вы не знаете Javascript"
Флэнаган дал нам большой и подробный справочник, который стоит читать тогда, когда вы только вливаетесь, или когда вы решили перед собеседованием повторить "всё" что связано с js. Но что если вам нужен один раздел, или нужен какой-то срез по разделу в виде основных тезисов. На помощь приходит Кайл Симпсон.
Информации о Кайле очень много даже в рунете. Человек принимает активное участие в open source, выступает на конференциях, пишет книги. Нас же интересует 6 его книг:
Scope & Closures
ES6 & Beyond
Async & Performance
Up & Going
Types & Grammar
this & Object Prototypes
Из названий сразу ясно какая тема рассматривается в каждой книге. Книги оформлены очень грамотно, важные тезисы выделяются в отдельные блоки, есть дополнительная информация. Например, в книге Async & Performance в первой главе описываются принципы асинхронного программирования в целом, рассказывается о таких понятиях как шлюз, потоки и т.д.
Все книги серии написаны в одном стиле, на рынке они в одном оформлении и при покупке вы точно не ошибетесь - вам будет интересно их читать.
Натан Розенталс "Изучаем TypeScript 3"
Мир не стоит на месте, миру нужна строгая типизация, поэтому на сцене появился TypeScript - надстройка над JS, которая открывает нам многие классические возможности строго-типизированных языков и дает нам полноценное Объектно-Ориентированное Программирование (почему полноценное - я когда-нибудь напишу об этом).
В книге об авторе написано немного, лишь то, что он уже 30 лет в сфере программирования. Книга написана скорее для новичков, но при этом она прекрасно дает понимание ts, дает хорошие основы, дает знание инструментов разработки с ним, и общее понимание тестирование ts.
Книга поделена на осмысленные разделы, где есть пояснения - что читать frontend-разработчику со знанием js, и что читать начинающему разработчику.
Конечно, с этой книгой соревнуется хорошая документация на официальном сайте. Но книгу то и отличает от документации, что там отчасти вольное повествование, которое помогает лучше воспринимать информацию. Стоит прочесть даже ради интереса - лишние знания ts будут нелишними в скором времени, так как мы видим тенденцию роста ts на рынке.
Если верить рейтингу PYPL (он построен на основе анализа Google Trends), то к декабрю 2020 года TypeScript занимал десятое место среди всех языков. Язык стоит изучать, хотя бы на будущее. И если раньше React и Angular в основном дружили с TypeScript, то сейчас и Vue.js начинает смотреть в сторону TypeScript. В интервью с Эваном Ю, Эван заявил, что во второй версии Vue.js был допущен просчет в плане поддержки TypeScript из коробки.
Послесловие
В мире огромное количество материала по js, ts, фреймворкам и библиотекам - и не все они достойны большого внимания. В этой части статьи рассмотрены книги для тех, кто уже хоть немного знает js, знает основы. Посмотрев на статью, мы увидим, что:
Книга #1 - справочник, который поможет подготовиться к собеседованию, поможет изучить какие-то вопросы, которые не часто всплывают в рабочей практике.
Книги #2 - серия, которая поможет разобраться во всех разделах отдельно, поможет углубиться в тему, получить скорее архитектурное понимание, чем общее
Книга #3 - рынок диктует то, что мы читаем. Книга поможет быстро вникнуть в typescript, понять его основы, понять скорее его идеологию.
P.S.
В будущем, если статья понравится пользователям, я бы хотел написать:
Книги по фреймворкам и библиотекам
Книги для новичков (таких очень много)
Книги по CSS и HTML (да, и такое есть)
Спасибо за внимание!