Проклятье хороших программистов.

Небольшое выныривание из заморозки.

Заметил по себе (и не только по себе). Есть у хороших программистов плохая черта. В определенный момент, когда ты понимаешь, что ты хороший программист, то

а) Прекращаешь спрашивать совета у других (так как вероятнее всего они хуже и толкового совета не дадут).

б) Прекращаешь критически оценивать свои идеи (так как уже нереально крут, а значит прав по определению).

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

28 комментариев to “Проклятье хороших программистов.”

  1. Это проклятие самоуверенных специалистов, а не хороших программистов 🙂

    • Victor Ronin:

      Самоуверенность может жить как сама по себе, так и хорошо «паразитировать» на других качествах человека. Так вот, самоуверенность паразитирует на просто уверенности.

  2. Яски:

    Теми же качествами страдают Junior программисты.

  3. Поняв, что ты хороший программист, нужно идти работать с отличнымми программистами.

    • Victor Ronin:

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

  4. Есть 4 этапа познания.
    1. Бессознательная некомпетентность (не знаю даже, чего я не знаю).
    2. Сознательная некомпетентность (начальные знания первого типа; «знаю, чего я не знаю»).
    3. Сознательная компетентность (устойчивое воспроизводство знаний первого типа и начальные умения — знания второго типа; «знаю, что я знаю и делаю под сознательным контролем»).
    4. Бессознательная компетентность (знания первого типа развиты до уровня понимания и легкого воспроизводства, а знания второго типа автоматизированы и интегрированы в опыте).

    И есть 4 пути обучения.
    1) 1-2-3-4
    2) 1-4
    3) 2-4-3 или 2-4-2
    4) 4-2-3-4

    Но могу согласиться вот в чем. Очень часто просто не у кого спросить, так как соседи того же уровня, что и ты. Спросить на каком либо форуме: структурировать вопрос, что дает 1/3 ответа на него, и к тому же очень вероятно, что пока дадут ответ — ты на него уже ответ узнаешь.
    Есть два замечательных способа, первый — это гугл, второй — семинары и конференции. И если (а) так и не развивается, то пункт (б) на семинарах отлично ставит тебя на место!

    • Victor Ronin:

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

      А вот если засидеться в офисе без стороннего взгляду, то просто постоянно варишься в своем соку.

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

      Так вот, именно эти знания — червоточина в компетентности.

    • >пока дадут ответ — ты на него уже ответ узнаешь

      Давно здесь ничего не комментировал, но это была моя любимая мозоль. Я для себя даже закон вывел: в 80% случаев через 5-10 минут после того как задал вопрос сам узнаешь на него ответ. 🙂

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

      СБ, фриланс(географический) от этого быстро лечит.

    • paul:

      а пути обучения у которых номер начального и конечного пункта совпадают — они циклические? ))

  5. D_3:

    У нас программист сам все делает никого не спрашивает, главное его не трогать в этот момент. А то впадает в ступор.

    • Victor Ronin:

      Ошибки он тоже сам делает ;)) Об этом и статья была 🙂

      • D_3:

        Если его трогать ошибок будет раза в 3 больше.

        • Victor Ronin:

          Хм… Спорно….

          Если его постоянно трогать и дергать — то да.

          Но если его не дергать, то может простых ошибок будет меньше, а вот архитектурных (которые более опасны) — больше.

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

  6. GeF:

    Я сейчас читаю (вернее слушаю) Кастанеду, там есть более общаям мысль по этому поводу 🙂

    «– Ты слишком серьезно к себе относишься, – медленно проговорил
    он. – И воспринимаешь себя как чертовски важную персону. Это
    нужно изменить! Ведь ты настолько важен, что считаешь себя
    вправе раздражаться по любому поводу. Настолько важен, что
    можешь позволить себе развернуться и уйти, когда ситуация
    складывается не так, как тебе этого хочется. Возможно, ты
    полагаешь, что тем самым демонстрируешь силу своего характера.
    Но это же чушь! Ты – слабый, чванливый и самовлюбленный тип!
    Я попытался было возразить, но дон Хуан не позволил. Он сказал,
    что из-за непомерно раздутого чувства собственной важности я за
    всю свою жизнь не довел до конца ни единого дела.»

  7. Dyck:

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

  8. Хорошие специалисты постоянно учатся, следят за тем, что происходит в отрасли, читают книги. Так что этот пост относится к плохим программистам 🙂

    • Victor Ronin:

      Учиться и ошибаться вполне совместимые вещи.

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

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

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

    Перестает критически оценивать идеи..? хм… Искать уязвомости надо для того, что бы сделать это сильнее и лучше. Тут надо думать мозгом, а не самолюбием.

    В принципе топик то получился ни о чем. 🙂 Т.е. не только программисты болеют «самолюбием» и излишней самоувереностью. Это наверно более к психологам, чем в ИТ-бизнес :))).

    • Victor Ronin:

      Согласен по всем пунктам.

      Естественно топик не только о программистах. Вообще мало что кроме совсем уж глубоких технических деталей относится только к программистам.

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

  10. Есть такой метод разработки ПО, называется «метод резиновой уточки» 😀 Это когда ты берешь резиновую уточку, и начинаешь ей объяснять, что и как ты хочешь сделать. И пока объясняешь — понимаешь сам, что и как надо сделать.

    Так что спрашивать не у кого — вокруг одни джуниоры — это фарс; в худшем случае они — «уточки», в лучшем — быстрее втянутся 🙂 Надо рассказывать, советоваться и общаться больше. Вот и все.

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

    Кстати, что странно, необязательно быть хорошим программистом, чтобы делать а, б, и а*б 🙂

    • Victor Ronin:

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

      >Кстати, что странно, необязательно быть хорошим программистом, чтобы делать а, б, и а*б 🙂

      Да, не обязательно. Можно быть зеленым и черезчур самоуверенным. Но обычно жизнь бьет по сусалам за это серьезно.

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

  11. rastaman_2008:

    а) Прекращаешь спрашивать совета у других (так как вероятнее всего они хуже и толкового совета не дадут).

    б) Прекращаешь критически оценивать свои идеи (так как уже нереально крут, а значит прав по определению).

    ВОТ это верно!

    • Victor Ronin:

      URL убрал.

      Но вообще, спам с каждым днем становится все интересно.

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

  12. amxm:

    Одно дело программист, а другое для управления проектами нужны и другие качества.