0 или 1

[std.hugeping] Tue Sep 21 14:32:40 UTC 2021 @hugeping -> All

Когда долго программируешь, привыкаешь проверять все причинно-следственные связи от начала и до конца, разворачивать их. Отладка учит быть подозрительным. Не верь тому, что написано и вроде-бы "работало раньше". Ошибка могла не проявляться. Ошибка может скрывать проявление другой ошибки. Ошибка может быть следствием гонки. Несколько ошибок могут входить в суперпозицию и выглядеть как одна ошибка или наоборот. Чтобы действительно разобраться в проблеме, ты должен понять что именно происходит максимально педантично и досконально. Никаких домыслов! Никаких непроверенных предположений! Каждый раз ты должен учиться смотреть на код, как будто он написан только что. Не удивительно, что с годами это начинает отражаться и на психике. Один из таких "синдромов" я замечаю у себя и у некоторых знакомых программистов. Я назвал его синдром "0 или 1". Проявляется он в различных формах, но стоит за всем одно и то же. Если высказано какое-либо суждение, ты начинаешь его раскручивать и доводить до логического конца. Интерпретация событий всегда чёрно-белая. 0 или 1? Ведь нужен конкретный и простой факт в основе. То, что хорошо помогает искать ошибки может навредить в общении. Например? > - Смотри, я тут игру написал Color Lines. > - Неплохо. Только цвета шариков мне не нравятся. > - А мне, кажется, красиво. > - Нет, слишком яркие. (сценарий 0) Я подобрал плохие цвета. -> Они мне нравятся, значит, у меня нет вкуса. -> Зря я написал игру. (сценарий 1) Цвета мне нравятся, а оппоненту -- нет. -> У оппонента нет вкуса, не надо учитывать его мнение. -> Зря я его спросил. Следствие синдрома. "Если что-то может случиться, то это обязательно случится." Перекликается с законами Мерфи, да? Не случайно, ой не случайно... :) > - Где мой паспорт? > - Зачем тебе? > - Я всегда беру паспорт, когда выхожу на улицу... И, кстати, где зонт? Усиление следствия. "Если что-то случится в будущем, то это уже случилось." > Мы смертны -> мы уже мертвы -> нас не существует и никогда не существовало. Ещё одно следствие -- если назревает конфликт, нет смысла тянуть, ведь "он уже случился". > - Не могу тебя видеть! > - Если мы враги, то давай расстанемся. Если нет, то зачем эта ссора? Наконец, невозможность делать простейшие вещи без детального понимания задачи. > - Отрежь кусочек скотча. > - Какой длины? > - Просто кусочек скотча. > - Для какой задачи нужен скотч? (попытка узнать точную длину отрезка под задачу) > - Блин, да ты издеваешься! // Все диалоги являются вымышленными, любое сходство -- случайно. Годами выработанная привычка сводить всё к "да" или "нет", "всё" или "ничего", 0 или 1 -- рано или поздно находит выход, нередко приводя к раздражению, непониманию, ссорам. Программа -- мир, который создал программист и полностью его контролирует. Выполнение программы в глубине своей -- детерминированная шарманка. Возможно, именно отсутствие противоречий и привлекает программистов в профессию. Но жизнь -- нередуцируема и противоречива по своей сути. Попытка действовать в реальном мире так же, как ты привык работать в виртуальном, неизбежно приводит к конфликту. Попытка решения его в виде ответа 0 или 1 приводит к парадоксальным и опасным состояниям. В лучшем случае -- просто неадекватным. Когда я слышу очередную "печальную" новость про программиста, я всегда с сожалением думаю, что не последнюю роль здесь сыграл синдром 0 или 1. Мне кажется, любой программист в качестве противоядия должен иметь "аналоговое" хобби. Велосипед, гитара, рыбалка... Что угодно, что позволяет не терять связь с реальным миром и напоминать себе, что не всё решается через 0 или 1. Берегите себя!

copyleft 2021 difrex at lessmore dot pw; source code