4 ms·
I love this. I think the show Silicon Valley made two perfect archetypes of this divide: Gilfoyle: the proudly independent coder who prefers to build everythi
by dogcomplex 7y ago
I love this.
I think the show Silicon Valley made two perfect archetypes of this divide:
Gilfoyle: the proudly independent coder who prefers to build everything himself rather than be subject to trusting other's code. Documentation is minimal. Code is intense, efficient, and requires a (too) high level of intelligence and effort just to make sense of. Gravitates towards back-end bare-metal systems code and hardware. Background is self-taught pragmatic hacker. Refuses management roles, preferring to do a department's work himself rather than trust underlings.
"Why would I use a library to perform elliptic curve cryptographic functions I am fully capable of writing myself? Do you think I'm a fucking moron?"
Dinesh: the extremely needy but clever programmer whose code is a massive pile of dependencies and abstractions. Unhindered by pride and happy to trust any workaround or outside source if it means him doing less "work" (he does not view learning about new libraries/codebases as work). Documentation is conversational and verbose, with huge doc blocks above the simplest functions. Code is highly abstracted and spread across many files but with an overall working logic to it - often following various (obscure) engineering standards rather than using personal pragmatism. Loves to communicate, and so has a flair for front-end-facing code and making things pretty and understandable rather than completely efficient. Background is more academic and group project based, with a deep understanding of standards and love of new technologies. In a management role, tries to befriend, integrate, and understand all his employees programming styles - and sends many memos with emoticons.
"Oooh, look, I found this neat library that animates my system font whenever I press the 'r' key! Arrrrrr! Hah. Pirates..."
- dogcomplex 7y agoI think, reading this again, most people would want to be Gilfoyle. However, undoubtedly the one who would most happily and realistically fit into real software teams is Dinesh. Real life Gilfoyle is basically confined to reinventing the wheel in small-scale obscure projects that don't interconnect well with the rest of the app-o-sphere, incapable of scaling beyond a single programmer. Worse: he's incapable of delivering sub-par work in a timely manner using heaps of thrown-together trash dependencies, which is pretty much essential to modern programming. The ability to happily navigate the garbage dump, jump through all the standardization hoops, and communicate well is arguably far more of the modern programming job than real deep understanding, efficiency, and sole dedication to the craft ever will be. (May our industry RIP)