Дисклеймер



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

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


Всё зашло настолько далеко, что я начал разбираться в сложении. Всё в сложении легко, я проходил в тренировочных приложениях на смартфоне сложные упражнения на ментальный счёт за неплохое время, только я не понимал как я это делаю. Всех нас учили считать с детства, мы делаем это не думая. У меня не было проблем с возведением в степень, умножением, делением, логарифмированием. Вопрос, который не давал мне жить: "С какого элемента начинается счёт суммы? C текущего, или с элемента, который на 1 больше него?". Я корил себя день и ночь, эта мысль преследовала меня везде, где бы я ни был. Через 4 месяца после долгого обдумывания и многократного просмотра роликов для детей (Я писал фронт-энд, изучал принципы ООП и вскоре собирался приступать к функциональному программированию, а счёта не понимал. Думаю, это лучшее описание синдрома самозванца) я наконец-то понял что счёт (сложение) производится со следущего элемента, после текущего. Затем около 2 дней ушло на вычитание (чтобы понять, что вычитание ведётся с последнего элемента, а не элемента на 1 меньше по индексу, чем он), затем ещё несколько дней для работы со временем.


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


Как я узнал что это именно синдром самозванца?


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


Бродя по просторам интернета нашёл следующее:


"use strict"
var bind = Function.prototype.call.bind(Function.prototype.bind);

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


Понял как работает call, bind, однако не понял почему мы должны подвязать пространство имён для call из bind.


Спросив в чате, мне сказали что всё проще чем я думаю, и вообще я себя накручиваю. Эта фраза прозвучала второй раз и тут я задумался, что что-то не так.


Я не хочу тратить пол года на изучение темы, которая мне не понадобится. Этот код даже в продакшене нельзя использовать. И тут я понял: синдром самозванца.


Я корил себя всё это время, потому что думал, что все люди всё понимают, у них не бывает проблем, и всё сказанное понимается с первого раза. Я думал, что все люди считают обдуманно, что все сочетания методов воспринимаются ими мгновенно.


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