Skip to content

Как стать веб-разработчиком в 2019

Иллюстрированный гайд, как стать веб-разработчиком со ссылками на релевантные курсы.

У меня часто спрашивают, как стать веб-разработчиком, что для этого необходимо знать и где этому можно научиться. Цель данной статьи — ответить на эти вопросы новичков. Если вы поставили перед собой цель — научиться программировать или стать веб-разработчиком, то добавьте в закладки данный материал с детальным роадмапом веб-разработчика.

В данном руководстве вы найдете, какие технологии и инструменты необходимо знать веб-разработчику, а также как ими овладеть, и научиться веб-разработке.

Как стать веб-разработчиком

Данный материал основывается на великолепном визуализированном гайде от Kamran Ahmed о том, как стать веб-разработчиком в 2019 году. Я постарался дополнить его ссылками на полезные курсы, книги и другие материалы, по которым вы сможете освоить данные технологии, языки программирования, фреймворки, библиотеки и прочее.

Это набор путей изучения frontend, backend и всего прочего, что должен знать веб-разработчик. В зависимости от своих предпочтений вы можете изучить frontend или backend. Вы также можете захотеть выучить и то и другое, чтобы стать fullstack разработчиком.

Кроме того вам необходимо изучить не только специфичные вещи для веб-разработки, но и другие элементы программирования, которые важны для всех типов программистов.

Основные знания для любого программиста

Git и GitHub

Git — это пожалуй самая популярная система контроля версий. Любому программисту сегодня просто невозможно жить без знания Git. Для изучения Git с азов рекомендую обратить внимание на пару гайдов: GitHowTo и «git — the simple guide — no deep shit!» (оба на русском языке).

GitHub же является самым популярным сервисом для хостинга репозиториев Git. Git стал стандартом с точки зрения контроля версий, в то время как GitHub является стандартом для разработки opensource решений. Вы можете изучить работу с GitHub в бесплатном курсе на Udemy или следуя официальной документации.

Базовые знания командной строки Linux

Умение работать с командной строкой Linux — очень важный навык для любого программиста. Я вам настоятельно рекомендую потратить время на изучение командной оболочки Bash, которая является стандартом во многих дистрибутивах Linux, MacOS, а также доступна для установки в Windows 10. Для изучения основ командной строки вы можете воспользоваться курсом на Hexlet.

Основные принципы и подходы в программировании

Алгоритмы и структуры данных — это строительные блоки для любой программы. И более лучшее знание данных блоков может быть ключом для качественного выполнения работы и дальнейшего продвижения по карьерной лестнице. В изучении вам могут помочь курсы на Udemy: для Java, для JavaScript, для Python.

Помимо этого вам точно не навредят знания таких принципов в программировании, как DRY, SOLID, KISS, YAGNI, а так же паттернов проектирования. По изучению паттернов рекомендую другой материал от Kamran Ahmed — «Design patterns for humans«.

Сетевые протоколы

В основе работы интернета лежат сетевой протокол HTTP и система DNS. Хорошее понимание принципиальной схемы работы интернета обязательно для веб-разработчика.

SSH позволяет безопасно подключаться к удаленному серверу и выполнять команды на нем. Это еще один популярный сетевой протокол, которым должен уметь пользоваться любой веб-разработчик.

Практикуйтесь

Прежде чем начнем рассматривать пути обучения frontend и backend разработке, отмечу, что любые знания лучше усваиваются, когда вы их применяете на практике. Так что в процессе изучения старайтесь больше практиковаться, заведите для этого учебный проект, например, личная веб-страничка.

Путь Frontend разработчика

Если вы хотите стать frontend разработчиком в 2019 году, вы должны следовать следующему пути. Обратите внимание на желтые прямоугольники, ими отмечены более важные вещи, которые необходимо изучить. После карты вы найдете дополнительные ресурсы для обучения.

Как стать веб-разработчиком - frontend

Основы веб-разработки

Совершенно очевидно, что если вы хотите стать веб-разработчиком, вы должны знать основы работы интернета, веб-приложений, протоколов (HTTP) и веб-разработки в целом. К счастью, есть много курсов, на которых вы можете выучить все это:

HTML и CSS

Это скелет любого веб-сайта. HTML предоставляет структуру, в то время как CSS позволяет стилизовать ее, чтобы она выглядела визуально привлекательней. Вам просто необходимо освоить эти технологии, если вы серьезно нацелены стать фронтендером. В этом вам помогут курсы на Codecademy или HTML Academy.

JavaScript

Браузерный JavaScript позволяет привнести некоторые элементы интерактивности для веб-сайта. В изучении вам помогут уже упомянутые ранее Codecademy и HTML Academy. Так же обратите внимание на учебник JavaScript и этот курс на Stepik.

Так же помимо браузеров для выполнения JavaScript кода существует платформа Node.js. Она позволяет писать на JavaScript логику backend приложений, а так же консольные утилиты. На фронтенде вам она поможет управлять зависимостями и сборкой вашего приложения.

Когда вы изучите JavaScript и системы сборки, вам может стать интересным использование TypeScript. Это надстройка над JavaScript, которая позволяет использовать статическую типизацию и писать более красивый объектно-ориентированный код. В изучении TypeScript вам помогут курс на Udemy, TypeScript Crash Course by Traversy Media и The TypeScript Definitive Guide (рус).

Фреймворки (Angular, React, Vue)

После освоения основ веб-разработки следует обратить внимание на фреймворки и библиотеки современной разработки веб-приложений, как Angular, React или Vue. В наши дни крупные проекты редко ограничиваются одними лишь HTML, CSS и JS.

Angular — полноценный фреймворк для разработки веб-приложений, разрабатываемый при поддержки Google. Он позаботится обо всех аспектах вашего приложения (шаблоны, маршрутизация, взаимодействие с сервером и пр.), а довольно строгие гайдлайны помогут написать хорошо структурированное single page application. Отличной отправной точкой в изучении Angular будет официальный туториал Tour of Heroes.

React — библиотека для создания пользовательских интерфейсов. Это значит, что в то время как Angular является полноценным MVC (шаблон Model-View-Controller) фреймворком, React отвечает только за представление (V из MVC), поэтому для других частей вашего приложения понадобится искать другие библиотеки. У React также есть свой туториал для обучения на русском.

Vue.js — прогрессивный фреймворк для создания пользовательских интерфейсов. Очень похож на React, но имеет в арсенале несколько официальных плагинов, позволяющих создать мощное приложение. Более детальное сравнение Vue с другими фреймворками и обучающий гайд на русском можно найти на официальном сайте.

ИМХО. Несмотря на то, что в оригинальном роадмапе React выделен, как предпочтительный выбор, лично я рекомендую учить Vue.js. Он взял лучшее из Angular и React и может быть безболезненно внедрен в проект на любой стадии. Но окончательное решение о том, какую технологию учить, за вами.

Путь Backend разработчика

Если вы желаете стать backend разработчиком, рекомендую следовать по следующему пути. Опять-таки, вам следует обратить внимание на желтые прямоугольники, которыми выделены ключевые технологии, рекомендованные к изучению. После карты вы найдете дополнительные ресурсы для обучения.

Как стать веб-разработчиком - backend

Выберите язык

Свой путь, как бэкенд разработчик, следует начать с выбора языка программирования, на котором вы будете писать приложение для веб-сервера. Из-за того, что бэкенд будет выполняться на отдельной машине, перед вами широкий выбор языков программирования: от PHP до Java, от Python до Go и т.д. Выбор языка так же определит список доступных инструментов и стеков для разработки. Рассмотрим некоторые из них.

PHP

Забудьте весь негатив, что вы могли слышать про PHP от других людей. Это до сих пор один из самых популярных языков для разработки веб-приложений. Примерно половина всех веб-сервисов в интернете разработано на PHP. К тому же язык продолжает развиваться и позволяет писать очень качественный код.

Node.js

На протяжении нескольких последних лет платформа Node.js становится все более популярной для написания веб-приложений различной сложности. Что круто в Node.js, так это разработка frontend и backend частей приложения на одном языке с возможностью переиспользования некоторых кусков кода.

Внешние системы

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

Базы данных. В первую очередь изучите реляционные БД, как MySQL или PostgreSQL, научитесь проектировать базу данных под нужды приложения, разберитесь с нормальными формами. После этого взгляните на NoSQL базы данных, как например MongoDB, поймите зачем они нужны и чем отличаются от реляционных.

Системы кэширования. Разберитесь как реализуется кэширование на уровне приложения с использованием таких систем, как Redis или Memcached.

Очереди сообщений. Изучите что это и для чего служит, выберите одну для детального изучения. Есть много вариантов таких систем, но рекомендуется выбрать RabbitMQ или Kafka.

Изучайте дальше

Совершенствуйте свои навыки разработки backend. Изучите следующие темы:

  • создание REST API и GraphQL для отдачи данных сервиса на frontend;
  • различные методы авторизации/аутентификации клиентов, как например Json Web Token, OAuth2 и прочее;
  • реализации клиент-серверного взаимодействия в режиме прямого времени (WebSockets, Long polling).
  • контейнеризации приложений с Docker;
  • конфигурирование Nginx и других веб-серверов.

Заключение

Спасибо за то, что прочитали данный материал до конца. Надеюсь мне удалось ответить на ваш вопрос: «Как стать веб-разработчиком?». Надеюсь вам будут полезны указанные ресурсы, я постарался подобрать максимально доступные, с точки зрения цены и локализации.

Оставайтесь на связи и следите за проектом в соцсетях. В будущем планируется много полезных материалов для изучения озвученных сегодня технологий.

Источник: Developer Roadmap