Как стать веб-разработчиком в 2023 году: дорожная карта web-разработчика
Никогда не было лучшего времени для того, чтобы научиться программировать или стать, вопреки своей старой профессии, разработчиком. Спрос на веб-разработчиков находится на рекордно высоком уровне, и он только растет. В Интернете есть как бесплатные, так и платные курсы, которые готовят очень хороших веб-программистов. Лучшим источником, который вам поможет, стала дорожная карта web-разработчика.
@english_forprogrammers – Английский для разработчиков. Прокачайте свой уровень владения языком.
В этой статье подробно описываются необходимые навыки и соответствующие учебные пособия для их эффективного освоения. Иллюстрированное руководство, предоставленное Камраном Ахмедом, может быть найдено на roadmaps.sh или в этом репозитории на GitHub. Работа Камрана превосходна, поэтому обязательно поделитесь этим репозиторием и подпишитесь на его рассылку, чтобы поддержать его труды. Пусть вас не пугает размер дорожной карты. Она может показаться огромной, но я разберу её на части, чтобы вам было прощё в её освоении.
Эта статья будет разделена на следующие разделы:
- Важные теоретические аспекты: Темы в программировании, которые должен знать каждый разработчик.
- Введение в программирование: С чего начать, если вы совершенно новичок в программировании?
- Frontend-разработка: Узнайте, как создавать пользовательские интерфейсы (UI).
- Backend-разработка: Узнайте, как создавать API и писать серверный код.
- Изучение devOps: Узнайте о методологии автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения.
- Углубленный курс JavaScript и написания кода: Изучите язык программирования JS со всех сторон.
- Книги по программной инженерии: Эти книги, как я обнаружил, полезны для улучшения общего понимания программирования и оказывают положительное влияние на работу.
- Советы по трудоустройству и подведение итогов: Несколько заключительных кратких советов о том, как искать работу и продолжать свой рост в качестве разработчика.
Все источники, предоставленные в этой статье, я рекомендую лично. Если вы все-таки найдете что-то, что окажется полезным для вас, мы будем признательны за вашу поддержку.
1. Важные теоретические аспекты
Мы начнем с навыков, которые должен освоить каждый разработчик. Они будут использоваться на всех этапах — Frontend, Backend или DevOps.
Чтобы быть востребованным разработчиком, вы должны хорошо владеть навыком использования командной строки, знать, как управлять версиями вашего кода с помощью Git, и понимать основы работы в Интернете.
Командная строка
Командная строка – это способ взаимодействия с компьютером, когда ты печатаешь команды, а он их исполняет. Она может использоваться для запуска программ (например на языке JS) и для настройки некоторых программ. Важно понимать, что командная строка реализована немного по-разному в разных ОС.
- Learn Enough Command Line to Be Dangerous – отличная бесплатная книга, с помощью который вы сможете освоить командную строку
- Linux Command Line Basics
- The Linux Command Line: A Complete Introduction
Выбор IDE
VS Code – лучший выбор для веб-разработчиков (я лично пользуюсь именно этим редактором кода). Это бесплатное приложение с открытым исходным кодом и множеством плагинов, которые смогут облегчить процесс программирования. Тем не менее, есть много других редакторов кода, таких как Atom, WebStorm или Vim.
Редактор кода – это место, где вы будете писать свой код, а терминал – это место, где вы будете его выполнять. Потратьте некоторое время на то, чтобы выбрать правильный редактор, настроить плагины и изучить горячие клавиши. Правильный рабочий процесс может значительно повысить вашу продуктивность.
Git и контроль версий
Git – это инструмент, используемый для сохранения кода и создания его различных версий, позволяющий вам совместно работать с другими разработчиками. Лучшим местом для хранения кода и совместной работы над программным обеспечением с открытым исходным кодом является GitHub.
Основы веб-технологий
2. Введение в программирование
Прежде чем вы погрузитесь в какое-либо направление программирования, вы должны знать некоторые общие аспекты. Начинающим разработчикам я настоятельно рекомендую изучать JavaScript в качестве вашего первого языка. JS может использоваться как для frontend-, так и для backend-разработчиков, что означает, что вы можете стать full stack разработчиком, имея возможность сосредоточиться на освоении только одного языка. Преимущества JavaScript заключаются в следующем:
- JavaScript является лёгким для изучения языком
- JavaScript необходим для создания веб-приложений
- JavaScript можно использовать как в frontend-, так и в backend-части, что позволяет писать полнофункциональные приложения на одном языке
- Существует множество вакансий для разработчиков JavaScript
Если вы знаете, что хотите работать либо только с Data Science, либо исключительно с backend-частью, изучение Python будет лучшим вариантом.
Существует множество высококачественных бесплатных вариантов для начала изучения основ программирования. freeCodeCamp и Codecademy – отличный выбор.
После того, как вы освоите фундаментальные основы, отличным следующим шагом будет бесплатный курс JavaScript30 или платный курс BeginnerJavaScript. Реализация проектов – это лучший способ приобрести навыки для работы, которые позволят вам составить портфолио к моменту начала собеседования.
Если вы хотите ускорить процесс, вот несколько отличных платных курсов, которые помогут вам быстро продвинуться вперед:
3. Frontend-разработка
Frontend-разработка – это то, как мы создаём пользовательские интерфейсы для интернет-ресурсов. Вы должны иметь хорошие знания в JavaScript, а также понимать, как работают HTML / CSS.
Популярные библиотеки, которые будут вам полезны: React, Angular и Vue (все они написаны на JavaScript). Полное знание JavaScript необходимо для повышения уровня и получения необходимых навыков для создания сложных приложений. Как только у вас будет прочная основа в JavaScript, вам следует погрузиться в изучение HTML и CSS. HTML – язык гипертекстовой разметки (скелет сайта); CSS – каскадная таблица стилей (стилизация сайта).
Самый полный курс по веб-разработке. Начните с HTML и CSS, изучите JavaScript, и, в конечном итоге, создайте full stack веб-приложение.
HTML и CSS
HTML и CSS обычно изучаются вместе. HTML – это каркас страницы, который придает ей структуру, а CSS – это набор инструкций, с помощью которых можно стилизовать страницу.
- HTML and CSS for Absolute Beginners
- Build Responsive Real World Websites with HTML5 and CSS3
- CSS: The Complete Guide (Advanced CSS)
UI-библиотеки
В наше время, при разработке пользовательского интерфейса, постоянно используются 3 библиотеки, написанные на JS: React, Vue и Angular. Лучше выучить одну из них, нежели пытаться освоить все три. Как мне кажется, самой популярной из них является React.
Источники для React:
- The Official React Introduction
- React — The Complete Guide (incl. Hooks, React Router, Redux)
- Modern React with Redux
- React for Beginners
- Advanced React + GraphQL
Источники для Vue:
- Vue School
- The Official Vue Introduction
- Vue JS 2 — The Complete Guide (incl. Vue Router & Vuex)
- The Ultimate Vue JS 2 Developers Course
- Vue JS Essentials with Vuex and Vue Router
Источники для Angular:
4. Backend-разработка
Backend-разработка – это часть, в которой вы взаимодействуете с базами данных, создаёте скрипты и отправляете необходимые данные во внешний интерфейс.
Ваш сервер может быть написан на любом языке программирования. Моя рекомендация – начать с Node / JavaScript, поскольку они относительно просты в освоении, но в то же время невероятно мощны. Кроме того, вы сможете легче переходить между frontend-ом и backend-ом, поскольку для каждого из них вы будете использовать один и тот же язык. Я также подробно расскажу о других возможных языках для изучения backend — Python, Go, Ruby.
Работа с базами данных является основой работы backend-разработчиков. Несмотря на то, что NoSQL стал более популярным, SQL по-прежнему остается наиболее часто используемым типом баз данных, так что его необходимо изучать.
Node.js
Node- кроссплатформенная среда исполнения с открытым исходным кодом, которая позволяет разработчикам создавать всевозможные серверные инструменты и приложения используя язык JavaScript.
- The Complete Node.js Developer Course (3rd Edition)
- NodeJS — The Complete Guide (incl. MVC, REST APIs, GraphQL)
- Learn Node
Базы данных
База данных – это постоянное хранилище данных вашего приложения. Обычно серверная часть выполняет запрос к базе данных во время вызова API. Существует 2 распространенных типа баз данных — SQL и NoSQL.
PostgreSQL / MySQL
PostgreSQL и MySQL — современные системы управления базами данных, которые считаются лидерами по популярности среди разработчиков. Каждая из них имеет сбалансированный набор функций, возможностей и преимуществ.
GraphQL
GraphQL – это синтаксис, которым описывается метод запрашивания данных у базы данных. Многие люди верят, что GraphQL произведёт революцию в разработке приложений и полностью изменит то, как мы создаём API. Он быстро набирает популярность и используется технологическими гигантами и ведущими стартапами.
- The Modern GraphQL Bootcamp (Advanced Node.js and Apollo)
- GraphQL with React: The Complete Developers Guide
MongoDB
MongoDB – это документоориентированная система управления базами данных, не требующая описания схемы таблиц (NoSQL). Считается одним из классических примеров NoSQL-систем, использует JSON-подобные документы и схему базы данных. Написана на языке C++.
Python
Python прост для начинающих. Он также широко используется технологическими гигантами и стартапами для backend-разработки, Data Science и написания скриптов.
- Complete Python Bootcamp: Go from zero to hero in Python 3
- Python and Django Full Stack Web Developer Bootcamp
Golang
Go является относительно новым, но быстро внедряемым языком. Это статически типизированный язык, но он также невероятно удобен для разработчиков.
- Complete Go Bootcamp: Go from zero to hero (Golang)
- Web Development with Google’s Go Programming Language
Ruby
Динамический, рефлективный, интерпретируемый высокоуровневый язык программирования. Язык обладает независимой от операционной системы реализацией многопоточности, сильной динамической типизацией, сборщиком мусора и многими другими возможностями.
5. Изучение devOps
DevOps – это методология автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения. Методология предполагает активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их технологических процессов друг в друга для обеспечения высокого качества программного продукта. Предназначена для эффективной организации создания и обновления программных продуктов и услуг.
Вот некоторые темы в DevOps, которые стоит изучить:
- Linux: Linux используется более чем на 67% серверов и, скорее всего, является тем, что вы бы использовали в качестве инженера DevOps.
- Безопасность: Убедитесь, что все ваше облако защищено и зашифровано. Также настройте API таким образом, чтобы весь контент обслуживался по протоколу HTTPS и не подвергался атакам.
- Командная строка / терминалы: Мы говорили о командных строках в первом разделе, но она ещё более важна для инженера DevOps. Вы должны досконально понимать, как она работает.
- Автоматическое тестирование: DevOps настраивает систему автоматического тестирования таким образом, чтобы весь код был тщательно проверен и уменьшал вероятность появления ошибок или регрессий.
- Контейнеры: Контейнеры являются основной частью инфраструктуры, и большинство стартапов и технологических гигантов в той или иной форме используют Docker и /или Kubernetes. Контейнер гарантирует, что ваш код всегда выполняется в чистой и воспроизводимой среде.
- Поставщики облачных услуг: Узнайте, как управлять серверами в облаке с помощью одного из популярных поставщиков, таких как AWS, GCP или Azure.
6. Углубленный курс JavaScript и написания кода
Я рекомендую начать работать над реальными проектами как можно быстрее. Однако, в какой-то момент вам захочется глубоко погрузиться в JavaScript и узнать, как всё это работает под на машинном уровне. Кроме того, важно иметь представление о структурах данных, алгоритмах и других общих знаниях в области информатики.
You Don’t Know JavaScript (YDKJS) – Это просто лучшая книга по JavaScript. Если вы полностью разберетесь с ней, вы будете знать весь JS. Прочитайте его бесплатно на GitHub.
TypeScript – Это не является обязательным требованием для начинающих (если только вы не используете Angular), но внедрение TypeScript быстро растёт и поглощает мир JS. Многие думают, что это будущее JavaScript.
Data Structures in JavaScript – научитесь создавать отличные структуры данных с помощью этого видеоряда.
Eloquent JavaScript – Еще одна любимая книга разработчиков JavaScript. Она охватывает более широкий круг тем, чем YDKJS. Прочитайте её бесплатно онлайн или купите её физическую копию на Amazon.
Introduction to Algorithms – Хотя это и не самая удобная книга для начинающих, она важна. Сделайте этот шаг, как только вы действительно почувствуете, что пришло время досконально разобраться в алгоритмах.
7. Книги по программной инженерии
Эта подборка из 5 книг, которые либо сделают вас лучшим программистом, либо станут незаменимой книгой, которая вам понадобится на каком-то этапе вашей карьеры, например, во время собеседований:
- Clean Code by Robert C Martin
- The Pragmatic Programmer by Andrew Hunt & David Thomas
- The Effective Engineer by Edmund Lau
- Cracking the Coding Interview by Gayle Laakmann McDowell
- The Art of Computer Programming by Donald Knuth
Если вы учитесь веб-разработке, то высока вероятность того, что вас заинтересуют книги о стартапах. В них рассказывается о людях, достигших успеха в области разработки:
- The Lean Startup by Eric Ries
- Zero to One by Peter Thiel
- Hooked by Nir Eyal
- Traction by Gabriel Weinberg and Justin Mares
- The Hard Thing About Hard Things by Ben Horowitz
8. Советы по трудоустройству и подведение итогов
Следуя этому руководству, вы будете на пути к тому, чтобы стать профессиональным веб-разработчиком. Убедитесь в том, что вы как можно быстрее приступаете к созданию реальных проектов и начинаете подавать заявки на собеседования. Проекты – это лучший способ показать компании, что вы сможете внести свой вклад, как только вас примут на работу.
Поиск первой работы – это всегда игра чисел, поэтому чем больше вы подаете заявлений, тем выше ваши шансы получить предложение. Однако это может занять месяцы, так что будьте готовы к долгому пути. В конце концов вы его получите. После этого вам будет намного легче найти следующую работу.
Несколько советов:
- Сосредоточьтесь только на нескольких навыках: например, JavaScript, React, Node. Не пытайтесь выучить все — React, Vue, Angular, jQuery, Backbone и т.д. Старайтесь как можно лучше изучать минимально необходимые языки / библиотеки. Идите в глубь, а не в ширь.
- Создайте веб-сайт с портфолио, чтобы работодатели точно обратили на вас внимание.
- Подавайте заявки на как можно большее количество вакансий, если они соответствуют вашему набору навыков. Не сдавайтесь! Это долгий и трудный путь, но он того стоит, если вы увлечены своей профессией.
- Подготовьтесь к собеседованиям. Прочитайте некоторые пособия, поищите в интернете вопросы, которые вам могут задать.
- Продолжайте создавать проекты. Проекты – это лучший способ научиться и показать, весь свой набор навыков.