Итак, вы решили стать веб-разработчиком. Мои поздравления – отличный выбор. Но, в зависимости от вашего бэкграунда, вы скорей всего задаетесь вопросом – с чего начать? Если вы уже успели немного погуглить, то скорее всего чувствуете легкую панику из-за обилия языков, фреймворков и образовательных ресурсов на просторах бескрайнего интернета.
Не волнуйтесь, вы не один такой. Google может стать вашим лучшим другом или худшим врагом. Все зависит от того, как вы его используете.
Начните с конца
Прежде всего я рекомендую выбрать для себя ясную конечную цель и держать ее в уме. Зачем вы здесь? Хотите сменить работу или у вас возникла сумасшедшая идея приложения, или вы просто любите учиться новому… С пониманием цели вы будете более продуктивным в процессе обучения. Также это будет поддерживать вас в минуты слабости, когда вы захотите сдаться.
А теперь стоит определиться, что вам больше подходит – фронтенд или бэкенд. Давайте коротко пройдемся по отличиям.
Frontend – это то, что видит пользователь, когда он взаимодействует со страницей. Это дизайн, стильные примочки, слои и картинки, которые создают пользовательский опыт. Преимущественно фронтентд-разработчиками становятся визуальные креативщики с отличными навыками в дизайне и страстью к доступности для юзера. Технологии, которые часто ассоциируют с фронтендом: HTML, CSS, jQuery и JavaScript.
Backend – это та часть, которая обрабатывает, хранит и манипулирует данными. Это то, благодаря чему сайт или приложение работает. Бэкенд-разработчиками обычно становятся люди, которые умеют хорошо справляться с проблемами, придумывать изящные решения, логические мыслители, которым нравится разбираться с функционалом. Технологии, которые обычно ассоциируют с бэкендом: PHP, Python и Ruby.
Например, у меня никогда не было тяги к дизайну, мне лучше давались инженерные и конструкторские задачи. Я по существу больше интересуюсь решением проблем и тем, как работают вещи, чем как сделать что-то красивым.
Но вне зависимости от того, что вы для себя выберете, рекомендую начать с изучения основ HTML и CSS. Не важно, какая часть веб-девелопмента станет вашей профессией – для начала вам нужно научиться отображать элементы на веб-страницах в более или менее презентабельной форме. Так что пройдите какой-нибудь курс по основам HTML & CSS – это даст вам понимание того, для чего вообще созданы все вышеупомянутые технологии.
В рамках курсов вы разберетесь, как настроить локальную среду разработки и научитесь писать простейший код. Это поможет сразу почувствовать почву под ногами. Как только вы успешно закончите с основами, можно начинать двигаться дальше.
А дальше – практика
Поначалу будет тяжело, особенно если вы работаете на фултайме, учитесь или у вас дети, которым необходимо уделять много внимания. Но последовательность – ключ к решению. Вы научитесь гораздо большему, если просто будете каждый день в течение часа писать код, чем если будете кодить семь часов без остановки по воскресеньям.
Люди – создания, сильно зависящие от привычек, так что сделайте час кодинга частью своего ежедневного графика. Выделите время и продолжайте учиться.
Если вы когда-нибудь смотрели соревнования “Самый сильный человек в мире”, то учиться кодить – это все равно что пытаться тащить на себе грузовик. Тяжелее всего сдвинуть его с места на старте – задача на первый взгляд непосильная. Но как только он поддастся, колеса начнут вращаться и грузовик покатится все легче и легче, пока вы не обнаружите, что уже на полной скорости мчитесь к финишу!
Если вы лучше усваиваете материал через видео, поищите туториалы по HTML и CSS на YouTube. Лично я рекомендую два бесплатных курса на Udemy – Эдвина Диаса и Бреда Хьюсси. Оба отличные инструкторы и оба хорошо покрывают все части вводного материала: настройка рабочей среды, загрузка текстового редактора (мне нравится Sublime и Brackets), создание проектов.
Сразу маленькое предупреждение: не нагребайте платных курсов на Udemy. На начальной стадии нет нужды тратить деньги. Много отличного материала доступно бесплатно. Тем более на старте вы едва ли понимаете на 100%, что из этого всего вам действительно нужно.
Также есть сообщества девелоперов, в которых обучают основам полностью бесплатно, такие как freeCodeCamp (в Украине есть, например, сообщество энтузиастов “Котаны”, в котором бесплатно обучают веб-девелопменту с нуля – ред.). Самое лучшее в таких сообществах – отсутствие барьеров для входа. Опытные разработчики готовы помочь всем и каждому.
Не нужно быть экспертом в HTML или CSS, чтобы начать строить всякое
Сразу хочу заострить на этом внимание. Вам не нужно месяцами проходить туториал за туториалом, прежде чем приступить к серверным языкам и фактической разработке – не застревайте на этом. Как только у вас обозначился фундамент, начинайте делать реальные проекты.
Шаблоны – не враги
Это очень полезная штука, как по мне. Не начинайте сходу меня ненавидеть – сперва выслушайте! Спустя всего пару недель после того, как я открыл корневой редактор, я смог запустить профессионально выглядящий сайт для бизнеса моего сводного брата. Этот сайт был построен на двенадцатидолларовом шаблоне, но есть множество совершенно бесплатных вариантов.
Я знаю, что некоторые люди сейчас приподняли бровь. Но благодаря шаблонам новичок получает возможность поработать с кодом, который уже хорошо структурирован и отформатирован. Это помогло мне самому писать лучше, а заодно повысило мой энтузиазм к веб-разработке. А еще я научился читать документации (что очень важно для новичка) и познакомился с технологиями вроде jQuery, что дало мне дорогу в JavaScript.
И еще один аргумент в пользу шаблонов: многие агентства веб-дизайна и софтверные компании используют их ежедневно. Шаблон не может сам по себе стать отличным сайтом, но он предоставляет фреймворк, на котором можно выстроить великолепный сайт. Я работаю в продуктовой IT-компании, и мы используем шаблоны для фронтенда наших продуктов. Это позволяет нам больше сконцентрироваться на функциональности и не тратить время на переизобретение колеса.