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

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

Что мы ожидаем от каждого уровня?

Давайте определим наши ожидания. Ваши ожидания могут отличаться.

Уровень 1 — новые базовые теги, может редактировать контент на готовом HTML-сайте, может правильно форматировать текст, может вставлять что-то встраиваемое (youtube, google map), может использовать git для себя (мастер, 1 вкладчик). Он может сделать несколько простых сайтов, и это может выглядеть хорошо (на его персональном компьютере). Не отдельная единица, для успеха требуется некоторое руководство.

Уровень 2 — плюс-минус отдельная единица (или отдельная для малых и средних проектов). Он может создать прекрасный макет с нуля для небольшого или среднего проекта, и он будет отлично смотреться во всех современных браузерах. Уметь работать с шаблонизаторами, уметь ими пользоваться (если предоставлен другой код). Может хорошо планировать свою работу, документировать, что было сделано и как это использовать, может оценивать время. Поймите важность стиля кода. Поймите, почему существуют сеточные системы и CSS-фреймворки. Может сам собрать необходимую информацию от дизайнеров или с мокапов. Он может взаимодействовать с малыми и средними командами. Он может создавать ветки и тянуть запросы.

Уровень 3 — может разработать блочную систему для большого проекта с нуля. Знайте, как избежать дублирования кода и проблем, когда его код будет использоваться другими разработчиками. Он может разложить сложные проблемы и четко определить задачи. Он может применить хоть одну современную методологию (БЭМ, например). Он может сделать сайт молниеносно быстрым. Хорошо разбираюсь в паре современных шаблонизаторов. Может создавать скрипты сборки для автоматизации процесса комбинирования CSS/HTML/js. Может хорошо проводить код-ревью и обучать других фронтендеров.

Точное объяснение блоков

Большинство блоков представляют тот или иной набор навыков. Его можно заменить на аналогичный. Вы можете использовать любую IDE, любую CMS или что-то еще. Я просто указываю некоторые популярные, с которыми вы можете начать работу «прямо сейчас» (много сопутствующих предложений работы). Может быть много предложений работы для других навыков в вашей области. Я пытался сделать универсальную схему, которая будет работать для большинства регионов.

1-й уровень

HTML — знание основных тегов и атрибутов. Понимание того, как писать HTML (что такое «тег», «свойство» и т. д.)

Типографика — правильное форматирование текста. Текст — основа (почти) каждого проекта. Добавляйте без пробелов, где это необходимо, жирный шрифт, курсив, сокращения и т. д. Используйте какой-нибудь типограф или аналогичный сервис, поймите, почему +1234567 лучше, чем +1 234 567.

Шрифты (можно отложить) — сложнее, чем кажется; Новичкам рекомендую использовать системные шрифты. Возможность загружать шрифты, переходить к другому, оптимизировать внешний вид/скорость, минимизировать время рендеринга для пользовательских шрифтов.

Семантика — возможность найти правильный тег для правильного использования. Понимание того, почему существует так много тегов.

Мультимедиа — типы мультимедиа могут отображаться на странице.

Iframe — импорт сторонних виджетов (видео, аудио, карты и т. д.).

Аудио, видео (можно отложить) — изначально можно решить с помощью iframe. Понимание того, какие типы мультимедиа поддерживаются браузерами, как спроектировать плеер и т. д.

Изображения — графические форматы, как они работают в браузерах. Плюсы и минусы разных форматов

Растровые — jpg, png, gif. Понимание различий и возможность выбрать правильный (возможно, оптимизировать их).

SVG(можно отложить) — плюсы/минусы/ограничения, как использовать.

Таблицы (необязательно, хорошо для электронных писем) — но сами таблицы следует изучать в разделе «HTML» :-)

CSS 1 — шрифты, цвета, выравнивание, размеры

CSS 2.1 — блокирует поведение, позиционирование, дизайн

Селекторы — простые селекторы по тегу, классу, вложенному элементу. Простые псевдоселекторы, такие как :hover.

Именование — как называть классы, чтобы избежать проблем в будущем.

Блоки — как разделить макет на отдельные блоки, как реализовать эти блоки в HTML и дизайне с помощью CSS.

Браузеры (можно отложить) — какие браузеры существуют, какая разница.

Инструменты разработчика (можно отложить) — используйте инструменты браузера, чтобы определить, почему что-то выглядит не так, как «отлаживать» CSS.

Редакторы кода — какие редакторы существуют и почему они существуют. Notepad++ и SublimeText здесь просто для примера, как и всем известные. Знайте, как установить основные настройки, такие как табуляции, новые строки, набор символов и так далее.

VCS (система контроля версий) — я считаю, что это необходимо, по крайней мере, для вас самих. Почему они существуют, и какие типы.

Git/Bitbucket — возможность использовать хотя бы одну из популярных платформ для git.

Checkout/commit/push/pull — базовых операций достаточно для личного использования.

Шкатулка — для временного хранения не нужных в данный момент вещей

10 работ — минимум 10 работ с разным дизайном. Может быть, это просто отформатированный текст или что-то в этом роде. Но они должны использовать максимум ваших текущих знаний.

Уровень 2

CSS 3 — градиенты, тени, скругления, фильтры, преобразования и т. д.

Расширенные селекторы — комбинированные селекторы с использованием типа «+», nth-child, shadow-dom, before/after и т. д.

Flexbox — понимать модель, уметь ее использовать

Анимации (опционально) — переход, анимация. Преимущества/против/ограничения.

Сетки — зачем они существуют, как их использовать, какие готовые решения существуют. В качестве примера вы можете взглянуть на «Flexbox grid» или любой другой.

Фреймворки — зачем они нужны, как использовать. Я настоятельно рекомендую хорошо изучить хотя бы один из них. Очень полезно для прототипирования. Значительно повысить качество проекта без дизайнеров (внутренний проект, например).

препроцессоры CSS (можно отложить) — более организованный и чистый код, примеси, переменные и т. д. Попробуйте разные, такие как SASS, LESS, Stylus.

Медиа-запросы (можно отложить) — показывать правильный стиль в зависимости от условий (устройство, размер экрана, версия для печати и т.д.)

Электронные письма (по желанию) — полезный навык; Существуют десятки почтовых систем с некоторыми отличиями, и главная цель — чтобы ваше письмо хорошо выглядело в любой из них, на любом устройстве. Уметь проходить фильтры и не попасть в спам.

Полифиллы — узнайте, как использовать современную семантику с обратной совместимостью. Знайте плюсы/минусы.

Кроссплатформенность — понять жарко сделать сайт не только для Windows, Mac и Linux, но и для SmartTV, PS, kindle и так далее.

Мобильная версия (можно отложить) — ознакомьтесь с ограничениями мобильной платформы. Используйте пространство с умом.

Оптимизация (можно отложить) — понять «цену» разных техник. Понимание фаз браузера для отображения сайта пользователю

Загрузка (можно отложить) — оптимизация, связанная с размером, кешем, объединением ресурсов и т. д.

Paint(можно отложить) — оптимизация рендеринга после (в процессе) загрузки

SEO (можно отложить) — хотя бы базовое понимание поисковых систем. Способность помочь им понять ваш сайт, что важно и так далее

Шаблоны — как повторно использовать код, как группировать элементы, как собирать страницы. Очень важно понимать как серверный, так и клиентский рендеринг. Существуют также шаблоны на чистом языке, такие как прямые части кода PHP. Части перед механизмом шаблонов выходят за рамки.

PHP(можно отложить) — понимать базовый синтаксис и иметь возможность вносить небольшие изменения, связанные с дизайном страницы.

CMS(можно отложить) — знать, какие CMS существуют, зачем они созданы. Научитесь писать шаблоны хотя бы для одного из них (рекомендуется Wordpress)

Javascript (можно отложить) — базовый синтаксис, понимание простых обработчиков событий и простых манипуляций с DOM.

jQuery (можно отложить) — узнайте, как сэкономить много времени для малого/среднего проекта, используя готовые плагины для общих задач.

NodeJS (можно отложить) — научитесь запускать простейший сервер, обслуживать статические файлы, рендерить на стороне сервера. Может быть, использовать экспресс или около того.

Сборка систем (можно отложить) — как собрать проект из файлов CSS/HTML. Настоятельно рекомендую хотя бы взглянуть на несколько разных систем (ворчание — глоток).

Стиль кода — почему люди соглашаются с некоторыми стилями, изучают хотя бы один и начинают его использовать (взгляните на Airbnb или любой другой современный js-фреймворк, такой как Vue).

DRY/KISS/SOLID (можно отложить) — важные теории разработки, кардинально влияющие на поддержку проекта в будущем.

OOCSS (необязательно) — что такое объектно-ориентированный CSS? Почему и как использовать? В той или иной форме используется в большинстве проектов (но без понимания того, что они используют :-D). В идеале, научиться его проектировать. Это может быть очень полезно для больших проектов.

Документация (можно отложить) — понять, как и что документировать. Начните документировать. Настоятельно рекомендуется синтаксис уценки.

Планирование — научитесь оценивать время, просто взглянув на изображение, определите порядок работ.

Декомпозиция (можно отложить) — разделить большую задачу на маленькие. Это сложнее, чем кажется.

Цели настройки (можно отложить) — уметь писать задачи так, чтобы другие разработчики (в том числе и более низкого уровня, чем вы) смогли их понятно понять.

IDE (можно отложить) — зачем существуют IDE, как ими пользоваться. Изучение любой IDE равносильно изучению какого-либо языка программирования (иначе вы не будете использовать его возможности). Я лично использую только текстовые редакторы и запускаю IDE только для действительно больших проектов.

Ветвление — управление ветвями в git.

Объединить — узнайте, как объединять ветки с конфликтами слияния.

Fetch/Rebase (необязательно) — что это? Узнайте, как и когда использовать

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

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

Региональные различия (необязательно) — слева направо, справа налево и другие странности арабского (или любого другого) рынка. Есть десятки забавных вещей.

50 работ — к концу «уровня 2» у вас должно быть около 50 различных проектов, которые показывают ваши навыки. (Если это проект с 20 совершенно разными макетами, считайте его за 20).

Уровень 3

На схеме эта часть выглядит как самая маленькая, но на самом деле она самая большая, потому что в этот момент вы должны знать все, что «можно отложить».

Адаптивный/отзывчивый — высший уровень; объединить все свои знания! Проект должен выглядеть потрясающе в любом месте и на чем угодно.

Изящная деградация/Прогрессивное зачарование — чем это хорошо, как пользоваться. Использовать.

Gitflow (или другая модель ветвления) — иметь возможность использовать некоторые передовые методы, быть в состоянии объяснить другому разработчику, как использовать git, как объединять ветки, как проводить проверку кода (HTML/CSS )

BEM (необязательно) — изучите методологию, которая дает возможность создавать неограниченное количество крупных проектов таким образом, чтобы с минимальной синхронизацией разные команды могли использовать блоки друг друга. Существует множество методологий, которые дают тот же/лучший результат. В этот момент времени вы услышите о некоторых из них и сможете сделать правильный выбор.

100 работ — звучит неплохо, как по мне. Они должны показать различные навыки, которые у вас есть. Но вы можете иметь в портфолио всего одну работу (состоящую из разных частей), которая покажет, что вы ничего не боитесь.

Кроме того, я планирую просмотреть эту схему с дополнительными сведениями о потоке до 17 мая в 20:00 по тихоокеанскому стандартному времени. (https://www.youtube.com/watch?v=mj-Jclhy9Qg)

Спасибо за чтение и хорошего дня.