Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fullstack-development/developers-roadmap
How to learn front-end or back-end development
https://github.com/fullstack-development/developers-roadmap
Last synced: 2 days ago
JSON representation
How to learn front-end or back-end development
- Host: GitHub
- URL: https://github.com/fullstack-development/developers-roadmap
- Owner: fullstack-development
- Created: 2019-03-31T10:40:35.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-12-28T13:30:31.000Z (28 days ago)
- Last Synced: 2025-01-17T03:01:45.570Z (9 days ago)
- Language: Haskell
- Homepage:
- Size: 979 KB
- Stars: 1,197
- Watchers: 55
- Forks: 263
- Open Issues: 58
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- my-awesome - fullstack-development/developers-roadmap - 10 star:1.2k fork:0.3k How to learn front-end or back-end development (Haskell)
README
# Developers roadmap
Как изучить front-end или back-end разработку? Как максимально эффективно прокачаться от junior к middle и от middle к senior? Какие ресурсы выбирать по каким темам?## Введение
В одном репозитории мы собрали темы и ресурсы, которые помогут вам вырасти как front-end или back-end разработчику. Мы советуем выбрать одно из этих двух направлений и максимально сфокусироваться на нём. Только после уверенного овладения одной из областей при большом желании можно начинать переходить на другую, либо оставаться в своей области и изучать её ещё глубже.Перед тем как создавать pull request, изучите [требования к оформлению вопросов и ресурсов](./requirements.md).
## Статус
Работы по основным направлениям завершены, а материалы активно используются нами и другими командами. На данный момент репозиторий активно поддерживается и развивается. Добавляются новые топики, обновляются и актуализируются старые.## Градации
Ниже приведены наши субъективные представления стандартных уровней мастерства разработчиков.### Junior frontend developer
* Умеет решать локальные задачи, которые хорошо декомпозированы и укладываются в принятые в проекте соглашения и архитектурные принципы.
* Хорошо знает основной инструментарий — html, css, javascript.
* Уверенно владеет React.JS на уровне, который позволяет решать абсолютное большинство стандартных задач, связанных с интерфейсами.
* Умеет ясно излагать свои мысли в письменной и устной форме, понимает важность проактивности для командной работы.### Middle frontend developer
* Отлично знает инструментарий, включая React.JS.
* Имеет навыки проектирования и знает основные принципы разработки поддерживаемого продукта, т.е. владеет ООП, ФП, понимает DDD и SOLID.
* Умеет спроектировать небольшого и среднего размера стандартные проекты (интерфейс для проекта до ±100k строк с командой до ±10 участников).
* Умеет эффективно решать задачи в рамках заданной архитектуры (например, следуя парадигме от React+Redux).
* Знает, как решить нетривиальные локальные задачи, чаще всего не связанные с интерфейсами напрямую, например, написать небольшую библиотеку для удобного API по работе с URI.
* Понимает бизнес-ценность своей работы, может предложить пересмотр требований задачи для лучшего достижений этих ценностей, может предложить убрать задачу из бэклога, аргументировав возможными альтернативами или даже доказав её низкий приоритет.
* Умеет декомпозировать и довольно точно оценить объем работ для небольших работ (до 2-х человекомесяцев). Умеет явно увидеть области риска при оценке, сузить их наименьшими усилиями и явно фокусировать внимание команды на них.
* Проявляет эмпатию, не перебивает, умеет выслушать, понять точку зрения оппонента и предложить аргументированные альтернативы.### Senior frontend developer
* Отлично понимает весь контекст проекта, включая пользователей (и их цели), бизнес, всю команду разработчиков.
* Понимает бизнес-ценности всего продукта и всей команды.
* Может помочь ясно сформулировать требования к задаче, учитывая стратегические цели компании.
* Может спроектировать верхнеуровневую архитектуру продукта учитывая весь контекст (пользователи, бизнес, 3rd party services etc).
* Сам может выбрать необходимый стек для всего комплекса решений, который может состоять из нескольких больших проектов.
* Умеет самостоятельно эффективно разбираться в неизвестных и достаточно объемных областях, применять изученное для решения поставленных проблем там, где это эффективно (например, быстро изучить meteor.js и предложить создавать проект на нем, если он действительно лучше подходит).
* Умеет давать оценки даже для существенного объема работ, запросить все необходимые требования, доработать их при необходимости, заложить риски.## Рекомендация
Советуем для удобного чтения установить расширение [Octotree](https://chrome.google.com/webstore/detail/octotree/bkhaagjahfmjljalopjnoealnfndnagc?hl=ru).## Обучение с 0 до Junior
Наша команда также разработала систему обучения по front-end и back-end разработке с нуля. Изучить подробности и заполнить форму, чтобы начать изучение программы, можно [на нашей странице](https://www.metalamp.io/education).