Что учить в 2017, если вы – фронтенд-разработчик

462

Перевод статьи Артема Сапегина

В нашей резво прогрессирующей экосистеме мы склонны тратить наше время, тестируя последние нововведения и споря о них в интернете. Я не намекаю на то, что нам нельзя этого делать, однако, быть может, нам стоит немного притормозить и взглянуть на вещи, которые особо не меняются: они бы могли значительно увеличить качество и полезность нашей работы, а также понимание этих новых инструментов.
Данный пост – мой опыт вперемешку с новогодними пожеланиями. Я не только хочу поделиться своими идеями, но и жажду услышать ваши.
Учитесь писать читабельный код
Большинство нашей работы заключается не столько в написании нового кода, сколько в модифицировании существующего. Получается, что читаете код вы намного чаще, чем пишите, так что надо оптимизировать его для следующего программиста, а не интерпретатора.
Я советую прочесть эти три замечательные книги – в этом порядке, с самой короткой по самую длинную:
• «Читаемый код, или Программирование как искусство» от Дастина Босуэлла.
• «Чистый код. Создание, анализ и рефакторинг» от Роберта К. Мартина.
• «Совершенный код» от Стива Макконнелла.
Глубже изучайте JavaScript
Когда каждую неделю выходит свежий JavaScript-фреймворк, всегда лучший любого старого, запросто можно провести огромную массу времени за изучением фреймворков вместо самого языка. В случае, когда вы пользуетесь фреймворком, но не осознаёте, по какому принципу он устроен – остановитесь и начните изучение языка. Продолжайте, пока не поймёте, как функционируют инструменты, которыми вы пользуетесь.
• Отличным выбором для начала станут работы Кайла Симпсона «You Don’t Know JavaScript»(EN), которые можно прочесть бесплатно онлайн.
• У Эрика Эллиотта есть обширный список тем по JavaScript(EN) для изучения в 2017 году.
Энрике Альве составил список нюансов(EN), о которых следует узнать перед использованием React (на самом деле, это применимо для любого фреймворка).
• «JavaScript Developers: Watch Your Language»(EN) от Майка Пенниси поможет понять процесс TC-39 для внесения новых возможностей в ECMAScript.
Изучайте функциональное программирование
Годами мы ждали классов в JavaScript. Наконец-то мы их получили, но больше пользоваться ими не хочется: функции – всё, что нам нужно! Мы даже на HTML пишем с помощью функций (JSX).
• «Functional-Light JavaScript» от Кайла Симпсона.
• Электронная книга «Professor Frisby‘s Mostly adequate guide to functional programming» от Брайана Лонсдорфа и его бесплатный курс.

Изучайте основы дизайна
Являясь фронтенд-разработчиками, мы находимся ближе всего к пользователям, чем весь остальной коллектив – наверное, даже ближе дизайнеров. И если дизайнерам приходится редактировать каждый пиксель, помещенный вами на экран – вы что-то делаете неправильно.
• «Дизайн для хакеров»: книга и бесплатный курс.
• «Дизайн для недизайнеров» — лекция от Трейси Озборн.
• «Design of Web Applications» от Нейтана Берри.
• «On Web Typography» от Джейсона Санта Мария.
• «Психбольница в руках пациентов. Алан Купер об интерфейсах: почему высокие технологии сводят нас с ума и как восстановить душевное равновесие» от Алана Купера.
Несколько статей об анимации в UI: Как с помощью анимации улучшить UX, Переходные интерфейсы.
Учитесь работать с людьми
Некоторые занялись программированием из-за того, что общение с компьютерами им даётся легче, нежели с людьми – к сожалению, такой подход неверен.
Нечасто мы работаем в одиночестве: нам приходится общаться с остальными разработчиками, менеджерами, дизайнерами, а порой — и с пользователями. Это тяжело, но критически важно, если вы правда хотите понять, чем вы занимаетесь и для чего – ведь в этом и заключается ценность нашей работы.
• «Путь программиста» от Джона Сонмеза.
• «Идеальный программист. Как стать профессионалом разработки ПО» от Роберта К. Мартина.
• «Сначала скажите «НЕТ». Секреты профессиональных переговорщиков» от Джима Кэмпа.
Учитесь писать по-человечески
Основной объём коммуникаций с коллегами и остальными людьми проходит в текстовом виде: описания задач и замечания, комментарии кода, коммиты Git, сообщения чата, электронные письма, твиты, посты в блогах и т.д.
Прикиньте, сколько времени тратят люди на прочтение и усваивание материала. Если вы сможете уменьшить его с помощью более сжатого и ёмкого стиля, в мире станет приятнее работать.
• «Как писать хорошо. Классическое руководство по созданию нехудожественных текстов» от Уильяма Зинсера.
• «Элементы стиля» от Уильяма Странка и Э. Б. Уайта.
• Правила письма от Оруэлла.
• На русском: замечательный курс «Главреда».
Изучайте тонкости компьютерных наук
Фронтенд-разработка больше не состоит из анимированных выпадающих меню. Она как никогда сложна, и часть «Усталости от JavaScript» следует из возросшей сложности проблем, которые теперь приходится решать.
Однако, это означает, что настало время познать всю мудрость не-фронтенд разработчиков, накопленную ими за десятки лет. И вот, что я хочу особенно порекомендовать:
• Курс «Научитесь думать, как компьютерный ученый» на Coursera.
• «The five programming books that meant most to me» от Девида Хейнеймейера Ханссона.

  • Eugene B

    Спасибо за перевод. Хорошая статья и подборка книг. Осталось лишь найти время, чтоб почерпнуть новое. Могу посоветовать также отличную книгу, больше для дизайна: «Кради как художник. 10 уроков творческого самовыражения (Клеон Остин)».