Шляпа отправила меня в Слизерин
СтатистикаУвлекательные приключения джуна в мире Python Обложка не моя, все авторские права у: https://www.deviantart.com/infinitewarp Личный контакт: @hartheim
- Последний пост
- 16 мар. 2025 г.
- Последнее чтение
- 13 авг.
- Постов за неделю
- 0
- Всего постов
- 20
- Тип
- открытый
- Язык
- русский
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Стала ли я после этого супер-дупер-крутым системным аналитиком? Не думаю, но кажется, что знаний у меня прибавилось, да и они стали несколько более системными, упорядоченными. Планирую вернуться и перечитать весь материал спустя какое-то время, как только основное уляжется, да и сделать это в более спокойном темпе. За дополнительную литературу тоже не помешало бы взяться. Да и стоит попробовать переделать все домашки, чтобы сравнить со сделанными ранее. Забавно, что в день получения сертификата мне через несколько часов пришло письмо с новостью, что открыт набор на курс "Стать тимлидом". Сам курс стартует 19 марта, но я пока думаю сделать передышку, да и в тимлиды несколько рановато идти. А вот потом, может быть, и запишусь. Или на "Асинхронную архитектуру", или еще на что-нибудь. В любом случае, курс по анализу систем мне понравился точно. А вот на питоновскую Подлодку все же иду на следующей неделе, билет еще с прошлого года ждет (но вроде его все еще можно купить и сегодня, если кому-то тоже хочется пойти). Очень хочется послушать доклады про оптимизацию и профилирование приложений — стараюсь сейчас этим заниматься сама, но не помешало бы узнать что-то новое. Да и про Rust и cPython что-то узнаю для расширения кругозора. А потом точно возьму перерыв от интенсивного обучения. А как у вас дела? Что изучали новое, на какие интересные события ходили или собираетесь идти?
Итак, понедельник плавно перетек в воскресенье, а я только сейчас нашла силы, чтобы все-таки написать то, что обещала. 2025 год начался довольно бодро: работала над большой задачей плюс время от времени помогала другой разработчице, да и ввязалась в прохождение курса по анализу систем, о чем писала пару постов назад. Что я могу о нем сказать? Было ли ощущение, что мне рано проходить этот курс? Да, не без этого. Не знаю, как у других, но мне несколько не хватало знаний как минимум о видах баз данных, коммуникациях между сервисами. Недостаток опыта, все дела. Какие-то решения по ходу выполнения заданий я принимала, как-то пыталась обосновать, но можно было сделать это лучше. Что узнала на курсе? Да довольно-таки много (и это еще без ныряния в дополнительную литературу): • Event Storming (для схематичного описания системы: как она себя ведет для разных пользователей? из каких процессов состоит? как процессы связаны между собой?) • DDD (система как набор проблем, решения которых надо спроектировать), домен, поддомены и их виды, общий язык, боундед-контексты • связи между элементами системы: coupling (связи между боундед-контекстами) и cohesion (связи внутри боундед-контекстов), виды этого самого coupling • архитектурные характеристики: какие бывают, как искать, как определять структуру проекта на их основе • стейкхолдеры и их требования, матрица стейкхолдеров • Architectural Decision Records для сохранения контекста решения (что приняли и почему, чтобы не забывать самому и знакомить других с решением) • паттерны распиливания монолита: Strangler Fig Application, Tactical Forking, Change Data Capture • в каком порядке стоит приступать к выносу сервисов в случаях, когда есть опыт — нет людей/ресурсов или когда есть люди/ресурсы — нет опыта. Заметки в телефоне подсказывают, что впервые про DDD и Event Storming я услышала еще в мае прошлого года во время Python Day, проходившего в рамках PHDays, но полноценное знакомство состоялось скорее в рамках курса. draw.io и Obsidian стали моими основными инструментами: в первом рисовала схемы, во втором строчила простыни с обоснованиями, а потом соединяла одно с другим в md-файле на гитхабе. Можно было, конечно, воспользоваться и Google Docs, Miro или чем-нибудь еще в этом роде, но мне оказалось проще и удобнее выкладывать решение именно через гитхаб. Добавляла туда и мемы по просьбе Антона ко всем, чтобы читать домашки было веселее и приятнее. Возможно, некоторые из них были несколько кринжовыми, но надеюсь, что кому-нибудь они понравились. Отмечу еще такую классную штуку, как проверки домашек у других проходящих курс: можно увидеть какой-то момент, реализовать который можно было бы иначе, подискутировать по его поводу и, возможно, навести человека на какую-то новую мысль. Или унести какое-то интересное решение себе. В общем, сравнить домашки: в чем и почему отличаются, в чем можно поддержать, а что стоило бы сделать иначе. Делала ли я сами домашки идеально? Нет, косяков было достаточно: где-то больше, где-то меньше. Да и не было цели сделать все идеально, на самом деле — главным было сделать хоть как-то хоть что-то, а потом уже разобраться. Разборы у нас проходили довольно плотно: Антон и схемы рисовал, и объяснял, и показывал, как сделал бы сам, и на вопросы отвечал. Иногда вопросов было слишком много — он доотвечал в чате. В целом курс был довольно интенсивным: в четверг открывался новый урок и проходил разбор домашки с предыдущего урока, в пятницу и на выходных читала теорию, в вечер понедельника начинала делать домашку, во вторник с горящей жопой ее доделывала (кто-то мог делать и быстрее, наверное, но у меня не получалось). Пару раз сдавала минут за пять-пятнадцать до дедлайна. Думаю, в шутке про нагрузку на сабмит домашек (elasticity) в последние несколько минут до дедлайна была и доля шутки, как и в предложении брать хотя бы один дополнительный выходной в неделю. Спасибо начальству, что давало мне возможность во вторник заниматься учебой, а не рабочими задачами.
Выхожу из энергосберегающего режима, чтобы поздравить всех подписчиц с Международным женским днём. Это день, чтобы напомнить себе: вы имеете право говорить "нет", менять решения, требовать уважения и занимать пространство — как в карьере, так и в личной жизни. Неважно, что вы выбираете: работу, семью, хобби, саморазвитие или всё сразу — желаю, чтобы у вас всё получалось. Пусть ваши мечты осуществятся. С праздником, дорогие! Спасибо, что вы — разные. Спортивные и домашние, амбициозные и созерцательные, громкие и тихие. Спасибо, что вы здесь. (´。• ᵕ •。`) P.S. А если сегодня вы тоже в режиме "зарядки" — помните: даже солнце иногда прячется за тучи. И это нормально. P.P.S.Про курс и работу мне есть чем поделиться, но оставим это до понедельника.
А сегодня у меня целые две причины отметиться в блоге: 1) сделала первую домашку на курсе и успела сдать ее до дедлайна! Все еще меня не покидают мысли, что я немножко уровнем не дотягиваю (а то в потоке много серьезных ребят: аналитики, техлиды, тимлиды, да и просто опытные разрабы). Но вроде пока как-то барахтаюсь. Теория написана довольно живо, с примерами на кошках, еще и куча дополнительной литературы, которую я если и изучу полностью, то не совсем скоро. На чтение первой лекции про Event Storming и концептуальный аспект моделирования данных ушли все выходные (можно было и чуточку быстрее, но как уж получилось), на выполнение задания — вечер понедельника и весь рабочий день вторника. Сидела, рисовала схемы в draw.io: на ES с его стикерами ушел весь вечер, на модель данных — все утро, со схемой коммуникаций и обоснованием решений (почему схемы построены так, а не иначе, что я выбрала для реализации проекта — монолит или микросервисы и по какой причине) вышло как-то побыстрее. Вроде под конец относительно приноровилась, но под самый конец поняла, что нужно внести правки в первую схему и слить вместе два контекста. То еще было веселье, но вроде осилила. Антон домашку уже посмотрел и я явно запорола некоторые моменты в ES вроде временной линии или применения полиси. Все равно после следующего урока придется переделывать, так что перечитаю лекцию еще раз, посмотрю что-нибудь из дополнительных материалов и посижу на разборе. А поскольку мне еще нужно оставить отзыв на пару домашек для однокурсников, посмотрю, как это всё реализовали они, и возьму на заметку. 2) а еще сегодня ровно год, как я работаю программистом. Тот самый год, когда я влилась в компанию, успела пережить небольшую реорганизацию в команде, успеть поменторить стажеров, взяться за пару больших проектов и стать сотрудником года. Вот это время пролетело, конечно.
Не ожидала от себя самой, что буду настолько охотно подписываться на всякие новые активности по работе и около, однако это происходит. Сначала в понедельник я увидела пост про курс "Анализ систем" у Феди Борщева. Задумалась. В тот же день увидела пост о нем же у Юли. Выглядит как знак. Вспомнила отзыв об этом курсе от близкого человека... ...пришла к начальству, сказала, что хочу пройти — надо же искать разные способы расти как специалист, может быть, компания хочет в меня вложиться... В итоге проверка на убеждение сработала, сегодня иду на первое занятие. Такие дела.
В общем, 2024 год пролетел стремительно. Чувствую, что за этот год есть прогресс в навыках, но нужно еще так много узнать и попробовать... Надеюсь, что в следующем году это все обязательно удастся. Желаю вам всем, чтобы в 2025 году достижения своих целей, вдохновения для новых свершений и исполнения желаний, здоровья, счастья и всех прочих благ. Пусть ваши проекты будут успешными, а код пишется легко и быстро (на Python в особенности — год Змеи, как-никак). С наступающим вас! (´ω`)ノ━━※・*:・:・゜・:
Итак, последний день в этом году, так что... почему бы и не вернуться в свой блог снова? Почему я молчала все это время? Всё довольно просто: много работала, ходила на некоторые мероприятия и немного играла. На блог времени и сил совсем не осталось. Что у меня произошло за все эти месяцы? • после месяца менторства вернулась к написанию кода. Наставлять стажеров — опыт, конечно, интересный, но мои задачи сами собой не решатся, да и самой код писать тоже хочется. Из четырех у меня остался лишь один стажер, да и то в формате "вот требования, вот код, решай задачу, как только закончишь — можешь отчитываться". • наша команда потихоньку расширяется: обзавелась проджект-менеджером и тестировщицей/теперь уже бэкендером, бэкендер появился и в другой команде. А в новом году ждем нового сисадмина на замену ушедшему. Усиленно намекаем прямым текстом на то, что жизненно необходим еще один фронтендер. • за три месяца запилили нашей командой приложение для нужд начальства. В целом есть еще что допилить, но в целом всё главное есть и работает хорошо. В процессе вспомнила опыт, полученный от одного из тестовых заданий, и прикрутила Celery с Redis для оповещений. Оповещения работают прекрасно, порой даже слишком. Отдельная ненависть уходит сопоставлению дат в разном формате (как сами даты, так и таймштампы). • сходила на IT-продленку от Практикума. Увидела вживую Андрея Себранта (и постеснялась подойти, чтобы поблагодарить за блог и за подкаст), послушала доклады, попыталась познакомиться с несколькими людьми. Контактами с некоторыми обменялась, но в целом попытку в нетворкинг считаю неудачной. • сходила вместе с нашим проджект-менеджером на Soft Weekend. Снова доклады, снова знакомства и не то чтобы удачный опыт с нетворкингом, попытки составить мнение о человеке после 5 вопросов-ответов о себе. Вынесла пару полезных вещей, которые могут пригодиться в будущем. В целом понравилось. • выпросила у начальства билет на питоновскую Подлодку в марте 2025. • приступили к написанию нового приложения — наверное, одного из масштабных для нас на этот момент. Немного затянули сроки, пока пытались выяснить, что от нас хочет заказчик, и приступили позже, чем следовало бы. Много всего понадобится учесть — мне несколько страшно, но писать код все равно придется. А куда деваться. • стала сотрудником года (одним из двух). Думаю, вполне заслуженно: много и быстро решала задачи, предлагала всякие идеи и реализовывала их, да и вообще вроде была хорошим человеком. Хотя у нас много кто молодец и тоже мог бы стать сотрудником года вместо меня.
С праздником всех причастных! :3
без подписи
В сериале “От стажёра до кого-то вроде лида за полгода” новая серия: на меня повесили четырех стажёров сразу, отмазки “я не справляюсь” и “у нас столько задач в бэклоге для них нет” не помогли (при попытке убеждения выпала единичка, не иначе). В итоге только и делаю, что проверяю их код да пишу обратную связь: только одного проверила, как другой уже своё сделал, проверишь другого — третий подъехал. По идее, предполагалось, что они меня разгрузят и у меня появится больше времени на более сложные задачи, но до сложных задач дело так и не доходит... Пока заметно видна польза таких навыков, как внимательно читать документацию и ТЗ, уточнять неявные моменты, да и вообще коммуницировать. ТЗ писалось относительно подробное, где-то я даже приводила пример запроса для получения нужной информации, даже с несколькими случаями — осталось только обработать правильно. В итоге применить информацию удалось раза с третьего. В целом, опыт интересный, но мне сейчас очень сильно хочется самой вернуться к написанию кода. Одного из стажёров — самого опытного, увы — готова забрать другая команда; минус один человек, для которого надо искать задачи и проверять код. Может быть, кто-то скоро отвалится сам из-за начала учебного года. Пока знаю точно только одно: в следующий раз так легко на обучение кого-то соглашаться не буду.
без подписи
без подписи
без подписи
без подписи
без подписи
Минус очередные выходные, плюс одно посещённое мероприятие — сходила на этот самый IT-пикник из предыдущего поста. Активностей там было много: вот тебе стенды предприятий, вот интерактивные зоны, вот музыканты… Но нет, мне проще слушать лекции, чем участвовать в каких-нибудь конкурсах, так что я практически сразу ускакала в сторону лекториев. В секции “Архитектура, надёжность и качество” была классная лекция “Надежность через разрушения. Контролируемые сбои на production” Екатерины Истошиной из Т-банка — про хаос-инжиниринг и его применение на практике. Как ни странно, это не про то, чтобы дать необученным обезьянам ломать прод, как им вздумается, а скорее про то, как ставить эксперименты: выдвигать гипотезы (а что если выключить пару нод? а что если замедлить загрузку страницы?), вносить изменения, фиксировать результат. Если негативные последствия слишком сильны, свернуть эксперимент досрочно. В любом случае сделать выводы. Не слишком хаотично, довольно интересно, но я бы пока таким не рискнула заниматься. В секции продуктового менеджмента тоже были занятные доклады. Например, “Каким должен быть ИИ для зумеров“ — в основном, для чего зумеры могли бы применять чат-ботов. Отдельно повеселилась с такого диковинного направления как роллинг: это же текстовые ролевые игры, родимые! И даже разной степени литературности! Видимо, зумеры переизобрели и их — теперь банановые с чат-ботами. Доклад от Авито в той же секции тоже оказался неплох: применение новых технологий в разных случаях — от создания объявлений до общения с техподдержкой. Категоризация, автоматическое создание описания, суммаризация диалога… Короче, довольно наглядно. Были и другие доклады: что-то оказалось слишком сложным, что-то — не таким запоминающимся, а что-то я и вовсе пропустила. Вроде обещают записи докладов и презентации, но опираясь на прошлогодний опыт, рассчитывала бы скорее только на презентации. Где-то посреди дня пересеклась с коллегами — до пикника добралась только треть нашей команды, включая меня. Обменялись впечатлениями, сфотографировались вместе, потом разбрелись каждый по своим делам. Один из них унес домой много лута — выиграл в различных конкурсах. Возможно, я бы тоже могла унести что-нибудь с собой, но так и не решилась нигде поучаствовать. Может быть, в следующий раз буду посмелее.
Стажёры под моим руководством закрыли первые задачи и уже приступили к следующим. Зато у меня производительность значительно просела: код-ревью занималась, задачи подбирала, а до своего руки часто не доходят. Впрочем, ребята опытом довольны. Ещё и переезд на новый рабочий ноутбук в процессе. Проходит немного болезненно: • клавиатура в целом непривычная: ○ знаки препинания отдалились; ○ комбинации клавиш другие: пальцы по привычке ложатся на Ctrl+<insert any key>, только это больше не срабатывает. Feels like some naebalovo; ○ некоторые клавиши, скорее всего, заменены сочетанием других клавиш — предстоит выяснить, каких именно. • вместо самих программ закрываются лишь их окна; • с подключённым вторым монитором пока не приноровилась работать и т.д. Люди дружно шутят, что скоро я так привыкну, что потом не смогу работать ни на чем другом, но я пока сомневаюсь. Короче, ещё один штраф к скорости. В субботу собираемся идти на IT-пикник. Надеюсь, что будет интересно.
Отдельного упоминания стоит помощь ChatGPT: спросишь у него о проблеме, упомянув flask и react — скажет, что явно кто-то из них виноват. Спросишь: а может, nginx виноват? А может, и он, отвечает он. А может, traefik? Может быть, и он. Соглашается со всеми подозрениями, во всём поддержит и не скажет, что у меня руки не оттуда растут. «Всегда есть возможность, что проблема может быть в коде, который ты написала, или способе настройки конфигураций. Давай рассмотрим список потенциальных причин…» Но мне однозначно нравится его версия насчёт проблем в сети — кажется вполне вероятной. Вот бы ещё нашлось однозначное подтверждение…
Самое время взглянуть на календарь и обнаружить, что я проработала на новом месте уже целых полгода. На самом деле чуточку больше, но кое-кто не успел вовремя написать новый пост. Нашу команду разделили на две, и теперь часть поддерживает внутренние приложения, пока другая часть занимается внешними проектами. Становимся более самостоятельными, планируем сами, кто за какие задачи берётся в следующем месяце и сколько часов планирует потратить. Не сразу получается хорошо, с приоритизацией пока плаваем. В конце июля сами сдавали руководству результаты работы за прошедший месяц – вроде прошло неплохо. В последние дни начальник предлагает мне взять на себя кураторство стажёров. По сути, частично я уже начала этим заниматься: то искала задачи, которые им можно делегировать, то в курс дела вводила, то проводила код-ревью… Хотя всё равно сомневаюсь, что являюсь лучшей кандидатурой на эту роль — у других бэкендеров опыта побольше должно быть. Пара стажёров трудится над одной задачей в dash-приложении. Не без косяков, конечно, но что-то относительно рабочее уже получается — допилить бы местами и станет замечательно. В конце концов, я им отдельно бы присудила дополнительные очки за то, что они разбираются с dash, к которому никто из наших бэкендеров подходить без острой на то необходимости не особо хочет. Третьему стажёру неделю назад объяснили другую задачу, он вроде за неё принялся и что-то там делает, но особо об этом ничего не слышно. Ну посмотрим. А так в целом код пишется, задачи решаются. За исключением одной: в одном из приложений при запросе к определённому роуту время от времени рвётся приходящий в ответе JSON, хоть и приходит всегда со статусом 200. Не самый тяжелый и длинный, бывают и потяжелее/длиннее, при этом приходят без проблем. Запускаю локально бэк, делаю запросы в Postman — приходит полностью. Пишу скрипт для автоматических N запросов к роуту + проверку статуса и длины ответа: всегда 200, всегда полный ответ. Коллега делает запросы: Postman иногда выдаёт ему “Error: aborted message”. В общем, и на фронте смотрели, в чем дело, и на бэке сменили json.dumps() на jsonify(), и библиотеки обновляли, и писали роут, отдающий готовый список словарей — было подозрение, что изначальные данные, обрабатываемые функцией, приходили не полностью. Меняли количество воркеров, конфигурацию nginx, разворачивали без прокси — результат один: у меня при запросе к бэку в Postman — вне зависимости, локальному, на деве или на проде — всегда всё приходит, у коллеги прерывается. В общем, потратили чуть ли не пару недель на задачу и в итоге отложили её, сделаем ещё один подход позднее. Несколько расстроена этим.
Что там в итоге с хакатоном-то спустя две недели? А вот что: раз YandexGPT использовать запретили, наши ребята решили приручить Llama3. Поскольку я конкретно этим не занималась, то опишу вкратце, без особых подробностей. Полноценным дообучением заниматься не стали — вместо этого применили метод RAG (Retrieval Augmented Generation): подняли контейнер с Ollama и Open WebUI в Docker. Через Open WebUI скормили нейросети документацию, из которой нужно брать ответы, чтобы данные из документации превратилась в вектора, хранящиеся в векторной базе данных. В дальнейшем при запросе к нейросети этот запрос по похожему алгоритму тоже преобразовывается в вектора, который потом сравнивается с векторами из базы данных: ищутся те вектора, которые наиболее близки к векторам запроса. Найденное вместе с запросом подается нейросети, на основе этого она и формирует ответ. В целом подробнее про этот метод можно почитать здесь на Хабре — как мне кажется, описано вполне понятно. Что же до результата… Ответ Llama вполне генерировала — на первый взгляд, вполне дельные, но воды в них наливала иногда знатно, несмотря на то, что мы подкрутили ей температуру чуть ли не на минимальный уровень, чтобы она особо не креативила. Иногда заверяла, что передаст запрос пользователя разработчикам, чтобы те добавили новую функцию в приложении (передавать что-то разработчикам, конечно же, никто не собирался), один раз даже открыла в себе билингва: “Я recommends вам это и это…” Впрочем, на тестовых данных ответила вполне сносно, после чего системный промпт был обновлен… И это сыграло с нами плохую шутку. Презентация прошла вполне хорошо: и про чат-бот рассказали, и показали, что мы думаем о потребностях бизнеса. На демонстрации чат-бот нас несколько подвел: где-то налил воды и ответил не особо точно, где-то не понял вопрос… Короче, 14 место из 51. Там были вполне неплохие решения, так что не особо жалко. Но вот если бы был еще денечек, чтобы можно было попытаться повысить точность… Да и если бы ТЗ сразу было нормально сформировано: мол, не использовать это, оценивать будем прежде всего этого, а не так, что дадим вам несколько критериев, а сами упор сделаем прежде всего на чем-то одном. Зато опыт. Начальник весьма воодушевлен и уже нашел новые хакатоны, где мы могли бы поучаствовать. Я же пока сомневаюсь, буду ли принимать участие: не спать до середины ночи и пытаться уложиться в маленький срок оказалось несколько тяжеловато. Вот если бы отдохнуть как следует… P.S. После хакатона наткнулась на вот такую статью про то, что может выдать нейросеть. Спасибо, что мы писали чат-бота не для поваров или врачей.