Долгий путь веб-программиста. Дорожная карта
Каждый человек, желающий научиться программировать, хочет видеть инструкцию, где бы по шагам было расписано, что и когда необходимо изучить. Попробуем разработать алгоритм на примере профессии фронтенд-разработчика, показав путь от «ничего не знаю, но хочу творить интернет» до «стало скучно, пора создавать собственный язык». Дополнения в комментариях от действующих специалистов обязательны.
Шаг первый. Базисный
Описание: Пока неважно, чем вы хотите заниматься в будущем. На данном этапе для вас главное:
- понять, что такое код, как он выглядит и исполняется;
- познакомиться с языком;
- написать первую программу, не вдаваясь глубоко в синтаксис и конструкции.
Языки: Scratch, Logo — для самых маленьких; HTML, JavaScript, Pascal, Python — для тех, кто не хочет играть в игры. Ещё раз: язык не важен, в отличии от необходимости заложить основу.
Инструменты: С Logo и Scratch можно поиграть прямо на сайте, для Pascal — Turbo Pascal 7.0, Python — IDLE, а на код HTML и JavaScript лучше взглянуть из Блокнота.
Время: 2-3 дня или 5-10 часов непрерывного изучения.
Курс: Интенсив «Основы программирования».
Совет: Отложите серьёзные книги и просто получайте удовольствие. Изучайте разные языки, сравнивайте, акцентируйте внимание на непонятных символах и конструкциях.
Шаг второй. Интересный
Описание: Теперь, когда вы понимаете, что такое программирование, пора взяться за то, что интересно. В нашем случае — интерфейс веба, или фронтенд (front-end). Придётся много работать руками и головой, чтобы заложить в подкорку полученную информацию.
Языки: HTML, CSS, JavaScript. Все три языка станут основой будущей профессии. Внимательно изучите синтаксис и посвятите много времени практической стороне.
Инструменты: Объёмы кода возросли, поэтому в качестве редактора лучше взять что-то с подсветкой синтаксиса, например Notepad++. Вместе с JavaScript изучите библиотеку jQuery и AJAX. Фронтенд-разработчик и веб-дизайнер — разные профессии, но изучить графический редактор на базовом уровне будет полезно. Для начала одойдут GIMP или Adobe Photoshop.
Время: 2 недели или 30−40 часов чистого времени.
Курс: Интенсив «Основы веб-разработки», «Ознакомительный урок HTML/CSS», «JavaScript. Уровень 1».
Совет: Пишите код своими руками. Не надо копировать, использовать шаблоны или генераторы - развивайте механическую и визуальную память. Попробуйте воссоздать популярные страницы, используя лишь указанные языки и редактор кода, а потом изучайте исходный код.
Шаг третий. Профильный
Описание: Поздравляем, теперь вы начинающий верстальщик. Можете попробовать монетизировать успех, но лучше продолжить своё развитие. Фронтенд-разработчик отличается от верстальщика тем, что он отвечает и за визуальную часть веба, и за взаимодействие пользователя и программно-аппаратной части сайтов.
Языки: HTML, JavaScript, CSS и препроцессор Sass. Для общего развития — TypeScript и Dart.
Инструменты: Пришло время разобраться с фреймворками. Для CSS обязателен к изучению Bootstrap, для JavaScript — React и Angular. Для настройки фронтенда будет полезно изучить сборщики Gulp, Grunt и Webpack. Кроме того, пора познакомиться с WordPress или какой-нибудь другой CMS.
Время: 4−6 недель или 80−100 часов чистого времени.
Курс: «ReactJS», «Wordpress для профессионалов», «JavaScript. Уровень 2».
Совет: Максимально используйте указанные инструменты в работе. Попробуйте с нуля создать и запустить функциональный сайт с динамикой, формами регистрации, автообновлениями.
Шаг четвёртый. Обогащающий
Описание: Необходимый минимум для звания фронтенд-разработчика вы уже получили. Осталась не охваченной лишь одна область — тестирование. Поэтому на данному шаге растём «в ширину» и заполняем оставшийся пробел.
Языки: HTML, JavaScript, CSS.
Инструменты: Фреймворки для разработки Foundation, Semantic, Backbone, Ember, Vue.js. Препроцессоры Less и PostCSS. Для тестирования — фреймворки Jasmine, Mocha, Jest.
Время: 6−8 недель или 100−120 часов.
Курс: Для закрепления полученных знаний с шагом в сторону бэкенда — профессия «Веб-разработчик».
Совет: Больше инструментов — больше времени для изучения. Не упрощайте себе жизнь, перекидывая проект между фреймворками. Помните, что вы пока обучаетесь.
Шаг пятый. Свободный
Описание: В этом моменте вы должны прийти к философии Сократа: «Я знаю, что ничего не знаю». Веб-разработка, как и любая сфера IT, активно развивается и предъявляет программистам всё больше и больше требований. Это касается не только новых инструментов, но и смежных дисциплин. Специалисты, способные заняться полным циклом разработки сайта, ценятся вдвойне. Значит, придётся освоить бэкенд и веб-дизайн.
Уже после вы возьмётесь за создание собственного языка.