en
Feedback
Евгений Паромов

Евгений Паромов

Open in Telegram

Автор сообщества https://paromovevg.ru/evolution-community Пишу о грандиозных планах изменения системы IT образования. Об успехах, неудачах, борьбе с собой. И постепенном движении к своей, возможно слишком смелой, цели 🎯 Я: @paromovevg

Show more
3 939
Subscribers
No data24 hours
-87 days
-230 days
Posts Archive
Ретроспектива последних лет Давненько я не писал сюда. Конец года был очень сложным и я просто погрузился в отпуск (взял с 21 декабря). Сейчас доделываю видос, который приостановил из-за отпуска, и возвращаюсь к вам. Изначально хотел написать дежурную ретроспективу 2023, но в процессе понял, что её невозможно понять в отрыве от 2021 и 2022 года. Так что заряжаю серию постов про последние года моей жизни. Надеюсь, вам будет интересно)

Моя жизнь – один большой эксперимент... Я вам недавно рассказывал о своей новой цели — платформе микрокурсов. Решил записывать весь процесс создания платформы, и вообще сделать её оупенсорсной Какой формат видео будет: 1. Я делаю какой-то большой законченный кусок платформы 2. Переписываю всё на камеру с подробными объяснениями. 3. Выкладываю вам на youtube И вам смотрибельно, и у меня платформа двигается – всем выгодно) А ещё важный момент: я в любом случае собирался делать платформу. И мне тут просмотры не настолько важны. Поэтому могу себе позволить не популярные, но важные вещи: 1. Использовать современные технологии 2. Не упрощать. Буду использовать FSD, Тестирование, CI/CD и всё подобное 3. Количество часов видео будет просто огромное) Всё же реальная разработка – это не фигню за 2 часа говнокодинга выдать И первый видос сразу же получился очень необычный для ютуба (https://www.youtube.com/watch?v=nsGusxzitoc) Я 4 часа сетаплю проект) - Настраиваю Staging Production - Добавляю тесты - Добавляю ci/cd - Добавляю sentry Но есть и минусы) У меня узкая специализация на работе. Поэтому в видео будет много вещей, в которых я не особо компетентен. Уже после записи нашёл кучу ошибок и возможностей улучшить. Так что будем допиливать в процессе. (Особенно надеюсь на дельные советы в комментариях) И ещё очень переживаю по поводу безопасности. Я вообще плохо себе представляю, как можно сделать безопасный опен сорс. Так что очень прошу вашей помощи, если вы шарите)

К чему я в результате пришёл 1. Я хочу создать систему образования для продолжающих. 2. Я хочу решить проблему "больших курсов" 3. Я хочу сделать доступными важнейшие для продвижения отрасли знания И те же самые проблемы должна была решить платформа непрерывного обучения, но не получилось. И теперь я иду на второй заход Попытка номер 2: Микрокурсы 100% кто-то уже сделал такое. Идея очевидная. Но если я не знаю об этом, значит недостаточно популярная. Как программисты разбивают монолит на микросервисы, так и я хочу разбить "большие курсы" на много маленьких. Тут, на самом деле, и плюсы те же самые: - Курсы легко создавать - Курсы легко поддерживать - Курсы могут разрабатывать много людей одновременно - Можно выстроить Road map и проходить как полноценный курс - Можно найти только то, что актуально, и изучать точечные необходимые курсы - По зависимостям можно изучить, чего не хватает для понимания конкретного курса - Можно выстроить систему поиска менторов под конкретные курсы "чтобы уточнить у эксперта" - Можно выстроить систему "совместного прохождения как в RPG". Когда под совместный дандж собираются люди примерно одинакового уровня. И расходятся сразу после прохождения. - Также можно взять механику гильдий из RPG - Да и вообще, свобода творчества для игровых механник - Можно в любой момент встроить механики "непрерывного изучения" из прошлой идеи И да, сама концепция не так выгодна с точки зрения денег. Выгоднее продать курс за 100 - 200к, который большинство не пройдёт до конца, чем дать человеку выбор заплатить точечно за то, что ему нужно. Но мои цели выше, чем просто заработать много денег. Денег в любом случае заработаю, а будет там «много» или «очень много», уже не так важно

Я человек идейный, долго жить без цели мне не пришлось Когда я ищу цели, я ищу вещи, которые вызывают во мне трепет. И вот несколько вещей, которые меня прям вдохновляют: 1. Система образования – основа процветания государства. Если нет образованных людей, нет масштабного распространения технологий. Пример – Африка. Кто им мешает делать мопеды, грузовики, удобрения, лекарства? Отсутствие людей, которые знают как это делать. Развитым государствам не выгодно их учить делать это самостоятельно. Выгодно обменивать это за природные ресурсы. 2. Классные образовательные ресурсы влияют на целые отрасли. Хороший пример – learn.javascript. Почти всё что я знаю о js, я взял оттуда. И, уверен, большинство разработчиков, которые начинали со мной, тоже. Идеи, концепции, знания в тысячах голов взяты оттуда. От качества таких вещей зависит качество всей отрасли. Представьте, если в таком образовательном ресурсе был бы FSD, или SOLID. или Тесты. Это было бы в голове у каждого. Это было бы просто. Код всех проектов был бы абсолютно другого качества Особенно это заметно мне, как собеседующему. Почти все отвечают на вопросы одинаково. Как людей научили — так они и отвечают 3. Есть очень острая нехватка образования для "продолжающих". Универы, Курсы, Видосы на Youtube — почти всегда "с нуля". Их смотрят очень много, их покупают очень много. Но вот на следующих этапах категорически сложно искать информацию. Это спрятано в научных работах, мозгах профессионалов, тех же самых университетских программах (но сложные вещи все просто забывают, один раз пройдя) И, даже если кто то пытается делать контент для продвинутых, он обречён на малое количество просмотров и малую востребованность. Ибо нет как таковой культуры и системы образования для продолжающих. + Тут для продолжающих не работает тот же формат, что и для начинающих 4. Большие образовательные форматы — это ужасно. Ужасно именно для "продолжающих". Начинающим нужны полные курсы, полные книжки. И с этим у нас всё хорошо Но дальше всё меняется. Одним нужна база. Другим нужен Redux. Третьим нужен Next.js. Четвёртым алгоритмы. Пятым Linux, а шестым AI. И каждому продолжающему актуален свой уникальный набор знаний Я на этом запоролся при создании курса по React. Спрятал интересные важные знания в формат, который не будут смотреть большинство продолжающих. В результате получилось для начинающих слишком сложно, а продолжающим слишком много и не актуально И ровно по этому принципу я не прохожу даже те курсы для продолжающих, которые вижу: 1. Я не хочу смотреть 10 часов лекций для маленького актуального мне кусочка 2. Я не хочу идти на 4-5 лет вышки, ради нескольких актуальных мне дисциплин 3. Даже если всё актуально, я не могу выделить 5 недель для интенсивного обучения в ограниченном потоке Ещё несколько минусов больших курсов: - Сложно делать - Сложно поддерживать - Сложно проходить - Сложно изучать по частям Все эти тезисы вдохновляют меня. И на их основе очень легко построить цель, которая будет зажигать и направлять длительное время

Грустно, когда ломается цель, которая так сильно мотивировала. Но я был готов к этому. Для меня цели – это расходник. Я просто ищу то, что меня драйвит. Чётко осознавая, что это может обломаться в любой момент и придётся искать новую. Так и произошло, мне пришлось искать новую. Но быстро это не делается. И я решил делать самое понятное из возможного – обыкновенный курс. При чём, по самой интересной для меня теме — FSD. Я не любитель долго готовиться, поэтому уже через неделю начался мой первый пятинедельный онлайн курс. Но цель всё равно нужна. Без неё нет нужной энергии. Глаза не горят. Начинаешь себя жалеть и грустить, когда устаёшь

В момент, когда у меня не получилось запустить платформу, немножко сломались цели. До этого момента я 6 месяцев стремился к этому. Хотел создать и продвигать формат непрерывного обучения. Это было моей максималистичной идеей и хорошо, что я решил пойти по быстрому пути. Когда я сделал платформу, попробовал пописать туда контент, показал его людям, вскрылось несколько важных моментов. 1. От качества обучающих материалов зависит очень много. 2. Делать много контента очень сложно и трудозатратно 3. Делать качественный контент ещё труднее 4. Разнообразие образовательных механник важно 5. Поддерживать непрерывность образовательных потоков сложно Одним словом, “плохо” не работает. А “хорошо” – сложно, пока ресурсов маловато) Осознав это, я быстренько завернул проект, пока степень ответственности ещё позволяла. Но что делать дальше? Я остался в неприятной растерянности 🤔

Всем привет! У меня тут активная стадия курса закончилась, так что возвращаюсь сюда и на Youtube) Немного цифр про курс: - > 100 участников - 15 видео - 12 часов лекций - Очень хардкорный контент По сути, получился всеобъемлющий справочник по FSD и связанным с ним моментам Есть вещи, которые получились. Есть вещи, которые я собираюсь улучшать с каждым следующим курсом. В любом случае, это был первый опыт, и я понял, что записать курс не так просто, как кажется) Если вы хотите погрузиться в тему FSD, продажи не закрываю, вот ссылка https://paromovevg.ru/courses/fsd Покупаете доступ, и курс будет доступен вам до скончания веков. Важный момент: он получился прям хардкорный, учитывайте это. Но рассказать вам сегодня я хочу немного о другом: о внутренних изменениях, которые произошли со мной за это время

Я за час написал сортировку FSD папочек для VIM Сегодня сетаплю новый fsd проект и подумал: "Я что, не белый человек? Пора сд
Я за час написал сортировку FSD папочек для VIM Сегодня сетаплю новый fsd проект и подумал: "Я что, не белый человек? Пора сделать сортировку fsd папочек" Расчехлил документацию nvim-tree. Нашёл там опцию sort.sorter, куда можно передать кастомную функцию сортировки, и дальше уже дело в шляпе. (Ещё очень порадовало, как удобно работает сортировка кортежей в lua. Сначала сравниваются первые элементы, если они равны, сравниваются последующие. Иерархическая сортировка по умолчанию 👍) В общем, получилось сделать за час и 25 строк конфигурации влажную мечту всех FSD разработчиков) Вот за что я люблю vim и его экосистему. А с переходом всей экосистемы на lua, кастомить свой vim стало ещё приятнее.

Я перестаю доверять open source, который не монетизируется Недавно я плотно переехал на NvChad (сборка vim). Эта сборка, как
Я перестаю доверять open source, который не монетизируется Недавно я плотно переехал на NvChad (сборка vim). Эта сборка, как и большинство других, использует внутри себя null-ls. По сути, это набор удобных настроек lsp сервера под все случаи жизни. Этот пакет используют каждый день ооочень много людей, но автор просто взял и перестал его поддерживать. А альтернативы нормальной прямо сейчас вообще нет. Тут мне сразу вспомнилось много подобных историй со среднего размера библиотеками, которые в какой-то момент перестают активно развиваться так как "автор устал" И с появлением блога я теперь очень их понимаю. Ты на энтузиазме очень легко начинаешь что-то делать. Есть много причин, для чего это может быть нужно: признание, уважение, желание двигать индустрию вперёд. Но, если это не является основной работой, рано или поздно силы закончатся. Даже от одной работы можно выгореть, а если у тебя их две? И по этой причине мне очень нравится современный тренд в зарубежном open source, когда проект сразу делается, как стартап. С понятной моделью монетизации, где ты платишь за удобство или какие-то продвинутые фишки, которые чаще всего можно реализовать в обход (но, может, дешевле просто заплатить) В таком случае, успех проекта сразу начинает кормить автора. Проект становится его основной работой, которая скорее всего сильно лучше оплачивается. Такой проект будет развиваться намного интенсивнее и, даже если основной автор выгорит, найдётся куча людей, которые будут продвигать это решение дальше и дальше. Недавно заметил себя на такой мысли: «О, проект монетизируется, значит его точно не забросят» Мне такие технологии сильно спокойнее использовать. Я уверен, что завтра, зайдя в репозиторий, не увижу там страшную надпись, что он заархивирован

Всем привет! Очень классную информацию принёс) Недавно я прочитал классный пост из канала "Будни разработчика" (кстати, крутой канал) и узнал про существование CRDT. Очень меня воодушевила эта штука, но за делами я про неё просто забыл А тут недавно разбирался на работе со всякими Wysiwyg редакторами и, оказалось, что за последние несколько лет инфраструктура совместного редактирования в js очень хорошо развилась, за счёт появления библиотеки Yjs Yjs – это как раз реализация CRDT Меня эта тема увлекла. Начал копаться в библиотеках около Yjs, и, оказалось, что есть несколько инструментов, которые позволяют буквально за 5 минут реализовать совместное редактирование в любом приложении, благодаря https://syncedstore.org/docs/ В общем, я выпал в осадок, как это круто. По сути, в любую форму вашего приложения вы уже сейчас можете добавить совместное редактирование. Просто заменив обычный стор на стор из этой библиотеки. Сервер писать не нужно, так как это работает на WebRTC + нужно лишь поднять готовый сигнальный сервер (Или не поднимать, из коробки работает с дефолтными сигнальными серверами) В общем, на радостях сделал видео: https://youtu.be/LBUgcjWLaDc И, по-любому, запишу ещё несколько видео с развлекушками с этой библиотекой и созданием условной онлайн игры Понятное дело, это в прод тащить нужно очень аккуратно. Но накладные расходы от использования этого решения настолько маленькие, что поэкспериментировать точно можно

Моё мнение: Это как вопрос: «а что, если все блогерами будут?» Всегда будут мидлы, мидлы +, которые будут затаскивать в проекты всякие велосипеды и новые технологии. Так как это просто интересно, дофамин, новый вызов и так далее. Вообще, это один из способов получить преимущество при найме – использовать интересную модную технологию. Поэтому этим могут пользоваться работодатели. Для неважных сервисов новые технологии могут быть полезны, так как они самим стеком будут людей туда привлекать. К тому же, в понятных условиях часто всё новое показывает себя классно, так как основные кейсы авторами продуманы, а проект ещё не слишком сложный, чтобы это выстрелило. Но я лично такой этап уже пережил. Мне теперь больше нравится быстро и эффективно решать задачи, а не развлекаться с инструментами. Просто в какой-то момент у меня майнд сет сменился. И тут очень решает популярность, проверенность и опыт. Большую часть задач на условном react-query я уже с закрытыми глазами решаю. Если что-то новое встречу — stack overflow всегда полон проверенными подходами. + кучу соответствующего тулинга и инфраструктуры В общем, всегда есть новаторы — которым важнее интерес, и они двигают отрасль вперёд. И есть такие как я — пользующиеся и развивающие уже готовые проверенные решения. Пробовал я тут взять app router. Кучу времени уходило сформировать новую структуру проекта с учётом серверных компонентов. А когда захотел сделать фильтры, сохраняемые в query params, оказалось, app router без костылей это не поддерживает. Я плюнул, вернулся к pages роутеру и сделал проект за предсказуемое время

А как быть с новым? Если все будут так же думать, что что-то новое не надо трогать, пока оно не "обжилось", то кто будет двигать индустрию и технологии? Вот условный App Router выходит. Если все сейчас начнут просто выжидать, от этого экосистема не вырастет, потребителей больше не станет. Всё-таки кто-то должен начать строить этот опыт
множества разработчиков
Что думаешь на этот счёт? Я пытался проанализировать эту ситуацию. Допускаю, что, как минимум, разница зарыта в менталитет. Например, на Западе довольно быстро подхватывают новинки, начинают снимать ролики. На наших просторах будто бы больше сторонников проверенных временем решений. Возможно, в моих рассуждениях есть какие-то когнитивные искажения, буду рад дискуссии на эту тему) P.S: полистал на разных источниках инфу про менталитет. Везде информация разнится, но, действительно, везде можно найти хотя бы одну черту, указывающую на эту особенность

Вообще, гибкость мозга – это одна из важнейших штук для специалиста с опытом больше 5 лет. Опыта уже достаточно, чтобы действовать по заученным лекалам большую часть времени и вообще не думать Но это путь в ад) Всё время появляются новые инструменты, а главное, подходы. Которые более эффективны и строятся на опыте множества разработчиков. Но как же хочется всё это проигнорировать – Взять cra место vite – Взять pages routes вместо app router (Кстати, вышла версия 14, скоро буду снова тестить на прод пригодность) – Взять одному тебе известную архитектуру из головы, вместо fsd И да, есть другая крайность – хвататься за всё блестящее. Но тут нужен баланс. Vite уже больше 3х лет, react-query 4+ лет, zustand тоже 4+ лет FSD тоже уже 3+ Это достаточно зрелые решения, которые реально эффективно решают задачи. Просто в наших старпёрских глазах они застыли как какие-то новые блестяшки, хотя это уже далеко не так

Переехал на AstroVim Я работаю на vim уже больше 3х лет. Ещё тогда я собрал себе сборочку со всеми необходимыми плагинами и п
Переехал на AstroVim Я работаю на vim уже больше 3х лет. Ещё тогда я собрал себе сборочку со всеми необходимыми плагинами и просто работал. Но когда занялся блогингом снова эту тему подтянул и удивился, как сильно всё поменялось: – nvim повзрослел и оброс большим количеством lua плагинов – Появилось много качественных готовых сборок nvim – Мой набор плагинов работает сильно медленнее, чем современные готовые сборки (пока coc, здравствуйте lsp срвера) В общем, в этот момент мне стало грустно от ощущения, что становлюсь старпёром, который не следит за трендами. Но я быстро отошёл и решил пересесть на одну из сборок Nvim – Astronvim Почему Astronvim: – Самые современные плагины – Активно поддерживается (последний релиз 3 дня назад) – Быстро работает – Полная кастомизация – Я всё равно не люблю всё люто под себя настраивать, и готовые сборки для меня огонь Самое сложное тут, как всегда, – переучиться на новые связки и забыть старые мышечные паттерны. Но я осознанно иду на это, чтобы развивать гибкость мозга.

Поймал за хвост свою деструктивную установку Недавно заметил за собой очень странную особенность. Всё, что я очень хотел и к чему стремился: Youtube канал, курс, менторинг – вместо интереса и драйва вызывают во мне какое-то ощущение обязаловки. Что я обязан каждый день это делать, как будто меня кто-то заставляет. Как будто проваливаюсь в школьное время и мне нужно делать ненавистные уроки вместо того, чтобы жить... Перед глазами как на яву всплыла ситуация из детства, которая постоянно мне вспоминается. Я делаю уроки. Уроков так много, что я делаю их до самого вечера. Прямо до момента, когда нужно ложиться спать. И мне так обидно... Весь день делал уроки. А когда жить то?! И в этот момент меня как водой холодной окатило. С тех самых пор, Жизнь для меня — это не совершения, ответственность, цели, желания. Жизнь для меня — это видосы на Youtube, сериалы, игры. Очевидно, очень деструктивная фраза "на пенсии наиграюсь", которую я себе говорил ещё недавно, когда снова удалял игры. Как будто всё, что я делаю — это пресловутое «надо» и обязанности. А если мог бы, то играл целыми днями. Вот жизнь то была бы.. Думаю, это последствия моего детства и бессмысленного, апатичного периода. В результате которого я впал на 2 года в натуральную депрессию и игровой запой. Думал, что давно справился с этим. Но, видимо, нет. Последствия тех лет до сих пор тянутся за мной и мешают мне получать удовольствие от «здесь и сейчас». От нового, от совершений, от общения, от моей самой настоящей за все время жизни.

Всем привет! Вчера вышел первый урок по курсу. "Основные Архитектурные принципы, на которых стоит FSD" И там есть очень важна
Всем привет! Вчера вышел первый урок по курсу. "Основные Архитектурные принципы, на которых стоит FSD" И там есть очень важная мысль, которую я хочу сюда вынести: Один из самых главных инструментов Архитектуры на уровне приложения — Инверсия Зависимостей (DI, Dependency Inversion) Не путать с Dependency Inversion Principle (конкретика всегда зависит на абстракцию) и с Dependency Injection – инструментом по внедрению зависимостей через конструкторы (или в поля) Если не знаете, что такое Dependency Inversion — это способ через абстракцию развернуть зависимость. Что такое зависимость? Это когда карточка пользователя использует api сервис. При изменении api сервиса придётся поменять карточку Что такое абстракция? Это тип, интерфейс, любая абстрактная сущность языка, не имеющая реализации Что значит развернуть зависимость? Карточка может определить тип необходимого ей api сервиса. А уже api сервис его реализует. И специальный механизм (Dependency Inejction, или просто руками) на верхнем уровне вложит в пропсы карточки, реализацию api интерфейса Текстом такое очень сложно описать, смотрите скрин выше. Но это не так важно. Важно другое: благодаря тому, что мы можем развернуть зависимости, у нас появляется возможность управления направлением зависимостей. А это значит следующее: – Мы можем защищать модули друг от друга – Выстраивать архитектурные границы – Можем любой модуль сделать независимым и самодостаточным Именно по этому вторым уроком курса будет большой урок по различным способам реализации DI с Typescript и React. Но даже в открытом доступе у меня есть небольшой урок по DIP (Это чуть более узко) https://youtu.be/QQpJen6Oy5A Так что, если вы не понимаете, что такое DI, или отрицаете его существование, то вы просто теряете огромное количество возможностей и архитектурных приёмов. Не надо так)

Фух) Вот мои эмоции от запуска: Я НЕ ОЖИДАЛ, ЧТО ВАС БУДЕТ ТАК МНОГО!) Реально, думал будет человек 20 максимум, а вас уже бо
Фух) Вот мои эмоции от запуска: Я НЕ ОЖИДАЛ, ЧТО ВАС БУДЕТ ТАК МНОГО!) Реально, думал будет человек 20 максимум, а вас уже больше 50. И на тариф со мной все места разобрали меньше, чем за сутки, что тоже невероятно В общем, запуск курса превзошёл мои ожидания. Ребят, всем спасибо за доверие! Теперь я спокоен, и могу с сосредоточиться на том, чтобы курс получился максимально полезным и эффективным. Но и на основной канал постараюсь не забивать. В ближайшее время выйдет забавный ролик, в котором я расскрою тему "Почему результат setTimeout – это макро задача, а обработчик fetch – микро задача?" Вопрос очень интересный и мало кто это по-настоящему понимает. Надеюсь, вам будет также интересно смотреть, как мне рассказывать)

Всем привет! Пока я отхожу от того, что вчера произошло, хочу поделиться своими последними инсайтами За время работы у меня были разные проекты, с командами разных размеров. От проектов, где я был один, до проектов, где было 12 человек в команде. И всегда было интересно — почему так сильно отличается продуктивность. Сравню 2 проекта из своего опыта. 1. На подработке мы с верстальщиком и беком за 5 месяцев парт-тайм работы сделали полноценную обучающую систему. С системой ролей, сложной системой прохождения и статусами, сложным редактором древовидной структуры контента с использованием DnD. При этом всё выглядело, как конфетка, и багов было очень мало. Кстати, сам сайт: https://distant-nik.psychologos.ru/. Я тогда офигевал, когда целые страницы делал за 8-12 часов. 2. И для контраста: я работал в крупной компании, в команде с 7 фронтами. За 7 месяцев сделали конструктор обучающих механик. И, скажу честно, я один бы сделал лучше за это время. Если бы под ногами не мешались всякие джиры, ретро, дейлики, бесконечные архитектурные созвоны, ревью кода и споры из-за запятых, 20 задач с правками слетевших шрифтов. Да, тут тоже были сложные задачи, но не на 50 человеко месяцев. Для меня долго было непонятно: в чём проблема? Почему так сильно отличалась производительность 🤔 И недавно наткнулся на канал https://t.me/vsharovatov. Сначала думал, что он сектант. Но после видео все встало на свои места. Во всех случаях, когда я показывал гипер перфоманс, было мало "процессов", но много командной работы и личной коммуникации. Не было акцента на сроках и тикетах, а был акцент на результате, продукте и удовлетворении клиентов. В общем, пересмотрел свои взгляды к командному менеджменту и словил кучу инсайтов — советую почитать/ посмотреть В приципе, очень много всего полезного узнал с момента, как подписался на каналы в этой папочке https://t.me/addlist/HcU5bwRy7sswODgy

Информация для всех, кто оплатил курс Я добавлю вас в чат в течение сегодняшнего вечера. Только сейчас чай допью, порадуюсь 😄

В поддержку курса, и как первый шаг в популяризации FSD, сделал видео о FSD в 2023 году, и почему я считаю это лучшей Front-end архитектурой на данный момент