PJ Dev – Telegram
PJ Dev
491 subscribers
57 photos
1 video
1 file
65 links
История в прямом эфире о том, как я стал разработчиком, изменил свои привычки и улучшил качество жизни
Download Telegram
Как меня раздражает обилие "обучающих статей\курсов\видео", которые, согласно заголовкам, обещают научить тебя пользоваться технологией, но по факту пересказывают какой-нибудь раздел быстрого старта из документации или дают общее описание, ничего от себя не добавляя. При этом они набирают тысячи просмотров и сотни комментариев. Люди их благодарят за работу, но в чём она заключается... в озвучивании текста или может быть в копипасте с другого сайта еще и без ссылки на источник? Не понимаю.

Вчера пытался подробнее изучить паттерны "Repository" и "Finite State Machine", параллельно изучая vkbottle (асинхронный фреймворк для работы с VK API) и потратил кучу времени на то чтобы найти какие-то стоящие материалы с примерами. Спойлер: с ходу сделать этого не вышло. Кажется, нужно садиться за основательное чтение и разбираться уделив этому немало времени.

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

#Мысливслух
👍86😁4
Нет смысла читать книги на вырост

В последнее время моё обучение происходит в основном при помощи книг. Сижу, потихоньку читаю и делаю некоторые выводы. Одним из них хочу поделиться с вами: "нет смысла читать книги на вырост".

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

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

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

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

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

#Книги #Мысливслух
👍154🤔2🔥1🥰1
Какая же тоска жить в регионе

Получил от "Яндекс.Лицея" приглашение пройти собеседование на должность "Педагог по программированию на Python" (всё-таки уже три года опыта работы). Начал проходить вступительные тесты и изучать информацию. Выяснилось, что одно из условий: "связаться с координатором в городе, узнать о доступности вакансий".

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

Но суровая реальность такова, что одна площадка находится в университете и недоступна. Её представитель прямо сказал, что если вы не работать в университете, то будет проблема с допуском: "Повышенные стандарты безопасности, тяжёлые времена". Да и вообще, набирают они в основном из числа своих сотрудников, чтобы было проще. Предложили за низкую ставку пойти работать к ним, а по совместительству получить возможность вести уроки в Яндекс.Лицее.

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

Тут же на ум пришёл поиск вакансий на HH. По запросу "Python разработчик" предлагают 4500 вариантов. Ставишь город Сургут — сразу 0, Югра — 0, и только в Тюменской области появляется первые 10 вакансий.

Ок, переходим на удалённую работу и вместо 4500 потенциальных вакансий их уже 1300. Вроде всё еще много, но дальше фильтр по опыту работы 1- 3 года и вот их осталось уже 95. Это конечно всё еще много, но сильно ограничивает. Да и как мне кажется, Junior разработчиков всё-таки больше хотят видеть в офисе, чем на удалённой основе.

Еще из интересного, меня пригласили в крупный банк на должность "Ведущий инженер-программист". Звучит солидно, подумал я, но оказывается ведущие инженеры-программисты в банке не программируют, а занимаются тестированием API через Postman и контролем входящих данных. Иногда пишут какие-то простые SQL запросы для составления отчётов.

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

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

#Мысливслух
🤔11👍6😢63💔3
Первый оффер

Подробности расскажу уже после того, как окончательно трудоустроюсь, но первый оффер получен.

Предложили должность "Ведущий backend-разработчик". Только вот вести будет некого: буду единственным бэкендером в команде, что немного смущает. Насколько я понимаю, раньше там было три разработчика, но в последствии штат сокращался и в итоге ушёл последний, чьё место я и займу. Завтра мне дадут перечень документов, необходимых для трудоустройства, и начну работать.

Вакансия par-time на 20 часов в неделю. Стек: Python, Django, DRF, PostgreSQL, Celery, Redis, Poetry, Docker и кучка дополнительных библиотечек. Оплату за такое дело обещают 70 тысяч рублей.

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

#ПодготовкаКтрудоустройству
👍25🔥17🎉105
Начало положено

Первая, если так можно сказать, рабочая неделя, подошла к концу. Она вся была потрачена на то, чтобы разобраться в производственных процессах и кодовой базе. Если с первым всё стало боле менее понятно, хотя не так как я ожидал, то со вторым пока трудности.

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

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

Оба сервиса развернул у себя локально, уже даже успел внести небольшие правки в один из тестов, где была логическая ошибка, и залил это всё на тестовый сервер. Ничего не упало — это радует.

На следующей неделе уже буду делать таски, а потом и мёрдж в мейн, соответственно заливать это всё на прод — ответственный момент.

Пока всё выглядит страшно и очень непонятно. У проекта нет никакой документации, по всему проекту куча комментариев по типу: "Быстрое решение надо исправить", "Попросили захардкодить единицу, потом надо разобраться", "NEED FIX" и т.д. В чём заключается идея, сейчас узнать уже не у кого. Соответственно помочь решить эти вопросы совсем некому, ведь я единственный backend разработчик в компании, и во всём придётся разбираться самому.

#Работа
🤯18🔥13👍72😱2
Сижу на уроке, преподаю детям, заходит администратор и просит выйти на пять минут: "Бывший ученик пришёл, поговорить хочет".

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

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

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

Значит все мои старания прошли не зря. На самом деле родители очень редко вспоминают про педагогов дополнительного образования, ну а дети в силу в своего возраста ещё реже. Может потом кто-то из учеников ещё и на работу к себе возьмёт 😄

#Мысливслух
🔥3213👏4👍2😁2
Мыслей много, хочется всем поделиться, но не успеваю. Уже несколько раз садился писать посты, причём на разные темы, но так не один и не дописал. Позже будут пробовать делать ретроспективу.

А теперь по существу. Если честно, то несколько дней я находился в каком-то шоке от происходящего. Всё сильно не так, как я ожидал. Но чем больше времени проходит, тем ситуация становиться понятнее. Просто видимо у меня были фантазии о каком-то идеальном проекте, а тут суровая реальность. Начал понимать, как всё устроено: отношение людей, процессы. Теперь приспосабливаюсь.

Когда-то я наткнулся на короткое видео, где человек рекомендовал не ругать тех, кто плохо писал код в проекте до тебя, потому что, они могли стать заложником ситуации. Тогда я этого не понял и подумал: "Какая разница как писали до тебя, главное ты пиши нормально". Этакий максимализм, который, обычно, присущ юношам. А теперь сам побывал в ситуации, когда пришлось писать, мягко говоря, плохое решение. Потому что оно быстро закрывает проблему, а времени у нас крайне мало.

Конечно, мы договорились, что потом приведем всё в порядок, но когда наступит это "потом" неизвестно. И таких решений в проекте буквально сотни. Технический долг огромный.

Сейчас начал писать новый модуль. Радует то, что я все лучше и лучше понимаю, как устроен проект. Осваиваю большое количество новых инструментов и технологий. В ближайшей перспективе необходимо будет использовать Celery и Redis. Прям ощущаю, как прогресс идёт большими шагами, значительно быстрей чем во время обучения на курсах. Тем не менее пока нет каокй-то железной уверенности, глаза боится, а руки делают.

#Мысливслух
🔥177👍7🤝1
Эксперт в трудоустройстве

Именно под таким видом меня пригласили на мероприятие практикума, которое проводилось для выпускников курса "IT-Рекрутёр". Рассказал им, как на деле происходят процессы трудоустройства, какие вопросы чаше всего задают HR на скриннгах, о каких-то нелепых ситуациях, что в этих процессах понравилось, а что не очень.

Была ведущая: девушка, которая задавала вопросы и направляла по темам. Мы долго общались, и в целом всё прошло, как мне кажется, очень хорошо. Однако смутило то, что будущие рекрутеры, люди, которые должны быть социально активными, сидели все с выключенными камерами и в лучшем случае задавали вопросы в чате. Только одна девушка в конце мероприятия включила камеру и задала свой вопрос, за что ей отдельная благодарность. Я ожидал такого поведения, когда выступал перед студентами-разработчиками, но не ожидал, что будущие рекрутеры будут вести себя также.

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

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

Моё трудоустройство, через нетворкинг — яркий тому пример. За всё время моего обучения, в лучшем случае я откликнулся на 5 вакансий, и не получил ни одного ответа. Зато в итоге прошёл более 20 скринингов, около 10-15 технических собеседований, выполнил три технических задания. При этом собеседования были на самые разные позиции, как по уровню: от "intern" до "middle+", так и по размеру бизнеса: от маленьких стартапов до бигтехов. В итоге это позволило мне устроился сразу на Middle позицию, ещё и "ведущего" разработчика.

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

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

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

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

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

P.s. много общаюсь с frontend-разработчиком, задумался, что надо бы хотя бы чуть чуть погрузиться во фронт, чтобы понимать, как там устроены процессы. А то почти ничего не знаю. Может есть у кого-нибудь ссылка на материалы, как раньше были "Фронтенд для чайников", только "Фронтенд для бекендеров" :D

#Мысливслух
🔥11👍93
Первая зарплата

Ну всё, теперь меня можно официально назвать backend-разработчиком — получил первую зарплату. В общем, дорос до того уровня, где люди готовы платить мне, при том очень хорошие деньги, за мои навыки. Три года обучения прошли не зря. Ура!

Чем больше работаю над проектом, тем больше понимаю, сколько всего ещё нужно изучить и освоить. Но самое главное, меня очень радует, что мне это всё нравится.

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

К тому же летом закончиться педагогическая деятельности и тогда вообще можно будет разгуляться: побольше времени уделять обучению или начать какой-нибудь свой проект. Может быть присоединиться к чужому проекту или взять какую-то проектную деятельность на подработку. В общем ближе к делу будет видно. Планы далеко идущие

#Мысливслух
1🔥21👍5🎉5❤‍🔥3👏2
Выкатили релиз нового модуля, всё завелось с первого раза и ничего не поломало. Довольный.

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

До конца убедился в своей мысли, что нужно будет уделить время и погрузиться во front часть приложения, но это позже. А пока отлично поладил с фронтом, активно работаем с ним в команде. Получается очень удобно и продуктивно.

В общем пока очень рад тому, что получается в итоге. Страх того, что что-то не получится исчез полностью. Теперь кажется, что при желании и наличии времени можно решить любую задачу.

Конечно, всё ещё часто возникает мысль: "Я не знаю как это делать", но потом садишься, изучаешь материалы и делаешь.

#РабочиеБудни
🔥20👍104
"А куда легче влететь в IT, чтобы побыстрее денежки начать зарабатывать? Желательно побольше денежек!" — довольно часто мне задают такие вопросы. В целом, это актуальная тема для обсуждения в открытых чатах, да и многие люди, знающие об IT только из рекламных материалов, задаются этим вопросом. А после того, как я устроился на работу таких вопросов стало прилетать ещё больше, особенно от знакомых, которые раньше говорили, что учёба, которой я занимаюсь, это баловство и результатов она не принесёт.

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

Недавно, человек буквально написал мне: "Скажи, какой курс мне купить? Backend, Frontend или Тестировщика, чтобы было минимум конкуренции, требовалось минимум знаний и я сразу начал работать. Я прямо сейчас готов его купить".

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

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

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

P.s.
Перед тем как приступить к основательному изучению программирования на Python я около четырёх месяцев занимался самостоятельно. Купил себе простенькую книжку по которой делал задания, изучал основы языка по видео-курсам, писал какие-то микро-программки. Конечно, я тогда до конца не понимал, какую работу мне предстоит делать в будущем, но по крайней мере я уже делал что-то своими руками и смотрел на тех, кто разрабатывает свои сервисы. Я изучал вакансии, смотрел на рынок, читал людей, которые искали работу, читал людей, которые уже учились.

Когда окончательно убедился — нравится,
начал свой большой путь к новой профессии о котором я писал выше во всех предыдущих постах

#Мысливслух
👍15🔥64🤔2💯2
Работа без отпуска — ноутбук необходимость

Учитывая работу в формате "Самозанятый", отпуска, по крайней мере оплачиваемого, не предполагается. Тем временем лето всё ближе и ближе. А это значит, что если и планировать какой-то отпуск вне стен дома, то нужна будет машинка, которая позволит работать из любого места, где есть интернет.

Очень давно не покупал ноутбуки, а не работал за ними ещё дольше: уже очень привык к своему ПК с двумя большими мониторами и удобной периферией.

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

В общем если кто-то из вас активно использует ноутбуки, то поделитесь своими впечатлениями от использования своих устройств. Расскажите чем пользуетесь, чем устройство нравится, а чем не нравится, какие задачи позволяет решать? Буду крайней благодарен.

Ещё есть вопрос системы. Сначала думал, что на ноутбук поставлю Linux, Ubuntu. Всё равно планирую его использовать только для работы. Однако сейчас активно пользуюсь WSL2, и знаете, это очень удобно. По сути та же Ubuntu со всеми её преимуществами терминала, только на Windows. Минусов такого подхода пока не обнаружил и появилась мысль реализовать тоже самое и на ноутбуке. Если кто-то пользуется WSL2 и сталкивался с пробелами, то расскажи с какими и в чём может быть подвох.

В общем буду очень признателен, если поможете с выбором, расскажите, что такое хорошо, а что такое плохо. Бюджет не привожу, потому что не определился с ним. Иногда жаба душит отдавать много денег за устройство на котором я буду работать только при поездках и поэтому смотрю на машинки за 50-70 тысяч, а иногда аппетиты растут и разгоняюсь до 180 тысяч.

#Мысливслух #НуженСовет
4👍2🔥2🥰1🤔1
Декомпозиция задач

Начал решать, как показалось, небольшую задачку: переработать права доступа к некоторым вьюшкам.
Создал отдельный файлик permissions, и начал реализовывать логику. Для проверки доступа, было необходимо добавить в одну из моделек несколько полей — булевых статусов, а из другой наоборот удалить одно из полей, на основе которого, ранее проводилась проверка.

Так вот удаление существующего поля из второй модели потянуло за собой правки в файлах Serializes, Service, Managers и Tests. Потом оказалось, что поле этой модели используется ещё в двух отдельных модулях. И там при примерно такая же картина.

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

Теперь сижу и думаю, насколько это вообще адекватный подход, вносить изменения в таком объёме!? Кажется, что можно сделать какие-то заглушки, чтобы изменения не роняли сервер, и вынести всё в отдельные таски, но вообще не уверен в этом.

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

#РабочиеБудни
🔥5😱42🤔2🤯1
Многие задачи, когда к ним только поступаешь, кажутся очень страшными. Их вообще не хочется решать из-за того, что просто не знаешь как. Но проходит какое-то время, ты начинаешь лучше разобраться в вопросе, проекте, самой задача и все становится понятнее и легче.

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

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

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

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

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

#Мысливслух
👍179💯4🥰1
О спортивных достижениях

Так совпало, что в этом месяце у меня сразу два спортивных достижения. При этом ни на одно из них я не рассчитывал, но очень рад, что всё получилось.

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

2. Занял первое место в любительском турнире по пляжному волейболу. Во время всего турнира, мне казалось, что игра не строится, было допущено много глупых ошибок, и казалось, что хороших результатов ждать не стоит. Но я смотрел на себя изолированно от других, а ошибки были у всех. Упорная борьба плюс доля везения и первое место моё.

Из субъективных достижений: мне удалось сильно повысить свою выносливость. Помню, что пять месяцев назад, на своей первой тренировке, через 2 минуты после начала, я сидел с пульсом 180 и хватался за сердце, а тренер бегал вокруг меня и спрашивал, что случилось. Сейчас же я играю по 2-3 часа без перерывов.

Ещё до тренировок я занимался коррекцией питания, что позволило мне значительно похудеть: с 96 до 85кг. Пока идею похудения я временно поставил на паузу, но спорт делает своё дело, и хоть вес меньше не стал, физическая форма стала намного лучше. Все знакомые с которыми я не очень часто общаюсь, встречают меня фразой "ничего себе ты похудел сильно".

P.s. мне казалось с что с моими ограничениями по здоровью, спорт — это не для меня. Врачи были противоречивы: одни запрещали мне любую активность, другие наоборот говорили, что надо пробовать. Я ходил на разные тренировки, в спортивный зал и наконец нашёл то, что мне нравится. В итоге терпение и тяжёлый труд, дали свои результаты, которым я сейчас очень рад.

#Мысливслух #Спорт
🔥22👏7🏆75👍1
Пришлось заняться DevOps вопросами

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

Захожу в админку, там появились новые поля, все как положено. Захожу на сайт посмотреть на новый объект, а залогиниться не могу. Браузер показывает, что ручка получения токена вернула 200 код, а следующая ручка возвращает 403 ошибку. Полез в ручку проверить, что может вызвать ошибки, но никаких изменений в ней не было и в связанном с ней коде, выглядит все валидно.

Подключился к серверу, зашёл в контейнер докера, чтобы понять, что там происходит. Логов много, решил, что для начала, будет проще скормить их нейронке. Она их быстро пережевала и сказала, что Redis не может выполнить команду SET. Зашёл в контейнер Redis там более подробные логи, но примерно о том же и без новой информации о причинах.

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

Проверяю:
df -h

Занято 99.99% места.

В итоге Redis не мог установить значение из-за того, что просто физически закончилось место. Соответственно из-за этого не работала ручка.

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

#РабочиеБудни
👍165🔥3🥰1😱1
Удержание концентрации

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

Но на самом деле в то время у меня попросту не было больших объёмов информации, которые было бы необходимо удерживать в голове для нормальной работы. Теперь же, мало того, что информации много, так она ещё и чужая, местами непоследовательная, иногда нелогичная и плохо структурированная.

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

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

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

#Мысливслух
🔥13👍106🥰1
Проблема управления зависимостями и версиями Python

Хотел поковыряться в давно забытом pet-проекте, восстановить его в памяти и с новыми знаниями попробовать улучшить. В проекте зависимостями управляет Poetry, и при попытке установить необходимые библиотечки получил ошибку: "Установленная версия Python не соответствует описанной в файле конфигурации pyproject.toml". На работе я использую Python 3.11, а в файле была указана версия 3.12.

Начал разбираться в вопрос. В качестве решения, добрые люди из интернета, предложили использовать Pyenv. Тут же выясняется, что он не работает на Windows и WSL, которым я как раз и пользуюсь, но есть альтернатива, форк от Pyenv — Pyenv-win. Почему-то мне эта идея не понравилась и я приостановил эту затею.

Позже на глаза мне попадается UV. Инструмент, который умеет во всё и сразу. Хочешь версию Python тебе нужную поставит, как Pyenv, хочешь будет управлять зависимостями, как Poetry, а хочешь будет тебе запускать каждый файл в твоём проекте на отдельной версии Python. В общем некий швейцарский нож в мире Python, да ещё и работает быстрее потому что написан на Rust и на всех основных операционных системах. А самое главное, что все его хвалят, да не просто так. В общем тоже попробовал — тоже хвалю.

Сейчас в качестве эксперимента создал для себя шаблон репозитория на GitHub, где используется
1. UV для управления версиями Python и зависимостями;
2. Black форматер;
3. Ruff для линтинга и анализа кода;
4. Mypy для контроля аннотаций типов данных.
5. Pre-commit для запуска всех инструментов перед загрузкой кода в репозиторий.
Детальной настройкой каждого инструмента пока ещё не занимался, надо будет погрузиться в тему поглубже. потому что многое ещё не понятно, но уже протестировал самые базовые настройки такой набор контролирует отлично.

И на последок самое интересное: официально утверждён PEP 751, который устанавливает стандарт lock файла для контроля над зависимостями в Python. Насколько я понял, сейчас, например, Poetry и UV между собой не совместимы потому что по разному генерируют эти файлы, а в будущем каждый разработчик сможет пользоваться удобным для себя инструментом, но в едином стандарте, что реализует их совместимость. Вот такие дела, осталось дождаться пока это всё заработает, а пока буду пользоваться UV.

#Технологии #Poetry #UV
👍84🔥3🤔1
Как же невероятно быстро летит время. С одной стороны ощущение какого-то дня сурка с повторением всех событий, а с другой стороны насыщенности и разнообразности этих событий.

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

Сейчас происходит просто масса всего:
1. По утрам я продолжаю записывать выпуски новостей для радио;
2. По выходным преподаю в школе детям основы программирования на python;
3. В будние дни работаю на основной работе backend-разработчиком;

4. Ежедневно занимаюсь пляжным волейболом;
5. Продолжаю самостоятельно учиться программированию.


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

Событий в жизни очень много, они все очень интересные и желанные. Это всё здорово, но больше всего меня раздражает собственная противоречивость: дел много — устал, дел мало — скучно. Где этот баланс, чтобы всё нравилось?

P.s. На самом деле всё складывается очень хорошо, просто кажется, что я немного устал

#Мысливслух
1🔥10👍76❤‍🔥1👏1
В свободное время пишу небольшой pet, который, возможно, даже получится продать. Знаю компанию, которая заинтересована в таком продукте.

Однако не стал предлагать свои услуги раньше времени, а решил, что сначала разработаю сервис, а уже потом буду договариваться о цене и продаже.

Кажется, что я ничего не теряю: если получится продать – отлично, если не получится – получил необходимый мне опыт. Как смотрите на такие идеи?

Думая об этом, вспомнил как общался с людьми, которые даже тестовые задания не хотели делать бесплатно: "Чё это я бесплатно буду работать". Абсолютно не согласен с такой позицией, особенно, если учесть текущие реалии рынка труда в IT. Не раз говорил и повторю ещё раз, pet-проекты – это очень важно. Они позволяют вам безболезненно получать новые навыки, демонстрируют ваш уровень, иногда, даже позволяют заработать.

P.s. на работе пишу на Django, а pet на FastAPI. Я не перестаю поражаться, как же много Django имеет из коробки, насколько легче с неё стартовать. Но как показывают тренды FastAPI становится всё более популярной, а Django теряет свои позиции.

#Мысливслух
👍12🔥62