Хороший ли я программист? Если коротко — я не знаю, что это значит.

Вот я программирую уже 52 года, с 1973 года, спасибо урокам в государственной средней школе — тогда это было редкостью и не все школы давали подобную возможность. Я работал в 15 разных компаниях в самых разных отраслях. Болше скажу, я основал две небольшие софтверные компании — одну в 1985 году и вторую в 1987-м, и руководил ими до 1994 года. А потом я вышел на пенсию в 2021-м году.

Так что же, я хороший программист потому, что я в целом 52 года в отрасли и всё это время программирую?

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

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

«Хорошесть» вообще трудно определить. Если сравнивать программистов друг с другом, как решить, кто из них лучше? Попросить их создать проекты одного типа в одной отрасли? Сравнить уровень опыта? Оценить знание одних и тех же технологий? А что по должностям и рабочим обязанностям?

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

Скажем, я создаю приложения для мобилок, а вы, например, вообще Линус и создаёте операционную систему — как мне с вами тут (и чем) сравниваться?

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

Может, вы работали в Google, а я — в нетехнологичной компании, где платят меньше. И вообще, у меня команда была из двух человек, которая делала продукт на 100 миллионов в год, а у вашей команды — бюджет 100 миллионов в год и тысяча программистов под вашим руководством. Кто из нас теперь хороший программист?

Может, мы оба хороши, а может, нет.

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

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

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

Но есть нюанс.

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

Попробуем быть чуть более объективными.

Могут ли другие решить, хороший вы программист или не особо?

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

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

Сюрприз — ничто из этого ни разу не значит, что вы хороши. Вам просто могло повезти. В том числе — и со связями.

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

Может, вы потрясно выступаете на соревнованиях по программированию, у вас дома обои отваливаются от развешенных на них сертификатов или PhD по Computer Science.

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

Кто решает, хороший вы программист или нет?

Отрасль, комментаторы на Хабре, реакция на ваш профиль на Гитхабе? Начальник, коллеги, спикеры на конфах, ваша мама? Кажется, мы в ситуации, когда сложно придумать не просто критерии «хорошести», а даже просто понять, кто будет это решать.

Когда вы становитесь хорошим программистом? Можно ли вообще лет 10 быть просто отвратительным программистом, а потом рррраз — и внезапно стать хорошим? Это всё та же проблема: определить, что такое «хороший», кто решает и по каким критериям или сравнению.

В конечном итоге определение хорошего программиста крайне субъективно и его очень трудно зафиксировать.

Считаю ли я, что был хорошим программистом? Да, считаю, но считаю ли я, что мог бы быть лучше? Всё хорошее, что я выпустил, можно было бы сделать лучше, с меньшим количеством людей или просто быстрее. Всё, что я выпустил, мог бы улучшить кто-то «лучше» меня в каком-то смысле.

Но я был там, а вот «лучшего» человека тогда не было.

Им пришлось быть мне.

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

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

Сравнивать себя или других с какими-то теоретическими альтернативами в вакууме — то ещё занятие. Я видел в жизни много софта, какие-то вещи были потрясающими, и я был уверен, что сам бы такое не смог написать никогда.

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

Так хороший я программист или нет?

Я думаю, что был таковым, но что это на самом деле значит, если даже определить хорошего программиста так сложно?

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

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


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

В конечном итоге этого достаточно.

Комментарии (39)


  1. deLynce
    28.01.2026 10:44

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


    1. Femistoklov
      28.01.2026 10:44

      А с докторами тоже непросто отличить: https://habr.com/ru/companies/belayaraduga/articles/844538/. Может быть субъективный критерий "этот доктор не смог вылечить мою сложную болезнь, а тот смог - значит тот лучше". Но даже это оценка не только доктора, а доктора в совокупности с его командой, оснащением, доступными материалами и т.п. Для пациента норм, но вот чтобы именно самого доктора оценить в отрыве от всего остального - не годится.

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


      1. deLynce
        28.01.2026 10:44

        Наверное, понимание ограничений и озвучивание их вам явно этого специалиста повысило в ваших глазах?
        Да, хороший доктор — это тоже множество факторов, которые складываются в голове. Я же заметил, что текст — процесс рассуждения, где берутся какие-то тезисы, по которым обычно не оценивается специалист. Берется всегда совокупность каких-то значений, которые, вообще, могут быть значимыми только для конкретного оценщика. Самооценка ли это или оценка другого человека.


    1. Aggle
      28.01.2026 10:44

      хирург лучше проктолога

      Даже самый лучший хирург может оказаться отвратительным стоматологом. (ц)


      1. deLynce
        28.01.2026 10:44

        а стоматолог может оказаться хорошим хирургом?)


        1. Onym
          28.01.2026 10:44

          Конечно! Особенно, если это хирург, который занимается, например, удалением зубов.


  1. ALexKud
    28.01.2026 10:44

    Моя команда из 2-х человек сделала программную систему , которая работатет на оборудовании стоимостью больше единички с двумя нулями миллионов и в перспективе приносит такой же доход наверное. Мы уже не один год поддерживаем и развиваем не только эту систему, но и разработали еще несколько систем, требуемых для производства и сервиса. Наверно нам повезло работать в такой компании и видеть результаты своей работы ,но при том что у нас зарплата не заоблачная. Хорошие мы программисты или нет? Я думаю да, неплохие и прежде всего потому что мы были и остаемся командой, дополняя друг друга. У меня много различных сертификатов и курсов, которые я проходил, но ни одного нет по программированию, хотя я как архитектор и программист нашел себя в этой компании где работаю уже скоро десять лет и уже на пенсии. Что касается игры на гитаре - это хобби я имею с 15 лет и в общем тоже играю для себя, освоил нотную грамоту, пишу музыку, играю неплохо к примеру прелюдии Баха. Но опять же для себя. Хороший я музыкант или нет в общем мне не особо важно. Мне как и с программированием нравятся мои занятия. На даче пришлось научиться бетонировать, строгать доски, варить металл и т д и т п. Банально, но век живи век учись, чтобы чувствовать всю полноту жизни.


    1. victor_1212
      28.01.2026 10:44

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


  1. VYudachev
    28.01.2026 10:44

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

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

    А по существу, в очередной раз вспомню Стивена Кинга.

    Что такое талант?

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

    Вы написали код, и за него заплатили деньги? Поздравляю, Вы хороший программист!


    1. Soulskill
      28.01.2026 10:44

      Получается вайбкодеры Майкрософта тоже хорошие программисты. Хорошесть программиста определяется одним, умеет ли он самостоятельно создавать новое и решать нетипичные задачи. Никто не знал что Линукс взлетит, никто не просил Кармака делать нормальное 3д, никто не просил писать dxvk. Куда ни плюнь все что делается на коммерческой основе без души поломано, опыт использования винды по крайней мере об этом говорит. Я кому-то писал, что продать можно и говно, но это не означает что говно будет при этом не говном, даже если за него уплачено.


      1. VYudachev
        28.01.2026 10:44

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


        1. Zalechi
          28.01.2026 10:44

          Нет. Зависит от вектора оценки. С какой стороны оценивать. С точки зрения бизнеса все ок, с точки зрения пользователя — дерьмо (я вынужден покупать то что мне навязывают. Так кто прав?

          Кнопки сенсорные в автомобилях, как пример. И такого дерьма полным полно.

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

          Полный хаос.


  1. WhiteBehemoth
    28.01.2026 10:44

    У каждого, наверное, есть свой критерий. И кроме того, "плохой-хороший", это не два состояния, это градация, причем не абсолютная.

    Поэтому важна не оценка "хорошести", а стремление к улучшению. Короче, программисты, как самураи. У нас - не цель, но путь! )


  1. muhachev
    28.01.2026 10:44

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


    1. Jubilus
      28.01.2026 10:44

      Человек на пенсии, ему уже фиолетово на наши оценки, он свое отработал и заработал)


  1. Mizantrop777
    28.01.2026 10:44

    Хорошо философствовать на пенсии) хотя, думаю, на пенсии я все равно буду работать. Так, чисто для души.


    1. dedmagic
      28.01.2026 10:44

      А Вы, батенька, оптимист!
      Сейчас даже те разработчики, кому до пенсии ещё достаточно далеко, не могут найти работу из-за эйджизма. Так что получится ли у Вас найти работу на пенсии -- совсем не факт...


      1. Astrowalk
        28.01.2026 10:44

        Для души можно поработать и бесплатно. И даже доплачивать самому ☺.


  1. MaximKiselev
    28.01.2026 10:44

    Да легко можно, есть же хорошие дизайнеры и плохие( вы же сразу сможете определить разницу). С программистами также, но немного сложнее. Для меня это

    • чувство стиля. может создавать хотя бы на фрамворках вменяемый дизайн

    • хорошая оптимизация программ по скорости и безопасности

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

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


    1. Aggle
      28.01.2026 10:44

      Отличное определение! И про скорость - в точку.


  1. Dhwtj
    28.01.2026 10:44

    Спасибо, Чак!©
    Спасибо, Чак!©


    1. Dhwtj
      28.01.2026 10:44

      Надеюсь, меня будут вспоминать таким
      Надеюсь, меня будут вспоминать таким


  1. eatmeat
    28.01.2026 10:44

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


  1. Android1983
    28.01.2026 10:44

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

    Моё мнение что хороший программист тот кто всегда учиться. Это нужно во первых по причине того что создаётся всегда что-то новое и лучшее. Во вторых изучая мнение других можно сформировать своё мнение основанное на опыте многих у кого вы учились через книги или лично.

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


  1. ByJumping
    28.01.2026 10:44

    Как будто бы все можно оценить проще - насколько хорошо/быстро/качественно программист выполняет поставленные задачи) Или еще проще - выполняет? Значит хороший


    1. Aggle
      28.01.2026 10:44

      хорошо/быстро/качественно

      Выбирайте два из трёх.


  1. pravosleva
    28.01.2026 10:44

    Я думаю, на этот вопрос даст ответ только конкретный результат (и только для конкретного случая). Если по итогу проект необходимо сложен и достаточно прост, отказоустойчив и масштабируем - я бы сказал, что он написан хорошо. Мои критерии: 1) Если в моем проекте разобрался другой человек, задавая минимум вопросов, 2) если я решаю типовые задачи, часто переиспользуя существующий код, 3) как пример, если с бэка прилетают странные данные, и мой проект не падает, а вполне штатно диагностирует, что конкретно ему не нравится (и пишет мне руководство к действию, сэкономив мне время на отладку и поиск причин), 4) ну и соблюдены прочие мелочи в плане производительности - почему бы мне не считать себя нормальным кодером?


    1. Jubilus
      28.01.2026 10:44

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


  1. dprav
    28.01.2026 10:44

    Хороший программист понятие простое и сложное одновременно.

    Тут как и в определении хорошего человека, есть только какие-то критерии.

    То есть ты хороший программист, потому что

    1. Всегда учишь что-то новое

    2. Всегда делишься опытом с товарищами

    3. Делаешь свою работу хорошо и качественно

    4. Работаешь над ошибками и т.д.

    Но могу с уверенностью сказать, что и у хорошего специалиста есть промашки и грешки. И что теперь - он хороший плохой полицейский одновременно? Думаю, что он так же хорош, но в чем-то, не в общем, но в целом.

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

    Моё любимое качество специалиста - это учиться и не унывать. А остальное все придёт.


  1. ArtemKonkin
    28.01.2026 10:44

    Батя зашёл, и навалил базы. Моё уважение, коллега. Пол века отдать одному (как я понимаю, любимому) делу - достойно в любом случае.


  1. Jubilus
    28.01.2026 10:44

    Хороший программист тот, чей код можно поддерживать и развивать без использования спиритической доски и куклы вуду. Если через год ты сам (или твой коллега) открываешь проект и понимаешь, что там происходит без литра кофе и успокоительного - это уже высший пилотаж. Остальное - от лукавого и маркетинга


  1. vvbob
    28.01.2026 10:44

    Я бы назвал сей трактат - "О проблемах фаллометрии в условиях неопределенности внутри индустрии разработки ПО" :))

    Хороший, плохой, какая разница? Делай что должен, старайся делать хорошо! Все равно, если развиваешься как специалист, то старый код будет казаться уже не очень хорошим, идеал недостижим в принципе, да и когнитивные искажения никуда не денутся, так уж люди устроены, что не могут объективно себя оценивать при всем желании.