Как стать автором
Обновить

Супергерой или миф: как возникло понятие 10х-программист и что за ним стоит

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров14K
Всего голосов 28: ↑21 и ↓7+21
Комментарии34

Комментарии 34

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

Так это же про меня, про то как я программировал в 70-е и 80-е годы аж прошлого столетия:


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

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

Я вот тоже с удивлением для себя открыл этот термин, хотя перфокарты в руках держал :)

перфокарты в руках держал :)

И перфоленты тоже.

На перфолентах программировать не пришлось, только загружал с них "Посадку на Луну" и "Управление государством". А вот колоды перфокарт таскал девочкам. И самостоятельно изучали JCL, чтобы отжать побольше времени для своих вычислений на ВЦ.
Когда-то записал на перфоленте список одноклассников, чтобы позже можно было найти и списаться.
Плохой выбор оказался.

только загружал с них "Посадку на Луну" и "Управление государством"

Про то и другое стоило бы написать, а заодно и про девочек:


колоды перфокарт таскал девочкам.

А вот с этим соглашусь:


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

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

С моей точки зрения настоящий опытный 10x-программист должен быть похож не на киношного Джеймса Бонда, а на несколько иной тип супермена. Помните Мистера Вульфа из "Криминального чтива"? Человека, который решает проблемы? Когда два долболома бандюка с признаками нарциссизма повыделывались перед своими жертвами, что закончилось серьезными практическими проблемами, требующими быстрого решения, к ним был послан... Профессионал. Без паники, но при этом ценя дорогое время, он заставил всех сделать элементарные вещи (типа смыть следы крови), не давая ситуации усугубиться. При этом по большей части попивая кофеек и добродушно беседуя с хозяином дома.

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

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

Плюсуй

Уже)

просто должны не запускать ситуацию

не поспоришь)

10x-программисты не должны уметь делать супервещи в сверхтяжелых условиях.

и уж, по крайней мере, не должны за такое браться)

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

и уж, по крайней мере, не должны за такое браться)

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

Но, ведь программирование не только ремесло и профессия, но и творчество.

Программирование -- это подраздел инженерии, а инженерия -- управление сложностью. То есть умение сделать простыми сложные вещи, а также наоборот: найти непроторенную дорогу там, где все изведано. Одно НО: надо четко разделять, когда мы создаем, а когда исследуем. И, если вдруг приспичило позаниматься творчеством, ни одну его строчку кода не отдавать в продакшн, а либо в корзину, либо оставить для референса. В продакшн ТОЛЬКО с нуля и без излишнего неуемного творчества.

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

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

Идеальная отмазка, на случай, если уронил прод)))

Статья всё-таки не про покрытие кода тестами, а про неприменимость компенсаторного мышления.

Есть просто такой тип менеджмента, когда из поиска кандидата устраивают олимпиаду (используется "модель приза"), чтобы выявить так называемых Nх программистов. По-сути людей, которые загоняют себя в крысиные бега. Далее, чтобы мотивировать человека, необходимо подать напряжение на рабочее место, как на процессор, в виде дедлайнов и премиальной части зп

Понятие "10х-программист" возникло в IT-сфере и означает разработчика, который в 10 раз более продуктивен, эффективен и квалифицирован, чем средний программист. Такой специалист обладает высоким уровнем знаний и навыков, быстро решает сложные задачи, умеет работать с большим объемом кода и применять передовые технологии. Он также способен быстро обучаться и адаптироваться к новым условиям и требованиям проектов. 10х-программисты являются ценными кадрами для компаний, которые стремятся к развитию и инновациям в IT-сфере.

Спасибо, ChatGPT!

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

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

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

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

Я допускаю что такое встречается и наверняка достаточно часто. Но я бы сказал что обычно тестить код можно и без этого. Как минимум части кода точно.

То, что тесты отдельных частей кода зеленые отнюдь не гарантирует, что весь бизнес кейс работает корректно. Кроме того, тестирование по частям накладывает дополнительные расходы на мокирование и фейкирование зависимостей, а это не тривиальная задача. Например, как тестировать по-частям монорепозиторный фронт с зависимостями от 100 микросервисов?

Это только если сайт делать. У нас, например, компилируется на локальной машине, запускается на локальном же устройстве.

Еще скажите, что у вас монолит, и вас сразу закидают гнилыми помидорами :)

У меня прошивка для маршрутизатора. Если я там начну контейнеры запускать, меня клиенты помидорами закидают :)

Ну это уже чтобы совсем совсем потестить, а так можно на локальной машине докеры запускать, они же для этого и были придуманы, чтобы works on my machine, стало works in docker.

Именно по этой причине в тренд входит serverless и лямбды :)

И тем не менее, в любой профессии есть люди, которые в 10 раз более эффективны, чем в среднем по отрасли. Да, таких мало. Да, эффективны в самом широком смысле этого слова.

10х это же понятие относительное. Возможно вы не видели 10х программиста отнсительно вашего уровня, но как насчет 0.1x прораммиста? Такого который дневную задачу делает за неделю, приичем криво и косо, что потом приходиться еще 2 недели баги фиксить. Они точно существуют. Я таких видел и это не джуны.

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

Кто такой 1x-программист?

  • Гуглит, когда в чём-то не уверен.

  • Тратит время на другие вещи помимо программирования, например хобби, друзей или семью.

  • Пишет код с — вздох — багами.

  • Пишет код, который могут прочесть другие.

  • Читает доки.

  • Обновляет доки.

  • Не обязательно помешан на коде, который пишет, или задаче, которую решает.

  • Не удивляется, когда кто-то чего-то не знает.

  • Хочет и может взаимодействовать с другими.

  • Умеет признать, что был неправ, и не боится сказать «Я не знаю».

  • Помогает другим прокачать свои навыки.

  • Копипастит код из StackOverflow.

  • Задаёт вопросы.

  • Может любить или не любить писать документацию, но всё равно делает это для будущих разработчиков.

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

  • Ценит конструктивные и полезные код-ревью от коллег.

  • Предоставляет конструктивные, полезные, тактично поданные код-ревью, которые помогают коллегам расти как в личном, так и в профессиональном плане.

  • Просит помощи, когда нуждается в ней.

  • Может иметь красочный фон рабочего стола.

  • Поддерживает код на продакшне, даже если не он его написал.

  • Порой может чувствовать себя самозванцем.

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

  • Создаёт сообщество и делится знаниями.

  • Никогда не перестаёт учиться.

  • Желает выйти из зоны комфорта.

  • Вносит вклад в сообщество.

  • Может медленно писать код.

  • Не хейтит фреймворк Y, если работает с фреймворком X.

  • Иногда делает небольшие перерывы, чтобы проветрить голову.

  • Может работать как продуктивно, так и не очень.

  • Не воспринимает себя слишком серьёзно.

  • Косячит время от времени.

  • Говорит: «Я никогда не слышал об этом», — вместо того, чтобы кивать и притворяться, что это не так.

  • Заслуживает доверия.

  • Работает, чтобы жить, а не наоборот.

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

Гуглит, когда в чём-то не уверен.

Это как раз 10х программист. 1х спрашивает у соседа, когда в чём-то не уверен

Тратит время на другие вещи помимо программирования

это просто от возраста зависит

Не удивляется, когда кто-то чего-то не знает.

и это тоже

>> "Все, кто так или иначе связан с IT-сферой, знакомы с понятием 10х-программист."

Больше четверти века в программировании, а термин такой впервые встречаю :)

В Тему - https://bitfieldconsulting.com/golang/crisp-code

Don't write clean code, write CRISP code. Who wants to write dirty code, unless maybe it's for a porn site?

Good programs should be Correct, Readable, Idiomatic, Simple, and Performant

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории