Чи є таке поняття, як супер програміст? [зачинено]


14

Ви натрапили на супер програміста? Що визначає його або її як такого в порівнянні з "нормальними" досвідченими / чудовими програмістами?

Також. як ти маєш справу з людиною у своїй команді, яка вважає, що він супер програміст? Обидва на випадок, якщо він насправді є, чи ні?

Редагувати : Цікаві дані в усьому світі, дякую. Можна виділити кілька речей:

Виникло декілька визначень. Не зважаючи на занадто локалізовані визначення (які визначили авторів або їх знайомство як суперпрограмістів), мені сподобалося пару визначень:

  1. Визначення Thorbjørn : людина, яка робить еквівалент хорошої команди послідовно протягом тривалого часу.

  2. Вільний Електрон, пов'язаний з відповіді Генрі . Дуже продуктивна людина, виняткових здібностей. Пояснення добре читати.

    Вільний Електрон може робити все, що стосується коду. Вони можуть написати повну заявку з нуля, вивчити мову у вихідні, і, що найголовніше, вони можуть зануритися у величезну купу коду спагетті, осмислити його і фактично налагодити його роботу. Ви можете створити цілий бізнес навколо Free Electron. Вони такі гарні.

    На противагу останньому визначенню, це питання, пов’язане Джеймсом з приводу міфу про геніального програміста ( відео ). Ця ж ідея виражається як безего програмування в коментарі rwong. Вони висловлюють протилежні думки щодо оптимізації для такого унікального програміста чи для команди.

Ці визначення, безумовно, різні, тому я вдячний, якщо ви маєте вклад щодо того, що краще. Або додайте свою, якщо хочете, звичайно, хоча це допоможе сказати, чому вона відрізняється від цих.


3
Так, і його звуть Джон Кармак .
Гері Віллоубі

1
У мене є список із 4-х безкоштовних електронів на невеликому аркуші паперу, зафіксованим в нічию в моєму столі.
Генрі

Якщо 'супер програміст' == 'геніальний програміст' click_this google.com/events/io/2009/sesions/MythGeniusProgrammer.html
Джеймс

Дивіться відповідь Джеффа про безпроблемне програмування .
rwong

Я просто хотів би додати думку з книги «Міфічна людина-місяць», en.wikipedia.org/wiki/The_Mythical_Man-Month , цитується науково-дослідна робота, яка вказує на відмінного програміста в кілька разів кращого, ніж добре. Я не пригадую всіх деталей, але очевидно, що в когось, хто може виробляти команду, є велика цінність, на порядок більше, ніж в інших.
Тревіс

Відповіді:


17

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

Це стосується як написання високоякісного коду (документація, тести тощо), так і вирішення дуже складних проблем, для вирішення яких потрібно багато знань та таланту.

Але це вимагає високої продуктивності на всіх рахунках протягом тривалого часу. Для тих, хто пише тонни коду, ніхто не може зрозуміти і підтримувати, термін не застосовується.

Як боротися? Якщо у вас справді є така людина, то зробіть усе можливе, щоб забезпечити риштування, необхідні для того, щоб ця людина змогла досягти успіху. Це означає відсунути непотрібні речі в сторону та забезпечити необхідні ресурси людині. Зауважте, що я виявив, що дуже високі виконавці, як правило, скромні.

На жаль, набагато ймовірніше, що у вас є людина, яка вважає себе супер програмістом, а ні. З мого досвіду вирішується спосіб боротьби з ними, щоб зробити їх ефективними. "FindBugs може не знайти жодних проблем", "У всіх кодах повинні бути тести, що відповідають випадкам використання", "Експертна перевірка".

Якщо код по-справжньому важко зрозуміти, розгляньте щотижневі зустрічі, де не надто супер програміст пояснює будь-який код, який він написав з моменту останньої зустрічі, який кожен може анонімно запитати, щоб він пояснив, і будь-хто може анонімно відхилити прийняття в кодова база для нього неможлива. Тоді ви принаймні поділилися менталітетом і дозволили майбутнім обслуговуючим особам накласти вето на частину коду. Це також сильно вкаже програмісту, який тип коду призведе до того, що йому доведеться зайву роботу.

(EDIT: Причина анонімного біту полягає в тому, щоб уникнути того, щоб не надто супер програміст помстився тим, хто проти нього).


2
Відмінні бали, крім анонімного введення. Якщо команда по-справжньому об'єднається, а "суперпрограміст" зрозуміє, чи насправді він відповідає визначенню, їм потрібно буде вивчити сильні та слабкі сторони один одного, щоб разом працювати на успіх команди та програмного забезпечення та вибудовувати довіру. Справа в тому, щоб відкрити себе до критики інших (як це робиться певною мірою тут), щоб знайти і виправити свої недоліки як суперпрограміста.
Хупернікетес

@Huper, анонімність полягає у тому, щоб уникнути цього особисто на початку. Якщо ви вважаєте, що ви нелюдські, ви, можливо, не надто добре ставитесь до критики (інакше це питання не було б задане в першу чергу).

2
@То, це вже особисте, коли ти маєш справу з тим, що хтось вірить у себе. Анонімність ускладнює розвиток довіри. Учасники команди повинні вірити, що вони можуть бути чесними, що критика вітається, і що важливі думки висловлюються відкрито.
Хупернікетес

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

1
@ Мухаммед, враховуючи, що моє визначення полягає в тому, що суперпрограміст пише чистий, доступний код з хорошою документацією, який може зрозуміти навіть молодший програміст (за винятком дуже складних алгоритмів, які рідше потрібні в Java через речі, доступні під час виконання, тому я їх не вважаю). Я б подумав, що це було б так просто, але, можливо, піде більше часу, щоб пояснити молодшому програмісту.

5

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

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


5
@Chetan: Що таке стек FIFO?
rwong

3
@Chetan: це корисна відповідь. Можливо, ви не працювали з просто неймовірними програмістами, ви починаєте замислюватися, чи взагалі ви гідні.
JBRWilkinson

Суперпрограміст повинен жити в хмарі та надавати публічний API для своєї мови запитів розуму .
rwong

@rwong first-in steck first-out, також відомий як черга.
альтернатива

1
@mathepic: якщо ви можете викликати чергу стеком, чи означає це, що LIFO та FIFO - це одне і те ж? (перефразовуючи Лінкольна)
rwong

3

Попросіть людину написати главу про себе у стилі « Кодери на роботі» . Надішліть його видавцеві. Якщо його відхиляють, то людина не супер програміст.


Чи правдива зворотність вашого твердження? (Якщо це прийнято, чи можете ви припустити, що він / вона супер програміст?) Я думаю, що це може використати уточнення.
альтернатива

Я втратив будь-яку повагу до автора цієї книги, як тільки прочитав, що він колись був "архітектором транзакційних систем обміну повідомленнями на основі Java". О, ну, принаймні він мав сенс кинути цю роботу.
Dan Molding

1
@Dan Molding: Поки він замикається і дає можливість програмістам, з якими він проводить співбесіду в цій книзі, все розмовляють, мені все одно, що він претендує. (Я щойно купив цю книгу і з нетерпінням чекаю її читання. Сподіваюсь, що це так добре, як я думаю, що це є). =)
габлін

Ідея хороша, але видавці, як правило, приймають відомих програмістів, а не суперпрограмістів. Правильно?
Мухаммед Алкарурі

@Alkarouri: якщо super має те саме значення, що і у superstar , тоді так, бути суперпрограмістом означає також бути знаменитим.
rwong

2

Є ті, хто може отримати більше продукції, ніж інші.

Є ті, хто може отримати вихід із меншим коефіцієнтом дефектів, ніж інші.

Ті, хто зможе КОНСИСТИЧНО отримати більше випуску, із меншими, ніж звичайні, дефектами, можуть бути гідними називатися суперпрограмістом.

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

Хтось із речей, які вони є суперпрограмістом, ймовірно, має велике его і вважає, що вони хороші. Це не робить їх корисними.

Ставлення <> Здатність.


1

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


0

Ви натрапили на супер програміста? Що визначає його або її як такого

З програм / проектів, які створюються , вихідного коду, дослідження, що було зроблено.

вважає, що він супер програміст

Як ви говорите, він вірить у це, дуже важко змусити його не повірити. Найгірше думка полягає в тому, що цю людину зупинили, щоб бути кращою програмісткою, бо він вважає, що все готово - це супер, і він припиняє еволюцію його. Що гірше, ніж у програмуванні. У будь-якому випадку, ви завжди можете попросити доказів ... і попросити його, з ким він / вона порівнює себе, щоб зробити припущення, що він / вона супер.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.