Изучение frontend с чего начать
34 лучших инструмента для frontend-разработчика
Мы собрали 34 популярных технологий и инструментов frontend-разработчика для начинающих.
Frontend-разработка — создание удобной, красивой и эффективной клиентской части приложения. Многие новички начинают именно с этого направления программирования, изучая языки разметки — HTML и CSS, постепенно подключая JavaScript и технологии на его основе.
От выбора инструментов зависят качество и скорость работы, а определяется он задачами, которые проект решает. Допустим, большинство сайтов сегодня создается при помощи фреймворков. Но порой проект можно написать на чистых CSS, HTML и JavaScript, а не накладывать новый слой абстракции, замедляя производительность. Но хватит лирики: расскажем о самых важных инструментах, которыми должен владеть начинающий frontend-разработчик.
CSS-препроцессоры
Это надстройки над самим CSS, открывающие новые возможности языка и делающие процесс работы проще и доступнее для разработчика с помощью особых конструкций. Программисты называют их «синтаксическим сахаром».
«Синтаксический сахар» — конструкции, которые не вносят ничего принципиально нового в технологию, но делают работу с ней удобнее, проще и человечнее.
Такой код будет на 100% валидным, но выглядит ужасно. Зато с помощью препроцессора он станет таким:
От нуля до героя фронтенда (Часть 1)
Я помню начало моего изучения фронтенд-разработки. Я находил так много статей и был ошеломлен количеством материалов, которые мне следовало проштудировать и я даже не представлял с чего начать.
Этот гайд поможет вам сориентироваться в изучении фронтенд-разработки. В нем собраны учебные ресурсы, уже доказавшие свою эффективность, и подробные объяснения.
Руководство разбито на две части для более простого усвоения материала. Часть 1 посвящена разработке интерфейсов на HTML и CSS. Часть 2 будет о Javascript, фреймворках и паттернах дизайна.
Основы HTML и CSS
В разработке фронтенда все начинается с HTML (рус. — здесь и далее примечание переводчика с указанием языка статьи по ссылке) и CSS (рус.). HTML и CSS контролируют то, что вы видите на странице. HTML диктует содержимое в то время как CSS регулирует стили и раскладку.
Для начала прочитайте пособия по HTML (рус.) и CSS (рус.) от Mozilla Developer Network (MDN). MDN предоставляет пошаговые объяснения важных концепций HTML и CSS. К тому же каждая глава длинной всего в один экран и проиллюстрирована интерактивными демо на CodePen и JSFiddle.
После прочтения этих материалов загляните на курс Создай сайт (англ.) от CodeAcademy. Потребуется всего несколько часов для прохождения этого курса. Он даст хорошую основу для построения сайтов на HTML и CSS. Если вы хотите больше, то Построение веб-форм (англ.) — еще одно руководство от CodeAcademy, которое научит вас создавать и стилизовать веб-формы.
Чтобы попрактиковаться в CSS попробуйте CSS Diner (англ.). Это забавная игра с задачками по CSS. Другой важный аспект HTML и CSS — раскладка. LearnLayout (рус.) интерактивный учебник, показывающий как создавать раскладки на HTML и CSS.
Так же изучите как пользоваться Google Fonts (англ.) при помощи статьи Основы Google Font API (англ.) от CSSTricks или Руководство по Google Font API (рус.). Типографика — это фундаментальная основа интерфейса. Когда у вас появится время, я крайне рекомендую вам прочитать эту бесплатную онлайн-книгу Professional Web (англ.) от Donny Truong. Она научит вас всему, что вы должны знать о типографике во фронтенд-разработке.
Изучая все эти ресурсы, не беспокойтесь особо о том, чтобы все запомнить. В первую очередь сосредоточьтесь на понимании того, как HTML и CSS взаимосвязаны.
Практика основ HTML и CSS
Теперь, когда вы имеете представление об основах HTML и CSS, давайте повеселимся. В этом разделе есть два эксперимента для вашей практики создания сайтов и интерфейсов. Я использую термин “эксперимент” поскольку в ходе эксперимента вы осознаете на сколько сильно ваш успех зависит от ваших неудач.
Эксперимент 1
В нашем первом эксперименте мы будем использовать CodePen. CodePen это площадка для фронтенда (“песочница”), где вы можете писать HTML и CSS код без создания файлов на вашем компьютере. Там так же есть функция живого предпросмотра, которая обновляется сразу после сохранения кода.
Используя CodePen, вы убиваете двух зайцев сразу. С одной стороны вы практикуете HTML и CSS. C другой стороны вы создаете основу для портфолио с иллюстрациями вашего прогресса. Мы так же будем использовать Dribbble, который полон вдохновляющего дизайна.
Идите на Dribbble и найдите дизайн, код для которого вы сможете написать за пару часов. Я выбрал несколько примеров, с которых вы можете начать: 1, 2, 3, 4 и 5. Я выбирал дизайны, ориентированные в первую очередь на мобильную разработку, потому что они менее сложны, чем их аналоги для обычных экранов. Тем не менее вы вольны выбрать вариант для десктопов.
Когда вы определились с дизайном, идите и попробуйте сверстать его на CodePen. Если вы застряли, помните что StackOverflow (англ.) ваш друг. Другой полезной практикой будет пойти на такие сайты, как Medium, AirBnB и Dropbox и при помощи инструментов разработчика (англ.) посмотреть как реализована разметка и стили. Так же взгляните на некоторые примеры на CodePen. Я прикрепляю несколько хороших ссылок:
Не стоит расстраиваться если ваша копия будет отличатся от оригинала. Продолжайте практиковаться с разными дизайнами и со временем вы заметите существенные улучшения.
Если у вас нет за плечами опыта в дизайне, вероятнее всего, ваш дизайнерский глазомер не настроен. Фронтенд-разработчик с хорошим дизайнерским чутьем будет в состоянии отличить хороший дизайн и сверстать его идеально. Я написал статью несколько недель назад о том, как развить свое дизайнерское чутье (рус.).
Эксперимент 2
Надеюсь, первый эксперимент дал вам определенную уверенность в написании HTML и CSS. Для эксперимента 2 мы заглянем на ряд сайтов, затем напишем код нескольких компонентов.
Некоторые веб-сайты используют CSS фреймворки или обфускацию кода (рус.), затрудняя чтение. Поэтому я подобрал сайты с хорошим дизайном и легким для чтения кодом.
Еще раз повторю, что целью второго эксперимента является не воссоздание главной страницы. Даже не смотря на то, что это бы точно не помешало! Выберите пару ключевых компонентов, например навигационную панель или секцию с баннерами и сверстайте их. Я написал свои предложения рядом со ссылками на сайты, но вы можете выбрать другие части на свое усмотрение.
Вы можете использовать CodePen для своих экспериментов или выполните их на своем компьютере. Если вы планируете работать локально, то так же можете скачать этот пример проекта в качестве шаблона или создать файлы с нуля. Я советую вам использовать редакторы Atom или Sublime.
К тому же помните, что вы всегда можете посмотреть HTML или CSS любого сайта. Просто кликните правой кнопкой мыши на странице или на определенном элементе, выберите “Просмотреть код” и появится панель с HTML кодом в левой части и CSS кодом в правой. После окончания верстки или в момент, когда вы в тупике проинспектируйте свой код и посмотрите, как взаимодействуют ваши HTML и CSS.
Лучшие практики HTML и CSS
То, что вы узнали выше — основы HTML и CSS. Следующим шагом будет изучение лучших практик. Лучшие практики представляют из себя набор правил, которые улучшат качество вашего кода.
Семантичная разметка
Одним из лучших правил для HTML и CSS это написание семантичной разметки. Хорошая веб-семантика означает использование подходящих HTML тегов и “говорящих” названий классов в CSS, которые будут передавать структурный смысл.
Например, тег h1 говорит нам, что вложенный текст является важным заголовком. Другим примером является тег footer, который говорит нам что элемент должен располагаться внизу страницы. Для дальнейшего изучения прочтите Основы семантической верстки на HTML5 (рус.) и Для чего нужна семантика в именах классов (англ.) от CSSTricks.
Соглашение об именах в CSS
Следующая важная хорошая практика в CSS собственно соглашение об именах. Хорошее именование, как семантичная разметка, передает смысл и помогает сделать наш код предсказуемым, удобным для чтения и поддержки. Вы можете почитать о разных соглашениях в статье OOCSS, ACSS, BEM, SMACSS: что это? Что мне использовать? (англ.) или Правильный CSS: OOCSS, SMACSS, BEM и SASS (рус.).
В общем я предлагаю вам начать с простых соглашений об именах, которые будут вам интуитивно понятны. Со временем придет понимание, с каким лично вам удобнее всего работать. Чтобы посмотреть, как большие компании типа Medium используют в своей работе BEM можете почитать CSS у Medium чертовски хорош (англ.). В этой статье вы так же узнаете, что составление эффективного набора CSS правил это процесс итеративный.
Сброс CSS
Браузеры имеют небольшие различия при отрисовке стилей, начиная от отступов и до высоты строк. По этой причине всегда сбрасывайте CSS. MeyerWeb — самый популярный способ. Если вы хотите копнуть глубже, то можете почитать Создайте свой собственный файл Reset.css (англ.).
Кроссбраузерная поддержка
Кроссбраузерная поддержка означает что ваш код поддерживает большую часть современных брузеров. Некоторые свойства CSS^ например transition, требуют префиксов (англ.) для их верной работы в разных браузерах. Можете почитать о префиксах в статьях CSS Vendor Prefixes (англ.) или Вендорные префиксы (рус.). Главное что вы должны запомнить — тестируйте свои сайты во всех браузерах, включая Chrome, Firefox и Safari.
Препроцессоры и постпроцессоры CSS
C момента своего появления в 1990-х, CSS проделал огромный путь. Поскольку пользовательские интерфейсы становятся все сложнее, разработчики придумывают инструменты, позволяющие облегчить работу над их созданием. Для этого и предназначены пре- и постпроцессоры.
Препроцессоры представляют из себя расширения для языка CSS, которые добавляют наворотов типа переменных, миксинов и наследования. Два самых главных препроцессора Sass и Less. На 2016 год Sass более распространен. Bootstrap, популярный CSS фреймворк, переключился с Less на Sass. К тому же когда большинство людей заводят речь о Sass, то они на самом деле говорят о SCSS (рус.).
Постпроцессоры CSS вносят изменения в код после того, как он был написан или после компиляции препроцессора. Например, некоторые постпроцессоры, тот же PostCSS, имеют плагины для автоматического добавления префиксов.
Когда вы впервые открываете для себя препроцессоры и постпроцессоры, появляется соблазн использовать их везде. Тем не менее начните с простого и добавляйте переменные, миксины только там, где это действительно необходимо. Статья, о которой я упоминал ранее, CSS у Medium чертовски хорош (англ.), так же рассказывает о том, какие возможны излишки при работе с препроцессорами.
Система сеток и отзывчивость
Сетки в CSS это структура, позволяющая вам “укладывать” элементы горизонтально и вертикально.
Такие фреймворки, как Bootstrap, Skeleton и Foundation предусматривают стили, управляющие строками и колонками в раскладке. В то время как фреймворки, безусловно, полезны, стоит понимать саму суть работы сеток. Прекрасные обзоры на эту тему: Понимание CSS сеток (англ.) и Don’t Overthink Grids (англ.).
Одна из главных возможностей, которую дают сетки, это обеспечение отзывчивости вашего сайта. Отзывчивость ( responsiveness) означает, что сайт изменяет свои размеры в зависимости от ширины окна браузера. Долгое время отзывчивость достигалась при помощи медиавыражений в CSS (рус.): правил, срабатывающих только при определенных размерах экрана.
Вы можете почитать больше на тему медиавыражений в статье Введение в медиавыражения (англ.). Так же, поскольку мы вступили в эру mobile-first (рус.), загляните в Введение в медиавыражения Mobile-First (англ.).
Отработка лучших практик HTML и CSS
Теперь вы вооружены самыми лучшими практиками. Давайте проверим их в бою! Целью следующих двух экспериментов является практика написания чистого кода и наблюдение за долгосрочным эффектом повышения читабельности и поддерживаемости.
Эксперимент 3
В рамках эксперимента 3 выберите один из прошлых экспериментов и проведите рефакторинг своего кода с использованием советов, которые вы узнали выше. Рефакторинг означает редактирование вашего кода так, чтобы он стал проще, в том числе в плане читаемости.
Умение проводить эффективный рефакторинг кода — очень важный навык для фронтенд-разработчика. Создание эффективного кода- постоянный процесс. Возьмите статью CSS архитектура: рефакторинг CSS (англ.) в качестве отправной точки для вашей работы над рефакторингом.
Ниже несколько вопросов, на которые вы должны себе ответить в процессе рефакторинга.
Эксперимент 4
Последний эксперимент для отработки выученных правил. Иногда последствия передовых практик не всегда очевидны до тех пор, пока они не применяются для большого проекта.
В качестве последнего эксперимента создайте собственный сайт-портфолио. Для фронтенд-разработчика портфолио—самый важный актив. Сайт-портфолио предназначен для демонстрации ваших работ. Что еще более важно, это постоянно обновляющийся отчет вашего прогресса в разработке. Поэтому создавайте портфолио даже если у вас 1–2 работы.
Если первый вариант вашего портфолио не идеален — это нормально! Портфолио пройдет через множество итераций (рус.). В первую очередь важно использовать при разработке все ваши навыки.
Будьте в курсе
До тех пор, пока HTML и CSS не выйдут из употребления, важно оставаться в курсе всех событий в области фронтенда.
Ниже приведен список сайтов, блогов и форумов, которые являются передовыми источниками информации.
Учитесь на примерах
Лучшим способом обучения является работа с примерами, практика. Вот несколько руководств по стилям (стайлгайдов (рус.)) и соглашений, которые помогут вам стать более эффективным разработчиком.
Стайлгайды
Стайлгайды в вебе это наборы CSS компонентов и паттернов, которые могут быть использованы на разных сайтах. Ключевой вещью для обучения является понимание того, как повторно использовать компоненты на основе HTML и CSS и не нарушать принцип “Не повторяйся” (рус.).
Соглашения о коде
Соглашения о коде призваны сделать ваш код читабельным и легким в поддержке. Некоторые из этих ссылок, например CSS Guidelines (англ.), являются набором советов по улучшению написания HTML и CSS в то время, как другие ссылки, например Github internal CSS toolkit and guidelines (англ.) являются примерами эффективного кода.
Сворачиваемся
Надеюсь, к концу этой статьи вы познакомились с HTML и CSS и обзавелись парой проектов. Лучшими способами изучения фронтенда являются постоянные эксперименты и работа над проектами. Помните — каждый разработчик с чего-то начинал. И лучше начать сегодня, чем завтра.
Эта статья первая из двух запланированных. Во второй части мы поговорим об интерактиве с помощью JavaScript и библиотеках/фреймворках. Кроме того если вы хотите чтобы я подробно на чем-то остановился или у вас появились вопросы, то не стесняйтесь писать мне в Twitter.
P.S. Поделитесь этой статьей с друзьями, если она вам понравилась. Это много значит для меня.
Нашли ошибку? Воспользуйтесь функцией Private notes: выделяете текст с ошибкой, нажимаете на символ замка в появившемся дудле и оставляете свой комментарий. Спасибо!
Как стать программистом с нуля: начните с профессии фронтендера
Чем занимаются фронтенд-разработчики и сколько им платят
Фронтенд-разработчики верстают на HTML и пишут код на JavaScript. Оба навыка востребованы как по отдельности, так и вместе, и относительно просты для изучения.
HTML-верстальщик оформляет внешний вид страницы: он описывает ее структуру и все элементы, которые создали дизайнеры и маркетологи, специальными символами — тегами. Верстка — это набор правил, которые «объясняют» сайту, куда поставить блоки, отступы и какого цвета должна быть, например, кнопка. Верстальщиком легко стать с нуля — нужны только педантичность и любовь к красоте. Почему к красоте? Потому что аккуратный, правильный код — это красиво!
Вот так текст с HTML-кодом выглядит в CMS (админке) сайта
На рынке есть вакансии и для «чистых» верстальщиков, но чаще всего требуются фронтенд-разработчики. А значит, к верстке добавляется разработка на JavaScript.
JavaScript — следующий шаг для веб-разработчика. Если HTML и CSS отвечают за то, как выглядит страница, то код на JavaScript «оживляет» элементы и добавляет им реакцию на действия пользователя. Писать код сложнее, чем верстать, но без этого навыка веб-разработчику не обойтись. JavaScript — язык, который хорошо подходит для изучения тем, кто с кодом ни разу не сталкивался. Для написания кода нужен только текстовый редактор, программы не нужно компилировать (они работают прямо в браузере), а результат работы виден сразу.
Простой пример: знание JavaScript поможет вам сделать таймер, отсчитывающий время до определенного события, или проверить, какие данные пользователи вводят в поля на сайте. Если неправильно заполнить какую-нибудь строчку в форме заказа в интернет-магазине, появляется надпись с подсказкой. Например, «Ваш пароль должен быть от 8 до 30 символов длиной и содержать одну заглавную букву, один спецсимвол и число». Это называется валидацией формы — когда вы вводите данные, программа проверяет, корректно ли они введены. Владея JavaScript, можно написать такую программу.
Ключевые навыки хорошего фронтенд-разработчика (по данным HTML Academy):
Верстка и профессиональная разработка веб-интерфейсов:
Написание кода на JavaScript:
Уровень зарплат фронтенд-разработчиков (по данным hh.ru за 2020 год), в рублях
Регион | 1-й квартиль (соответствует минимальной границе рыночных размеров) | 2-й квартиль (соответствует средним значениям рыночных размеров) | 3-й квартиль (соответствует максимальной границе рыночных размеров) |
---|---|---|---|
По России | 51 500 | 80 000 | 119 750 |
По Москве | 100 000 | 140 000 | 180 000 |
По Петербургу | 80 000 | 120 000 | 150 000 |
Уровень конкуренции за рабочее место
Уровень конкуренции за рабочие места среди фронтендеров ниже, чем в среднем по рынку по всем профобластям, и в разы ниже, чем во многих отдельных профобластях. На одну вакансию в среднем приходится по 4 (в Москве), 4,5 (в Санкт-Петербурге) и 4,8 (по России) активных резюме фронтенд-разработчика. Тогда как средний уровень конкуренции по всем профобластям составляет 6 активных резюме на одну вакансию, а в отдельных профобластях (например, у юристов, журналистов, бухгалтеров, секретарей) он выше 7 и даже выше 10 — это уже повышенная конкуренция. То есть найти работу фронтендерам проще, чем представителям других профессий.
Сколько требуется на обучение с нуля
В HTML Academy обучение профессии «Фронтенд-разработчик» занимает 6 месяцев. За это время студент осваивает курс базовой верстки, курс адаптивной верстки и курс по JavaScript. У каждого студента есть личный наставник, вместе с которым он погружается в практику: по каждому из курсов студент выполняет и защищает от 1 до 2 проектов.
После обучения выпускник уже может работать младшим разработчиком. Но в рамках профессии в HTML Academy после обучения предусмотрена стажировка. Первый этап стажировки — акселерация. Здесь новичок получает учебный проект с настоящей командой, в которой есть проектный менеджер и тестировщик. В конце работы студенту дают обратную связь и говорят, что нужно подтянуть, на какие компетенции стоит обратить внимание.
После он попадает на трехмесячную стажировку в фронтенд-аутсорс «Лига А.» и выполняет коммерческие проекты от реальных заказчиков. В каждой проектной команде новичков курирует наставник — он помогает найти ошибки и проводит код-ревью. Стажировка оплачивается, выполненные проекты идут в портфолио специалистов — и благодаря этому снимается проблема отсутствия начального опыта.
Самостоятельно освоить профессию тоже можно, но на это уйдет больше времени. К тому же есть такая опасность, как перфекционизм новичка. Это когда при первых же сложностях возникает ощущение, будто программирование — слишком трудное занятие, и хочется бросить. В таких случаях нужен наставник — человек с опытом, который покажет, как выйти из тупика.
Стать фронтендером может и гуманитарий старше 30 лет
Сегодня фронтенд-разработку успешно осваивают с нуля люди всех возрастов. Возраст учеников HTML Academy — от 12 до 65 лет.
Найти работу новичку вполне реально. По данным HTML Academy, для большинства работодателей важно, как специалист вписывается во внутреннюю культуру компании, горят ли у него глаза и достаточны ли его знания. Особенно это актуально для небольших веб-студий в посткарантинный период. Команда в 10–15 человек обычно работает на удаленке, а руководство готово рассматривать всех, кто хорошо выполняет задачи и с кем нашли общий язык.
Стать фронтенд-разработчиком может даже гуманитарий. Конечно, на этапе написания кода будет чуть сложнее, если есть большие пробелы в математике, но «чуть сложнее» не означает «это невозможно». Именно поэтому фронтенд часто выбирают, если хотят сменить профессию на «айтишную». Переход в техническую сферу здесь получается мягче и безболезненнее, чем если начинать с других ИТ-профессий.
Екатерина Матюшкина, одна из выпускниц HTML Academy, до того как стать фронтенд-разработчиком, работала педагогом-психологом. В новую профессию ее привело профессиональное выгорание. Обучение далось нелегко, но она справилась:
После обучения Екатерина устроилась на стажировку в МТС IT, и через 3 месяца ее взяли в штат. Работать программистом ей нравится куда больше, чем педагогом. Уровень стресса гораздо ниже, нет дресс-кода, жесткого графика работы и субординации, команда поддерживает и к ней всегда можно обратиться за помощью.
Как найти первую работу
Есть несколько способов.
Компании часто нанимают младших разработчиков, которые хорошо показали себя на стажировке и разобрались во всех внутренних процессах.
Другой способ трудоустройства — через «Центр карьеры» HTML Academy.
Третий способ — разместить резюме на hh.ru и откликаться на вакансии.
Для дальнейшей карьеры есть несколько вариантов
Есть несколько вариантов развития событий после того, как вы освоите новую профессию. Первый вариант — можно начать работать на фрилансе, брать проекты и наращивать опыт самостоятельно.
Второй вариант — устроиться в компанию на позицию джуниор-разработчика и выполнять типовые задачи. Получив нужный опыт, вы станете мидл-разработчиком (программистом среднего уровня), а после сеньором или старшим разработчиком, который может решать самостоятельно архитектурные проблемы, курировать «мидлов»и «джунов». Каждая новая ступень означает более высокую зарплату и востребованность.
Другие возможные направления развития карьеры: освоить новый язык программирования, уйти в мобильную разработку, перейти в смежные профессии — стать тимлидом, scrum-мастером или перейти в продакт-менеджеры и управлять бизнес-процессами. Вариантов много, и точно спрогнозировать, какой именно вы выберете через полгода-год, невозможно. Но навыки, приобретенные за время обучения, сильно расширят профессиональные возможности в ИТ-сфере.
Совет: прежде чем менять профессию и тратить на обучение полгода, удостоверьтесь, что это вам интересно. В HTML Academy есть бесплатные тренажеры по верстке и программированию. Это самый базовый уровень, на котором все разложено по полочкам в игровой форме. Если вы открыли занятия, попробовали, у вас разболелась голова и появилось отторжение — наверное, это не ваше. Но если вас затянуло, проснулся интерес, чешутся руки продолжить учебу, значит, стоит присмотреться к новой профессии! Дерзайте!