Предисловие
В прошлой статье я рассказывал о пользе курсов, о минусах и плюсах модного онлайн-образования. Сегодня же я хочу рассказать о книгах, именно о тех книгах, которые, на мой взгляд, могут серьезно повысить вашу компетентность во многих вопросах 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 (да, и такое есть)
Спасибо за внимание!