Несколько дней назад вышла юмористическая (но наполненная болью и страданиями автора) статья “На что похоже изучение JavaScript в 2016г.”
В одном из комментариев к статье засветился сам Addy Osmani, один из ведущих JavaScript разработчиков в мире. Далее идет текст его ответа в вольном переводе:
Я полностью понимаю ваше отчаяние :)
Я советую людям, изучающим экосистему JavaScript придерживаться такого подхода: сперва сделай это, потом сделай это правильно, потом сделай это лучше.
Сначала сделай это. Выдохни и признай, что для тебя все это совершенно в новинку. Не использовать все инструменты сразу - это нормально. И на самом деле, это даже лучше. Напиши простой код, который выполняет свою задачу. Нет ничего неправильного в использовании обычных HTML/CSS/JS.
Мы не хотим признавать, что овладение основами чего-то нового требует времени, упражнений и определенного навыка. Новички не должны чувствовать себя лузерами, потому что не используют наимоднейшую библиотеку дня или самый крутой реактивный паттерн на этой неделе. На то чтобы как следует понять Babel и React у меня ушли недели. Еще больше времени мне потребовалось, чтобы нормально разобраться в изоморфном JS, WebPack и остальных библиотеках из этой области. Начните с простого, потом развивайтесь дальше на базе этого фундамента.
Потом сделай это правильно. Работай по итерациям. Улучшай то, что у тебя уже есть. Заметил проблему, которая пришлось решать уже несколько раз? Возможно, стоит включить в проект небольшую библиотеку/модуль, которая с этим поможет. Совершенно нет причин думать о том, чтобы переписать ваш проект на каком-то другом языке или добавить какие-то инструменты, если это никак не поможет движению проекта вперед. Все, что вы добавляете в проект должно по-настоящему добавлять ценность. Если это только усложняет проект или делает завершение проекта труднее для вас и вашей команды, то избавьтесь от этого.
Затем сделай это лучше: оттачивай свое ремесло. Как только тебе станет комфортно ориентироваться во множестве инструментов и библиотек, о которых ты знаешь наверняка, что они приносят пользу твоей работе, ты обнаружишь, что используешь их по умолчанию, потому что в этом есть смысл. Я постоянно использую в своем проекте около 9-10 инструментов, но я знаю о них достаточно, чтобы избегать их “острых углов”, так чтобы эти инструменты действительно экономили мое время. Я бы никогда не посоветовал новичку с ходу использовать большинство инструментов из этого поста. Это может принести только боль. Вместо этого, изучите как следует основы. Постепенно познакомьтесь с инструментами, которые на самом деле приносят пользу, а потом используйте то, что помогает вам стать и оставаться эффективным. Еще стоит заметить, что все, даже люди, которые пишут упомянутые библиотеки и инструменты, проходят через те же самые чувства усталости и отчаяния, когда изучают, дебажат и пытаются остаться в курсе дел современного JavaScript. Поэтому хочу напомнить ребятам, что мы все в одной лодке и наши инструменты предназначены для того, чтобы нам помогать. Если они этого не делают, мы должны от них избавляться :)