Каква е разликата между лош, посредствен, страхотен и най-висок разработчик на софтуер?


Отговор 1:

Това е повече или по-малко същото като разликата между лош / посредствен / велик / топ заварчик или зидар ... с няколко изключения.

  • Мащабът на изпълнение е различен. Времето, необходимо за писане и отстраняване на грешки в пълна библиотека / програма, може да се различава с коефициент може би до 100 между най-добрите и най-лошите програмисти, които съм срещал. Не мога да се сетя за друга човешка дейност, при която това съотношение е толкова голямо. Най-добрите програмисти измислят умни подобрения - надхвърлят голите кости на спецификацията - намерете дупки в самата спецификация и натиснете, за да ги решите, преди да напишете код. Изтръгнете последната капка на производителността от кода, далеч от момента, в който по-малък програмист би се отказал и каза „Мех! Достатъчно добър."

Най-лошите програмисти обикновено оставят едва доловима следа от унищожение, която може да осакати малък бизнес, като произвежда софтуер, който е слабо проектиран, ненадежден и неефективен.

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

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

Ако компанията има и добър програмист на борда, тогава този човек ще губи повече време за намирането и коригирането на тези проблеми, отколкото биха били необходими, за да напишат сами софтуера от нулата ... но това вероятно е същото за зидарите и заварчиците.

Това каза, че някои от най-добрите програмисти са примадони - с тях може да се работи трудно, да имат ужасни междуличностни умения - такова нещо. Това е същото и в други сфери на дейност. Когато музикант или актьор са на долните стъпала на професията си - те ще бъдат разумни и приветливи, но когато звездата им се наложи, те могат да започнат да отправят необосновани искания и да си мислят „над останалото човечество“.

(Ван Хален поиска в договора си да им бъде предоставена купа с M&M с всички премахнати кафяви!)

Това далеч не е универсално вярно - но определено се случва.


Отговор 2:

Всичко се свежда до избор. Най-добрите разработчици знаят кога да станат големи и кога не, кога да вземат собствено решение и кога да използват съществуваща библиотека. Когато тестваме разработчиците, използващи Devskiller, откриваме, че кодът им не само е елегантен, но и се доставя своевременно, но готовият продукт не се нуждае от задълбочена преработка.

Софтуерът е като всеки технически продукт. Най-добрите разработчици доставят проекти, които са като Toyota Corolla:

Източник: Файл: Toyota Corolla Style (2016 европейска версия) .jpg

Най-продаваният модел автомобил в световен мащаб с произведени над 40 милиона, той е елегантен в своята простота, полезност и надеждност. Евтино е масовото производство и прави точно това, което се предполага, без да се изразходват твърде много ресурси.

Ако Carola е като продуктите, създадени от страхотен разработчик, тогава посредствената продукция на програмист ще бъде подобна на Juicero:

източник: HTTP: //antyweb.pl/juicero-zawies ...

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

Но поне Juicero работи. Кодът на лош програмист ще излезе нещо като моста на Tacoma Narrows с твърд бриз:

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

Както можете да видите, това, което прави един благо или не, не е вродените им знания, а как те могат да прилагат своите умения и вземане на решения при практически приложения. Най-добрият начин да разберат колко са добри е да им се даде практически тест като тези, които Devskiller администрира, за да проверят дали техните способности са практични или чисто абстрактни.