Вечер. Сложный тикет закрыт, тесты зеленые. Заказчик доволен, ПМ ставит ? в чат, на карту упала зарплата, которая в Nx раз выше средней по региону.

Внешний мониторинг (Grafana вашей жизни) показывает стабильное плато и Status 200 OK. А внутри, на уровне ядра, возвращается 500 Internal Server Error.

Ощущение, будто ты Mock-объект. Фейковая заглушка, которая только имитирует полезную деятельность и возвращает захардкоженные ответы. Кажется, что внутри спагетти-код, TODO-комментарии пятилетней давности и костыли на изоленте. И фоном крутится демон с приоритетом Critical:

"Рано или поздно они запросят git blame, заглянут в исходники и поймут, что я ничего не умею. Все узнают, что я джун, который просто удачно притворяется сеньором".

Это баг в модуле самооценки, известный как "Синдром Самозванца". В нашей инженерной реальности - это критический рассинхрон между показателями Внешнего Мониторинга (карьера, деньги, фидбек) и Unit-тестами (внутреннее ощущение компетентности).

Давайте проведем Post-Mortem анализ этого инцидента. Почему инженеры с 10-летним опытом боятся, что их раскроют?

Баг 1. Сравнение своего Бэкенда с чужим Фронтендом

Мы часто попадаем в классическую ловушку некорректного сравнения архитектур. Что мы знаем о себе? Мы имеем root доступ к своему Бэкенду и базе данных. Мы видим:

  • Тот самый if-else костыль, который пришлось вставить в 3 ночи, чтобы релиз не упал.

  • Историю поиска: "как центрировать div" или "разворот списка Python" на десятом году карьеры.

  • Логи ошибок, паники при деплое и часы прокрастинации на Reddit.

А что мы видим у других (коллег, спикеров на HighLoad, авторов статей на Хабре)? Мы видим их отрендеренный Фронтенд:

  • Красивый UI успешных кейсов.

  • Уверенный голос на дейли.

  • Статьи "Как мы переписали монолит на микросервисы за выходные и сэкономили миллион".

Попытка сравнить свои сырые логи (stderr) с чужой главной страницей (index.html) неизбежно выдает TypeError: Incompatible Types.

Мы просто не видим, как этот "Гениальный Тимлид" пил валерьянку перед митингом, а "Крутой Архитектор" скопипастил кусок решения со StackOverflow и потом два часа не мог понять, почему оно не билдится. Нам виден только фасад. Из-за этого возникает иллюзия, что легаси и бардак под капотом только у нас. Спойлер: бардак, скорее всего, у всех. Просто у сеньоров он лучше документирован и обернут в Docker-контейнер, чтобы не воняло.

Баг 2. Deprecation Warning и гонка фреймворков

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

Ты потратил 3 года на изучение крутого фреймворка, стал экспертом. А сегодня утром на HackerNews вышла статья: "Почему Х - это отстой, мы все переходим на Y". В консоли твоей головы постоянно висит предупреждение: Warning: Your skills are deprecated. Please update to v.2026.0

Из-за этого возникает ощущение, что ты вечный студент, который опаздывает на лекцию. Мы путаем Фундаментальные Алгоритмы (которые не меняются) с Синтаксическим Сахаром (который меняется каждый год). Тот факт, что мы не знаем, как работает новая фича в React 19 или финтифлюшка в AWS, не делает нас плохим инженером. Это просто проблема кэширования - мы еще не загрузили новые данные.

Баг 3. Flaky Tests (Мигающие тесты)

Похоже, что конфиг нашего внутреннего "QA-отдела" сломан. Внутренние тесты на профессионализм (Self-Tests) написаны криво и почти всегда возвращают False, независимо от качества инпута.

Давайте посмотрим на код этого внутреннего теста:

Python

def test_im_a_good_engineer(self):
    # INPUT: Успешный релиз сложной фичи
    result = self.deploy_to_prod()
    
    if result == "SUCCESS":
        # ОЖИДАЕМОЕ ПОВЕДЕНИЕ: self.pride += 10
        # РЕАЛЬНОЕ ПОВЕДЕНИЕ:
        raise ImposterError("Просто повезло, QA плохо смотрели")
    
    # INPUT: Коллега спросил совета
    if self.answer_question():
         # РЕАЛЬНОЕ ПОВЕДЕНИЕ:
         raise ImposterError("Я это нагуглил 5 минут назад, я обманщик")

    # INPUT: Повышение зарплаты
    if self.salary_increase():
         # РЕАЛЬНОЕ ПОВЕДЕНИЕ:
         raise ImposterError("Рынок перегрет, они просто не нашли никого лучше")

Это классические Flaky Tests. Тест падает не потому, что система (вы) работает плохо, а потому что сама процедура проверки (Я должен знать всё наизусть и никогда не ошибаться) некорректна. Мы требуем от себя быть Википедией, но в ТЗ к живому инженеру таких требований нет. В ТЗ написано: решать задачи бизнеса.

ПАТЧ: Как пофиксить баги восприятия?

Просто "поверить в себя" - совет сомнительный (это как сказать перегретому серверу "не грейся, братан"). Попробуем применить инженерные решения.

Фикс 1. Переход на External Monitoring (Логи не врут)

Внутренние ощущения - это Client-Side Validation. Она ненадежна, зависит от браузера (настроения), погоды и уровня выгорания. Опираться на неё для принятия решений рискованно. Единственный источник правды - Server-Side Logs (Внешний мир).

  • Вам платят деньги? (Лог транзакции подтвержден).

  • Вас не уволили за год? (Uptime > 99%).

  • Ваш код работает в проде и приносит деньги? (Status 200).

  • Коллеги просят помощи? (Значит, ваша API документация востребована).

Если внешняя система мониторинга (рынок, работодатель, команда) говорит, что вы Сеньор, а внутренняя система утверждает "Ты самозванец", то с вероятностью 99.9% ошибка на внутренней стороне. Рынок рискует своими деньгами, нанимая вас. А ваши страхи не рискуют ничем. Факты - единственная метрика, которая имеет значение в инженерии.

Фикс 2. Black Box и Кэширование

Нужно переписать интерфейс IEngineer. Сместить фокус с "я должен знать всё" (In-Memory DB) на "я умею находить решения" (High-Load Gateway). Сеньор - это не ходячая энциклопедия. Это интерфейс, который умеет эффективно маршрутизировать запросы.

Не так важно, как решена задача: написана по памяти, найдена в документации или адаптирована с индусского ютуба. Для бизнеса инженер - это Black Box.

  • Input: Задача.

  • Output: Работающее, поддерживаемое решение.

  • Performance: Приемлемое время (Latency).

Что происходит внутри коробки - магия нейросетей мозга, Google или StackOverflow - это детали реализации. Использование Google - это не читерство, это работа с распределенной базой знаний. Мы просто "выгрузили из RAM в Cloud", чтобы освободить память для решения текущей задачи.

Фикс 3. Brag Document (Логирование успехов)

Человеческая память работает как logrotate - старые логи удаляются. Мы отлично помним свои факапы трехлетней давности, но забываем, какую крутую фичу запилили месяц назад. Решение: Завести текстовый файл success_log.md (или Brag Document). Например, раз в две недели записываем туда списком:

  • Что я сделал?

  • Что я изучил?

  • Кому я помог?

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

Итог

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

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

Если код в мастере, а прод не лежит, значит, мы на своем месте. А то, что иногда страшно - так это просто шум кулера под нагрузкой. Процессор работает.

Самое время нажать Deploy.


P.S. Коллекционирую такие баги мышления и ищу к ним патчи в своем телеграмм-канале.

Комментарии (3)


  1. sic
    29.12.2025 16:56

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

    Не пофиксить так баги восприятия. Восприятие это именно общее ощущение от процесса жизни, а здесь мы пытаемся LLM-ку в голове крутить и надеяться, что это вообще хоть что-то изменит на хардварном уровне. Хотя в свое время я занимался именно тем же, что описано в статье. Это очень логично, это довольно технично, что там еще хорошего... но это не работает.

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

    Скрытый текст

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

    Делаешь однотипные простые вещи, так сам знаешь, что это умеют делать чуть более чем почти все, стоит ли многого ощущение, что ты это умеешь тоже?

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

    Сходу получилась сложная вещь? Так может она простая на самом деле тогда?

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

    Не надо играть в эту игру вообще. Лучше вместо этого и правда что-то новое изучить, без точных оценок пригодится/не пригодится.


    1. Systems_Engineer Автор
      29.12.2025 16:56

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


  1. ProffesorMax
    29.12.2025 16:56

    Мы имеем root доступ к своему Бэкенду и базе данных. Мы видим:

    • Тот самый if-else костыль, который пришлось вставить в 3 ночи, чтобы релиз не упал.

    • Тот самый try - except Exception as er: , который пришлось вставить, чтобы релиз не упал.

    • Историю поиска: "как центрировать div" или "разворот списка Python" на десятом двадцатом году карьеры.

    О да!!! )))