fullstack-development / developers-roadmap Goto Github PK
View Code? Open in Web Editor NEWHow to learn front-end or back-end development
How to learn front-end or back-end development
Вопросы и ресурсы кто как хочет пишет, попробую какие-нибудь соглашения накидать, обсудим.
Не все фичи описаны в разделе handbook
, многое можно найти только в разделе what's new
.
Добавить git bisect
Как я указал в #3 наш текущий уровень старшего джуна будет распилен на два. Здесь останется только продвинутый материал, плюс будем думать над его расширением.
Из текущей версии сюда перенести:
для того, что бы код подсвечивался в конструкции вставки кода нужно указывать язык, примерно так это выглядит: ```html
или ```javascript
Ишью продолжает темы TS из #8, только тут уже вынесены вопросы, которые требуют концептуального понимания того, как работать с тайпскриптом, плюс возможно, некоторые детали того, как он устроен. По сути как раз то, что уже пора мидлу изучать.
Базовые примеры вопросов:
(a: number) => 0;
assignable to (b: number, s: string) => 0;
)? И как это распространяется на возвращаемый результат у функций? Можно ли считать из-за этого систему типов TS как unsound?Как думаете стоит добавлять?
а вообще раньше мне нравился раздел про "Отмену изменений" и связь с The Three Trees, такой же я б добавил с Rewriting history и какие команды в каком масштабе могут реализовывать этот rewriting
Здесь будет две части, одна в обычного джуна, другая про продвинутые вещи в старшего.
Мне изначально не нравился приведенный пример с filterByPropertyAndValue, самое главное там это and в названии, что есть плохой запах для функции, типа filterByPropertyAndValueAndVsemyChemyZakhocheshAndDverZapili.
Сейчас вспомнил гораздо лучше пример, в котором можно тоже самое сделать и это будет real-life case - функция prop: function prop(obj, key) { /.../ } и там можно кучу сразу всего совместить (дженерики, extends, lookup types)
Пока просто накидаю сюда ресурсов для изучения. Нам надо решить, на каком уровне давать основы и на каком уровне насколько углубляться. С одной стороны, использование стримов — это просто техническая вещь, и можно уже на джуна добавить самые базовые вещи по библиотеке. С другой стороны, тут все посложнее чем с редаксом и просто реактом, и немного где используется на проекте.
Ресурсы:
джуну надо полюбому знать что в js таймстемпв миллисекундах :) а на беке в секундах.
Нужно пройти по всем файлам из уровней и проверить на соответствие оформления всех правил, которые составлены и лежат тут
Перенести из топика и подробно расписать их
Здесь будет две части, одна в обычного джуна, другая про продвинутые вещи в старшего. Затем отдельным пунктом в разные уровни мидлов добавим теорию, которая за системами типов стоит
Думаю на второго мидла дать упражнения на закрепление понимания ООП. Пока идея такая: реализовать Service Worker, для него сделать приём разного рода пушей (как минимум нескольких разных команд разного типа), проксирование работы с сервером для поддержки работы оффлайн и предоставить оттуда удобный механизм синхронизации вкладок. Всё это потребует хорошо спроектировать решение для выражения решения в объектах, показать изученные принципы ООП, и здесь React и Redux уже не помогут, так что думаю, что это хорошая иллюстрация, зачем фронтендеру ООП :)
Предлагаю в описании кидать статьи по темам первого мидла и описывать в кратце, что там полезного
Сейчас вопрос звучит:
Способы создания массивов (литерал, конструктор, фабричные методы)
Не первый раз вижу как ребята не понимали про то, в фабричных методах нужно рассказать про Array.from()
и Array.of()
.
Раз уж мы добавляем конкретики предлагаю явно это указать:
Способы создания массивов (литерал, конструктор, фабричные методы
Array.from()
иArray.of()
)
Можно начать с блока ООП, там не все надо на middle-1 переносить сюда, так как некоторые темы уйдут на middle 2.
Перенести и расписать в форме вопросов по каждой структуре из нашего текущего списка, а не просто перечислить, как у нас там
На первого джуна есть вопросы в CSS, которые сформулированы просто перечислением свойств. Лучше сделать чёткие вопросы и подчеркнуть там нюансы, на которые мы обращаем внимание
Здесь будет две части, одна в обычного джуна, другая про продвинутые вещи в старшего.
Есть ощущение что в разделе по сетям есть вопросы, которые не совсем нужны для бекенда. Особенно для уровня джуна, не совсем понятно какую ценность они могут принести.
Например вопросы по модели ОСИ мне совсем не понятны зачем их спрашивать. Эту тему всегда можно самому изучить если есть интерес.
Или вопрос про рест там вообще не к месту, ведь это больше вопрос про подходу к клиеент/серверному общению, и скорее всего его либо на другой раздел надо добавить, либо на другой уровень.
Предлагаю обсудить что там можно убрать и смержить с линуксом.
план по гридам:
grid
?grid
шаблон?fractional unit(fr)
?display: grid
и display: subgrid
?repeat()
и т.д.).grid-gap
?grid-template-areas
(как постоить сетку, как связать элементы)?grid
адаптивным (свойства auto-fill
и auto-fit
)?explicit Grid
и implicid Grid
?grid-auto-flow
?null
, void 0
, boolean
значения по факту 2 раза написан, надо удалить один из нихНа джуне подробней раскрыть, как работать с лоадерами, как с плагинами (их конфигурация и их композинг).
на какого-нибудь мидла добавить написание своих лоадеров и своих плагинов, концептуальные вопросы про то, как они работают.
Надо на один или два уровня мидла добавить вопросы про принципы и техники дебаггинга. Не про работу DevTools, а про концептуальные вещи. Каких баги бывают, какие техники поиска неисправностей есть, как отлаживать проблемы, которые не воспроизводятся локально и тд.
Источники:
исходя из обсуждения
нужно добавить вопросы:
про img
calc
реализация треугольника на чистом css
и про импорт
Arrow functions, template strings, destructuring, for of, spread operator...
При переносе с риззомы у нас потерялась ссылка на альтернативные подходы БЭМу
Сюда можете написать что нужно раскрыть в этом вопросе)
рекомендация от @Znack : "таймстемпы, ISO форматы, работу с интервалами и тд"
Добавить книги Functional light и Mostly adequate guide и вопросы по ним
Предлагаю в новый уровень джуниора здесь на гихабе разместить подмножество нашего старшего джуна. А остальную часть джуна уже здесь как настоящего старшего джуниора оформить.
В уровень обычного (среднего) джуниора перенести:
@in19farkt @Znack @chmnkh @kinda-neat Было бы круто, если бы тут вы предложили свои идеи)
Рассмотреть различные подходы к реализации систем валидации для разных вариаций форм: клиентская валидация, серверная валидация, валидация с погрешностями и тд. Вопросы, которые надо раскрыть в этой теме:
Ну и в любом случае почитать кучу ресурсов на эту тему, не привязываясь к конкретным технологиям и расширить список вопросов, добавить лучшие ресурсы в список к теме.
По-хорошему, в некоторых разделах (как ООП, Паттерны, ФП и тд) стоит включать разного рода вопросы на историческую составляющую, так как это значительно углубляет понимание темы. Мотивация хорошо описана тут: http://tomasp.net/blog/2019/software-engineering/. Возможно, что-то подобное этой статье еще в начале первого мидла положить, чтобы показать почему именно так, а не иначе, сформулированы уровни и зачем их изучать.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.