Ловушки джуна: переусложнение и синдром самозванца
Джуна тянет усложнять код и обесценивать себя — две противоположные ловушки с общим корнем: незрелая самооценка своего уровня.
Переусложнение (overengineering) — добавление абстракций, гибкости и «задела на будущее», которые не нужны текущей задаче и только повышают сложность.
Ловушка третья: переусложнение
Узнав про паттерны, абстракции и «правильную архитектуру», junior начинает применять их везде. Простую функцию обрастает фабриками, интерфейсами и слоями «на случай, если понадобится». Это выглядит как зрелость, но на деле наоборот: senior пишет максимально просто, потому что знает цену сложности — её придётся читать, поддерживать и отлаживать.
Задача: посчитать сумму заказа.
junior-overengineer: AbstractOrderTotalStrategyFactory + 4 интерфейса
"вдруг появятся новые типы расчёта"
middle: функция order_total(items) с одним циклом
абстракцию добавлю, КОГДА появится второй тип
Правило: добавляйте гибкость в момент реальной потребности, а не заранее. Преждевременная абстракция — это технический долг, замаскированный под предусмотрительность.
Полезно знать, что у синдрома самозванца есть закономерная динамика. Сильнее всего он бьёт в моменты роста: новая работа, повышение, незнакомая область. Это логично — вы оказались там, где ещё не мастер, и мозг трактует временную некомпетентность как «обман». Понимание этой динамики обезоруживает: если вас накрыло чувством самозванца сразу после повышения, это не сигнал, что вас повысили зря, а ожидаемый спутник выхода на новый уровень. Он отступает по мере того, как вы осваиваетесь.
Ловушка четвёртая: синдром самозванца
Параллельно живёт обратное чувство: «я ничего не умею, меня вот-вот разоблачат». Синдром самозванца — это разрыв между реальной компетентностью и её внутренней оценкой. Важно понимать: его испытывают и senior, и опытнейшие инженеры. Само наличие сомнений не говорит о вашем уровне — оно говорит о том, что вы видите, как много ещё не знаете (а это как раз признак роста).
Как работает под капотом
Оба чувства искажают калибровку. Эффект Даннинга — Крюгера: на старте знаний мало, и кажется, что всё понятно (отсюда переусложнение «я знаю как правильно»). По мере роста вы видите всё больше неизвестного, и уверенность падает (отсюда самозванец). Лекарство одно — внешние объективные опоры: матрица компетенций, фидбэк, факты о ваших результатах, а не ощущения.
| Ловушка | Сигнал | Опора |
| Переусложнение | «Сделаю гибко на будущее» | YAGNI: добавь, когда понадобится |
| Самозванец | «Меня разоблачат» | Факты о результатах, фидбэк, матрица |
Принципы против переусложнения
У индустрии есть короткие принципы, которые удерживают от переусложнения. YAGNI («You Aren't Gonna Need It» — тебе это не понадобится) говорит: не добавляй функциональность и гибкость, пока в них нет реальной потребности прямо сейчас. KISS («Keep It Simple, Stupid») напоминает: при прочих равных выбирай простейшее работающее решение. Эти принципы не запрещают абстракции вообще — они требуют, чтобы абстракция оплачивалась настоящей, а не воображаемой потребностью. Правило большого пальца: вводи абстракцию, когда у тебя появился второй или третий конкретный случай, а не в ожидании первого.
С синдромом самозванца помогает простое упражнение: ведите «файл побед» — список конкретных вещей, которые вы сделали и которые работают. Когда накатывает чувство «я ничего не умею», перечитайте список фактов. Самозванец оперирует эмоциями («кажется, что я хуже всех»), а факты эмоциям не подчиняются. Ещё помогает помнить про эффект «сравнения с фасадом»: вы видите отполированный чужой результат — готовый PR, уверенный доклад — но не видите часов сомнений, неудачных попыток и помощи, которые за ним стоят. Сравнивать свой закулисный процесс с чужой витриной — гарантированный способ почувствовать себя самозванцем.
Частые ошибки
- Путать сложность с качеством. Чем проще решение при той же задаче, тем оно лучше, а не наоборот.
- Принимать решения на основе тревоги. «Боюсь спросить о повышении, вдруг не заслужил» — это самозванец говорит, а не факты.
- Сравнивать себя с чужим фасадом. Вы видите готовый код и доклады других, но не их часы борьбы и сомнений.
Итоги
- Senior пишет просто, потому что знает цену сложности.
- Гибкость добавляйте в момент потребности (YAGNI), не заранее.
- Синдром самозванца есть у всех уровней и не отражает реальный уровень.
- Опирайтесь на факты и матрицу, а не на ощущения уверенности.