Есть ли такая вещь, как супер программист? [закрыто]

14

Вы сталкивались с супер программистом? Что идентифицирует его или ее как таковое по сравнению с «нормальными» опытными / великими программистами?

Также. Как вы справляетесь с человеком в вашей команде, который считает, что он супер программист? И то, и другое, если он есть или нет?

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

Появилось несколько определений. Несмотря на слишком локализованные определения (которые определили авторов или их знакомых как супер-программистов), мне понравилась пара определений:

  1. Определение Торбьерна : человек, который делает эквивалент хорошей команды в течение длительного времени.

  2. Свободный Электрон, связанный с ответом Генри . Очень продуктивный человек, исключительных способностей. Объяснение хорошо читать.

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

    В отличие от последнего определения, Джеймс связан с мифом о гениальном программисте ( видео ). Эта же идея выражена как бессмысленное программирование в комментарии Руонга. Они представляют противоположные мнения о том, следует ли оптимизировать для такого уникального программиста или для команды.

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

Мухаммед Алкарури
источник
3
Да, и его зовут Джон Кармак .
Гэри Уиллоуби
1
У меня есть список из 4 свободных электронов на маленьком листе бумаги, который заперт в моем столе.
Генри
Если «супер-программист» == «гениальный программист», нажмите_this google.com/events/io/2009/sessions/MythGeniusProgrammer.html
Джеймс
Посмотрите ответ Джеффа о программировании без эго .
Rwong
Я просто хотел бы добавить мысль из книги «Мифический человеко-месяц» en.wikipedia.org/wiki/The_Mythical_Man-Month , в которой цитировалась исследовательская статья, в которой замечательный программист во много раз лучше, чем нормальный. Я не помню всех подробностей, но очевидно, что кто-то, кто может работать в команде, имеет большую ценность, на порядки больше, чем другие.
Трэвис,

Ответы:

17

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

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

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

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

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

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

(РЕДАКТИРОВАТЬ: причина для анонимного бита, чтобы избежать, чтобы не так супер-программист отомстил тем, кто ему противостоит).


источник
2
Отличные баллы, кроме анонимного ввода. Если команда должна по-настоящему объединиться, и «супер-программист» понимает, действительно ли он соответствует определению, им необходимо изучить сильные и слабые стороны друг друга, чтобы работать вместе для успеха команды и программного обеспечения. и построить доверие. Речь идет о том, чтобы открыть себя критике других (как это делается в определенной степени здесь), чтобы найти и исправить свои недостатки как супер-программиста.
Гуперникетес
@Huper, анонимность заключается в том, чтобы вначале не становиться личным. Если вы считаете, что вы сверхчеловек, вы не слишком хорошо относитесь к критике (или этот вопрос не задавался бы в первую очередь).
2
@ Тор, это уже личное, когда ты имеешь дело с тем, что кто-то думает о себе. Анонимность затрудняет развитие доверия. Члены команды должны верить, что они могут быть честными, что критика приветствуется, и что важные мнения высказываются открыто.
Гуперникетес
Будет ли супер-программисту легче или труднее объяснить код младшему программисту? Если разрыв большой, объяснение может быть трудным. Не так ли?
Мухаммед Алкарури
1
@ Мухаммед, учитывая, что мое определение таково, что супер-программист пишет чистый, поддерживаемый код с хорошей документацией, которую может понять даже младший программист (за исключением очень сложных алгоритмов, которые реже нужны в Java из-за того, что доступно во время выполнения, поэтому я их не считаю). Я думаю, что это будет так же легко, но, возможно, займет больше времени, чтобы объяснить младшему программисту.
5

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

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

Четан
источник
5
@Chetan: Что такое стек FIFO?
Руонг
3
@Chetan: это бесполезный ответ. Возможно, вы не работали с программистами, которые просто невероятны, вы начинаете задумываться, достойны ли вы вообще.
JBRWilkinson
Суперпрограммист должен жить в облаке и предоставлять общедоступный API для своего языка запросов разума .
Руонг
@rwong стек первым пришел - первым вышел, также известный как очередь.
альтернатива
1
@mathepic: если вы можете назвать очередь стеком, значит ли это, что LIFO и FIFO - это одно и то же? (перефразируя Линкольна)
rwong 25.10.10
3

Попросите человека написать главу о себе в стиле Coders at Work . Отправьте это издателю. Если это отклонено, то человек не супер программист.

rwong
источник
Верно ли обратное утверждение? (Если это принято, можете ли вы предположить, что он / она супер-программист?) Я думаю, что это может использовать разъяснения.
альтернатива
Я потерял всякое уважение к автору этой книги, как только прочитал, что он когда-то был «архитектором системы транзакционных сообщений на основе Java». Ну, по крайней мере, у него был смысл бросить эту работу.
Дэн Молдинг
1
@Dan Molding: Пока он замолкает и позволяет программистам, с которыми он беседует в этой книге, вести все разговоры, мне все равно, что он утверждает. (Я только что купил эту книгу и с нетерпением жду ее прочтения. Надеюсь, это так же хорошо, как я думаю). =)
Габлин
Идея хорошая, но издатели, как правило, принимают известных программистов, а не супер-программистов. Верный?
Мухаммед Алкарури
@Alkarouri: если супер имеет то же значение, что и суперзвезда , то да, быть супер-программистом тоже значит быть знаменитым.
Rwong
2

Есть те, кто может производить больше продукции, чем другие.

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

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

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

Тот, кто считает себя супер-программистом, вероятно, имеет большое эго и думает, что он хороший. Это не делает их хорошими.

Отношение <> Способность.

quickly_now
источник
1

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

Мэгги
источник
0

Вы сталкивались с супер программистом? Что идентифицирует его или ее как таковой

Из программ / проектов, которые создали , исходный код, исследование, которое было сделано.

считает, что он супер программист

Как вы говорите, он верит в это, очень трудно заставить его не верить этому. Хуже всего думать, что этого человека перестали быть лучшим программистом, потому что он думает, что все готово - супер, и он остановил его эволюцию. Что хуже, чем в программировании. В любом случае, вы всегда можете попросить доказательства ... и спросить его, с кем он / она сравнивает себя, чтобы сделать предположение, что он / она супер.

Аристос
источник