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

Full Stack Web Developer

Основы

Лучший способ начать карьеру в веб-разработке - это хорошо освоить HTML и CSS, которые являются основой всего остального.

Язык гипертекстовой разметки (HTML - Hypertext Markup Language) используется в каждом сайте. С помощью HTML, вы определяете и структурируете контент веб-сайта с помощью простого синтаксиса разметки. Каскадные таблицы стилей (CSS - Cascading Style Sheets ) - это простой способ добавить стили к вашим сайтам (например, добавить шрифты, цвета, макет и т. д.).

Языки программирования

JavaScript

JavaScript является необходимым строительным блоком для добавления динамических функций на ваш сайт. Язык JavaScript является реализацией базовой спецификации ECMAScript. Изучение JavaScript с нуля является важной вехой в начале вашей карьеры веб-разработчика. Для многих интерфейсных фреймворков (front-end - Angular, React, Vue.js) и на стороне сервера (back-end - Node.js) знание JavaScript является обязательным условием. Основы языка JavaScript просты в изучении. Однако по мере развития спецификации ECMAScript в язык добавляются все новые и новые расширенные функции, такие как асинхронные функции, разделяемая память (shared memory) и атомарные операции. Если вы только начинаете работать с JavaScript, вам может быть непросто разобраться всех этих передовых концепциях JS. Здесь вы должны сосредоточиться сначала на основах, а затем перейти к более сложным концепциям.

TypeScript

С появлением Angular TypeScript также приобрел большую популярность. Если вы планируете изучать Angular, вы должны сначала взглянуть на TypeScript.

TypeScript является дополнением к JavaScript и поэтому всегда используется вместе с JavaScript для включения таких функций, как проверка типов.

TypeScript обладает отличными инструментами, особенно если вы работаете с такими редакторами кода, как Visual Studio Code. Здесь вы найдете функции автоматического импорта модулей.

Python 

Python является одним из лучших языков программирования, запрошенных компаниями в 2018/2019 годах. Если вы еще не добавили Python в свой набор навыков программирования, сейчас самое подходящее время для начала обучения.

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

Если вы изучаете Python для веб-разработки, вам следует взглянуть на такие среды программирования Python, как Django или Flask.

Фронт-энд фреймворки

Фреймворки - как для front-end, так и для back-end - упрощают и ускоряют разработку общей функциональности. Однако, прежде чем начать использовать фреймворк, вы всегда должны попытаться получить глубокое понимание лежащего в основе технологии стека (например, JavaScript). Это поможет вам изучить основы и понять концепцию.

Во-первых, давайте взглянем на наиболее важные фронтенд среды в веб-разработке:

Angular

Angular - это фреймворк для создания клиентских приложений на HTML и JavaScript / TypeScript. Среда объединяет декларативные шаблоны, внедрение зависимостей, сквозные инструменты и интегрированные передовые практики для решения задач разработки.

В 2018 году Angular стала одной из самых популярных платформ для создания одностраничных веб-приложений. Для разработчиков Angular это был очень интересный год с новыми крупными обновлениями фреймворка (версия 6 и версия 7). Многие новые функции были добавлены, и Angular набирает все большую популярность.

Если вы ищете новую платформу веб-разработки JS для изучения в 2019 году, вам следует подумать о более глубоком взгляде на Angular. Все больше и больше компаний начинают использовать Angular, а команда Angular предложит еще больше функций и релизов в 2019 году.

React

React - это библиотека JavaScript для создания пользовательских интерфейсов. React позволяет безболезненно создавать интерактивные интерфейсы. Создавайте простые представления для каждого состояния в вашем приложении, и React будет эффективно обновлять и отображать только нужные компоненты при изменении ваших данных. Декларативные представления делают ваш код более предсказуемым и проще в отладке. Каркас полностью основан на компонентах. Вы можете создавать инкапсулированные компоненты, которые управляют своим собственным состоянием, а затем составлять их для создания сложных пользовательских интерфейсов. Поскольку логика компонентов написана на JavaScript вместо шаблонов, вы можете легко передавать богатые данные через свое приложение и сохранять состояние вне DOM.

React 16 был выпущен в сентябре 2017 года. Еще больше улучшений было добавлено в версии 16.3.0 (новый API жизненного цикла и контекста), 16.4.0 (события указателя) и 16.6.0 (ленивый, памятка и т. Д.) В 2018 году. была выпущена версия 2.0 приложения Create React, которая теперь поддерживает Babel 7 и Sass «из коробки».

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

Vue.js

Vue чрезвычайно прост в освоении и особенно для небольших проектов идеальный выбор. Кривая обучения чрезвычайно крута, и вы можете ожидать, чтобы быстро увидеть отличные результаты.

В общей сложности из 78 тыс. Звезд на Github Vue в конце 2018 г. он вырос до 120 тыс. звезд. Все больше и больше компаний добавляют Vue.js к своим стекам, и спрос на разработчиков Vue.js постоянно растет.

Бэк-энд фреймворки

Есть много вариантов, которые вы можете выбрать при выборе серверной среды для вашего веб-проекта. Однако в дальнейшем я ограничу его двумя вариантами: один для мира JS (Node.js) и один для мира Python (Django).

Как следует из названия, серверные инфраструктуры работают на серверной части (на сервере) и динамически генерируют HTML, JSON (и т. д.) для вашего сайта в зависимости от URL-адреса, который посещает ваш пользователь.

Если вы разрабатываете только фронт-энд проекта, нет необходимости добавлять back-end в ваш набор навыков. Однако, чтобы получить глубокое понимание того, как все сочетается друг с другом, вы должны хотя бы подумать о том, чтобы понять самые основы серверной среды.

Node.js

Node.js позволяет вам выполнять код JavaScript на сервере и является чрезвычайно мощным, особенно если Node.js используется вместе с промежуточным программным обеспечением (middle-ware) Express.

Чтобы начать с Node.js, вы должны сначала убедиться, что вы хорошо знаете язык программирования JavaScript. Это обеспечит быстрое понимание основных понятий Node.

Django

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

Вспомогательные средства

Git

Git на сегодняшний день является наиболее широко используемой системой контроля версий для любого вида исходного кода.

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

Чтобы завершить свои навыки веб-разработчика, вы должны изучить хотя бы основы Git.

Машинное обучение

Машинное обучение является одной из самых актуальных тем 2018 года для разработчиков. В ближайшие годы в мире не останется ни одной отрасли, не затронутой машинным обучением. С такими фреймворками, как Tensorflow.js, машинное обучение теперь также входит в сферу веб-разработки.

Независимо от того являетесь вы front-end, back-end разработчиком или разработчиком полного стека (full stack developer),  вам следует подумать о том, чтобы добавить возможности машинного обучения к своим знаниям, чтобы подготовиться к предстоящим требованиям.

Сочетание возможностей машинного обучения с языком программирования, таким как JavaScript, позволяет легко войти в эту новую область знаний. Помимо JavaScript, облегчающего понимание машинного обучения, он также открывает новые горизонты для приложений, которые вы можете создавать. Вместо того, чтобы ограничиваться развертыванием кода Python на сервере для запуска своего ML-кода, вы можете создавать одностраничные приложения или даже расширения браузера, которые запускают интересные алгоритмы, что может дать вам возможность разработки совершенно нового варианта использования.

В заключение

Мы затронули только одно из современных направлений вэб-разработки на основе JavaScript. Кроме этого, по-прежнему популярен классический стэк Apache-PHP-MySQL.

Навыки веб-разработки сейчас очень востребованы, и - если вы еще не начали - самое время начать изучать веб-разработку.

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

Эта статья должна дать вам руководство для вашего пути обучения и в то же время предоставляет вам ресурсы, которые помогут вам быстро начать работу.