Вы хакер ці вы акадэмік?

За сваю 18-гадовую кар'еру праграміста я працаваў над дзясяткамі розных праектаў: ​​ад робататэхнікі да фінансаў да аховы здароўя і тэлекамунікацый. У мяне была магчымасць працаваць з сотнямі праграмістаў рознага роду - у кожнага са сваімі звычкамі і поглядамі.

Я даведаўся, што незалежна ад таго, адкуль яны робяць і чым займаюцца, усе праграмісты трапляюць дзесьці на гэты спектр:

Акадэмічны

На адным канцы спектра - праграмісты, якія выдатна ведаюць тэорыю. Яны любяць вучыцца, чытаць, вывучаць і інавацыі. Для іх кожны радок кода адчувае сябе як уклад у свет, нават спадчына для будучыні. Калі ў кодзе недахоп, гэта таму, што яны яшчэ нічога лепшага не ведаюць.

У іх свеце код павінен быць ідэальным, без памылак і ў адпаведнасці з перадавой практыкай. Яны цэняць разумныя спосабы вядзення спраў і любяць быць у курсе апошніх тэхналогій.

На жаль, акадэміку надакучыць, калі навучанне спыніцца, і будзе шукаць іншыя праекты - ці нават мяняць працу:

Мінусам такога спосабу працы з'яўляецца тое, што праекты павольна прасоўваюцца. Калі вы чаму-небудзь навучыцеся, вы звычайна таксама натыкаецеся на нешта іншае, пра што хочаце даведацца. І гэты цыкл спускання трусянят можа працягвацца даволі доўга, перш чым будуць прыведзены нейкія значныя асаблівасці:

Але гэта яшчэ не ўсё дрэнна. Калі прадукт павінен адпавядаць высокім стандартам, акадэмік на самай справе з'яўляецца правільным тыпам праграміста.

Напрыклад, для праграмнага забеспячэння аховы здароўя бяспека пацыентаў вельмі важная. Вы хочаце, каб вашы праграмісты знайшлі свой час і даведаліся пра іх, перш чым накідваць код у "вытворчае асяроддзе", якое складаецца ў жыцці людзей.

Нават невялікая памылка можа стаць фатальнай.

Яшчэ адзін прыклад - фінансавы сектар, дзе простая памылка можа каштаваць шмат. Гэта датычыцца і большасці праграм, якія патрабуюць бяспекі і бяспекі - дзе рэпутацыя бізнесу часта пад пагрозай.

Хакер

З іншага боку краёў спектру - хакер, які з'яўляецца ідэальным "працаўніком ведаў", паведамляе The Deep Work ад Cal Newport. Хакеры хутка вучацца і (у ідэале) даюць вынікі пастаяннымі тэмпамі. Яны рэдка кажуць "не" патрабаванню функцыі, і будуць неяк закідваць яе ў код.

Але праз некаторы час код становіцца нязменным. Працэс забіваецца да такой ступені, што даданне новых функцый можа парушыць іншы код, які ў адваротным выпадку павінен працаваць:

Тэхнічная запазычанасць назапашваецца, і гэта шкодзіць бізнесу ў доўгатэрміновай перспектыве.

Гэтыя праграмісты робяць ідэальных кандыдатаў на працу кансультантаў, дзе праект ударыў і працуе. Яны могуць нават атрымаць грошы, каб выправіць недахопы, якія яны ўвялі ў код у першую чаргу! Добра для кансультацыйнай фірмы, дрэнна для вашага бізнесу. Калі, вядома, вы апынецеся ў прататыпе ці пацверджанні фазы распрацоўкі прадукту, і вялікая частка кода, верагодна, будзе перапісана.

Хакер ідэальна падыходзіць для стартапаў, якія знаходзяцца ў ранняй стадыі распрацоўкі мінімальна жыццяздольных прадуктаў. Хакер можа хутка прыносіць вынікі. Яны прыносяць лепшыя выбухі (з пункту гледжання грошай і часу). У гэтых сітуацыях акадэмічнасць паралізавала б развіццё.

Выснова

Тут жарт выглядае так:

Але на самой справе ёсць два тыпы выканаўцаў:

Хакер

Хакер можа зрабіць працу хутка і танна, не засяроджваючыся на якасці. У канчатковым рахунку гэта не будзе танным, улічваючы ўсе выдаткі на тэхнічнае абслугоўванне.

Акадэмічны акцэнт робіцца на якасць, але ўсё будзе рухацца вельмі павольна, і гэта, безумоўна, каштуе даражэй, пакуль не атрымаеце адчувальных вынікаў. Акрамя таго, калі ім сумна, яны могуць накласці на праект яшчэ большыя выдаткі, пакінуўшы - альбо яшчэ горш, застаючыся і не адчуваючы прыстрасці да сваёй працы.

Акадэмічны

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

У ідэале вы можаце пачаць праект з хакерам, у той час як акадэмік можа ездзіць на заднім сядзенні, абвастраючы свае мячы, калі прадукт стане хітом і патрабуе моцнага рэканструкцыі.

Таксама людзей не вырабляюць на заводах. Яны могуць мяняцца. Некаторыя з самых разумных распрацоўшчыкаў, якіх я сустракаў, могуць пераключацца паміж хакерам і акадэміяй у залежнасці ад этапу праекта. Гэта залатое майстэрства, якое развіваюць многія распрацоўшчыкі за шматгадовы вопыт.

Калі вы - прачытанае, калі ласка, падзяліцеся ім і ідзіце за мной, каб быць у курсе апошніх нарысаў. Таксама азнаёмцеся з двума іншымі маімі папулярнымі эсэ:

  • У чым страшны почырк кода?
  • Праграмаванне - самая лепшая праца

Адмова ад адказнасці: усе меркаванні мае, я не прадстаўляю ніводнай кампаніі і бізнесу.

Абнаўленне: пасля абмену гэтым артыкулам я атрымаў пару добрых каментароў, якія варта падзяліцца:

"Акадэмічны" будзе вывучаць рэчы адзін раз [але] прымяняць яго шмат разоў. "Хакер" ніколі не даведаецца. Такім чынам, графік для "прадастаўленых функцый" дастасавальны толькі пры сутыкненні з платформай / стэкам / рамкай. У другі раз "акадэмік" пакіне "хакер" у пылу.
Я вельмі згодны з тым, што ваша аддзяленне паміж вучонымі больш сканцэнтравана на "правільнасці" і хакерам, арыентуючыся на "тое, каб зрабіць усё". Я належу бліжэй да апошняй групы і меў надзвычай добрае супрацоўніцтва з калегам, які больш падыходзіць да акадэмічнага боку. Я адзін магу зрабіць шмат дзярмо, але гэта не значыць, што гэта добры код. З іншага боку, ён усё яшчэ можа зрабіць шмат, але на самай справе выдаткуе час на тое, каб зрабіць гэта добра. Я таксама бачу розніцу ў тым, як падыходзяць праблемы, і ён будзе чытаць адпаведныя рашэнні, перш чым распрацоўваць рашэнне, дзе я б замест чытання эксперыментаваў з рознымі рашэннямі. Мой шлях дае больш хуткія вынікі, а яго вынікі - лепшыя рашэнні. Спалучэнне гэтых рэчаў стварае вельмі прадуктыўны і цікавы працоўны дзень

️ спадабалася, што вы прачыталі? Сачыце за мной, калі я пішу нешта новае.