Як я можу знати, чи я хороший програміст?


301

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

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

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

Отже, мені цікаво, чи існує якийсь спосіб програміст зробити якусь розумну самооцінку? Як ми можемо знати, хороші ми чи погані в роботі?

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


Що ти хочеш знати? Ніхто не може визначити, що таке «добре». Якщо ви виконаєте роботу, як очікувалося, і заплатите добре, це досить добре.
Мерт Аккаякая

Відповіді:


325

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

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

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

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

Хороший програміст знає, що вона / він не чудовий програміст. По-справжньому великих програмістів не існує, є лише ті, хто претендує на великий, і ті, хто знають, що вони не великі.


5
Ви прибиваєте це прямо на голову! ІМО!

13
І я вважаю, що більш загальним наслідком є ​​те, що ти хороший у тому, що ти робиш, коли дбаєш про те, що ти робиш.

7
Добре сказано. Щодо его / смирення, я прийшов через лабораторію MIT AI у 70-х. Найкращі кодери мали певну скромну впевненість. Якщо ви думаєте, що робите щось важливе, ви можете помилитися, але якщо цього не зробите, ви, мабуть, праві.
Майк Данлаве

4
Я частково погоджуюся з параграфом №2: "Мало того, що вони здатні пояснити складні технічні терміни непрофесіоналам ..." Я знаю деяких хороших програмістів. Але вони нічого не могли пояснити нікому поза своїм колом. Вони також не могли зрозуміти, що намагався сказати лайперсон. Вони обоє дивляться один на одного очима "олені в фарах". Скажу, що вони надзвичайно комунікативні. За рештою ваших пунктів я підсумую їх, сказавши, що хороший програміст є скромним і готовим поділитися своїми знаннями найкращим чином, який він / вона знає.
IАнотація

101
"і зробив би це у вільний час, навіть якщо вони вже витрачають 80+ годин на тиждень на програмування." Позбавтеся від цього дурного твердження, і я б повністю погодився з рештою. По-справжньому «хороший програміст», розуміє, що працюючи 80+ годинних тижнів, робити щось інше, ніж програмування (у вільний час) має важливе значення для фізичного та психічного здоров’я та продуктивності на роботі.

91

Як красномовно підкреслює Пол Ґрем в цьому складі , ви не можете. Тільки ваші колеги можуть вам сказати.


4
Ця відповідь набагато краща за прийняту ...

125
Ваші колеги не можуть сказати, чи ви компетентні, якщо вони некомпетентні. Вони просто подумають, що у вас є дивні думки, і пристрасно сперечаються з нерелевантних предметів.

2
Погодьтеся, клавіша. Тоді ніхто не може вам сказати, і ви ніколи не дізнаєтесь, якщо ви не знайдете собі нових колег. Я думаю, що в довгостроковій перспективі працювати з тим, хто є компетентним, не вигідно.

1
@keysersoze, але якщо я справді некомпетентний, мої колеги можуть бути компетентними, і я занадто дурний, щоб це усвідомити;)

1
Пол Грехем також написав есе про великих програмістів, зазначивши, що йому не вдається назвати великих, оскільки він ніколи насправді не працював з очевидним вибором (наприклад, Річард Сталлман, Лінус Торвальдс та ін.).
Девід Торнлі

59

Я завжди вважав, що найпростіше судити про свою ефективність, виконуючи дві речі.

  1. Оточіть себе іншими хорошими програмістами
  2. Подивіться, наскільки вони скаржаться на код, який ви пишете.

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

Тепер задля того, щоб перейти до теми, я цитую Роберта А. Хайнлайна та його погляд на цю тему:

"[Програміст, котрий бив) повинен мати можливість змінити підгузник, спланувати вторгнення, розстріляти свиня, розправити корабель, спроектувати будівлю, написати сонет, балансувати рахунки, побудувати стіну, встановити кістку, потішити вмираючих , прийміть накази, дайте накази, співпрацюйте, дійте самостійно, вирішіть рівняння, проаналізуйте нову проблему, нагнітайте гній, запрограмуйте комп’ютер, готуйте смачну їжу, ефективно боріться і галантно вмирайте. Спеціалізація - для комах ».
- з «Зошита Лазаря Лонга».


12
якось нагадує мені цитату: "Дурні люди оточують себе розумними людьми. Розумні люди оточують себе розумними людьми, які з ними не згодні".
Сем Хаслер

Я ризикую сказати, що це найкраща цитата Хайнлайна на SO.

1
Проблема полягає в тому, що інші програмісти можуть бути або не бути на вашому рівні або вище, але вони можуть не захотіти образити вас. Я не дуже перешкодив зворотній зв'язок від трьох програмістів, з якими працював, і дуже мінімальний від двох інших, одного, якого я вважаю б "хорошим" ...

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

55

Це матриця компетентності програміста саме для вас: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm


Мені 3-4, як 90% цих предметів, і я не можу кодувати лайно. Принаймні, не надто швидко.

-1 для списку покупок.

6
-1 - знання алгоритмів добре, але немає жодного способу, щоб усі ці речі зберігалися у вашій голові, коли хтось опитує вас. Саме для цього призначені wikipedia, google та stackoverflow.

1
Погоджуючись, що цей список здебільшого марний; це приємне джерело ідей, якщо ви шукаєте вправи, але це не дуже корисно, якщо визначити, що ви "хороший програміст". "Хороший програміст" - це більше ставлення, ніж довільний список.

2
+1. Хоча я не згоден з сказаним вище, я все ще думаю, що це дуже хороший список. Дякуємо, що опублікували це. Це, безумовно, різновиди критеріїв, за якими я оцінював програміста, який подає заявку на роботу. І @macnnicken, це лише на рівень 3. :)
EMP

38

Джефф має одне з моїх улюблених дописів на цю тему ... Чому я найкращий програміст у світі

"... наша робота не бути кращою за всіх; нам просто потрібно бути кращими, ніж ми були рік тому".


3
Мені подобається ця цитата, дуже гарна. І в чому полягає програмування. "Будь краще в тому, що ти робиш, і знай день у день".

1
Щороку впродовж останніх 12 років я переглядав код, про який писав рік тому, і вважав, що це абсолютно лайно. Можливо, я щось роблю правильно! Немає нічого гіршого від застійного програміста.

28

Я думаю, що факт, що ви задаєте питання, доводить, що ви не поганий програміст, тому, на мою думку, ви на півдорозі. :)

Погані програмісти завжди вважають, що вони чудові програмісти.


скільки у вас досвіду?

1
Мій досвід узгоджується з вашим досвідом, саме тому я хвилююся, коли починаю думати, що мені добре.
Крістофер Джонсон

21

@ Заява Ніка "Погані програмісти завжди думають, що вони чудові програмісти ..." пояснюється ефектом Даннінга Крюгера , який узагальнює, що люди, які мало знають про тему, часто переоцінюють, наскільки вони насправді знають.

Будучи трохи пильним ... чим менше ви думаєте, що знаєте, тим більше, напевно, робите .... якщо, звичайно, ви справді не знаєте ідіот.

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


Ефект Даннінга-Крюгера страшенно принижує. Мені подобається намагатися і мати це на увазі, коли я почуваю себе добре в чомусь, що я зробив!

Хороші програмісти не задають питань, а потім голосують, оскільки вони їх не люблять. Вони не діють так, як знають все в новій темі, і коли експерт відповідає на запитання, він не відмовляється, оскільки це не той, кого вони хотіли.

Я б хотів, щоб я мав підказку про ДК ще в коледжі, коли я був прекрасним прикладом одного кінця спектру!
DarenW

18

Відповідь, яка набрала найбільше плюс голосів, насправді викликає сумніви. В основному це говорить про те, що поза програмою у вас немає життя. А як з сім'єю? Громада? Хобі? Яка професія ми там, де вам доводиться зайнятись точкою одержимості, щоб її вважали «хорошою»? Я дійсно думаю, що нам тут потрібно отримати певну перспективу.


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

Добре місце для позначення терміна програміст 501: hanselman.com/blog/…
ChrisFletcher


9

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

Саме реалізація робить вас кращим програмістом, ніж більшість поганих програмістів там.

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


9

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


Я просто переглянув свою привітну світову програму і подумав, що зараз це набагато ефективніше, я добре? JKS JKS

9

Ось кілька прикладів реального життя поганого програмування. Звичайно, подібний код був у всьому місці копіювання / вклеювання в 100 місцях. Хлопця звільнили, але я чув, що він знову отримав хорошу роботу. Насолоджуйтесь:

а)

if (! TableObject.loadList("sql condition").isEmpty()) {  
    List<TableObject> myList = TableObject.loadList("sql condition");  
    ...  
}

б)

public static Type getInstance() {  
    if (instance == null) {  
        return new Type();  
    }  
    return instance;  
}

в)

getForeignKeyObjectProperty1() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty1();  
}  

getForeignKeyObjectProperty2() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty2();  
}  

...

getForeignKeyObjectPropertyN() {
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getPropertyN();
}

г)

public boolean isHasImage() throws SQLException {
    StringBuilder query = new StringBuilder();
    query.append("select user_name");
    query.append(" from user");
    query.append(" where has_image = 1");
    query.append(" and user_name ='"+getUserName()+"' and user_image is not null");
    Connection c = Database.getInstance().getConnection();
    Statement st = c.createStatement();

    try {
        ResultSet rs = st.executeQuery(query.toString());
        if (rs.hasNext()) {
            return true;
        } else {
            return false;
        }
    } finally {
        st.close();
    }
}

Якщо ви робите такий код, припиніть програмування. Якщо ви не бачите нічого дивного в цьому коді, припиніть програмування. Інакше ти не поганий, тому ти навіть можеш бути хорошим :)

EDIT: Щоб відповісти на коментарі: я влаштувався на роботу ще до закінчення навчання, і цей хлопець вже мав кілька років досвіду програмування. Його звільнили через кілька місяців після того, як я працевлаштувався, тому я не мав змоги нікого навчати. Приклади вище були просто з моєї голови - кожен кодовий мир, якого він торкнувся, був хибний різними і образними способами. Більшість речей почала виповзати після того, як він пішов з компанії, бо лише тоді інші люди побачили деякі частини коду. Він, як правило, приємний хлопець, приємний з іншими спілкуватися, але він НІКОЛИ не буде хорошим програмістом, так як я ніколи не буду хорошим живописцем, письменником чи іншим.

Щоб порівняти це з іншим прикладом, хлопець, який прийшов його замінити, також був на той час недооціненим. Він вивчав коледж, більш відомий менеджментом, ніж програмуванням. Він не надто примхливий у тому сенсі, що програмував що-небудь для розваги або сидів би вдома і читав про Java або програмування, але все-таки робить все добре. Він швидко підлаштувався і почав виробляти корисний і підтримуваний код. Деякі люди можуть це зробити, інші не можуть - просто запитайте dailywtf.


11
Будь-хто може розмістити довільний код і стверджувати, що ті, хто цього не розуміють, дурні. Я піду в тупій лінії.

20
Хороший програміст зайняв би час (2 хвилини, можливо?), Щоб пояснити своєму колезі, що було не так у такому коді.

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

7
Я сподіваюся, що хлопець знайшов роботу, де його колеги допомагали йому рости, а не ходити його.
Роберт С.

8
@Morph: instanceполе ніколи не призначається Typeекземпляром, і так завжди залишається null=)
missingfaktor

8

Ви можете спробувати кілька речей, щоб краще оцінити, як ви складаєте.

  • Порівняйте огляди коду. Дивіться, чий огляд виявив більше проблем.
  • Запитайте, коли в останній раз вони читали книги, які були периферійними для їх звичайного курсу навчання. Тоді запитайте у себе те саме.
  • Запитайте себе, хто приносить нові ідеї компанії (і як добре вони працюють).
  • Останнє (і найменше), чи існує якась форма визнання компанії?

(Я ставлю це останнє, тому що в моїй останній компанії один програміст отримував "розробника року" двічі за три роки. Після того, як він пішов, ми знайшли принаймні 20 фрагментів коду, гідних TDWTF. Він розробив код швидко , але не обов'язково добре . Менеджмент просто не знав різниці.)


1
+1 для "порівняння оглядів коду". Це здається романом і дуже практичною справою.
j_random_hacker

6

Дозвольте іншим розробникам, яким ви поважаєте, працювати або бачити ваш код.

Нехай люди насправді використовують те, що вам подобається, і дивіться, що вони думають.

- Кевін Ферчільд


6

Ти це розумієш?

if(rp->p_flag&SSWAP) {
	rp->p_flag =& ~SSWAP;
	aretu(u.u_ssav);
}

:-)


Змінено ??!?!?!?! Хтось не знає їх історії. :-)
Ієн Холдер

5
Ви не очікуєте, що це зрозумієте

Це посилання на щось? У будь-якому випадку, якщо це код C / C ++, ви, ймовірно, мали на увазі "& =" замість "= &" у другому рядку. (Я кажу "напевно", тому що, перевантажуючи оператора ~ () в C ++, ви могли б скласти вищезгадану компіляцію ... Але я впевнений, що це не те, що ви задумали.)
j_random_hacker

1
@j_random_hacker Я підозрюю, що = & вірно, оскільки цей код написав Денніс Річі. Дивіться cm.bell-labs.com/who/dmr/odd.html
Iain Holder

1
@IainMH, dmr також визнає, що це було баггі.

4

Тільки сама думка, що вам потрібно самооцінити, робить вас надрізом вище за решту.

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


4

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


4

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

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


2
Ви можете бути чудовим програмістом і жахливою людиною. Чи хотіли б ви працювати з приємною людиною, яка, можливо, не знає так багато, але готова вчитися, або з загальним ривком, який є фантастичним програмістом у всіх відношеннях? Тож те, що ви описуєте, робить хорошого працівника, а не доброго програміста. ;)

2
Я не розумію, звідки цей коментар. Два головних питання, з якими я звертаюся, - це "Як мені ЗНАТИ, якщо я хороший програміст?" і "Як я можу знати свої сильні / слабкі сторони?" Що все це говорить про ривків та жахливих людей. У мене є думки з цього приводу, але я не думаю, що вони стосуються моєї відповіді.

2
Завоювання репутації часто є питанням PR та впевненості, ніж реальною здатністю.
Девід Торнлі

Якщо припустити, що "здатність" - це технічна здатність, то бути хорошим програмістом - це більше, ніж "реальна здатність". Технічна здатність - лише шматочок головоломки.

3

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

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


3

я б просто сказав: якщо ви захоплені (я маю на увазі дуже пристрасний) щодо того, чим займаєтесь, якщо ви гнучкі (інша мова, нова технологія, повний ремейк старого проекту - давайте зробимо це!), якщо ви продовжуєте вчитися і вдосконалюючи свої навички, і ніколи, ніколи не думай, що ти достатньо хороший, щоб зупинитися - тоді ти хороший програміст!


3

95% усіх програмістів вважають, що вони входять до топ-5% програмістів, інші 5% - менеджери. Тож якщо ви менеджер, ви, мабуть, не хороший програміст, інакше ви, мабуть, є.


... і 25% ЗНАЙТЕ, що вони в топ 1%;)

3

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

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

Усі ці аспекти визначають для мене хорошого програміста.


3

Моя відповідь буде політично некоректною. Однак я фактично є засновником стартапу, і моя робота - наймати найкращих програмістів.

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

1 слово: IQ.

IQ призначений для програмування, так як висота призначена для гравців з м'ячем у кошик.

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

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

  1. Навички програмування (які можна перевірити).
  2. Здатність.
  3. Здоровий глузд (не надто низький) вміння людей.

На жаль, IQ вимірює лише одне. Тому я роблю кілька тестів.

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

Я задаю такі питання:

  1. Яка відстань між короткою та довгою рукою годинника о 7:35
  2. Якщо я їду з Джакарти до Семарангу і хочу підтримувати швидкість 60 км / год. Потім перші 2 години я їзжу 100 км / годину. Скільки швидко я повинен їхати на іншу частину подорожі, щоб моя СЕРДНЯ швидкість становила 60 км / годину?

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

НАЙБІЛЬШЕ випускник коледжу не може. А тепер уявіть, якщо хтось не може відповісти на це? Чи може він програмувати? Подумай над цим. Як часто вам доведеться вказувати, що йому робити?

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

Отримати приголомшливого програміста може покращити моральний дух інших програмістів. Отримати одного законного програміста може знизити мораль усіх інших.

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

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


2

Імхо, ти хороший програміст, якщо

- у вас звуковий теоретичний фон. переосмислення колеса, а також алгоритму чи основи - це марна трата часу.

-ноді ти можеш бачити речі та проблеми з перекошеної точки зору. це може запропонувати вам знайти інноваційні рішення.

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

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

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

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

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

- ти продовжуєш вчитися, ти цікавий.

-у вас весело програмування, адже всі ці роки


2

"Сер, я пережив це від Альфи до Омахи, і я кажу вам, що чим менше людина знає, тим більший шум він робить і тим вище зарплата, яку він командує". Марк Твен

... мій висновок такий, що хороші програмісти командують низькою зарплатою і мало шуму ... :)


2

Кращий програміст: Виконайте завдання з найменшою кількістю заяв коду за часом.


1

Скільки вад у вашому коді за певним показником? (тобто помилки в рядку) Скільки вашого коду потрібно перекодувати, коли потрібно додати нові функції? Чи є у ваших колег проблеми з модифікацією вашого коду?

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


1

Мені дуже подобається те, що сказав Адам V вище.

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


1
"Але це також можуть бути показниками поганих вимог". швидше за все, наш випадок тут. погані вимоги змусили нас переписати цілий модуль.

1

Дуже важко самооцінити. Некомпетентні люди, як правило, диво завищені оцінки власних здібностей.

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


1

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

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