Скидки до 28% + 2-ая профессия бесплатно и подарки на 50 000₽

Главная | Все статьи | Код

Эдди Османи о том, как изучать современный JavaScript

Время чтения статьи ~2 минуты

Несколько дней назад вышла юмористическая (но наполненная болью и страданиями автора) статья “На что похоже изучение JavaScript в 2016г.”

В одном из комментариев к статье засветился сам Addy Osmani, один из ведущих JavaScript разработчиков в мире. Далее идет текст его ответа в вольном переводе:

Я полностью понимаю ваше отчаяние :)

Я советую людям, изучающим экосистему JavaScript придерживаться такого подхода: сперва сделай это, потом сделай это правильно, потом сделай это лучше.

Сначала сделай это. Выдохни и признай, что для тебя все это совершенно в новинку. Не использовать все инструменты сразу - это нормально. И на самом деле, это даже лучше. Напиши простой код, который выполняет свою задачу. Нет ничего неправильного в использовании обычных HTML/CSS/JS.

Мы не хотим признавать, что овладение основами чего-то нового требует времени, упражнений и определенного навыка. Новички не должны чувствовать себя лузерами, потому что не используют наимоднейшую библиотеку дня или самый крутой реактивный паттерн на этой неделе. На то чтобы как следует понять Babel и React у меня ушли недели. Еще больше времени мне потребовалось, чтобы нормально разобраться в изоморфном JS, WebPack и остальных библиотеках из этой области. Начните с простого, потом развивайтесь дальше на базе этого фундамента.

Потом сделай это правильно. Работай по итерациям. Улучшай то, что у тебя уже есть. Заметил проблему, которая пришлось решать уже несколько раз? Возможно, стоит включить в проект небольшую библиотеку/модуль, которая с этим поможет. Совершенно нет причин думать о том, чтобы переписать ваш проект на каком-то другом языке или добавить какие-то инструменты, если это никак не поможет движению проекта вперед. Все, что вы добавляете в проект должно по-настоящему добавлять ценность. Если это только усложняет проект или делает завершение проекта труднее для вас и вашей команды, то избавьтесь от этого.

Затем сделай это лучше: оттачивай свое ремесло. Как только тебе станет комфортно ориентироваться во множестве инструментов и библиотек, о которых ты знаешь наверняка, что они приносят пользу твоей работе, ты обнаружишь, что используешь их по умолчанию, потому что в этом есть смысл. Я постоянно использую в своем проекте около 9-10 инструментов, но я знаю о них достаточно, чтобы избегать их “острых углов”, так чтобы эти инструменты действительно экономили мое время. Я бы никогда не посоветовал новичку с ходу использовать большинство инструментов из этого поста. Это может принести только боль. Вместо этого, изучите как следует основы. Постепенно познакомьтесь с инструментами, которые на самом деле приносят пользу, а потом используйте то, что помогает вам стать и оставаться эффективным. Еще стоит заметить, что все, даже люди, которые пишут упомянутые библиотеки и инструменты, проходят через те же самые чувства усталости и отчаяния, когда изучают, дебажат и пытаются остаться в курсе дел современного JavaScript. Поэтому хочу напомнить ребятам, что мы все в одной лодке и наши инструменты предназначены для того, чтобы нам помогать. Если они этого не делают, мы должны от них избавляться :)

Аватар пользователя Арбатский Артём
Арбатский Артём 12 октября 2016
1
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря