Бездомный разработчик
75 subscribers
126 photos
28 videos
28 links
Рабочие зарисовки. Бытовые неурядицы. Псевдоумные рассуждения.
Download Telegram
Так, пора бы уже прекратить лениться и что-нибудь написать. Напишу историю одного неуспеха.
 
Меня зовут Софья, я уже почти две недели живу на Кипре, и я прилетела сюда со второго раза. Выше была истоия с ключами, которые я потеряла за пару часов до выезда в аэропорт. Так вот, я тогда думала, что это худшее, что может случиться, но не тут-то было! В аэропорт я приехала вовремя, на регистрацию пришла одна из первых. Посмотрел сотрудник AirSerbia в мой паспорт и говорит: "А виза-то ваша французская вчера истекла. Другой нет?" А другой, конечно же, нет. Весело это: собрать два чемодана, подготовить кучу документов собаке, заменить водительское, пройти полный чекап в клинике, продумать немалый список медикаментов, которые могут пригодиться, а дату в визе прочитать неправильно. Но делать нечего, пришлось ехать домой.

Самое странное в этой истории - проснуться следующим утром не в том мире, в котором ожидал. Вроде опытные уже проходили. Но тогда, проснувшись утром, оказалось, что мир не такой, каким был вчера. А тут всё наоборот: ждёшь, что сменятся все декорации и будет другой день с другими заботами, а просыпаешься и ничего не изменилось, и ничего из того, что планировалось, не нужно делать. А точнее, всё то, что нужно было делать, сделать не получится. В общем, засадно.
 
Сейчас расскажу, как я собранно и эффективно себя проявила перед лицом такого кризиса. Я посмотрела пару часов в тёмную стену спальней. Позавтракала. Посмотрела ещё пару часов в стену кухни. Написала рекрутеру, что, кажется, на работу я не прилечу. Вот это, пожалуй, было самым стремным: прошла ты собеседование на менеджерскую должность, вся такая умная, профессиональная и эффективная. А за день до выхода пишешь: "Тут такое дело, я в визе своей 06 и 08 перепутала. Мне кажется, я завтра не успею выйти на работу. Можно я через пару неделек попробую снова?" Скажу я вам, по эго бьёт неприятно, пришлось даже заказать в лавке подложку брауншвейгской и камамбер - стандартный депрессивный набор Софьи Алексеевны, и ещё пару часов погрустить в очередную стену.
 
Но колбаса билеты не купит, нужно было искать новые варианты перелёта. Я часто рассказываю, что логистика построения путешествий не мой конёк. Часов через 15 после неудачного вылета я это осознала в очередной раз: билеты AirSerbia не переносились, FlyOne никак не покупались с животными. Выглядело как полный звиздец. Что я сделала? Лучшее из того, что умею - психанула. Да не самый поощряемый подход к решению проблемы, но зато самый эффектный. Да и что поделаешь, если в этом я профессионал! Немного не экологично по отношению к окружающим, я знаю, но, надеюсь, они меня поймут и простят. Люди опытные говорят мне в таких случаях что-то из серии "ляг поспи, и всё пройдёт". В основном проходит.
 
На следующее утро во мне проснулось уже безумное упорство, я сумела купить билеты, подать доки на туристическую визу, и придумать, как сделать собаке новые документы на вылет. А после случилось самое классное: я осознала, как мне повезло! Неожиданно и совершенно прекрасно у меня образовалось дней 10 выходных, когда никто (и прежде всего я сама) от меня ничего не ждёт. И ничего важного не запланировано. И можно ничегошеньки не делать, если не хочется. Это идеально! Подарок судьбы для человека, который знает, что нужного и полезного для себя сделать в ближайшие 48 часов как минимум. Рекомендую.

Мораль конкретно этой истории в том, что не все то трагедия, что нас выносит и пугает. Я, конечно, сама довольно скептически отношусь к подобным заявлениям. Звучит хорошо, но не очень верится. Но, в данном случае сработало отлично 😇
❤9🔥7🙏4👏3🤯1
Ну что, уже месяц как живу и работаю на новом месте. Оказалось, это совсем нестрашно, я уже успешно легализовалась и довольно неплохо втянулась в рабочие процессы. По крайней мере, у меня снова начинает в голове выстраиваться объёмная картинка из людей, систем процессов и их взаимодействий. Пару дней назад я даже уснуть не могла минут сорок, потому что планы в голове вырисовывала.
 
А на этой неделе я написала первый рабочий код на Go, довольна собой как слон, хотя написала всего-то обёртку для партнерской апишки и три теста к ней. Это не много и не сложно, но осознание того, что я могу что-то сделать руками сама, меня сильно успокаивает. Ибо все эти менеджерские думы и разговоры, бесспорно, важны и нужны, но так приятно иногда сесть и написать код — простое и понятное действие с однозначным (ну ладно, не всегда однозначным) результатом.
 
Из забавного: где-то через полторы недели после начала работы мы решили, что выделим большой компонент в отдельный сервис, сели его проектировать, рисовать схемы, описывать взаимодействия. Обсудили, разбежались работать. И тут я осознаю, что мне не нужно бежать и писать какой-то код. Хотя инстинкты просят, очень просят, в голове уже бекенд на плюсах собрался: с ручками, метриками, админкой и всем всем всем. Но писать мне его нечем сейчас. По Go я, конечно, вводный курс на сайте прочитала, но не то чтобы могу прямо сейчас сервис собрать. И это меня спасло. Позволило переосмыслить свою роль, сильно проще делегировать работу, которую сама понимаешь, что сделать не можешь. И это очень классный опыт. Я считаю, ограничения помогают нам не распыляться, выстраивают определённые рамки и помогают сохранить фокус. Как строго типизированные языки не позволяют заменить один объект другим, намекая, что кто-то надизайнил фигню. Так и тут, не можешь выполнить определённую работу сама? Отличненько! Вспомни, что ты не разработчиком устроилась работать. Твоя задача не за людей работать, а помогать им делать их работу лучше, строить команду, помогать выработать совместный вектор движения и ещё кучу всего. Но, понятно, что разработкой я лет двенадцать уже занимаюсь, это самое простое и понятное, и приходится сдерживать себя, чтобы делать не то, что просто, а то, что нужно. Вот так вот.
 
Но! Зато у меня теперь есть гарантированный способ получить дофаминчика: тесты написать или ручку какую-нибудь бахнуть. А может, когда-нибудь, сжалятся надо мной, порефакторить чего-нибудь дадут. Вот это будет праздник. 🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥3
Но, вообще-то, Go странный! Эти его интерфейсы, висящие в воздухе, которые считаются реализованными просто потому, что ты реализовал все функции, выносят мне мозг. Что сложно так было добавить явную привязку, что тип А реализует интерфейс Б?! Как искать-то по коду все типы, для которых интерфейс реализован, мне пока непонятненько 😢
👍1
И так пять дней подряд.. 😜 нужна только картинка: "в субботу наконец, нормально поработаю!"
😁2
Имею привычку записывать важные мысли в заметки на маке. Иногда я так тороплюсь, что заменяю эти мысли на одно-два слова, которые должны пробудить соответствующую ассоциацию. Ключевое слово "должны". Через месяц я читаю все это и не могу понять примерно ничего.

"Привычка писать красиво". Это явно была какая-то умная мысль про код, который нужно всегда писать аккуратно.

"Debezium". Скорее всего всплывал в очередном разговоре и я подумала, что надо бы уже почитать про него, что ли. Но не помню зачем.

Айдишник. Вы же тоже сохраняете в заметках кучу ключей и идишников с тестинга, чтобы были под рукой?

"Ретро в конфетах клиентов". Оставлю без комментариев.
😁5
This media is not supported in your browser
VIEW IN TELEGRAM
😁3👨‍💻2👍1😭1
Я утром — смотрю видео о том, как делают свечи и думаю: “Ремесла, нежно и женственно, как мне нравится и подходят, хочу так!”
Я вечером — смотрю видео про Comundа и думаю: “Разработка. Строго и понятно! Обобщили, смоделировали, погнали. Очень мне подходит!”

Я у психолога — “Понимаете, я никак не могу до конца понять, какая же я на самом деле?” 😅
❤2😁1
Старое видео в ту же тему от моей сестры 😜
This media is not supported in your browser
VIEW IN TELEGRAM
Небольшой комментарий от @sofya_foxx о ее "спонтанных покупках".
😁6😇1
Врываюсь на волне эмоций! Я вчера дочитала “Рифматиста” Сандерсона. Вот этого. Полчаса еще потом не могла заснуть, все думала, как же красив эпизод в конце. И я в полном восторге.

В последнюю пару лет не было обновлений по циклу “Архив Буресвета”, который мне нельзя начинать перечитывать - пропаду минимум на неделю. И поэтому я читала в основном однотомники. “Локон с Изумрудного моря” был прекрасен, но не порекомендуешь новичкам, потому что вся его прелесть раскрывается после того, как прочтешь минимум “Рожденного Туманом”, но лучше бы еще “Элантрис” и “Архив”.

Несколько месяцев назад прочитала “Вы чародей”. Книга классная, но выделяется из остальных, история больше похожа на жанр litRPG, но такой, средненький.

А теперь про “Рифматиста”. Написан в популярном нынче жанре янг-адалт (или он популярен в моих кругах, но не так важно). Прямо такой классический, с подростками, которые определяются в жизни, а помогают им невероятные передряги, в которые те внезапно попадают. “Магия” этого мира построена вокруг геометрии, герои оживляют меловые фигуры и в зависисмости от их геометрических свойств линии и фигуры имеют разгные силы. Сразу признаюсь, что я прямо дотошно не разбирала механику, чтобы найти в ней изъяны, но она значительно проще других механик Сандерсона и визуализируется довольно легко. Есть некоторый вопрос, конечно, к тому, какого уровня геометрию, да и вообще математику там детишки в университете изучают, но это, пожалуй, единственное, от чего я поморщилась. В остальном отчаянно рекомендую. Особенно @anny_klirik, которая никак не хочет читать Сандерсона, сколько ни уговариваю! Отличный перевод, динамичный сюжет, автор умело обходится без роялей в кустах, все красиво и атмосферно. И объем не велик, прочитала за четыре вечера. Хотя хотелось быстрее 😇
👍4
Левчик в гостях. Машина на парковке. Я в самолете. А это значит, что с большой вероятностью сегодня вечером я уже буду в Москве. Как-то так. Если кто-то захочет пересечься в ближайшие две недели - пишите 😇
❤5
Ну вот и реализовался мой кошмар менеджера-параноика 😂
😁5🤣3
This media is not supported in your browser
VIEW IN TELEGRAM
Ну наконец-то мои меланхоличные плейлисты заиграли как надо! А то под этим кипрским солнцем, все казалось, что с ними что-то не так 😂

https://music.yandex.ru/album/11008471/track/67146394
❤4😁4
Один друг сказал мне, что управление командой разработки — это та же разработка, но на уровень выше. Схема развития навыка следующая: библиотеки -> сервисы -> проекты -> люди (=группы проектов). Что-то в этом есть. Разве что разработка на этом уровне больше всего напоминает мне разработку на Perl (вспомнился же), где результат написанной программы зависит от контекста. А итог программы получается каким-то приближением того, что ты собирался запрограммировать. Не в обиду исполнителям, а просто как результат естественного искажения идеи, проходящей через несколько ви́дений. Честно скажу, иногда подбешивает, но жить можно.

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

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

Изворотливости. Когда я всё-таки хочу, чтобы ребята реализовали именно мою идею (ибо мне во сне было виде́ние как правильно). 

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

Настойчивости. Потому что периодически меня явно хотят надуть: подхалтурить или сделать что-то явно другое (не со зла, а от человеческого естества). 

Оптимизму. Когда мне кажется, что как-то всё медленно и мало, ребята постоянно меня удивляют, в итоге умудрившись закрыть бо́льшую часть ОКР-ов. Хотя, возможно, дело в том, что я ещё не поняла, где меня надули.

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

Сегодня провела, первую (стыдоба-то, полгода ведь работаю!) действительно хорошую ретроспективу по итогам прошедшего квартала. С красивым шаблоном, который нашла по рекомендации в канале. Получилось вовлечь ребят и услышать крутые идеи на тему того, за счёт чего можно повысить эффективность. А в конце кто-то отметил, что мы действительно команда, помогаем и усиливаем друг друга. И от этого где-то в моём сердце распустился новый цвет🌻к. Вот так вот. Захотелось поделиться.
🔥8❤5👍1👌1
Я из тех людей, кто имеет очень слабый контакт со своим телом. Если я чем-то увлечена, то я могу забыть поесть, попить, спать нормально не могу, буду всё думать, что да как сделать. В общем, тревожность 80 уровня. А ещё я не чувствую, как устаю. Единственный способ меня остановить — заболеть, и его мой организм активно эксплуатировал последние несколько лет. Горло заболело, температура поднялась — Софья, наконец, вдуплила, что надо лечь спать пораньше. Так и жили.

В какой-то момент мне психолог предлагала оценивать уровень энергии в условных ложках, от одного до десяти, например. Я попробовала. У меня было всё время пять, что намекало: на самом деле кто-то ни фига не может оценить свой уровень энергии. Перед НГ я слушала тренинг о том, как сохранять энергию для C-level руководителей (не спрашивайте, как я туда затесалась), и там услышала про weltory. Кратко — ещё одна штука, которая по вариабельности сердечного ритма, рассчитывает всякие показатели здоровья. Что в ней прикольно лично для меня — как она отображает результаты, наглядненькой такой красно-зелено-желтой жидкостью, которая либо конденсируется, когда ты копишь энергию, либо испаряется в обратном случае. В моём случае.😅

Поставила я его и начала наблюдать. И снова поняла, что ни фига не понимаю в своём состоянии. А вот приложение, что-то просекло.

На обложке наверху (среда) — три показателя, замеряемые в день, когда приложение говорило мне: «Прекрати! Это добром не кончится!», а я не слушала. Глобально, казалось, что энергии у в этот день хватает, потому что я как не в себя рисовала схему освободительного рефакторинга, что должен был избавить меня от слез о несовершенном мире. По субъективным ощущениям, это была ровно та же энергия, на которой я последние три года тянула в Яндексе. Но в очередной раз подтвердилось, что эта энергия — стресс. И как и предвещало приложение, как часто бывало в эти три года — к вечеру у меня разболелась голова так, что я думала, утром их будет две.

Но когда такое меня останавливало? Желание отрефакторить код, и сделать, наконец, красиво, оно ведь сильнее инстинкта самосохранения. На следующий день, вооружившись клавиатурой и приложением, я продолжила реализовывать план «Умри, но сделай». И, внезапно, во второй половине дня вышла из красной зоны в зелёную. И это не только по версии приложения, я действительно почувствовала себя сильно лучше. Из забавного, опубликовала в инсте опрос, что я делала и за счёт чего отдохнула, и мои старые друзья сразу догадались, что я код писала.

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

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

Если не слышали про weltory раньше и хотите посмотреть, вот тут моя реферальная ссылочка. Не то, чтобы я с этого что-то получу, подписку на год я уже оплатила, но мне просто будет приятно знать, что я смогла поделиться полезным. Так что будьте здоровы и пишите красивый код. В разумных дозах это крайне полезно для здоровья разработчика.
🔥8❤2👍1
Не верь осям своим. Или как я битый час пыталась понять, как заставить графану нарисовать совпадающие линии совпадающими.. безуспешно.. может, вы знаете, а? 😭 Я уже, кажется, все настройки перепробовала..

Каждая линия - это отдельный запрос вида

histogram_quantile(0.XX, от чего-то там)

Ну, или просто можете мне посочувствовать. Я сейчас поем и еще подумаю над этим 😅

UPD в настройках включено “stack” . Спасибо!!!
❤1
Привет-привет! Сегодня утром решила написать о том, какая я бабка, потому что почти не использую ChatGPT, да и не очень он мне нужен. К тому же говорят, что не для всякой разработки он хорош, да и вообще... 
Но немного погодя я подумала, что шутка про бабку совсем не шутка, и как-то стрёмно стало. Поэтому решила я провести свой первый эксперимент. Рассказываю.

Задача.
С помощью chatGPT написать простой http-service. И не абы как, а чтобы с классами, интерфейсами, конфигурацией в yaml. То есть сделать что-то, что можно будет дальше красиво и аккуратно развивать. 
Первая итерация без фанатизма, потому что я решила все это дело проделывать на двух языках: на Go, так как он мне сейчас полезен. И на C++, ибо любовь.
Итак, что получилось.

Go:
В первой итерации, конечно, все было а-бы-как и в одной функции main, но простыми пожеланиями тут да там добавить интерфейс, заменить библиотеки для jwt и логирования, все получилось довольно симпатично. AI исполнял мои пожелания, забавно приговаривая: "Это делает код более модульным и удобным для расширения". 
Дальше беру написанный код, спрашиваю как запустить, выполняю go mod, затем go run и сервер заработал.
Итоговый код здесь.

C++ или любовь зла:
Тут у меня все еще на этапе инициализации репозитория что-то пошло не так. И на этапе коммита в main, потому что я решила лицензию (она ведь мне очень нужна) закоммитить напрямую из веба... но вернемся к сути.

Прошу переписать гошный код на С++. Из приятного: нашел нужные мне библиотеки, классы и интерфейсы сохранил, названия, правда, из гошки скопировал, но пока выглядит ок. Не все библиотеки я знаю (я же только на яндексовых плюсах умею), но я ещё поразбираюсь, что там за звери. Из неприятного: про умные указатели он, конечно, не в курсе, надо будет явно всё проговорить. Но это в следующей серии, потому что прежде чем глубоко копаться в коде, я решила его запустить.

Хе-хе. Тут-то мой энтузиазм поугас. CMakeLists.txt он, конечно, мне написал, хотя и не сразу. Я немного окольными путями к этому пришла, потому что на вопрос "как запустить", он мне предложил какой-то нерабочий MakeFile, причём ориентированный на linux (ну ладно, он не знал, хотя... я же из Safari его открываю, недоработочка!). Важным допущением оказалось, что AI подразумевет, будто у меня все библиотеки мира уже подтянуты. Поэтому пришлось разбираться как их установить. С yaml-cpp всё получилось чудесно, но вот с jwt-cpp провал. Он оказалось не поддерживался homebrew, мне предложили собрать его самостоятельно, и пока я сдулась. Потому что хочу документировать все вспомогательные действия, чтобы мой сервис кто угодно мог собрать и запустить. Плюс суббота уже подходит к концу, а мне ещё девчачий роман почитать нужно.

Итоговый код здесь.

Вот так вот. Не знаю, интересно ли вам, но мне было интересно, и я к нему еще вернусь.

P.S. а еще я снова посмотрела на плюсовый код и не поняла, какой CodeStyle он использует...

P.P.S. Затраченное время на код и текст: 4 часа.
🔥6❤1😢1
Довольна как слон, ведь у меня получилось-таки собрать плюсовый проект, который я делала на прошлой неделе.

План, конечно, был более грандиозный. Я хотела и с пакетным менеджером разобраться, и ide настроить нормально, и copilot...

Напомню, в прошлый раз я остановилась на том, что СhatGPT советовал мне собрать jwt-cpp самостоятельно. А вторым пунктом (но почему вторым?! не понимаю) была инструкция, как установить его через пакетный менеджер, но я её сразу не заметила. Но заметила в комментах вашу рекомендацию посмотреть на https://conan.io. Спасибо, вы реально помогаете мне учиться быстрее.

Conan (ну и название…) легко ставится через brew install. Устанавливается не быстро, но всё равно шустрее, чем ydb пересобрать 😅. И есть время почитать, как всё работает: пакетный менеджер подтягивает заголовочные файлы и сборки библиотек под разные платформы, последние хранятся где-то на их серверах. В целом, работает так, как я себе это и представляла: ставишь пакетный менеджер, запускаешь команду, которая определит твой «сборочный профиль». Его можно подкорректировать, если что. Дальше исходя из этого профиля менеджер забирает нужные пакеты. Сами пакеты можно поискать через ConanCenter. Зависимости прописываются в conanfile.txt.

Из забавного: помните рассказывала, как один раз я на собесе кандидату сказала, что  я C++ разработчик, и сразу прилетел вопрос: «В vim-е пишешь?» Я ещё поржала над стереотипами. Но вот мне предлагают создать файлик с зависимостями для пакетного менеджера, и что я делаю? Пишу vim conanfile.txt ... инстинкты...

Вернёмся к пакетам. Офигенно. Когда разберёшься в деталях. Детали, что запустить и как настроить спрашивала у AI. Из хорошего, так как он был в контексте именно моего проекта, то сразу подключал все нужные мне библиотеки, ну почти все. Из подозрительного, под шумок корректировал CMakeLists.txt, как будто вспоминая: «ах да, что-то я в прошлый раз про эту библиотеку забыл!» Из печального, с первого раза, ничего не заводится, но если скармливать ошибки в чат, постепенно становится норм. 

После того как все зависимости подтянулись, начала чинить сборку... всё того же jwt-cpp. И вот тут, конечно, весело. Опущу детали, но скажу, что в итоге своими предложениями AI-ассистент завёл меня в цикл. Он предложил поправить вызовы, появились новые ошибки, начала их править и через некоторое время вернулись к первой нерабочей версии кода😢. И закончился лимит бесплатных вопросов, а я так и не решила, тратить ли на этого умника 20 евро в месяц или нет😂.

В итоге пришлось применить проверенный метод «посидеть и помедитировать на скудные доки, пока не придёт озарение». Наконец, я догадалась, что нужно поставить ещё один пакет, для работы с json payload... не знаю, как об этом догадаться новичку, не качавшему 12 лет dev-интуицию.

Ну вот и всё. Три волшебных часа за компом и, надеюсь, скоро перейду к написанию кода.

Если интересно посмотреть, что получилось (а выглядит довольно лаконичненько), то код тут. (На всякий, код там пока абы какой, его правками я еще не занималась, пока только сборку смотрела. А то решите, что это я сама написала 😂)

Если не лень будет проверить, заведётся ли у вас сборка с первого раза, поделитесь, очень интересно. Мне пока негде проверить.
🔥4👏1
В последние две недели не было времени снова покопаться с кодом, поэтому тут рассказать пока особо нечего. Но! Раз сегодня 8 марта, у меня есть гендерный контент!

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

🌸 Когда нанимали команду Сплита. Не думаю, что рассказываю что-то прямо полезное, но опыт был прикольный.

🌸 Когда какой-то модный бутик придумал как под соусом восьмого марта порекламировать одежду. Меня накрасили, приодели, пофоткали.. а ведь хотела меня мама в 5-м классе отдать в модельную школу, но что-то пошло не так.

🌸 Когда мне было 18 (илии 19) Нашла это видео (я после 50-й секунды), пока искала фотки под флешмоб “Я в 17”. Года идут, а подход к решению проблем все еще бывает актуален.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥1