✍️ #notes | Проект Феникс
На момент подготовки первой версии этого обзора мне казалось, что описанные в книге проблемы намеренно завышены. Да, в моей практике бывали спешка и размытые приоритеты, но система работала устойчиво.
Сегодня ситуация изменилась. Я лично увидел то, о чем писали авторы. Именно в этот момент идеи из "Проект Феникс" перестали восприниматься как теория. Они стали точным описанием происходящего. Жаль лишь, что я оказался в начале описываемых событий 😅
Но в этом и заключается ценность книги. Она не предлагает простых рецептов, а помогает подготовиться к возможным проблемам: увидеть систему целиком, понять природу хаоса и направление, в котором имеет смысл двигаться.
Это книга НЕ про IT как таковое, а про мышление и ответственность. Именно поэтому она остаётся актуальной и будет полезна каждому. Особенно тем, кто работает над построением устойчивого и управляемого рабочего цикла в компании.
На момент подготовки первой версии этого обзора мне казалось, что описанные в книге проблемы намеренно завышены. Да, в моей практике бывали спешка и размытые приоритеты, но система работала устойчиво.
Сегодня ситуация изменилась. Я лично увидел то, о чем писали авторы. Именно в этот момент идеи из "Проект Феникс" перестали восприниматься как теория. Они стали точным описанием происходящего. Жаль лишь, что я оказался в начале описываемых событий 😅
Но в этом и заключается ценность книги. Она не предлагает простых рецептов, а помогает подготовиться к возможным проблемам: увидеть систему целиком, понять природу хаоса и направление, в котором имеет смысл двигаться.
Это книга НЕ про IT как таковое, а про мышление и ответственность. Именно поэтому она остаётся актуальной и будет полезна каждому. Особенно тем, кто работает над построением устойчивого и управляемого рабочего цикла в компании.
🔥2
🚀 #steps | Week 30 / 365
Выходим из новогодней спячки и фиксируем приоритеты на ближайшие 3 месяца.
📚 Книги:
1) Сказать жизни «Да!»
2) Can’t Hurt Me
3) Never Finished
🎓 Обучение до конца января:
1) SQM — курс Егора Бугаенко
2) CS50 — курс Гарвардского университета
3) Английский A0 — курс Александра Бебриса
🎓 Следующие 2 месяца:
1) Английский A1
2) SQL — курс Hexlet
Немного мотивации, немного теории и один прикладной курс для более продуктивной работы. Step by step.
Выходим из новогодней спячки и фиксируем приоритеты на ближайшие 3 месяца.
📚 Книги:
1) Сказать жизни «Да!»
2) Can’t Hurt Me
3) Never Finished
🎓 Обучение до конца января:
1) SQM — курс Егора Бугаенко
2) CS50 — курс Гарвардского университета
3) Английский A0 — курс Александра Бебриса
🎓 Следующие 2 месяца:
1) Английский A1
2) SQL — курс Hexlet
Немного мотивации, немного теории и один прикладной курс для более продуктивной работы. Step by step.
🔥2
🚀 #steps | Week 32 / 365
📆 Закончился первый месяц года. Текущие результаты ниже запланированных, но это перестало выбивать из ритма.
Сейчас:
—завершить прочтение книги и подготовить отдельный пост.
Дальше:
— остальные цели, часть которых планирую закрыть в течение следующей недели;
— перейти к изучению курса по SQL.
Отдельный фокус:
— запланирован разговор с руководителем направления, на котором буду прощупываю возможные варианты развития и перехода на другие роли.
Продолжаем движение. Step by step.
📆 Закончился первый месяц года. Текущие результаты ниже запланированных, но это перестало выбивать из ритма.
Сейчас:
—
Дальше:
— остальные цели, часть которых планирую закрыть в течение следующей недели;
— перейти к изучению курса по SQL.
Отдельный фокус:
— запланирован разговор с руководителем направления, на котором буду прощупываю возможные варианты развития и перехода на другие роли.
Продолжаем движение. Step by step.
👍1
pointzero
🚀 #steps | Week 32 / 365 📆 Закончился первый месяц года. Текущие результаты ниже запланированных, но это перестало выбивать из ритма. Сейчас: — завершить прочтение книги и подготовить отдельный пост. Дальше: — остальные цели, часть которых планирую закрыть…
✍️ #notes | Упрямство духа
(По книге Виктора Франкла: “Сказать жизни «Да!»”)
Главная идея книги: "У человека можно отнять всё, кроме свободы выбора". Не свободы обстоятельств, не свободы тела, а свободы отношения к происходящему.
Франкл показывает, что человек ломается не от боли как таковой, а от утраты смысла делать выбор. Когда исчезает понимание "зачем", то цель размывается и пропадает внутренняя опора. Поэтому мне стала близка философия Дэвида Гоггинса. Не нужно искать смысл, чтобы двигаться. Нужно двигаться, чтобы обрести смысл.
Из этого следуют две важные мысли. Первая: "Смерть и страдание придают бытию ценность". Они снимают иллюзии и возвращают значимость не только маленьким победам, но даже самым обыденным вещам. При этом важно не романтизировать и не превращать их в оправдание бездействия.
Вторая касается иллюзии "упущенных возможностей". Иногда кажется, что главный путь уже позади, что пережитые невзгоды не дали ничего. Но это ошибка перспективы. Мы цепляемся за прошлые возможности лишь потому, что не знаем будущего. А пережитые трудности — это не пустая трата времени, а опыт. Он начинает работать позже, когда появляется нужный контекст. И часто, очень неожиданный.
Франкл приходит к простому, но жёсткому выводу: жизнь не обязана быть справедливой, но она всегда требует ответа. И отвечать на неё можно только действием. Даже тогда, когда кажется, что отвечать уже нечем.
(По книге Виктора Франкла: “Сказать жизни «Да!»”)
Главная идея книги: "У человека можно отнять всё, кроме свободы выбора". Не свободы обстоятельств, не свободы тела, а свободы отношения к происходящему.
Франкл показывает, что человек ломается не от боли как таковой, а от утраты смысла делать выбор. Когда исчезает понимание "зачем", то цель размывается и пропадает внутренняя опора. Поэтому мне стала близка философия Дэвида Гоггинса. Не нужно искать смысл, чтобы двигаться. Нужно двигаться, чтобы обрести смысл.
Из этого следуют две важные мысли. Первая: "Смерть и страдание придают бытию ценность". Они снимают иллюзии и возвращают значимость не только маленьким победам, но даже самым обыденным вещам. При этом важно не романтизировать и не превращать их в оправдание бездействия.
Вторая касается иллюзии "упущенных возможностей". Иногда кажется, что главный путь уже позади, что пережитые невзгоды не дали ничего. Но это ошибка перспективы. Мы цепляемся за прошлые возможности лишь потому, что не знаем будущего. А пережитые трудности — это не пустая трата времени, а опыт. Он начинает работать позже, когда появляется нужный контекст. И часто, очень неожиданный.
Франкл приходит к простому, но жёсткому выводу: жизнь не обязана быть справедливой, но она всегда требует ответа. И отвечать на неё можно только действием. Даже тогда, когда кажется, что отвечать уже нечем.
💻 #learning | CS50
Пока рынок финансовых активов продолжает лихорадить (биткоин впервые за долгое время опустился к уровню ~60 000), я закончил CS50.
Это не тот курс, после которого выходишь на рынок готовым специалистом. CS50 — про расширение кругозора в сфере IT. Тут можно получить фундамент в виде алгоритмики, работы с памятью и БД, а также соприкоснуться с базовыми идеями ИИ. И это при том, что я проходил далеко не самую актуальную версию, а курс 2015 года в переводе от JavaRush. Тем не менее ценность от этого почти не пострадала.
Я бы рекомендовал CS50 тем, кто только только задумывается о входе в IT. Просмотр этого курса даст ответ на вопрос: интересна ли вам эта сфера или стоит искать другое направление.
Я же впервые столкнулся с CS50 ещё в 2022 году. Тогда он зацепил атмосферой и ощущением причастности. Я не просто смотрел лекции, я будто становился студентом Гарварда. Удивительно, но это ощущение не исчезло и в 2026. К чему это привело? Я добавил себе в коллекцию еще одну цель: побывать в этом университете. И будет отлично побывать там в роли студента, а не туриста 👨🎓
This was CS50. Thank you!
Пока рынок финансовых активов продолжает лихорадить (биткоин впервые за долгое время опустился к уровню ~60 000), я закончил CS50.
Это не тот курс, после которого выходишь на рынок готовым специалистом. CS50 — про расширение кругозора в сфере IT. Тут можно получить фундамент в виде алгоритмики, работы с памятью и БД, а также соприкоснуться с базовыми идеями ИИ. И это при том, что я проходил далеко не самую актуальную версию, а курс 2015 года в переводе от JavaRush. Тем не менее ценность от этого почти не пострадала.
Я бы рекомендовал CS50 тем, кто только только задумывается о входе в IT. Просмотр этого курса даст ответ на вопрос: интересна ли вам эта сфера или стоит искать другое направление.
Я же впервые столкнулся с CS50 ещё в 2022 году. Тогда он зацепил атмосферой и ощущением причастности. Я не просто смотрел лекции, я будто становился студентом Гарварда. Удивительно, но это ощущение не исчезло и в 2026. К чему это привело? Я добавил себе в коллекцию еще одну цель: побывать в этом университете. И будет отлично побывать там в роли студента, а не туриста 👨🎓
This was CS50. Thank you!
👍3
🚀 #steps | Week 36 / 365
1/10 пути позади, а до конечной точки всё так же далеко, как и в начале. Это немного давит, но спасает фиксация реализованных задач. Приятно осознавать, что не схожу с этого марафона.
Что успело произойти:
— накоплено 2 / 1000;
— куплена камера - пробую выйти на YouTube;
— курс английского уровня A0 завершён.
Что дальше:
— смещён акцент по SQL с платформы Hexlet, на площадку EPAM;
— продолжаю проходить SQM (Егор Бугаенко);
— перешёл на уровень A1.
Двигаюсь дальше. Step by step.
1/10 пути позади, а до конечной точки всё так же далеко, как и в начале. Это немного давит, но спасает фиксация реализованных задач. Приятно осознавать, что не схожу с этого марафона.
Что успело произойти:
— накоплено 2 / 1000;
— куплена камера - пробую выйти на YouTube;
— курс английского уровня A0 завершён.
Что дальше:
— смещён акцент по SQL с платформы Hexlet, на площадку EPAM;
— продолжаю проходить SQM (Егор Бугаенко);
— перешёл на уровень A1.
Двигаюсь дальше. Step by step.
🔥2👍1
🚀 #steps | Week 40 / 365
Подходит к концу неделя 40, а вместе с ней и третий месяц этого года.
Сейчас хочется зафиксировать тему тестирования кода. Очень понравилась эта часть курса SQM. В отдельном посте (а может и постах) разберу её глубже: что такое coverage, какие бывают метрики и где они реально полезны, а где только создают иллюзию качества.
По моим ощущениям месяц получился немного слабее, чем планировалось: чтение и изучение языка выпало из моего графика. Основной фокус сейчас на:
• Курс SQM;
• Курс SQL. Прохожу его на платформе SQL Academy, которая стала приятным открытием. Очень подходящий для меня формат "теория -> практика". За рекомендацию спасибо автору @wayout_journal 🤝
Еще один вектор, до которого я пока не дошел — съёмка. Остановился на этапе ожидания линзы. С китовым объективом работать не получается.Он совсем не мотивирует 🥲
Дальше — больше. Step by step.
Подходит к концу неделя 40, а вместе с ней и третий месяц этого года.
Сейчас хочется зафиксировать тему тестирования кода. Очень понравилась эта часть курса SQM. В отдельном посте (а может и постах) разберу её глубже: что такое coverage, какие бывают метрики и где они реально полезны, а где только создают иллюзию качества.
По моим ощущениям месяц получился немного слабее, чем планировалось: чтение и изучение языка выпало из моего графика. Основной фокус сейчас на:
• Курс SQM;
• Курс SQL. Прохожу его на платформе SQL Academy, которая стала приятным открытием. Очень подходящий для меня формат "теория -> практика". За рекомендацию спасибо автору @wayout_journal 🤝
Еще один вектор, до которого я пока не дошел — съёмка. Остановился на этапе ожидания линзы. С китовым объективом работать не получается.
Дальше — больше. Step by step.
👍2🔥2
💻 #learning | Тестирование — 1/3
До курса SQM я думал о тестировании, как о способе нахождения ошибок в продукте. Сейчас это мнение изменилось. Тесты — это не пропоиск багов. Тесты — это про контроль поведения системы.
Если у тебя нет тестов — ты не знаешь:
• как система реагирует на разные входные данные;
• что сломается после изменений;
• где проходят границы допустимого поведения.
Следовательно, любое изменение превращается в риск. Тестирование же помогает его ограничить и проконтролировать. Оно фиксирует ожидаемое поведение и помогает ответить на вопрос: “ведёт ли себя система так, как мы договорились?”
Но как понять, что система находися под контролем? Обычно, для этого используют метрики покрытия (code coverage). И на первый взгляд кажется, что всё просто: "покрыли код тестами на 100% — и отлично".
Но это иллюзия.
До курса SQM я думал о тестировании, как о способе нахождения ошибок в продукте. Сейчас это мнение изменилось. Тесты — это не про
Если у тебя нет тестов — ты не знаешь:
• как система реагирует на разные входные данные;
• что сломается после изменений;
• где проходят границы допустимого поведения.
Следовательно, любое изменение превращается в риск. Тестирование же помогает его ограничить и проконтролировать. Оно фиксирует ожидаемое поведение и помогает ответить на вопрос: “ведёт ли себя система так, как мы договорились?”
Но как понять, что система находися под контролем? Обычно, для этого используют метрики покрытия (code coverage). И на первый взгляд кажется, что всё просто: "покрыли код тестами на 100% — и отлично".
Но это иллюзия.
🔥2👍1
💻 #learning | Тестирование — 2/3
Почему 100% покрытие может быть илюзией качества?
Тестирование тесно связано с метрикой coverage. Она показывает, какая часть кода была выполнена во время тестов. И мысль: "чем выше процент — тем лучше протестирована система", кажется логичной. Но проблема в том, что coverage измеряет некачество, а лишь факт выполнения кода.
Существует большое количество метрик покрытия. Остановимся на самых известных (от простых к более детализированным):
• Line Coverage — были ли выполнены строки кода;
• Statement Coverage — были ли выполнены инструкции;
• Branch Coverage — прошли ли все ветви (true / false);
• Condition Coverage — проверены ли отдельные условия внутри выражений.
Давайте рассмотрим на примере:
Получается, мы получили 100% в condition coverage, при этом у нас не протестирована часть кода с результатом "ok". Итог: coverage высокий, а контроля — нет.
На что же тогда опираться?
Почему 100% покрытие может быть илюзией качества?
Тестирование тесно связано с метрикой coverage. Она показывает, какая часть кода была выполнена во время тестов. И мысль: "чем выше процент — тем лучше протестирована система", кажется логичной. Но проблема в том, что coverage измеряет не
Существует большое количество метрик покрытия. Остановимся на самых известных (от простых к более детализированным):
• Line Coverage — были ли выполнены строки кода;
• Statement Coverage — были ли выполнены инструкции;
• Branch Coverage — прошли ли все ветви (true / false);
• Condition Coverage — проверены ли отдельные условия внутри выражений.
Давайте рассмотрим на примере:
def foo(x, y) -> str:
if x > 5 and y > 5:
return "ok"
else:
return "bad"
assert foo(10, 4) == "bad"
assert foo(4, 10) == "bad"
# Coverage:
# Line: 3/4 (75%)
# Statement: 2/3 (~66%)
# Branch: 1/2 (50%)
# Condition: 2/2 (100%)
Получается, мы получили 100% в condition coverage, при этом у нас не протестирована часть кода с результатом "ok". Итог: coverage высокий, а контроля — нет.
На что же тогда опираться?
🔥2👍1
💻 #learning | Тестирование — 3/3
Если coverage не даёт контроля, на что тогда опираться? Ответ не только в метриках.
Контроль появляется не от полного покрытия кода, а от продуманной проверки поведения системы при разных сценариях. Поэтому нам важно ответить на вопрос "что может пойти не так?”, а не на “что покрыто?”.
Разберем на прошлом примере:
Т.е. вместо попытки покрыть всё, нужно проверять лишь важную логику кода.
Обратим внимание, что все метрики стали равны 100%. При этом мы не покрыли код с граничными значениями (x=5 или y=5), которые могли стать критичными при сложной логике продукта.
Для себя я выделил несколько ориентиров по написанию тестов. Нужно проверять:
• критичные сценарии, оказывающие наибольшее влияние на работу;
• частые сценарии использования пользователями;
• граничные случаи — то, где система может повести себя нестабильно.
После этого метрики всё ещё остаются полезным и нужным инструментом. Но инструментом контроля, а не целью тестирования. Цель тестирования — ответ на вопрос: “где логика системы может сломаться и как это отследить?”
Если coverage не даёт контроля, на что тогда опираться? Ответ не только в метриках.
Контроль появляется не от полного покрытия кода, а от продуманной проверки поведения системы при разных сценариях. Поэтому нам важно ответить на вопрос "что может пойти не так?”, а не на “что покрыто?”.
Разберем на прошлом примере:
def foo(x, y) -> str:
if x > 5 and y > 5:
return "ok"
else:
return "bad"
# основной сценарий:
assert foo(10, 10) == "ok"
# обратный сценарий:
assert foo(1, 1) == "bad"
Т.е. вместо попытки покрыть всё, нужно проверять лишь важную логику кода.
Обратим внимание, что все метрики стали равны 100%. При этом мы не покрыли код с граничными значениями (x=5 или y=5), которые могли стать критичными при сложной логике продукта.
Для себя я выделил несколько ориентиров по написанию тестов. Нужно проверять:
• критичные сценарии, оказывающие наибольшее влияние на работу;
• частые сценарии использования пользователями;
• граничные случаи — то, где система может повести себя нестабильно.
После этого метрики всё ещё остаются полезным и нужным инструментом. Но инструментом контроля, а не целью тестирования. Цель тестирования — ответ на вопрос: “где логика системы может сломаться и как это отследить?”
🔥2👍1
🚀 #steps | Week 53 / 365
Вчера проекту исполнился год🫃. И год назад я представлял этот пост иначе. Мне казалось, что к этой точке будет о чём рассказывать. Что результаты будут говорить сами за себя.
Сегодня всё иначе. Снижение темпа. Большое количество сомнений. Размышления. Прокрастинация (куда же я без нее😅). На этой неделе добавилось ещё и ОРВИ.
Писать это неприятно. Но и заканчивать я не хочу. Да и всё ли было так грустно? Определенно — нет. Собралась часть накоплений (4.5/1000). Текущая ЗП сдвинулась с 85 до 115. И у меня появилась пара идей, которые я хочу попробовать реализовать (расскажу/покажу немного позже).
Ну что, с годиком нас! Step by step.
Вчера проекту исполнился год🫃. И год назад я представлял этот пост иначе. Мне казалось, что к этой точке будет о чём рассказывать. Что результаты будут говорить сами за себя.
Сегодня всё иначе. Снижение темпа. Большое количество сомнений. Размышления. Прокрастинация (куда же я без нее😅). На этой неделе добавилось ещё и ОРВИ.
Писать это неприятно. Но и заканчивать я не хочу. Да и всё ли было так грустно? Определенно — нет. Собралась часть накоплений (4.5/1000). Текущая ЗП сдвинулась с 85 до 115. И у меня появилась пара идей, которые я хочу попробовать реализовать (расскажу/покажу немного позже).
Ну что, с годиком нас! Step by step.
🔥2
✍️ #notes | Не ной
(...или книга о философии отношения к деньгам)
Эта книга понравится не всем. Иногда кажется, что автор больше увлечён демонстрацией собственной экспертности, чем последовательным изложением идей. Но именно такие книги хорошо заряжают меня на действия. Для меня это эмоциональный бензин. Ниже оставлю несколько мыслей, которыми захотелось поделиться.
Во многих из нас с детства сидят убеждения: "богатые люди — плохие", "большие деньги портят человека". Даже если мы не произносим этого вслух, подобные установки влияют на наши решения. Но деньги — это всего лишь инструмент. Они не делают человека хорошим или плохим.
Невозможно годами повторять себе "у меня не получится" и при этом рассчитывать на другой результат. Контроль над мыслями и внутренний диалог — основной инструмент для изменений. Начните искать причины, почему у вас получится.
"Что обо мне подумают?" — один из самых сильных внутренних тормозов. Любое новое дело сначала выглядит странно. Блог, смена профессии, собственный проект. Всё что угодно может вызывать непонимание окружающих. Но мечты достигают не те, кто ничего не боится, а те, кто действует несмотря на возможные последствия и чужое мнение.
(...или книга о философии отношения к деньгам)
Эта книга понравится не всем. Иногда кажется, что автор больше увлечён демонстрацией собственной экспертности, чем последовательным изложением идей. Но именно такие книги хорошо заряжают меня на действия. Для меня это эмоциональный бензин. Ниже оставлю несколько мыслей, которыми захотелось поделиться.
Деньги — это не зло.
Во многих из нас с детства сидят убеждения: "богатые люди — плохие", "большие деньги портят человека". Даже если мы не произносим этого вслух, подобные установки влияют на наши решения. Но деньги — это всего лишь инструмент. Они не делают человека хорошим или плохим.
Наши мысли становятся барьерами.
Невозможно годами повторять себе "у меня не получится" и при этом рассчитывать на другой результат. Контроль над мыслями и внутренний диалог — основной инструмент для изменений. Начните искать причины, почему у вас получится.
Мечты сбываются у тех, кто готов выглядеть глупо.
"Что обо мне подумают?" — один из самых сильных внутренних тормозов. Любое новое дело сначала выглядит странно. Блог, смена профессии, собственный проект. Всё что угодно может вызывать непонимание окружающих. Но мечты достигают не те, кто ничего не боится, а те, кто действует несмотря на возможные последствия и чужое мнение.
👍2🔥1