Чего боятся программисты?

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

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

    Фобии — это зло, как в жизни, так и в работе. Потому что предмет страха — выдуманный, а сам страх — настоящий. И последствия страхов вполне реальные.

    В этой статье — истории реальных программистов и их профессиональных фобий, которые мешали им жить и работать в свое удовольствие. Люди реальные, имена вымышленные.

    Константин


    У Кости проблемы с уверенностью в себе. Программистом он стал недавно, раньше был сисадмином, хоть и имел высшее инженерное образование.

    Повезло Косте, или нет — не знаю, но он сразу попал в ученики и подчиненные к довольно опытному и уверенному в своей гениальности, и вообще в себе, программисту, который в первый же день взял быка за рога — «щас буду тебя жизни учить».

    Учил сразу всему — и алгоритмам, и фреймворкам, и запросам, и архитектуре, и общению с пользователями, и подходам к разработке. Все бы ничего, но очень авторитарно. Наставник считал, что единственно верный вариант решения любой задачи — его собственный.

    Если у Кости был свой вариант, Костя получал по заслугам. У него ее было ни опыта, ни наглости, ни умений, чтобы свое мнение отстаивать, поэтому он всегда оказывался в дураках. Наставник не просто убеждал его — он втаптывал его в землю. Это и стало главной фобией Константина. Хотя, в той ситуации, с тем начальником, это была даже не фобия, а вполне нормальная, естественная реакция на неадеквата. Как на собаку бешеную.

    Потом Костя ушел на другую работу, и фобия ушла вместе с ним.

    Здесь начальник был вполне адекватный, правда, он не сразу рассмотрел, что с Костей что-то не так. Думал, просто особенность какая-то — слишком много Костя тратит времени на раздумья об оптимальном способе решения задачи.

    Норм на эту тему вроде нет, но думать 8 часов о том, каким из трех известных способов лучше решить задачу, а потом сделать за 1 час решение — вроде бы перебор. И это при том, что все три варианта Косте известны и понятны, и оптимальность всех трех решений примерно равна.

    Помогало Косте «раступить» прямое указание реализовать какой-то определенный вариант. Но такой подход не нравился начальнику — не хотел он быть нянькой при программистах.

    Также, опытным путем удалось выяснить, что на Костю нет смысла давить, вроде «давай уже реши что-нибудь и делай» — тогда он вообще впадал в ступор, вплоть до депрессии, и решать его задачу приходилось кому-то другому.

    Начальник, как и коллеги, были близки к решению, что Костя — просто скучный, депрессивный, туповатый задрот, и надо гнать его в шею.

    Однако, решили дать ему еще один шанс. А точнее — себе дать шанс разобраться в Косте. Создали правильную атмосферу, в которой тот начал раскрываться, и в конце концов рассказал историю о своем первом наставнике. Хотя, Костя не считал ее чем-то выдающимся.

    Начальник после рассказа Кости фобию уловил, и попробовал изменить свое поведение. Он понял, почему Костя так долго выбирает вариант решения — по инерции, на подсознательном уровне, боится, что его опять втопчут в землю, если он выберет «не тот» вариант.

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

    Меры начальником были предприняты несложные.

    Во-первых, он долго и обстоятельно с Костей разговаривал. Объяснял то, что не удосужился рассказать первый наставник.

    Привел банальную арифметику — все три варианта решения можно сделать за три часа, вместо восьми часов ничегонеделания. Да, в живых останется только один вариант, но зато Костя мышцу прокачает — опыт и навыки программирования для него не были лишними.

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

    В-третьих, стал ежедневно наблюдать за Костей — и лично, и через решенные задачи в трекере. Просто для того, чтобы поймать момент, когда тот опять окажется во власти фобии.

    В результате, за 1-2 месяца, фобия ушла, и Костя стал полноценным участником команды. А через некоторое время — лучшим в команде.

    Геннадий


    Геннадий был толковым программистом. Не самым лучшим в мире, но в определенных нишах, которые он интуитивно для себя выбрал, равные ему встречались редко.

    Гена довольно долго работал один, но всегда держал связь с мировым сообществом, потому понимал, как стоит писать код, а как не стоит.

    Так получилось, что свои продукты Гена часто распространял, в основном бесплатно, и с открытым кодом. Было это в те времена, когда программисты-потребители еще заглядывали внутрь того, что скачали, клонировали или форкнули.

    И вот эти «заглядыватели внутрь» создали Геннадию фобию — они сказали, что Гена пишет классный код. Отныне писать говнокод Гена не имел морального права.

    Любую работу, большую и маленькую, Гена должен был делать хорошо — так, чтобы при распространении любой программист мог сказать: написано толково и со вкусом.

    Вот эти самые слова — оценки других программистов — стали для Гены наркотиком. Он почти не писал код «для клиента», или «для решения задачи клиента» — он писал код для получения лайков от программистов. Почти все его решения были максимально абстрактными, отторгаемыми, легко применимыми в других решениях и у других клиентов.

    Самое странное, что у Гены получалось. Он создал десятки решений, каждое из которых, с одной стороны, полностью (и даже с избытком) удовлетворяло потребности заказчика, а с другой стороны — становилось хитом при бесплатном распространении среди программистов.

    Но потом у Гены начались трудности — он не мог больше писать «просто код». У каждого клиента, на каждом проекте и в каждом продукте, есть задачи, которые решаются просто, если не мудрить. И решаются сложно, если мудрить, пытаясь сделать красивое, абстрактное решение, подходящее всем.

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

    Гена не был идиотом, и понимал — что-то не так. Он делает классные, красивые, технологичные и изящные решения «в стол». Такая ситуация его угнетала. С одной стороны, хотелось найти время и все опубликовать, но со временем были трудности — Гена был хорошим и, следовательно, востребованным программистом. С другой стороны, его не покидало ощущение, что у него фобия, или мания, которая заставляет слишком стараться при решении самых обычных задач. Все чаще он задумывался о том, чтобы бросить свои попытки сделать из каждой строки кода шедевр, т.к. понимал, что эффективность кодирования, а следовательно, и текущие доходы станут значительно выше. В конце концов, монетизировать лайки других программистов Гена не умел.

    А фобия продолжала усиливаться. Решая каждую задачу, Гена задумывался: как сделать так, чтобы код получился отторгаемым, и его можно было вытащить и опубликовать, чтобы использовать на других проектах, своих и чужих? Сами понимаете, сколько времени пожирал такой подход. Он не только заставлял тщательно продумывать архитектуру и связи, но и модифицировать условия задачи.

    Если Гену просили сделать проверку вводимых пользователем данных, то он делал абстрактный настраиваемый компонент, который мог выполнять любые проверки в любой форме. Если Гену просили нарисовать диаграмму, вроде воронки продаж, то он делал компонент для рисования практически любых диаграмм. Если Гену просили сделать виджет с количеством задач на исполнении у текущего пользователя системы, то он делал компонент для рисования любого количества виджетов, отображающих любые данные системы, в которой он исполнялся. Если Гену просили сделать веб-сервис, который возвращает цены на список товаров, то он делал универсальный сервис, возвращающий любые, возможные по уровню доступа, данные системы, скомпонованные по переданным в теле настройкам.

    Проблема усугублялась при смене места работы. Пул решений, которые Гена не успел опубликовать, оставалась на предыдущей работе — нарушать чьи-либо права Гена не хотел. Все попытки рассказать своим преемникам о крутизне оставленных решений заканчивались неудачей — новые программисты предпочитали выкинуть универсальные решения Геннадия и создать свои. Не крутые, не изящные, не абстрактные, но свои. Оно и понятно — программистам платили за создание своего кода, а не за использование чужого. Да и немного подняться в глазах начальства, поливая говном продукты своего предшественника, совсем не грех.

    Фобию Геннадия вылечила сама жизнь. После нескольких переходов между компаниями соотношение между опубликованными и потерянными для сообщества решениями стало угрожающим — 1 к 9. Гена понял, что потратил годы жизни зря. Не совсем зря, конечно — опыт-то остался, и когда перед ним стояла задача создать универсальный компонент, равных Геннадию не было. Но таких задач было, на разных работах, от 10 до 50 %.

    Остальные задачи он перестал решать абстрактно. Точнее, он придумал для себя другой уровень абстракции — личный опыт. Не обязательно создавать именно решение, осязаемый продукт, который можно кому-то дать прямо сейчас. Продуктом является личный опыт решения такой задачи, который появлялся у Гены, ведь на воспроизведение своего кода нужно намного меньше времени, чем на его создание в первый раз.

    В итоге, по собственной оценке Геннадия, его суммарная эффективность выросла в 3-5 раз. В эту цифру включались как абстрактные компоненты, так и контекстно-зависимые решения.

    Но самое важное — у Геннадия пропала очередь на публикацию универсальных решений. Да, создавать их он стал меньше. Но публиковал 100 %. Он просто перестал делать решения, которые не мог сразу опубликовать.

    В итоге, общее количество универсальных решений, дошедших до публикации и, следовательно, собравших для Геннадия лайки, выросло в 2-3 раза, потому что исчезла воронка потерь (1 к 9).

    Аркадий


    Аркадий — продукт 20 века. Предыдущие пациенты тоже родились в прошлом тысячелетии, но Аркадий успел в нем прожить целую жизнь, и встретил новый век уже взрослым, сформировавшимся человеком. Он писал код, когда еще не было интернета, мобильных телефонов и на предприятиях почти не было компьютеров. В те времена программистов и продуктов было настолько мало, что код можно было читать, как журналы — ждать очередного выпуска, смаковать, обсуждать (только в офлайне, разумеется).

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

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

    В 21 веке Аркадий столкнулся с неприятной для себя тенденцией — чем дальше, тем меньше его понимали другие программисты, которые становились все более узкими специалистами и, если можно так сказать, потребителями. Когда возникала новая задача, программисты бросались искать готовые компоненты. Причем такие, на освоение которых нужно как можно меньше времени. Чем лучше справка по API и проще создание вызов компонента, тем лучше. И самое непонятное для Аркадия — программисты больше вообще не смотрят код. Просто компонуют продукт из готовых решений, минимальными усилиями делают сборку, и в продакшн.

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

    Реальность современного мира IT создала достаточно большой разрыв между Аркадием и остальными программистами — они перестали понимать друг друга. Что, как и почему делает Аркаша, никто не понимал уже давно. Его решения были масштабными, сложными технически и методически, с высоким уровнем изоляции компонентов и глубоким философским смыслом.

    Уже давно не было людей, которые понимали его решения целиком, даже со стороны пользовательского интерфейса, не говоря уже о коде, который смотрели только единицы, и то только при возникновении ошибок.

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

    Да, только Аркадию этого никто не объяснил. Или объяснил, но он не понял. Или понял, но не принял. Или принял, но забыл. Не суть важно.

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

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

    Уверенность в том, что в его решениях хотят и будут досканально разбираться, постоянно вгоняет Аркашу в депрессию — мир постоянно показывает, что никто ни в чем разбираться не хочет. Иногда, работая с людьми на проекте, Аркадий год думает, что все во всем разобрались, чтобы потом внезапно убедиться — опять все по верхам, лишь бы быстрее, лишь бы не влетело.

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

    Каждый раз, убеждаясь, что мир не соответствует его ожиданиям, Аркадий удивляется и возмущается. Но со стороны видно — в душе удивления уже нет, или почти нет. Удивление наигранное, не настоящее.

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

    Резюме


    Я написал про три фобии, которые наблюдал вживую, но вы понимаете, что их намного больше — и людей, и фобий.

    Фобии — сложные и опасные, потому что не видны. Человек может выглядеть вполне прилично, хорошо и эффективно работать, улыбаться и быть нормальным участником команды, но в то же время иметь фобию, и страдать от нее.

    Если вы понаблюдаете за окружающими и, конечно, собой, то можете заметить признаки фобий. Главный признак — важность. Задачи, действия, атрибута, ритуала, подхода, реакции, хоть чего. Когда есть фобия, есть важность.

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

    Если ситуация стала лучше — отлично, вы не ошиблись. Если не стала — верните как было, и наблюдайте снова.

    Наблюдение и доверие — лучшие рецепты против фобий, но они работают, в основном, у руководителей. Соответственно, у достаточно малого количества людей. И это — только вероятность.

    Мало какой руководитель будет незаметно копаться, мягко выяснять, и незаметно наблюдать с целью определить наличие фобии. Намного ведь проще сказать «да пошли вы в жопу со своими соплями, мужики вы или кто». Поэтому фобии останутся, и таскать их придется с собой. И прятать, чтобы опять в жопу не послали.

    Но для правильного руководителя работа с фобиями — это настоящий клад, потому что открывается почти прямой доступ к мотивациям человека. Особенно, если руководитель сможет помочь человеку в преодолении фобии — такое не забывается никогда, как исцеление от какой-нибудь страшной болезни.
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 154
    • +33
      У Аркадия не фобия, он как раз нормальный инженер. В отличие от «программистов» вокруг него, у тех небось ещё и джинсы подвёрнуты. Вот если бы всё же было побольше Аркадиев типа mraleph… Недавно читал тут его статью, она мне сразу вспомнилась, как я про Аркадия начал читать.
      • +2
        Да, со стороны именно так и кажется. Но вблизи жизнь Аркадиев далеко не так радостна, как издалека.
        • +7
          Но это, в сущности, ничего не меняет в «фобии». Вернитесь мысленно на 100 лет назад. Если человек — хороший авиаконструктор, а эпоха изменилась и конструкторов нужны не десятки (так как в каждом сарае каждый свой «ероплан» мастерит), а единицы (так как выпускаются они теперь тысячими по одному чертежу), то он либо поймёт, что мир изменился, либо так и будет чувствовать себя ущербным.

          Это не значит что у него появилась фобия. Это значит, что его профессия более невостребована. А востребована другая, смежная профессия — авиаремонтника.
          • –3
            Его профессия — такая же, как у нас, он программист. Невероятно востребованный. Но несчастный оттого, что мир не такой, как он привык и хочет.
            • 0

              Из статьи я сделал вывод, что Вам очень везло с коллегами ;)
              Фобии у них, можно сказать, конструктивные, и то, что страхи, заставляющие (в конечном итоге) двигаться, делают жизнь немного неуютной — это фича, а не баг.


              Если говорить про фобии (раздутые до комплексов, временами), которые делают профессионала, особенно из нашей области, несчастным — чаще всего замечал боязнь быть неправым.


              Знание о том, что с ошибкой не запустится часто применяется не только при взаимодествии с компьютером, но и с другими людьми. И чем меньше ресурсов на полноценные "сессии", чем дефицитнее общение с человеком, тем с большой вероятностью время будет потрачено на продавливание своего "кода", попытки успеть доказать, что это не я дурак.

          • 0
            Просто не всем удаётся (или везёт) найти соответствующую нишу. Там или платят мало (ниша тоже из прошлого века, а это зачастую производства, а они зачастую не особо живые и здоровые) или вот так «по верхам», когда не нужны широкие умения, а нужна или узкая ниша или сляпать из конструктора, от этого страдания (фобии — это, кажется, немного не про то).
          • –1
            Аркадий просто любитель велосипедов. ) Он принципиально не юзает API гугл карт, он сам создает понятные только ему алгоритмы вычисления расстояний и координат.
            • +5
              Нет, не так. Он использует API гугл карт, и знает их не хуже, чем разработчики из гугла. И сам создает решения уровня гугл карт. Не вместо гугл карт, а их уровня.
              • 0
                Вот только в мире есть уже тысячи разработчиков, знакомых с гугл-картами и с тем, как с ними работать, плюс у Гугл-карт хорошая документация.
                С разработками «Аркадиев» все обычно обстоит не так уж и радужно.
                • 0
                  Ни чего что Гугл Карты разработали Аркадии?? :)
                  • 0
                    Аркадии Аркадиям рознь.
                    Иными словами, «аркадьичать» нужно там, где это уместно и экономически обосновано, о чем я писал в комменте чуть ниже.
                    • +2
                      Похоже, Аркадий теперь — имя нарицательное.
              • 0
                Можно сказать, что Аркадий понимает в разработке, но не понимает в менеджменте и бизнесе. Что в большинстве случаев заказчикам не надо делать «фундаментально» и «глубоко», бизнесу надо чтобы продукт работал как надо, был поддерживаемым и требуемый функционал имлементировался в приемлемые сроки. Поэтому Аркадий не понимает остальную команду, а остальная команда не понимает Аркадия.
              • +3
                Будучи из «поколения пепси» наблюдаю обратную картину, что «Аркадии» не хотят ничему учиться и пытаются делать так, как делали живя без интернета. Решение может и получается довольно эффективным (за счёт велосипедостроения), но не поддерживаемым, не читаемым и не масштабируемым. Методы на 500 строк, глобальные переменные везде, где можно и нельзя и прочая «радость».

                Может и не те люди мне попадались, но очень часто, но описанный в статье типаж — ни разу.
                • +3
                  Ну, Аркадий совсем не такой, как вы описали. Про велосипеды там речи нет.
                  • +14

                    Аркадию, скорее, надо менять окружение, искать равных себе и заниматься каким-то rocket science. Искать работу в организациях, где думают не в масштабах месяцев, а в масштабах лет.


                    Так что это вряд ли фобия :) Скорее недостаточно подходящее место он себе выбрал.

                    • +1
                      Не такой, в последнем абзаце я и написал об этом. Именно таких не встречал ни разу.
                    • +3
                      «Методы на 500 строк, глобальные переменные везде, где можно и нельзя и прочая «радость».»

                      Вам тут много раз повторяют, что Аркаша не такой, а вот по мне так вылитый он. :) Ещё могу дополнить портрет: возраст за 45, познания ограничиваются например анси си 89-го года разлива, и/или Перлом + CGI, Oracle 8-9, CentOS 5-6 единственная и неповторимая ОС и/или NT4. Любит длинные монологи про «молодёжь (т.е. моложе 35л) работать не хочет» и ковыряться с ламповыми усилителями/программируемыми калькуляторами или на крайний случай ДВК. Что самое грустное, часто занимают руководящие должности в силу солидности :)
                      • 0
                        А еще бывает, когда «Аркадии» пусть и не на руководящих должностях, но их в проекте большинство. Вот тогда код в код продукта реально страшно заглядывать, а на все противоречия ответы вида «тут так принято» или «молчи, щенок, я воевал» :)
                        • +2
                          Линус Торвальдс — типичный Аркаша… Или нет??
                          • –1

                            Т.е. Вам достаточно одного атрибута, возраста, чтобы убедить собаку в том, что она баран?

                            • +1
                              45 лет это те, кто в институте уже работал на и на ЕС1033 и на 286-ых, а выпускался при 486DX2-66… :-). Но они друг другу рознь. Многим ничего не мешает говорить: Я закончил программировать году эдак в 97-ом, так что расскажи поподробнее… Главное не иметь фобию «боюсь показаться дураком».
                              • –1

                                Все так и есть, я из тех и могу сказать, что закончил программировать в ~97 (хотя все еще тут).
                                Но, судя по комменту, многие "молодые" (на самом деле не только) программисты имеют низкую культуру написания кода ;).


                                Получают на вход функции обсуждения конкретный объект и если у того атрибут age>40 — можно первым делом переопределить все его параметры. Кроме ID, в надежде, что, если объект передавали по ссылке, вызывающая сторона подмены не заметит.

                          • +7
                            Аркадий — это художник, который продавал картины, а потом стал маляром и стал продавать израсходованное время и краску.
                            • +1

                              Аркадий — это художник, который писал картины. И тут появилась фотография...

                              • 0
                                … ага, а потом еще и фотошоп. Только нормальные фотографы сначала пару лет по галереям ходят, смотрят шедевры, учатся в худ. школах. Посмотрите, например, как к делу подходит Андрей Сахаров.
                                • 0
                                  перепутал, на самом деле — Игорь Сахаров
                            • 0
                              Проблема Аркадия не в том, что он «не такой как все», а в том, что он занимается не теми проектами, и поэтому испытывает дискомфорт
                              Пусть компонованием и потреблением фреймворков занимаются хипстеры — это их стезя
                              Такие люди как Аркадий должны решать более глобальные задачи, например разрабатывать операционные системы, писать драйверы, ну или как вариант, прошивку для электроники.
                            • +13
                              > Чего боятся программисты?

                              Как насчёт потери зрения, рук или альцгеймер / рак?
                              • +3
                                Все это, если можно так сказать, общечеловеческие фобии, присущие целым поколениям, странам и континентам. Но есть и чисто профессиональные фобии, которые вряд ли будут понятны представителям других профессий.
                                • +1
                                  Альцгеймера можете не бояться. Все исследования говорят о том, что чем больше человек работает головой, тем меньше вероятность этой болезни.
                                • +7
                                  Это не фобии, это навешивание ярлычков. На основе вашего личного наблюдения. Я более чем уверен что за каждым ярлычком который вы навешали на основе своих не недалеких наблюдений, скрывалась личная мотивация у рассмотренных программистов или жизненная проблема. А вы это высмеяли.
                                  • +12
                                    А вы это высмеяли

                                    Жаль, если у вас такое впечатление сложилось. Все герои — мои друзья больше 15 лет. Они прочитают эту статью.
                                    • +2
                                      Проходил мимо, никого из персонажей не знаю, но могу сказать, что высмеивания в статье и рядом не было, по крайней мере, не читается. Мне даже показалось, что достаточно доброе отношение.
                                    • 0
                                      А что же, про бетон продолжения не будет?
                                      • 0
                                        А там что-то недосказанным осталось?
                                        • +1
                                          Сам по себе рассказ законченный, но я ожидал, что дальше вы расскажете чуть подробнее про автоматизацию изменений. Интересны варианты решений.
                                          • 0
                                            Хорошо, поставлю в план. Спасибо.
                                      • +1
                                        Но для правильного руководителя работа с фобиями — это настоящий клад, потому что открывается почти прямой доступ к мотивациям человека.
                                        Потому что можно «расширить и углубить»(с)
                                        • 0
                                          То есть описанные вами люди работают не так, ка требует рынок сейчас? А каков ваш идеальный специалист?
                                          • 0
                                            Я, если честно, не знаю, как требует рынок сейчас.
                                            Идеального еще не придумал.
                                            • +4
                                              Вот и я об этом. Всё меняется. Требования к специалисту тоже меняются. По моим наблюдениям бизнес платит либо за сокращение издержек, либо за дополнительную прибыль. И моя задача, как специалиста, обеспечить бизнесу такую возможность, постоянно совершенствуя навыки. Одна проблема — область знаний расширяется, и есть постоянный выбор — либо вширь (а значит неглубоко) — либо вглубь, что несет риски специализации. Поэтому мой выбор — сохранять гибкость, углубляя знания основ, но быть в курсе прогресса, пробуя его на зуб. Но так печально, что большие системы делаются всё большими коллективами…
                                            • 0
                                              *массовый рынок
                                            • +4
                                              Я всегда боюсь, что у меня в продакшене что-то внезапно само отвалится.
                                              • +1
                                                Вот интересно, такой страх только у программистов? У меня есть строители, знакомые и родственники. Не припомню, чтобы кто-то из них боялся, что рухнет дом, который они построили. Знакомые хирурги боятся только инструмент забыть внутри.
                                                • +3
                                                  У строителя плита в процессе сборки дома не меняет свои характеристики резким и непредвиденным образом :-(
                                                  • +2
                                                    Ну почему же. Когда на первом этаже прорубили несущую, чтобы сделать вход в магазин…
                                                    • 0
                                                      А потом может быть так:
                                                      Обрушение дома в Междуреченске
                                                      Нельзя так делать без перерасчета проекта. А это, как мне рассказывали, геммороя до хрена.
                                                      П.с. что-то по запросу «обрушение дома» как-то очень до… [много] видео высыпалось… Кажется, я так фобию заработаю :-)
                                                    • 0
                                                      Когда это строитель-архитектор-всё-в-одном при строительстве частного дома, то у него плита легко меняет форму под изменившуюся площадь без пересчёта характеристик. И спят такие, что удивительно, вполне нормально. Это случай когда заметили, а сколько он такого наворотил сам?
                                                      С другой стороны нет знакомых архитекторов, которые бы проектировали что-то серьёзное — там могут быть и бессонные ночи и терзания «всё ли предусмотрел» (мне так кажется).
                                                      • 0
                                                        Ну дык продукт «под себя» тоже легко меняет характеристики. И тоже, вполне себе нормально работает… Да и сайты-одностраничники очень тяжело сделать нерабочими.

                                                        С другой стороны, у меня отчим — архитектор. И он был в ужасе от последней работы. Потому что строили там, наплевав на все ГОСТы. Слишком маленькие конурки получались при максимально разнесенных несущих.
                                                        И ничего, запас по прочности сделали и норм — стоит себе домик со студиями меньше, чем у меня комната…
                                                    • 0
                                                      Имхо, вы сами ответили на свой вопрос.
                                                      У строителей, как правило, весь проект рассчитан на бумаге от начала до конца — откуда может появится страх, если ты знаешь все?
                                                      А вот программисты редко планируют, чаще «строят» на лету и не придерживаются каких либо принципов проектирования. Такой подход неизбежно приведет к каше в проекте, в котором тяжело отслеживать зависимости и тяжело понимать к чему приведет новое изменение — отсюда и страх — «а не пропустил ли я что-то».
                                                      • 0
                                                        У строителей, как правило, весь проект рассчитан на бумаге от начала до конца

                                                        Мы с вами каких-то разных строителей видели. Некоторые из них и писать-то не умеют, как дядя Толя, с которым я работал на стройке. У него не было никакой документации, он просто строил. Сначала из целых кирпичей, потом из битых, когда целые кончились. Потому что оплата за кубометры построенных стен. В итоге сделал окно не в том месте, на метр ниже запланированного. Получил в тыкву от мастера. Мастер всем бил в тыкву, кто не так работает. Например, водителю бетономешалки дал в тыкву, когда показалось, что тот по дороге где-то слил часть бетона.
                                                        • –1
                                                          Программисты планируют и проектируют. Строят на лету «разработчики» с аджайлом и без ТЗ. И строят они из кусков, которые спроектировали программисты.
                                                          • 0
                                                            Дядька Боб Мартин в таком случае «разработчик» который строит из кусков которые спроектировали «программисты»?? :D
                                                            • 0
                                                              Эм. А кто такой Боб Мартин? В вики их много, Бобов Мартинов.
                                                              • +1
                                                                Гугл первой строчкой выдаёт нужного, не ошибётесь. Хотя странно не знать автора «Чистого кода».
                                                      • 0
                                                        Я не программист, а боюсь этого! Заглядываю в продакшены по ночам и на выходных, чтобы убедиться, что все ок.
                                                        • 0
                                                          Я всегда боюсь, что у меня в продакшене что-то внезапно само отвалится.

                                                          Как отвалится, так и пофиксим. Ну посидят пользователи немного без одной нужной страницы, это же не конец света. Не медицинское оборудование разрабатываем, никто не умрёт.

                                                          Если бояться что-то поменять, то говнокод никуда не денется. А если взять и порефакторить, то хотя бы текущая страница будет работать нормально, а количество плохого кода на проекте уменьшится.
                                                        • +16
                                                          Я не заметил фобии в случае Аркадия, это больше похоже на тяжкую судьбу, когда приходится подчищать за нежелающими разбираться.

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

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

                                                          П.С. а вообще я боюсь ядерной войны и это не шутка
                                                          • +2

                                                            Чаще всего, мое imho, банальная нехватка времени. всего самому не разработать и во все исходники не вникнуть.

                                                            • +3

                                                              Угу. «Некогда нам топоры точить! Мы тут лес рубим» :)

                                                            • +3
                                                              Мне кажется, в 2018 на большинстве проектов у программиста нет времени во всём досконально разобраться, да и не требует большинство методологий этого. Если есть возможность прогнать на большом наборе тестовых данных, то лучше прогнать и не усложнять. Но нужно чутьё: где можно тяп-ляп, а где лучше прочитать документацию (или даже осознать, где могут быть опасные места и под них написать тест).
                                                              Собственно, для того и создают API, чтобы быстро использовать, а не разбираться в нюансах (потому что самому написать выйдет быстрее, чем досконально разобраться).

                                                              Пояснение области применимости моих размышлений: есть TCP, многие им пользуются. Очень маловероятно, что всем так уж нужно досконально знать каждый параметр, но неплохо бы знать, что они есть и где почитать, какой подкрутить, в случае возникновения проблем.
                                                              • 0
                                                                «прочитали доки и вперед», — это еще неплохо, хуже когда прочитали «C++ за 24 часа», приправили SO и вперед.
                                                              • +5

                                                                Скажу про себя. Эти фобии больше зависят от проекта, чем от человека:
                                                                Фобия выкатить в релиз. Каждый раз боюсь выкатывать новую версию кода в релиз. Особенно если правок произошло достаточно много с момента последнего деплоя. Лечится частыми и мелкими релизами, тестированием изменений другим человеком и автоматические тесты жизненно важных частей системы. Хотя, фобия часто остается. Особенно, когда ты единственный кодер и вся ответственность на тебе.
                                                                Фобия что-то менять в коде. Обычно прослеживается в монолитных сложных спагетти системах. Тут естественно поможет TDD, что улучшит качество кода в разы, компонентный подход и нормальное наименование переменных/функций/классов/namespace'ов/п.р… Про комментарии не говорю, потому что хорошая архитектура и грамотно написанный код намного лучше любых комментариев.
                                                                Страх брать сложные задачи. Не всегда это последствия лени. Пожалуй, это скорее последствия первых двух фобий, когда ты просто боишься сломать все, что уже сделано. Особенно, если можешь получить от этого втык. Лекарства все те же: тесты, хорошая архитектура и чистый код.
                                                                Это то, с чем столкнулся я. Сказать честно, думал, что в статье речь пойдет о подобном. Но нет. Тут все намного глубже.
                                                                Если говорить о подобных психологических моментах, то сейчас я боюсь работать с другими людьми. Всю свою карьеру работаю один удаленно. Ни разу не работал в команде. Если вдруг начальство решит взять еще одного человека, я даже не представляю, как я ему буду объяснять, что творится в моем коде.

                                                                • 0
                                                                  Вы не один такой)) И о нас не пишут
                                                                  • 0
                                                                    Последнее довольно быстро лечится. Правда, сложно найти человека, которому вообще интересно, что внутри ;)
                                                                    • 0
                                                                      Похоже, у вас просто недостаточно опыта. Вам бы в нормальную компанию устроиться и поработать в команде, особенно посидеть рядом с админами, починить с ними прод. В момент поломки всё уже будет развалено, и надо будет аккуратно починить небольшим изменением, которое ещё и особо некогда пристально тестировать, ведь всё уже развалено. После успешной выкатки нескольких хотфиксов в прод ваши фобии должны рассеяться.

                                                                      У разработчиков (точнее SRE) Гугла есть так называемый бюджет на ошибки, почитайте вот тут: landing.google.com/sre/book/chapters/embracing-risk.html
                                                                      • 0

                                                                        Выкатывать хотфиксы сразу в прод — а вы рисковый. С точки зрения SRE, сначала безусловно делается rollback к предыдущему релизу, а уж потом анализ причин поломки, исправления и т.д. Roll forward — только для чего-то не очень критичного.

                                                                        • 0

                                                                          Неоднократно сталкивался с ситуацией, когда характер изменений таков, что катить назад вариантов нет, только патчить на живую и молиться.

                                                                          • 0
                                                                            Если у вас баг был всегда и спровоцирован внешней причиной, то можно хоть обкататься назад, это ничего не вылечит. Вот если новый релиз с ненайденным багом выкатили, тогда конечно правильно откатываться (а в идеале — накатывать новую версию постепенно и следить, тогда откатывать меньше).
                                                                        • 0
                                                                          >и автоматические тесты жизненно важных частей системы

                                                                          >Хотя, фобия часто остается. Особенно, когда ты единственный кодер и вся ответственность на тебе.


                                                                          Так тестировать надо не только жизненно важные части системы, а побольше. Тогда и зависимости можно без страха обновлять.
                                                                          • 0

                                                                            Все бы ничего, но если ты один кодер/верстальщик/дизайнер/тестер на весь проект, то времени и сил тестить "побольше" как-то совсем нет.

                                                                            • 0

                                                                              А бояться время есть? ) А если серьёзно, то наверняка же тестируется хоть как-то, если не мелкий баг-фикс.

                                                                              • 0

                                                                                А на "бояться" как-то время не уходит. В проект только недавно внедрили автоматическое тестирование, а кодовая база уже немаленькая. Поэтому тестами покрываются сначала самые важные части системы, без которых функционирование сервиса будет совсем невозможным (Unit тестирование, тестирование API и п.р.); тестирование очень хрупких частей, изменение которых может повлечь за собой неадекватную реакцию на действия пользователей (в нашем случае — это тестирование правильного распределения прав доступа); а потом на то, что сломалось, стараюсь написать тест и поправить ошибку. Естественно, при внедрении новых функций стараюсь писать тесты, если это необходимо.

                                                                                • 0

                                                                                  Я про обычное, ручное тестирование.

                                                                                  • 0

                                                                                    Недавно наняли одного человека, который тестирует новые функции. Стало намного лучше. Но не может ведь человек тестировать одно и то же каждый раз. Для этого и пишутся автоматические тесты. Естественно, ручное тестирование и раньше было, только очень посредственное. Для этого даже сделали специальный тестовый сервер, на котором все можно безопасно опробовать.

                                                                                    • 0

                                                                                      Я больше про локальный запуск разработчиком, чтобы проверить код, который только что написал, перед тем как пушить его в репозиторий или выкатывать на сервер для тестировщиков.

                                                                                      • 0

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

                                                                        • 0
                                                                          Судя по последним веяниям большинство программистов боятся память сами выделять, а у вас это ерунда какая-то.
                                                                          • 0
                                                                            Еще боятся, что очередной баг окажется тем самым «багом компиллятора», ну все же знают что такого в реальной жизни не встречается, а потом бац — реально баг компиллятора, вот это жуть жутьчайшая!
                                                                            • +1

                                                                              segfault в php-fpm к ним относится? )

                                                                          • +1
                                                                            Боюсь пропустить говнокод во время code review.
                                                                            Иногда побаиваюсь сложных задач.
                                                                            Боюсь языков программирования со слабой типизацией.
                                                                            • +3
                                                                              Уверенность в том, что его код читают, заставляет Аркадия работать соответствующим образом, тратя массу времени на бессмысленную оптимизацию.

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

                                                                              • +1
                                                                                Сильная типизация в совокупности с функциональным программированием захватит мир и мы все(почти) окажемся Аркадием!
                                                                                • +1
                                                                                  я вообще по жизни ссыкун
                                                                                  • +1
                                                                                    Ну хз, если хватает смелости это заявить публично, то думаю вы все же в данном тезисе не совсем правы.

                                                                                    P.S. Мне тут задница нашептывает, что это возможно такой юмор с вашей стороны… ну, в принципе он удачный ;)
                                                                                    • 0
                                                                                      нуу, наблюдаю последнее время за собой, жизнь в большом городе, изменила меня в лучшую сторону, я рад за себя
                                                                                      image
                                                                                  • +3
                                                                                    У меня сложилось так, что с самого начала своей недолгой карьеры на подавляющем большинстве проектов я работал один, отвечая либо за весь проект либо за какую-то составную часть проекта (клиент, сервер и т.п.). Следовательно, отвечая за свою часть проекта, у меня все под контролем: я знаю какой код за что отвечает, я вижу как добавить новый функционал, при необходимости я свободно могу провести рефакторинг. Весь проект у меня в голове, сам принимаю все решения и за все отвечаю. Работаю в таком ключе от проекта к проекту достаточно продолжительное время. После чего меня закидывают на проект в качестве рядового, где над его частью, за которую обычно отвечал я сам, работает команда, потому что проект большой, работы больше, сроки меньше. Отсюда у меня сразу возник дискомфорт от отсутствия свободы, которую я обычно имел, работая один. Более того, мне пришлось столкнуться с чьим-то мнением и чьим-то кодом, что далеко не всегда совпадали с моими представлениями о том, что и как делать. Я потерял всю ту власть, которая у меня обычно была, и теперь приходилось ее делить. Вернувшись после этого в одиночное плавание я почувствовал облегчение и свободу, руки творца были развязаны. После нескольких таких переходов между командными и сольными проектами, у меня выработалась «фобия» работы в команде и появилось много вопросов, как я к этому пришел. То ли это первые годы работы в одиночку? То ли непомерное эго, что мне нужно с кем-то делить свою прелесть? То ли это выход из зоны абсолютного комфорта? Может быть неудачные команды? Может быть влияет мой личный характер, где один из плюсов работы программистом для меня это минимум общения с людьми? Или это все вместе? Главный мой вопрос в том, стоит ли бороться с этой фобией, терпеть, мириться и искоренять, или наоборот пользоваться этим и работать с полной отдачей там, где комфортно? Интересно, сталкивался ли кто-то с этим еще.
                                                                                    • 0
                                                                                      Тоже обычно работаю одна на проектах. Когда приходится работать в команде, то начинаются фобии по качеству кода и стилю кода данного проекта.
                                                                                      • +1
                                                                                        «Кто трогал мой код».
                                                                                        Лучше все-таки научиться работать в команде. Надо относиться к этому как к возможности узнать новые подходы, улучшить свои навыки. Когда половина компонентов незнакома, и твои тоже кто-то может изменить, это способствует написанию более качественного и независимого кода.
                                                                                      • +6
                                                                                        остаться на обочине, впрочем это касается не только программистов
                                                                                        • 0
                                                                                          Старости)
                                                                                          • 0
                                                                                            У Аркадия, по-моему, не фобия, а просто иной стиль работы. Конечно, если довести его до крайности, то (как и любая крайность) он становится контрпродуктивным. С другой стороны, противоположный стиль (ни во что не вникаем и на каждый чих ищем подходящий проект и тут же делаем зависимость) тоже ни к чему хорошему не приводит (см. left-pad).

                                                                                            У меня фобия простая и основана на большом и весьма болезненном опыте — боязнь что-либо менять в своём проекте (не добавлять, а именно менять поведение, даже при исправлении багов). Ибо опыт подсказывает, что даже небольшие и, казалось бы, совершенно невинные изменения обязательно что-нибудь ломают, что может (и так часто было) вылиться в потери денег, и очень больших (к счастью, не моих, а фирмы, но всё равно неудобно). Так что очень часто, видя откровенную кривизну (или просто плохо написанный код, часто тобой же N-цать лет назад), усилием воли подавляешь зуд в руках и произносишь классическое: «Солнце точно всходит? Точно заходит? Ну так и не трогай».
                                                                                            • 0
                                                                                              Если боитесь менять существующий код, может просто связность высока и поэтому потерян контроль над кодом? Я за собой именно эту проблему замечал — стоит усложнить взаимодействие объектов в коде, всё приплыли — сам не понимаю как мой собственный код работает :)
                                                                                              • 0
                                                                                                Вот да, соглашусь. «Боязнь» что то менять у меня обычно возникает только если не понимаю как это работает, как может затронуть другие места.
                                                                                                Потому, нещадно убеждаю других доводить код до такого состояния — чтобы всем было понятно.
                                                                                            • 0

                                                                                              Я почти всегда, почти во всех задачах пишу легко отторгаемый код, который можно потом многократно использовать других проектах… если такой код не получается, то это плохой код.


                                                                                              Доктор, все плохо?

                                                                                              • +1
                                                                                                Видно у Вас однообразные проекты.
                                                                                                • 0

                                                                                                  Хз, не жалуюсь: CAD'ы и EDA, ERP'ы там всякие, симуляторы, около-SCADA и даже системное ПО. О! Даже в игрострой как-то заглядывал, пару раз.

                                                                                                  • 0
                                                                                                    тогда не понимаю, что за универсальная система может быть перенесена между играми и тем же ERP.
                                                                                                    • 0

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

                                                                                              • +3
                                                                                                А всё же. Не боимся ли мы остаться без Аркадиев? Используя аналогию выше. Про авиаконструкторов: Да, массово нужны авиаремонтники, но раз в 30 лет понадобиться и Главный конструктор. А он сейчас «нерентабельный», отчасти высмеиваемый. Вот фобию у него обнаружили.
                                                                                                • +1

                                                                                                  Вообще авиаконструкторы нужны не раз в 30 лет, а каждый день. Просто не все умеют или хотят клеить самолетики.


                                                                                                  А том то и пичалька.


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


                                                                                                  У железячников аналогичная ситуацию: Любят ставить ПЛИС туда, где один транзистор справится :-)


                                                                                                  В железячной

                                                                                                  • +2
                                                                                                    Тоже не «Аркадий». С сожалению.

                                                                                                    Но как-то сохранить инженерную культуру нужно пытаться. Эта важная задача бизнеса, и/или государства. (А то конкуренты-то борют.)

                                                                                                    Радует уже то, что руководители стали разбирать эти ситуации, а не делать скорые выводы о «туповатом задроте». Поэтому «неистово плюсую». И рекомендую Аркадия пересадить на участок ответственных (server side / hi load) работ, или отвести роль наставника. Если самооценка не окончательно загублена.
                                                                                                    • 0

                                                                                                      Беда Аркадия в том, что когда он начинал было так "код" == "продукт". Ну ладно, "код" + "документация". И каждый был и швец, и жнец. Теперь "продукт" это столько всего, что кроме программистов требуются еще куча странных людей, от маркетологов, до дизайнеров.
                                                                                                      Да и код теперь не тот. В те далекие времена все было или 320200 или 640480. Поэтому особо можно было не задумываться и во все вникать. Сейчас слоев абстракций столько, что вникать на каждом слоев во все варианты реализации просто нереально. Я вот помню под RT-11 не гнушался поправить .SAV-файлик, чтобы оно работало как надо. И знал где и что подправить. Сейчас такие методы неприемлемы от слова абсолютно. Конечно "каждый солдат должен знать свой маневр", но ключевое слово тут "свой".
                                                                                                      Если матрос на парусном судне при каждом приказе "взять рифы" будет подходить к штурману, чтобы вникнуть в навигационные расчеты… Аркадию надо делать свое дело, делать его хорошо и научиться доверять другим.

                                                                                                      • +1

                                                                                                        Или переквалифицироваться в техлиды/архитекторы/р&д с одной из основных функций выбирать/одобрять стэк команде(ам).

                                                                                                        • 0

                                                                                                          тогда тем более придется научиться доверять другим.

                                                                                                          • 0

                                                                                                            Копаться в чужом коде будет основная обязанность — или в коде сторонних продуктов, чтобы одобрить их в разработке, или в коде разработанного командой(ам) чтобы одобрить выпуск в прод, типа авторского надзора. Захочется самому покодить — придётся научиться доверять, да :)

                                                                                                  • –1
                                                                                                    А ещё программисты боятся автоматизации программирования, но не очень сильно, т.к. до этого далеко, не так ли?
                                                                                                    • +1
                                                                                                      Нет, не бояться … Просто будут делать это другим способом, на других языках. Возможно с сильной типизацией и в функциональной парадигме (как Letsrock85 ;). Наверняка больше времени будут тратить на выбор архитектуры ПО, в которой учтут прогнозируемые изменения условий эксплуатации, или ещё какие-нибудь требования «высокого порядка». Будут применять системы формального доказательства алгоритмов, симуляцию поведения системы в целом. Надеюсь, это будет просто и массово, как сейчас можно встретить склейку чужих и не проведенных библиотек. Будут, конечно, и framework’и, и SaaS’ы.

                                                                                                      Правда и ожидать, что входной билет в эту область станет дешевле не приходиться.

                                                                                                      Хотя … если честно. То какую-то большую часть «нынешнего программирования» действительно можно отобрать у человека. А для кого-то это «и хлеб, и масло»….
                                                                                                      • 0
                                                                                                        Я стараюсь, но пока не получается понять что такое функциональное программирование.
                                                                                                        Я ожидаю, что в будущем любой сможет легко создавать себе программу, отчего обычные программисты переведутся.
                                                                                                        Но получающиеся программы будут громоздки и далеко неоптимальны по скорости, отчего настанет время Аркадиев, которые знают систему от и до, и как её улучшить.
                                                                                                        Т.е. программисты всё это время поднимались вверх, создавая всё более лёгкий способ создания программ. Но достигнув предела простоты создания (и пределов производительности процессоров) им придётся спускаться обратно в низкие уровни — сражения будущего будут идти за эффективность.
                                                                                                        • 0
                                                                                                          Поинтересоваться, а почему думаете именно в функциональной парадигме?
                                                                                                          Мне кажется, что популярные нынче функциональные языки типа F# или Haskell как то уходят от математически четкой декларативности, а без этого, потенциальная мощь подхода сильно снижается. Даже вот первый пример на Wiki — да мало чем отличается от императивной версии.

                                                                                                          На мой взгляд, если уж программирование останется в каком то виде (и нас не заменит ИИ), то языки буду становиться всё более предметно-ориентированными (DSL) и абстрактными.
                                                                                                          • 0
                                                                                                            В постах выше было упоминание о ФП … не прошел мимо. Хотелось бы излагать задачу в терминах «чего хочу», а не «сделай это». Разница как между select и for each. Вот только боюсь, что буду не способен все так выразить. Видать не только я. Из-за этого и получаются языки, поддерживающие обе парадигмы.
                                                                                                            • 0

                                                                                                              "SELECT" это повелительный глагол, это "сделай это". Декларативность SQL по сути заключается в том, что не нужно вручную формировать план запроса. Емнип, принципиальное отличие между ISAM и MyISAM было в отсутствии необходимости указывать индексы — оптимизатор MyISAM сам смотрел есть ли пригодные для использования и стоит ли их использовать, а ISAM ждал явных указаний.

                                                                                                      • 0
                                                                                                        > Мало какой руководитель будет незаметно копаться, мягко выяснять, и незаметно наблюдать с целью определить наличие фобии.

                                                                                                        Мало какой, и это хорошо. Ведь работа руководителя не в том, чтобы лечить фобии, а в том чтобы руководить. Для эффективной работы с фобиями есть профильные специалисты — психологи/психотерапевты/психиатры.
                                                                                                        • 0

                                                                                                          А с людьми, в Вашей модели, руководитель работает?

                                                                                                          • 0
                                                                                                            Работает, в том числе лично общается. Но не «лечит» фобии. Кстати, тут нужно понимать что «фобия» это не то что «лечится» обычным разговором по душам. Если помогает обычный разговор — ну это опасения, некоторые страхи. Но точно не фобии. И два месяца на это обычно не нужно.
                                                                                                            • 0

                                                                                                              Спасибо, т.е. Вы имеете в виду психиатрический термин. В таком случае — согласен.
                                                                                                              Тоже уверен, что автор имел в виду "некоторые страхи", а не клинические отклонения. Место и стиль статьи не предполагают.

                                                                                                              • +1
                                                                                                                А давно ли низкая самооценка и нерешительность из-за этого; перфекционизм и прокрастинация из-за этого; взгляд на жизнь — стали фобиями? :)

                                                                                                                Хороший руководитель, вероятно, может помочь в каждой из ситуации, если у него есть на это ресурсы и желание. Его главная задача собрать команду и получить от неё результат.
                                                                                                                • 0

                                                                                                                  Про первое — не знаю ;). Но не осуждаю автора за художественный прием.


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

                                                                                                          • 0
                                                                                                            Если заменить руководителя на лидера, все равно останетесь при своем мнении?
                                                                                                            • 0
                                                                                                              Беда, коль пироги начнет печи сапожник,
                                                                                                              А сапоги тачать пирожник,
                                                                                                              И дело не пойдет на лад.
                                                                                                              Да и примечено стократ,
                                                                                                              Что кто за ремесло чужое браться любит,
                                                                                                              Тот завсегда других упрямей и вздорней:
                                                                                                              Он лучше дело всё погубит,
                                                                                                              И рад скорей
                                                                                                              Посмешищем стать света,
                                                                                                              Чем у честных и знающих людей
                                                                                                              Спросить иль выслушать разумного совета.


                                                                                                              Иван Крылов, Щука и кот
                                                                                                          • +3
                                                                                                            Я боюсь, что когда-нибудь проснусь утром. Откроу черновик изменений в стандарте Java 25 и не запомню. Тупа не запомню, как раньше, как в молодости! И будет
                                                                                                            image
                                                                                                            • 0
                                                                                                              Мне кажется, этого не бояться надо, а радоваться. Поскорее бы нашлась реальная причина так сказать про программирование.
                                                                                                              • 0
                                                                                                                А вот представьте, я однажды так проснулся. У меня сильно ухудшилась память, концентрация внимания, интеллект. А еще мне стало трудно читать. Всему виной шизофрения. И можно забыть о программировании на долгие годы, может быть, навсегда.
                                                                                                              • 0

                                                                                                                Аркадий это один из нормальных разработчиков, в отличии от фреймворк девелоперов, которые тащат 100500 зависимостей, для решения какой то простой задачи. А когда проект из начального перерастает в легаси начинается бег на костылях по фреймворкам.

                                                                                                                • 0
                                                                                                                  Да, но сильная разность потенциалов с остальными разработчиками иногда делает его несчастным. Вплоть до того, что он хочет стать глупее.
                                                                                                                • +2
                                                                                                                  Читая историю Константина, подумал как ему повезло в итоге встретить такого начальника. Начальник с примесью психолога. Да хотяб просто не равнодушный человек.
                                                                                                                  • 0
                                                                                                                    Таких мало, я за жизнь видел двоих. Но сейчас этому учат — например, эмоциональный интеллект. Хотя, это, наверное, не то.
                                                                                                                    • 0
                                                                                                                      Понятие эмоционального интеллекта появилось не вчера. Но сам эмоциональный интеллект у всех людей развит по-разному. Как и логический, как и творческий.
                                                                                                                    • 0
                                                                                                                      С высокой вероятностью начальник сам через что-то такое прошел, поэтому и смог уловить схожие проблемы у подчиненного.
                                                                                                                    • +1
                                                                                                                      Нигде не встречал (включая МВА), чтобы руководителей целенаправленно учили работать с фобиями. Психологическое образование не подходит, там совсем другой тип взаимодействия.
                                                                                                                      Интересно, насколько может быть востребовано такое обучение?
                                                                                                                      • 0
                                                                                                                        Если вспомнить, что фобиям подвержены процентов 100 людей, то такое обучение было бы полезно. Востребовано — вряд ли, т.к. это более высокий уровень для руководителя, чем просто указания раздавать.
                                                                                                                      • +1
                                                                                                                        Довелось мне после колледжа (лето 2012г.) устроиться в небольшую конторку, где я работал по сути сам по себе и без наставника. По началу, пару месяцев, казалось довольно классным, что никто не сидит рядом и не критикует мои решения и код. Потом начало закрадываться сомнение в правильности происходящего, постоянно казалось, что код хоть и работает правильно, но решение не верно/не оптимально/есть способы проще и лучше и т.д. Так продолжалось месяцев 6 и даже начали проявляться следы депрессии и постоянных переработок, потому что результаты каждого реализованного решения оставляли чувство недоделанности и приходилось сидеть до 2-3 ночи, с целью переписать, отрефакторить и сделать лучше, дабы удовлетворить своего внутреннего перфекциониста. Переломный момент наступил в марте 2013, когда окончательно задолбавшись, взял сначала больничный на 2 недели, а после ещё и отпуск на 2 недели. За эти 4 недели сбросил всё, что накопилось за 8 месяцев, переосмыслил подход к работе, начал активно лазать по гитхабу, хабру, скачивать открытые проекты с целью изучения кода и того как его надо писать, какие решения лучше создавать, если задача изначально узконаправлена и не предполагает каких-то будущих интеграций. После отпуска пообщался с начальством, наняли ещё 1 программиста, с которым в паре мы уже более активно принимали конкретные решения и способы их реализации, плюс работали друг для друга своего рода стоп-кранами, чтобы не усложнять простое и не вгонять себя в дебри никому не нужной работы. Как итог данной перезагрузки, сейчас четко по задачам определяю стоит ли делать какое-то универсальное решение или же хватит узконаправленного на конкретную задачу, полностью избавился от чувства собственного несовершенства, не скажу, что всегда пишу хороший и оптимальный код, но это меня уже тревожит в намного меньшей степени, чем было по началу
                                                                                                                        • 0
                                                                                                                          Ваша история похожа на историю Геннадия, так?
                                                                                                                          • 0
                                                                                                                            Похожа, но к сожалению свои работы не выкладываю :(
                                                                                                                        • 0
                                                                                                                          Спасибо автору за статью. От себя хотелось бы добавить, что есть еще одна самая страшная фобия программиста. Такой фобией является проэкт с стршной архитектурой вместе с говнокодом и старыми бывалыми «прогаммистами», которые верят в свой шикарный код, который трудно майнтейнить, а тем более расширять. Сам попал в такую команду и к сожелению самой большой проблемой стал не проэкт, а люди, которые ничего не хотят менять. К счатью со мной оказался единомышленик, но вдвоем столкнуть проэкт с места, где все написано не правильно(в голове возникает мысль, это писали какие-то школьники) столкнуть с места задача не подъемная. В общем говнокод и говнокодеры — это самое страшное, а также «программисты», которые занимаются самообманом и верят в свой s.t.u.p.i.d. код.
                                                                                                                          • 0
                                                                                                                            Картинку с Винни-Пухом чуть выше видели?
                                                                                                                          • 0
                                                                                                                            Хм… встречал я такое, только с обратной стороны, когда пришла пара супер крутых умников и стала нам наш «говнокод» выправлять, год пыхтели, выкатили и все встало, просто намертво. Т.к. все их правильные и модные подходы не учли кучи вещей, которые в изолированном состоянии проблем не вызывают и флажков в тестах не поднимают. В общем после их улучшений остальные 30 человек полгода старались заставить систему работать хотя бы как раньше. А не любители говнокода просто пошли дальше, с чувством выполненого долга.

                                                                                                                            И я уверен, что позже появились новые пионеры, которые новый код и дизайн назвали говнокодом и предложили новое прогрессивное решение которое решит все проблемы.
                                                                                                                            • +4
                                                                                                                              Безумно интересны такие случаи. Можете рассказать подробности?