Хакер ли сте или сте академик?

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

Научих, че независимо откъде идват или какво правят, всички програмисти попадат някъде в този спектър:

Академикът

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

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

За съжаление, академикът ще се отегчи, когато обучението спре и ще потърси други проекти - или дори да смени работата:

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

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

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

Дори малка бъг може да бъде фатална.

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

Хакерът

В другата крайност на спектъра е хакерът, който е идеалният „работник на знанието“ според Deep Work от Cal Newport. Хакерите се учат бързо и (в идеалния случай) дават резултати с постоянно темпо. Те рядко казват „не“ на заявка за функция и ще я впишат в кода по някакъв начин.

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

Техническият дълг се натрупва и това вреди на бизнеса в дългосрочен план.

Тези програмисти правят перфектните кандидати за консултантски работни места, където проектът е ударен и изпълнен. Може дори да им се плаща, за да се поправят недостатъците, които са въвели в кода на първо място! Добър за консултантската фирма, лош за вашия бизнес. Освен ако разбира се не сте попаднали в прототипирането или доказателството за фазата на концепцията на разработването на продукта и голяма част от кода е вероятно да бъде пренаписана.

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

заключение

Има шега, която върви така:

Но в действителност има два вида изпълнители:

Хакерът

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

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

Академикът

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

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

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

Ако четете това, моля, споделете го и ме последвайте, за да сте в крак с най-новите есета. Разгледайте и другите ми две популярни есета:

  • Какво е ужасен почерк на код?
  • Програмирането е най-добрата работа досега

Отказ от отговорност: всички мнения са мои, не представлявам никаква компания или бизнес.

Актуализация: след споделянето на тази статия получих няколко добри коментара, които си струва да споделите:

„Академикът“ ще научи неща веднъж [, но] ще го прилага много пъти. „Хакерът“ никога няма да научи. Така че графиката за „предоставени функции” е приложима само когато сте изправени пред платформа / стек / рамка. Втория път „академикът“ ще остави „хакера“ в праха.
Съгласен съм с това, че вашата раздяла между академиците е по-съсредоточена върху „коректността“ и хакерите, съсредоточени върху „вършенето на нещата“. Аз принадлежа по-близо до последната група и имах изключително добре работещо сътрудничество с колега, който е повече към академичната страна. Само аз мога да направя много глупости, но това не означава, че е хубав код. Той, от друга страна, все още може да свърши много, но всъщност ще отдели време и за това да го направи добре. Виждам също разлика в това как се подхожда към проблемите, той би прочел свързани решения преди да проектира решението, където вместо да чета, експериментирам с различни решения. Моят начин дава по-бързи резултати, докато неговите резултати в по-добри решения. Комбинацията от тези неща прави много продуктивен и интересен работен ден

️ Хареса ли това, което прочетохте? Следвайте ме, за да бъда уведомен, когато напиша нещо ново.