Соер.Клуб | Практика сервисной архитектуры
1.04K subscribers
156 photos
20 videos
1 file
195 links
Соер.Клуб - сообщество инженеров, в котором помогают качать технические знания и навыки

Наша LMS - soer.pro
Download Telegram
Предыдущий пост мог бы показаться прогревом перед следующим набором NarisApp, но наборов больше нет и ближайшее время не будет. Пост же о том, что своевременная реакция помогает принимать правильные решения и не тратить время впустую.

Те подходы, которые помогали двигаться по карьере два года назад, сегодня устарели и требуют корректировки с учетом использования ИИ. Продвигать старые идеи, которые перестали работать - не мой стиль.

Поэтому теперь в моих проектах больше упора на архитектуру и нейронные сети.

В реалиях сегодняшнего дня понятие "профессии", как способности решать узкий набор задач, теряет свой смысл, специализация на конкретных технологиях не нужна ни бизнесу, ни самому специалисту, вместо этого нужны люди, которые имеют широкие навыки и понимают, как работают технологии, чтобы оценить качество предложенного ИИ решения.

Недавно, я отрефакторил почти весь html-код Naris с помощью вайб-кодинга, потратил на это один день, если бы тоже самое делали люди, то ушло бы около недели. Экономия времени - в пять раз. Ни один бизнес, который игнорирует такие возможности, не выживет.

Поэтому тактика карьерного развития требует серьезных изменений, в то время как стратегия остается прежней:


👑 расширение своих навыков (захват смежных областей)

👑 понимание ключевых технологий

👑 прокачка личного бренда (все идет к тому, что небольшие команды будут делать огромный объем работу, что повысит конкуренцию на местах)

👑 нетворкинг, как основной инструмент продвижения

👑 быстрая реакция на изменения рынка, а лучше проактивное поведение.

Такая вот непростая, но решаемая задача.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥85💯2👎1
Прошла первая практика по курсу Монолитных архитектур. Хочу поделиться впечатлениями.

Во-первых, понял, что удачно выбрал размер группы. Мы подробно проработали вопросы каждого участника, поэтому практика длилась вместо запланированного часа в 2,5 раза дольше. Если бы сделал группу больше, то пришлось бы жертвовать качеством.

Во-вторых, хорошо проработали практические вопросы:

- я показал четыре основных способа проведения границы в модульном монолите - через общую БД, через прямое взаимодействие, через абстрактный интерфейс, через распределенную транзакцию. Разобрали конкретные плюсы и минусы таких подходов

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

- поговорили про толстые и тонкие границы, как их выявлять, так же как не допускать излишней грануляции системы на компоненты.

И много других вопросов.

Как использовать эти знания для личной пользы?

👑 в первую очередь не пытаться причинять людям радость, пытаясь сделать рабочие проекты лучше. У многих программистов возникает желание сразу стрельнуть из пушки по воробьям и применить все знания на рабочем проекте. Этого делать категорически не следует.

👑 вместо этого нужно применить знания при внедрении новых фич и на участках где давно планировался рефактоинг. Нужно использовать полученные знания в обсуждениях с командой, обдумывании решений и написании нового кода. Сначала начать примерять для себя, а потом уже команда сама заметит улучшения и люди сами начнут задавать вопросы. Главный принцип - внедрять изменения постепенно, без авралов и "давайте все перепишем".

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

👑 менторы могут передать полученные знания своим менти, тем самым помочь им лучше справиться с секцией систем-дизайна на собеседовании.



В целом ощущения от практики офигенные, участники большие молодцы, стараются получить и закрепить новый опыт, а не просто нахвататься новых умных слов. Наша общая цель - практическая польза, и в этом я как раз могу помочь.
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍7💯32
Типовой булщит или кто хорошо пишет в телеграмм?

Важно! Ссылочек не будет ибо мне лень, а если вам не лень, то воспользуйтесь поиском.

Прочитал у Глеба Михеева про папочку каналов с айти тематикой (это старый добрый способ попереливать аудиторию друг другу).

И подумалось "вот оно счастье щас найду что почитать". Но, конечно, не нашел. Такое сейчас время - время в которое каждый хочет писать, но не знает о чем.

Поэтому решил рассказать кто классно пишет в телеграм, может кто-то прочитает и найдёт свою "фишку".

Моё глубокое ИМХО посты в телеграм должны быть как отпечатки пальцев, если твой читатель не может узнать твой стиль без названия канала, то ты что-то делаешь не так.

Могу сходу назвать три канала, в которых есть узнаваемый стиль:

Роман Сакутин - иронично (порой слишком), без комплексов (порой совсем без комплексов) о жизни в современном геймдеве, ну и конечно прогревы на курсы (куда без них?)

ExtremeCode - тонкий юмор, переходящий в мягкий стеб, но бывают и технические грамотные мысли, нужно уметь читать между строк.

Деплой - немного нудно, но это такая приятная гнусавость, с попыткой оригинальной аналитики.

SeniorSoftwareVlogger - напоминает мне шато Бордо: мягкий вкус, очень умеренная кислотность, приятная тёплая терпкость, слегка вяжущее послевкусие.

В общем ищите стиль, господа, ищите стиль.

P.s. мой стиль - хардкор на гвоздях, если кого задели мои слова, то это случайная неслучайность.
🔥64😁3💯2👍1
💡Архитектура - короткий путь к результату

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

Долгое время под оптимизацией понимали вертикальное масштабирование и улучшение алгоритмов программы, но достигнув пределов вертикального роста пришли идеи распределенных вычислений и теперь оптимизация - это выстраивание архитектуры системы так чтобы получить дополнительные мощности за счёт горизонтального роста.

Новые времена создают новых героев, обратили внимание, что сегодня соеры зарабатывают миллионы создавая новые архитектурные решения, а не придумывая алгоритмы (хотя алгоритмы по прежнему важны, но мейнстрим - это систем-дизайн).

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

Не удивлюсь, если после этого поста вы тоже начнёте замечать как много сейчас пишут и говорят о решениях и успехах, которые были получены не благодаря новым алгоритмам, а именно оригинальным идеям в области построение и управления системами, а это и есть архитектура решения.
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥2💯2👌1
По ощущениям Соер.Клуб все больше становится "клубом миллионеров", все больше тех, кто выходит на доход более миллиона рублей в месяц, получая интересные должности и двигаясь по карьере.

Такими темпами скоро надо будет сделать условие входа "заработок от миллиона и выше".
😁19👎3🔥33👍1
💡 Реакция на пост выше 👆 – бесценна.

Проблема моих оппонентов в том, что они взялись за невыполнимую задачу - опровергнуть тезис, что хардскилы можно успешно монетизировать. Через это опровержение они надеются прийти к следствию, что харды не так уж и нужны, можно и без них успешно продвигаться на рынке.

По ощущениям, дела у них идут совсем плохо: идеи карьерного роста через высокую техническую компетенцию на "холодном" рынке прекрасно работают и помогают зарабатывать, в то время как идеи оверемплоймента явно буксуют (трудно найти даже одну работу, не говоря о двух).

Выходит, мы теперь лидируем не только в хардах, но и в деньгах (об этом красноречиво говорит реакция моих визави). Что ж, стратегическая победа соеров - это когда ты и умный, и при деньгах, а твои оппоненты… ну, хотя бы очень стараются сохранить лицо при плохой игре.
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥2💯2😁1👌1
Сегодня у меня вот такой шахматный поединок. Знаю что среди вас есть крутые шахматисты, дайте идеи по дебюту.
1🔥1
Классический пример когда задача рассматривается в "удобных" ограничениях, ведь действительно кажется, что для хождения по собесам не надо знать ничего кроме того, что спрашивают на собесах. Потом, конечно, становится понятно, что границы слишком узкие и чтобы зарабатывать деньги их придётся расширять. 👇👇👇
Знания ≠ большие деньги

Многие синьоры рассказывают, что нужно учить компьютер-сайенс, математику, знать все алгоритмы и понимать, как каждый байт по сети передвигается. Они насмехаются над вкатунами и прочими фронтендерами. При этом у некоторых из них по 20 лет опыта, а получают они как двухлетний мидл.

Знаете, почему так?

Мир платит не за знания, а за ценность. А ценность — это не то, сколько ты знаешь, а какую боль ты можешь закрыть.

Нужно честно ответить себе на вопрос: я хочу быть «настоящим профессионалом» в глазах коллег — или зарабатывать много?

Если цель — зарабатывать, то и осваивать нужно только те навыки, за которые реально платят больше.

Каждую новую инициативу по изучению очередной технологии стоит начинать с вопросов:
Это поможет мне получить повышение сейчас?
Это нужно рынку?
Стану ли я стоить дороже?
Принесёт ли мне это больше денег в ближайшем будущем?

А ещё лучше — сделать что-то вроде кастдева, только для себя. Спросить у тимлида: какие навыки нужны, чтобы вырасти? Поговорить с людьми на +1 грейд выше. Почитать вакансии — в них, на самом деле, много полезного. Это практически карта развития.

А если новый навык никак не повлияет на ваш доход — зачем тогда всё это?
Вам действительно нужно одобрение ветеранов программистского труда?
1👌1
Многие реально не понимаю чем мой кейс отличается от большинства других.

Самое главное отличие - я делаю публичные проекты, которые можно потрогать, принять в них участие, дать свою оценку.

И таких проектов уже много: soer.pro, narisapp, devs2devs, Соер.Клуб. Мне не интересно намекать на какой-то там свой коммерческий опыт, если я не могу предъявить конкретные результаты.

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

Я смотрю на разных блогеров и большая часть из них не имеет никаких публичных проектов, зато постоянно транслирует свое экспертное мнение ничем его не подкрепляя.

Вот и получается с одной стороны практика, а с другой просто мнение, которое по сути может быть искренним заблуждением, ведь никак не проверишь.
💯97👌3🔥2😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Кому интересно вот запись моей зарубы с компом. Здесь показано какие ходы он считал хорошими, какие плохими. Статистика в конце показывает что мне есть ещё чему учиться. Где-то с середины партии я просто шёл в размен, так как идей не было, хотелось упростить позицию, чтобы поменьше считать.

Но мне все равно нравится, по кайфу получилось
👍83🔥2
Сегодня с Алексеем Гладковым в Соер.Клубе обсудили вопрос разработки мультиагентных систем для написания кода. Я на выходных начал писать своего ИИ агента для Nvim и мне было интересно узнать, что делает Алексей (мы оба решаем задачу генерации кода).

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

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

Простые задачи (например, создание лендинга) такой конвейр вывозит, интересно делать что-то более сложное - анализировать пользовательские истории и реализовать api-first подход.

Буду постпенно копать в этом направлении.
🔥101
Forwarded from Кодовая база
Про оценку сроков

Мы ужасно умеем оценивать сроки. Подкидывание монетки или бросание кубика даст верную оценку с той же вероятностью, что и команда опытных программистов. Но бизнесу необходимы сроки, и каждый спринт нам приходится оценивать задачи, надеясь на удачу и на то, что не возникнет непредвиденных проблем.

Однако непредвиденные проблемы возникают практически всегда. Внезапно выясняется, что часть системы, куда нужно интегрировать новую фичу, работает с багами, или наше решение не вписывается в существующую архитектуру. Разумеется, все эти моменты становятся известны уже в процессе решения задачи, но никак не на этапе планирования. Мы сталкиваемся со сложным выбором: провалить сроки или овертаймить.

Каждый из нас решает эту проблему по-своему. Один мой бывший коллега всякий раз очень долго извинялся, когда факапил сроки, и обещал обязательно все сделать сегодня. Но он снова не успевал, и снова извинялся. Другой мой бывший коллега оставался допоздна перед дедлайном, а как-то раз и вовсе заночевал на офисном диване.

В защиту программистов скажу, что проблема оценок существует не только в айти: любой сложный процесс практически невозможно спрогнозировать. Один мой менеджер как-то сказал: представь, что твой врач не может назвать, сколько времени уйдет на лечение, что ты будешь чувствовать? Это был очень плохой пример: как раз в это время я проходила стоматологическое лечение, которое заняло на год больше ожидаемого и оказалось в 2,5 раза дороже изначально планируемой суммы.

Разработка - это сборка конструктора из мелких деталей: никогда не знаешь, подойдёт ли новая деталь к уже собранной части. Это напоминает известную проблему остановки Тьюринга: для любых двух функций F и G мы никогда не можем определить, что их суперпозиция остановится (= заработает как надо). Алан Тьюринг доказал неразрешимость этой проблемы еще 90 лет назад, однако менеджеры по сей день продолжают пытать программистов на очередном дейли вопросом “так, сколько тебе еще делать эту задачу?”.

Однако можно сделать ровно противоположное: не угадывать срок, который уйдет на разработку, а зафиксировать время, которое вы готовы уделить на фичу. Например: “Мы готовы потратить на эту фичу 2–5 дней. Обязательно - чтобы работало вот это. Всё остальное сделаем по возможности”. Тогда вы не будете зависеть от точных оценок, и при любом раскладе сделаете главное.

Первый раз я применила этот способ еще в 2019 году. Я прикинула, что мне нужно около двух недель на задачу. Однако менеджер вернулась ко мне со словами - “бизнес не дал тебе две недели, бизнес дал тебе неделю”. “Хорошо, я могу сшить семь шапок из этой шкурки,” - подумала я. Я сделала каркас фичи за неделю, но не успела добавить несколько удобных штук в свое решение, плюс пропустила некоторые корнер кейсы. Менеджер осталась довольна. А затем попросила доработать решение и учесть корнер кейс. “Хорошо,” - сказала я, - “на это мне нужна еще неделя”. На том и порешили.

Если вы разработчик и от вас требуют конкретные сроки - попробуйте так и сказать: “Я точно успею сделать вот это, а остальное - постараюсь, если не вылезем за дедлайн”. Тогда вы точно сможете рассчитывать на то, что критическая функциональность будет готова в срок, а опциональной можно пренебречь.
👍981
👑 Почему в современном мире нужно постоянно учиться

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

Избежать новой информации невозможно, поэтому для себя стараюсь максимально ограничивать потребление ненужной информации, а в остальном сосредоточиться только на чём-то полезном. Поэтому задаю два важных вопроса:

1. «Что я узнал нового?»
2. «Что из нового оказалось полезным?»

Во втором вопросе есть подвох: не всегда понятно, что считать пользой. Полезной я считаю информацию, которая либо напрямую делает мою жизнь лучше, либо расширяет профессиональную эрудицию.

Мне кажется, что между потреблением полезной и бесполезной информации выбор очевиден.

Теперь почему не получится «не потреблять информацию». Тут всё просто: технологии массмедиа сильно продвинулись вперёд и легко обходят наши защитные механизмы. Тут меч сильно опережает щит.

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

В целом моя идея в том, что если информационного потока нельзя избежать, то нужно его контролировать и делать максимально спокойным и полезным.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
Простой пример того почему не стоит слепо верить ИИ. Это ответ Алисы.
😁15
Вот ещё пример успеха за счёт карьерного роста, хардов и личного бренда. (Мне просто интересно в какой момент мои оппоненты признают, что в их подходе к карьере даже близко таких примеров нет?) 👇👇👇
👍2
⬛️⬜️⚫️⚪️ Брифинг SOER.PRO

#бриф

За последний месяц опубликовано много разных материалов, которые помогают развиваться и строить карьеру в АйТи, чтобы ты мог найти все полезное в одном месте ознакомься с брифом ниже.

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

Лекции по архитектуре

- Лекция. Введение в монолитную архитектуру
- Лекция. Процесс разработки ПО
- Лекция. Документирование при проектировании архитектуры

Воркшопы

- Воркшоп. Признаки монолитной архитектуры в реальных проектах
- Воркшоп. Создание монорепозитория
- Воркшоп. Разбираем пример документирования

Созвоны

- Созвон. Анализ опенсорс приложения и построение его архитектуры
- Созвон. Создание собственного проекта в репозитории
- Созвон. Проектирование и создание собственных решений с помощью ADR

Соер.Клуб

- Обсудили подход "Parse don't validate'
- Обсудили архитектуру мультиагентов ИИ

Гайды

- Как конкурировать с ИИ в ближайшие пять лет, если ты разработчик
- Полный гайд по использованию нетворкинга
- Гайд по карьерному пути для новичков: как системно повышать доход
- Гайд по карьерному пути для профессионалов: как пробить стеклянный потолок


Если хочешь получить максимум за минимальные деньги, то сейчас действует годовое предложение 👑 со скидкой 50%, чтобы им воспользоваться у тебя должна быть действующая подписка STREAM или WORKSHOP (можно оформить эти подписки и сразу апнуться до PRO), далее в разделе "Подписки" нужно щелкнуть "Изменить" и выбрать годовую подписку PRO. Подписка дает максимальный доступ ко всем материалам и год на ознакомление с ними (включая новые материалы). 💡💡💡
Please open Telegram to view this post
VIEW IN TELEGRAM
1
В Соер.Клубе задали вопрос о карьерном пути. Хочу продублировать сюда мой совет, чтобы ты тоже мог им воспользоваться.

1. Я бы начал с простой классификации — «Матрица самооценки умений и предпочтений».
|                     | Нравится    | Не нравится |
|-----------|-------------|---------------|
| Я умею | Тут список | Тут список |
| Я не умею | Тут список | Тут список |

Верхний левый квадрат — «Я умею и мне нравится» — это твоё стратегическое преимущество. Если этот список пустой, то я бы начал решать проблему именно отсюда.

2. Дальше нужно понять, насколько другим людям нужно то, что тебе нравится и что ты умеешь. Если ничего востребованного нет, можно переходить к «Я умею, но мне не нравится» — и туда уже набирать навыки, которые реально пользуются спросом.

3. Последний шаг — разобраться с самопрезентацией. Если у тебя крутые скилы, но сложно говорить с людьми и ещё сложнее подать себя как классный продукт, это тоже нужно исправить.

А дальше - продавать то, что ты отлично умеешь, желательно, чтобы это ещё и нравилось, тогда сможешь гораздо эффективнее двигаться в выбранном стеке.
👍5🔥2🤝211
👑 Следующие две недели на курсе по монолитной архитектуре - огонь 🔥, мы начинаем разбирать вопросы проведения границ и выделения обязанностей, на этой теме "сыпятся" много людей при прохождении SystemDesign, там есть один очень сложный момент - "компоненты и модули", в котором путаются чуть меньше чем все. Коротко суть проблемы описал в этом посте 👇👇👇
Please open Telegram to view this post
VIEW IN TELEGRAM
5