Jste hacker nebo jste akademik?

Během své 18leté kariéry programátora jsem pracoval na desítkách různých projektů, od robotiky po finance, zdravotnictví a telekomunikace. A měl jsem příležitost spolupracovat se stovkami programátorů z různých prostředí - každý s vlastními zvyky a postoji.

Zjistil jsem, že bez ohledu na to, odkud pocházejí nebo co dělají, všichni programátoři někde spadají do tohoto spektra:

Akademik

Na jednom konci spektra jsou programátoři, kteří jsou skvělí s teorií. Milují učení, čtení, zkoumání a inovace. Každý řádek kódu pro ně připadá jako příspěvek do světa, dědictví pro budoucnost. Pokud je v kódu chyba, je to proto, že o tom ještě nic nevědí.

Ve svém světě by měl být kód dokonalý, bez chyb a podle osvědčených postupů. Oceňují chytré způsoby, jak dělat věci, a rádi se neustále informují o nejnovějších technologiích.

Bohužel se akademik nudí, když se učení zastaví, a bude hledat další projekty - nebo dokonce změnit zaměstnání:

Nevýhodou tohoto způsobu práce je, že projekty postupují pomalu. Když se něco naučíte, můžete také narazit na něco jiného, ​​co byste se chtěli naučit. A tento cyklus sestupování králičí díry může trvat docela dlouho, než se objeví jakékoli významné funkce:

Ale to není všechno špatné. Když se produkt musí postavit na vysoké standardy, akademik je vlastně ten správný typ programátora.

Například u zdravotnického softwaru je bezpečnost pacientů velmi důležitá. Chcete, aby vaši programátoři věnovali svůj čas a učili se své věci, než zavedou kód do „produkčního prostředí“, kterým jsou životy lidí.

I malá chyba může být fatální.

Dalším příkladem je finanční sektor, kde jednoduchá chyba může stát hodně. To platí také pro většinu softwaru pro bezpečnost nebo bezpečnost - kde je často ohrožena reputace firmy.

Hacker

Druhým extrémem spektra je hacker, který je podle Deep Work od Cal Newport ideálním „znalostním pracovníkem“. Hackeři se rychle učí a (v ideálním případě) přinášejí výsledky konstantním tempem. Zřídka říkají „ne“ žádosti o funkci a v kódu ji nějak strčí.

Ale po chvíli se kód stane nespravedlivým. Proces se zanáší do té míry, že přidání nových funkcí může narušit další kód, který by jinak měl fungovat:

Technický dluh se hromadí a z dlouhodobého hlediska to bolí podnikání.

Tito programátoři dělají perfektní kandidáty na pozice konzultanta, kde je projekt zasažen a spuštěn. Mohou dokonce dostat zaplaceno za to, že napraví nedostatky, které do kódu vložili, na prvním místě! Dobré pro poradenskou firmu, špatné pro vaše podnikání. Pokud ovšem nejste náhodou ve fázi prototypování nebo dokazování konceptu vývoje produktu, většina kódu bude pravděpodobně přepsána.

Hacker je ideální pro startupy, které jsou v rané fázi vývoje produktu Minimum Viable Product. Hacker může rychle generovat výsledky. Přinášejí nejlepší tresku za peníze (z hlediska peněz i času). V těchto situacích by akademik paralyzoval vývoj.

Závěr

Je tu vtip, který vypadá takto:

Ve skutečnosti však existují dva typy lékařů:

Hacker

Hacker může dělat práci rychle a levně, s malým zaměřením na kvalitu. To nebude z dlouhodobého hlediska levné, vezmeme-li v úvahu všechny náklady na údržbu.

Akademik se zaměřuje na kvalitu, ale věci se budou pohybovat velmi pomalu a rozhodně to bude stát víc, dokud nedosáhnete hmatatelných výsledků. Když se začnou nudit, mohou tím, že odejdou, ještě více náklady na projekt - nebo ještě horší, když zůstanou a necítí se nadšení pro svou práci.

Akademik

Hacker a akademik jsou dva extrémní konce spektra a ve skutečnosti většina programátorů spadá někde mezi ně. Je důležité vybrat správného vývojáře pro váš projekt a konkrétní typ softwaru, který stavíte.

V ideálním případě můžete zahájit projekt s hackerem, zatímco akademik může jezdit na zadním sedadle a ostřit meče tak, aby se produkt stal hitem a potřebuje těžké refaktoring.

Také lidé nejsou vyráběny v továrnách. Mohou se změnit. Někteří z nejchytřejších vývojářů, se kterými jsem se setkal, se mohou v závislosti na fázi projektu pohybovat mezi hackerem a akademií. Toto je zlatá dovednost, kterou mnozí vývojáři kultivují na základě mnohaletých zkušeností.

Pokud čtete to, co čtete, sdílejte jej prosím a sledujte mě, abyste zůstali v obraze s nejnovějšími eseji. Podívejte se také na mé další dva populární eseje:

  • Co je to hrozný rukopis?
  • Programování je nejlepší prací vůbec

Zřeknutí se odpovědnosti: všechny názory jsou moje, nereprezentuji žádnou společnost ani firmu.

Aktualizace: po sdílení tohoto článku jsem dostal několik dobrých komentářů, které stojí za sdílení:

„Akademický“ se věci naučí jednou [ale] je aplikuje mnohokrát. „Hacker“ se nikdy nedozví. Graf pro „dodané funkce“ je tedy použitelný pouze v případě, že se jedná o platformu / zásobník / rámec. Podruhé „akademik“ zanechá „hackera“ v prachu.
Hodně souhlasím s tím, že vaše oddělení mezi akademiky se více zaměřuje na „správnost“ a hackery se zaměřením na „plnění věcí“. Patřím blíže k druhé skupině a měl jsem velmi dobře fungující spolupráci s kolegou, který je spíše na akademické straně. Já sám dokážu udělat spoustu sraček, ale to neznamená, že je to hezký kód. Na druhé straně může ještě udělat hodně práce, ale ve skutečnosti bude trávit čas tím, že bude dobrý. Vidím také rozdíl v tom, jak se přistupuje k problémům, přečetl si související řešení před návrhem řešení, kde bych místo přečtení experimentoval s různými řešeními. Moje cesta dává rychlejší výsledky, zatímco jeho výsledky v lepších řešeních. Kombinace těchto věcí vytváří velmi produktivní a zajímavý pracovní den

„Líbilo se ti, co čteš? Následujte mě, abych vás upozornil, když píšu něco nového.