Найти тему
Видео
Статьи
23 прочтения · 1 год назад
❓ В проекте есть часть в которой очень много плохого легаси кода. Есть несколько программистов, который попали на проект, разобрались в этом легаси и могут выполнять задачи не разваливая этот модуль. Если давать задачи по этой части другим, они не разбираются в коде, а начинают поверх пилит что-то свое, еще больше усложняя поддержку этого модуля. У тех кто разобрался сильно просела мотивация и падает производительность из-за однообразных и скучных задач. Как поднять производительность? Просто переписать — сложно, из-за постоянного потока задач и невозможности в один момент все переключить. Подскажи, пожалуйста, какие-нибудь варианты решения проблемы. —— 2 проблемы, даже 3: 1) Новые программисты не хотят разбираться в легаси и пилят лишь бы отстали. 2) Те, кто разобрался — застряли в легаси и приуныли. 3) легаси не переписывается, а дописывается. Вообще классическая ловушка из-за которой не стоит ловить эту горячую картошку легаси. Не стоит геройствовать и разбираться. Вы навсегда останетесь человеком легаси. Все задачи будут тупо валить на вас. Решать такие проблемы системно мало кто хочет. Я пробовал. Некоторые вещи из советов сработали. По порядку: разобраться с документацией и максимально задокументировать модуль. Далее, новых программистов надо обучать легаси. Т.е. чтобы они программировали не самостоятельно, а в паре с тем, кто разобрался. Только один этот момент может поднять мотивацию. Они увидят, что новых людей вводят системно. Будет желание помочь, потому что это их самих освободит. Легасёров ставить на новые проекты. Отлепить от легаси. Пусть легаси они пишут ТОЛЬКО в паре с новичком. Пусть параллельно пишут что-то новое для души. Мотивацию можно попробовать поднять и рефреймингом поддержки легаси, но лучше дать людям нормально жить, а не трахать им голову манипуляциями про то, как этот модуль важен клиентам и бизнесу. Последнее. От легаси надо избавляться. Про подходы написано в книге Kill it with Fire by Marianne Bellotti. По кусочку или сразу от всего продукта. Копать под него, запрашивать метрики использования. Сколько денег оно генерирует и сколько на него денег тратится. Иногда эти вещи просто никто не контролирует. Ну есть команда, пилят. А то что на 100 тыс выручки у тебя 3 программиста работает, ну ой. Правда что ли? Тогда конечно давайте закроем. Спасибо за #вопросы! Вступай в семью 🫶 | YouTube | Twitter
25 прочтений · 1 год назад
​Gzip побил нейросеть 🥹 В задачах классификации, где нужно просто объекты одного класса по коробочкам разложить, gzip компрессор победил все существующие методы. Да, тот самый зип архиватор. Интуиция состояла в том, что близкие по теме тексты будут сжиматься примерно одинаково. Интуиция подтвердилась. Почитать бумагу: https://aclanthology.org/2023.findings-acl.426 Внимание, алгоритм: Вступай в семью 🫶 | YouTube | Twitter
19 прочтений · 1 год назад
❓ Никита спрашивает https://t.me/nikitonsky_pub/499 Мне совершенно непонятно, почему бы не разрешить человеку работать в пол-силы и получать пол-зарплаты. Почему надо обязательно заебываться и выгорать к хуям? Почему единственный приемлимый work-life баланс с точки зрения работодателя это «максимально разрешенное по ТК количество часов на полной выкладке»? Вроде бы вот я сделал Х работы, дайте мне Y денег. Какая для компании разница, сделал я эту работу за пять дней на пределах своих возможностей или за один чиллово? При равных X и Y? Если я прошу за нее те же деньги? Кнопка, покрашенная заебанным джуном, ничем не отличается от кнопки, покрашенной проходя сеньором. — В действительности когда компания нанимает человека в штат, то это не только объем работы, но и присутствие человека полную неделю. Однако, существуют другие формы занятости: 1) частичная занятость 2) фриланс 3) проектная работа на компанию, 4) свой лайфстайл бизнес. Но тут человек, на пост которого Никита рефлектирует, хочет работать в пол силы, не обязательно 20 часов из 40. Может даже те же 40 часов присутствовать, но не работать. Хз короче. Здесь действительно можно увидеть проблему мотивации. Зачем тебе выгоревший сеньор, который хочет работать на пол ставки? Слишком большой риск, что человек не будет работать на совесть. Возможно будет говнить или снисходительно улыбаться над проблемами, которые ему не по «грейду». Ну или просто футболить, потому что идентифицирует себя как джун. Не член команды, а непонятно что. С другой стороны тебе придется менять все процессы под этого человека, а то и подбирать отдельные задачи. Ведь мы не только кнопки на скорость красим. Некоторые задачи, к сожалению, нужно попой сидеть и ждать пока задеплоится. А у человека часы кончились, он завтра продолжит. Зачем это делать тоже совершенно непонятно. Была попытка сделать подобную компанию с оплатой за таску: Зерокраси. Заработал свои пол зарплаты и отдыхаешь. Не получилось. В-третьих, когда нанимают джуна, таки надеятся вырастить и попользовать мидла. А человек не хочет расти, он уже вырос. Он не станет брать задачи мидлов навырост. Не будет праздновать победу выкатки первого сложного проекта. Не подарит радость менторинга твоим сеньорам. Короче ничего кроме покрашенной кнопки, которую ты специально для человека выбирал, он не сделает. И уйдет через год отдохнувшим, а у тебя ни джуна, ни мидла, которого бы ты успел вырастить не останется. В Германии почти на любой работе можно уйти на 80% за 80% денег. Ничтожно мало количество программистов, которые так поступают. Мне как-то чел прямо на первом собесе сказал, что хочет работать 80% с первого дня. Я на задницу присел и подумал: во дела, мне что придется перестроить все процессы ради 80% сеньора? Мне так-то 100% надо. Может в пайплайне есть кто-то попроще? Челик отвалился не решив простой алгосик на собесе. Или решил 80% тут хз, как посмотреть. Вступай в семью 🫶 | YouTube | Twitter
20 прочтений · 1 год назад
А вот еще рофляна со Scala Есть такая библиотечка в Scala - Akka называется. Это порт идеи акторов erlang на скалу. Все было хорошо, пока в головах у создателей жили левые идеи коммунизма, но 7 сентября ребята показали капиталистический оскал и выкатили ценник за использование их фреймворка. Деньги, ребята решили брать за каждое ЯДРО процессора, который плавится гоняя ваш код. Больше ядер — больше денег Акке. Минимум можно купить 40 ядер. Ох и сгорела же срака у сообщества. Первым делом конечно же форкнули последнюю чистую версию и назвали проект Pekko: pekko.apache.org Такой шанс был назвать Bekka упустили! Короче я сейчас сижу с калькулятором и считаю риски. Прогнуться и платить капиталистам или рискнуть, авось Pekka будет чинить критические баги с той же скоростью. Вообще момент выбран хорошо и доказывает тупик Scala. Ребята посадят на иглу тех, кто уже не может слезть с Акка. Это как если приложение с руби он рейлс переписывать, чтобы вы понимали. Т.е. ребята пользуясь спадающим трендом популярности языка решили на посошок набить себе карманы выжимая деньги их других ребят, котоыре с их поделки уже не могут слезть. Отличная бизнес модель! * да, там есть бесплатная версия для нищих, я вижу, да.
33 прочтения · 1 год назад
❓Привет, у меня вопрос про тимлидерство. Как ты распределяешь задачи между разработчиками? Если давать задачи на выбор есть вероятность, что задачу возьмет некомпетентный разработчик. С другой стороны если давать интересные и сложные задачи только самым продвинутым разработчикам, то другим будет скучно. Возникает вопрос- как никого не обидеть и при этом сохранить эффективность разработки. Может есть какой-то проверенный подход, может их несколько. Спасибо Некомпетентных разработчиков в команде быть не должно. Их надо определять, пробовать подтянуть, если не тянутся — отсеивать. Предположим, что вопрос, про джуна, который возьмет задачу не по силам и не справится. На самом деле не так важно. Важно, что в скраме задачи даются не на человека, а на команду. В канбане первый свободный человек берет верхнюю задачу и начинает ее делать. Т.е. распределять не надо. Надо заботиться о том, чтобы задачи были делаемы. Чтобы задачи были делаемы мы заботимся на уровень выше. На уровне декомпозиции. Здесь обычно работают сеньоры. В зависимости от проекта и мидлы с джунами, иначе они не смогут научиться, но обычно сеньоры. Сеньор нарезает проект, описывает задачи и помогает советом и парным программированием там, где другие буксуют. Вот так и получается и эффективность сохранить, и люди растут, и никому не обидно. Бывают ситуации, что возникает конкуренция вести проект. Надо записывать кто что делал, чтобы распределять проекты поровну. Кажется, я сам себе противоречу? И да и нет. Как менеджер ты распределяешь проекты, но не распределяешь таски на доске. За редким исключением, потому что иногда нужно чтобы конкретный человек быстро сделал срочную или критическую задачу, но это редкость. Спасибо, что присылаете #вопросы! Нажми кнопусик, пришли вопрос 👍 Вступай в семью 🫶 | YouTube | Twitter
16 прочтений · 1 год назад
​Вас ща разорвет, но погнали Пишу я своих ботов спокойно. Думаю, блин, часто боты падают из-за ошибок. Приходится перезапускать. Хочу чтобы eslint мне подсказывал, если я где-то забыл промису catch сделать. Только я дед, eslint у меня не настроен, я же код писать хотел, а не с линтером пердолиться (о, как я был прав!). Ставлю, значит, eslint. Накатываю по старой памяти конфиг airbnb-base. А он мне с порога предлагает все кавычки заменить на одинарные! ЧИВО? Ну ладно, полез в конфиг, добавил quotes: double, смотрю дальше. Строки, говорит, слишком длинные, можно только 100. На этом моменте уже начинает подпекать, но держусь. Ставлю 120. Читаю дальше: у тебя тут запятая пропущена после лямбды блядь! Слыш, это диктант по русскому или программирование? Какая запятая после лямбды? Зачем? Удалил, короче, eslint. Все таки хочу код писать, а не с линтером пердолиться. Семья 🫶 | YouTube | Twitter
88 прочтений · 1 год назад
Написал себе бота, чтобы в твиттер чырыкать из телеграмма. А там же совершенно все испоганено злым Маском. Например, чтобы загрузить картинку нужно использовать АПИ 1.1, а чтобы отправить сам твит с этой картинкой АПИ 2.0. У 1.1 и 2.0 разная авторизация и разные токены. В коде 2 отдельных клиента чтобы это работало. Логиниться нужно тоже 2 раза. Илон Маск это конечно хорошо, но два раза есть два раза.
21 прочтение · 1 год назад
​Для машинного обучения наши алгоритмы — игра Помните, как AlphaGo ИИ система основанная на обучении с подкреплением (reinforcement learning) изобрела новую стратегию в игре Го и выиграла всех мастеров? Группа DeepMind построили на ее основе систему AlphaDev и пробуют с ее помощью улучшать алгоритмы. Первой пала сортировка. AlphaDev получает «игровые очки» если системе удается ускорить сортировку. Путем перебора она изобрела новый алгоритм, который на коротких наборах данных быстрее на 70%, а на больших наборах на 2%. Алгоритм уже запиливают в LLVM и пробуют оптимизировать другие алгоритмы, хеширование, например. Коечно, это просто перебор с обратной связью, но я думаю, что тут важнее результат, а не наличие осмысленности действий. Полученный аглоритм вообще выглядит как ошибка на первый взгляд человека. https://www.deepmind.com/blog/alphadev-discovers-faster-sorting-algorithms Семья 🫶 | YouTube | Twitter
12 прочтений · 1 год назад
❓ Вопрос. Сейчас я столкнулся с проблемой на работе, которая беспокоит меня. У меня нет достаточного количества задач, чтобы заполнить свое время. После планирования, моя загрузка на двухнедельный спринт всего на 1-2 дня. Чтобы заполнить это свободное время, мне предлагают задачи, которые кажутся бессмысленными, например, изменение цвета кнопки. Это вызывает у меня скуку на работе, но в то же время я не могу заниматься чем-то личным, потому что меня все время беспокоит, что я должен что-то говорить на дейли, куда-то списывать время и т. д. Поэтому каждое утро я трачу 30-40 минут на поиск того, чем я могу заняться сегодня. Я не рассматриваю возможность поиска новой работы, поскольку, во-первых, рынок сейчас не благоприятен для этого, и, кроме того, я отработал недостаточно долго на текущем месте работы. — Если вы работаете по спринтам, то работа должна даваться на команду, а не лично. Но скрам конечно все понимают неправильно. В результате у всех проблемы (скрамно). Если твоя работа кончилась, например, ты единственный фронтенд и ты не можешь помочь команде, то ты должен тратить свое время на улучшения и задачи, на которые обычно времени не хватает. Все протестировать, найти и исправить все баги, ускорить все тесты, переписать по приколу на другой фреймворк. Если таких задач нет, то я не понимаю почему ты боишься дейли? Это проблема твоих менеджеров дать тебе работу. На дейли можно и нужно говорить: мои задачи закончились, помочь команде не могу, дайте работу. Да, тебе в итоге находят глупые задачи, но хочется нормальный код писать и больше 2х дней в спринт. Можно попробовать поговорить с начальством. Возможно есть другая команда, которой можно помочь. Или разрешат тратить это время на обучение. Или расскажут, почему перекрашивание кнопки — очень важная работа. Или расскажут когда наконец появится нормальнная работа. Или вообще разрешат найти вторую работу. Рынок конечно холодный и сильно выпендриваться тоже может боком выйти, но и без работы можно выгореть. Поэтому: поговорить с начальством, а дальше по ситуаци. Спасибо, что задаете #вопросы! Семья 🫶 | YouTube | Twitter
31 прочтение · 1 год назад
Про когнитивную нагрузку библиотек В обсуждении поста про два смешных бага возникла довольно интересная дискуссия. Человек утверждал, что не стоит использовать lodash в 2023 потому что уже всё реализовано в самом языке. Lodash это такая библиотека для JS с функциональным сахарком, если что. И я в целом-то понимаю почему. Любая библиотека так или иначе несёт с собой дополнительную когнитивный нагрузку. Это касается не только джаваскрипта. Только библиотека эту нагрузку дает на этапе освоения этой библиотеки. В то время как если постоянно писать руками, то когнитивная нагрузка на чтение этого кода будет с вами всегда. Все любят джаву за ее многословность. Вот это то же самое. Конечно найдется человек, который скажет, что многословность джавы — это плюс и сахарок не нужен. Но если человек хочет страдать — пусть страдает. Да, когда ты видишь код на lodash или на rxjs то сперва очень сложно понять, что происходит. Однако, через недельку все читаешь как английский, даже проще ванильного кода. Тот же rxjs предлагает настолкько удобное управление потоками данных, что игнорировать это просто неразумно. Да, и документация во всплывашках есть везде, чтобы в первый раз прорваться. Тащить библиотеки закрыв глаза, однако не стоит. Критерием я считаю объем кода, который вы планируете заразить. Если это один маленький кусочек, то без библиотеки действительно можно обойтись. Если же вы замечаете, что пишете одни и те же паттерны раз за разом, либо, что вы начали писать свою такую библиотеку в utils — вот тогда да. Только rambda не надо тащить. Бегите от людей, которые ее используют. Я знаю, они будут пытаться вас догнать и объяснить, что вы неправы. Просто спросите как в рамбда реализовано каррирование и, пока рамбдёр объясняет закрыв глаза от удовольствия, вы тихонько смоетесь. Семья 🫶 | YouTube | Twitter
11 прочтений · 1 год назад
2 смешных бага на которые я убил несколько часов 1. Провтыкал, что пробую копировать файл, который собрался в докер образе командой COPY в другую директорию в этом же образе. КАК ЭТО нет папки .next?! Вот же она в образе! Сперва думал проблема в docker multi-stage build. Ну может не копирует из предыдущего образа? Переписал Dockerfile. Задеплоил. Попал на проблему с SSL на сервере. Откатил все назад. Понял что проблема с SSL была из-за смены типа деплоя. Переписал обратно на Dockerfile. Пока переписывал понял почему не копировалось, переписал на multi-stage. 2. Провтыкал, что цепочка lodash не финализирована .value() а соответственно не выполняется. Почему бот не шлет видосы?! Начал дебажить по шагам в консоли. Смотрю, что после каждого шага цепочка не выполняется, если явно не собрать value(). Я-то думал, что _.mapValues() цепочку финалит, а хер. Короче классика 😎
17 прочтений · 1 год назад
❓ Вопрос: Поделись, пожалуйста, что тебя очень грубо говоря мотивирует и как ты организуешь время так что и канал ведешь и подкаст и в бочке успеваешь посидеть и в чатике в тг активно участовать? Я после года работы с тухлым тимлидом от которого только слышал что я не сеньор и должен доказать сначала, что сеньор чтобы куда-то расти, так подвыгорел что уже пол года не могу отойти от того чтобы просто двигать таски в джире, не могу найти силы чтобы ради чего-то продуктивно день выстраивать. — Тут, как будто, два вопроса в одном. Первый про мотивацию, а второй — про расписание. Тем не менее вопросы связаны друг с другом. Мотивация помогает составить расписание, а расписание помогает, когда мотивация снижена. В добавок еще токсичный актор подмешан в лице тухлого лида. С тухлыми лидами очень непросто работать. Даже если решить их полностью игнорировать, то их постоянное жужжание все равно проникает в твой пузырь. Тем более, что они имеют полный доступ к информации о твоих провалах. Поэтому постоянно подкидывают тебе доказательства почему ты плохой, вместо того, чтобы искать доказательства почему ты хороший. На менеджерском это называется horn effect как антоним к halo effect. Т.е. человек запомнил тебя с адскими рогами демона и теперь все видит через эту призму. Бывает и наоборот, когда человек все в тебе видит через призму твоих прошлых заслуг. И то и другое — плохо. Из вопроса не видно ушел ты или нет, но я все больше склоняюсь к тому, что лучше для себя просто уйти от такого токса, чем что-то доказать. Если это не чревато сиюминутной расправой, то таким людям я сразу говорю 1-1 все что думаю об их тактике. Что я вижу, что они делают и что их метод выискивания говна им не поможет. Иногда это помогает как минимум встать на равные. Потому что до этого игра идет сверху вниз. Причем они сверху. В любом случае это помогает внутренне. Ты постоял за себя. С другой стороны есть люди, которые тебя песочат из лучших побуждений, но это обычно можно заметить. Они празднуют твои победы. Скупо, но празднуют. Вот за таких людей лучше держаться. Они очень хорошо умеют держать тебя в твоей зоне развития. Когда задачи чуть сложнее, чем ты можешь сделать. Поэтому ты постоянно растешь. Мотивация. Я теперь всегда начинаю с чек листа: Я голодный? Как хорошо я сегодня спал? Как давно я гулял и тд. Вот в этом видео хорошо человек разложил похожий чек лист https://youtu.be/FWyqusgqVUc. Удивительно, как прогулка с хорошей музыкой может изменить настроение. Иногда музыка нужна грустная, чтобы быстрее пройти через принятие, но это другая тема. Получив обратно дольку мотивации — ее можно развивать во что-то большее. Для меня это проекты с хорошими людьми. Например, курс «Вы приняты» мы делаем с Федей и Марьяной. Без них я скорее всего бы нифига не сделал. Потому что правда в том, что я довольно хаотично организую свое время, хотел бы добавить больше структуры и сейчас работаю над этим. Например, подкаст Team Lead Talks должен выйти раз в 2 недели. Этот график помогает держаться в тонусе. Опять же там я не один, а с Егором. Так же я перенес свои заметки в удобный инструмент и теперь стараюсь закрывать задачи, которые сам себе ставлю. Про инструмент я почти дописал текст для видео. Скоро будет. Но в общем и целом я нахватал разных задач и в итоге мне хочется делать если не одну, то другую. Иногда это заканчивается тем, что я не делаю ни одну из них. Ну чтож, в такие дни я просто отдыхаю. Уже почти научился себя за это не ругать. Проверь базу своего биоробота по чеклисту, уйди из токсичного окружения, ввяжись в интересный проект с поддержкой хороших людей. Составь график. Подсоли публичными обязательствами типа новый выпуск каждые две недели. У тебя все получится! Семья 🫶 | YouTube | Twitter Спасибо, что присылаете #вопросы!
Ролики