Toxische experts
Ik schreef het artikel Big-O: how code slows as data grows om de Big-O-notatie uit te leggen. Mijn doel was om het in brede lijnen uit te leggen voor mensen die nieuw waren aan het concept. Het idee ontstond uit gedachten die ik had over beginners en experts.
In de reacties volgde een onverwachte en ongelukkige les uit de praktijk. Een anonieme lafaard genaamd "pyon" zei dat ik me zou moeten schamen. Deze persoon wees op een detail van algoritmische analyse dat ik niet had genoemd. Het is een detail waar ik zelf nooit eerder mee in aanraking was gekomen. Ik vind het een interessant detail, maar niet een detail dat in het artikel thuishoorde.
Pyon is een voorbeeld van een toxische expert. Mensen zoals hij weten veel, maar ze gebruiken die kennis om zichzelf te onderscheiden van de "ongewassen massa" beginners. In plaats van te onderwijzen, kiezen ze ervoor om neer te kijken vanaf hun hoge troon, terwijl ze klagen over de staat van de wereld die bevolkt wordt door mensen die "niet willen leren".
De belangrijkste vaardigheid die pyon en andere toxische experts missen, is het vermogen om contact te maken met mensen. Ze zouden hun kennis kunnen gebruiken om te doceren, maar het is voor hen belangrijker om zich van anderen te distantiëren. Punten van correctheid zijn nutteloos zonder punten van verbinding.
Toxische experts hechten meer waarde aan het maken van onderscheid tussen mensen om zichzelf te verheffen, dan aan het helpen van anderen. Pas op: ze zijn overal in de techwereld te vinden. Je komt ze gemakkelijk tegen wanneer je probeert te leren. Negeer ze. Ze kennen jou niet, en ze weten niet wat je kunt.
Pyon is gefixeerd op een specifiek detail van algoritmische analyse en is van mening dat dit essentieel is voor het begrijpen van Big-O. Wat ik je kan vertellen is dat ik in mijn carrière van 30 jaar prima terecht ben gekomen zonder dat specifieke detail te kennen. Mijn stuk over Big-O was niet bedoeld als uitputtende handleiding. Er zijn complete boeken geschreven over algoritmische notatie. Ik schreef aan het einde zelfs: "Er is veel meer te vertellen over algoritmische analyse als je echt in de informatica-aspecten wilt duiken, maar dit is voldoende voor werkende ontwikkelaars."
Maar pyon ziet het bos door de bomen niet meer. Experts hebben veel tijd en energie gestoken in het leren van hun vak. Ze houden van hun kennis. Ze zouden niet zijn gekomen waar ze nu zijn zonder passie voor het onderwerp. Maar soms hebben ze moeite om te begrijpen hoe mensen succesvol kunnen zijn zonder die specifieke, geliefde kennis. Ze zijn uit het oog verloren wat het betekent om een beginner te zijn en wat beginners moeten leren.
Toxische experts klampen zich vast aan een specifieke vaardigheid en besluiten dat deze essentieel is. Voor hen is die vaardigheid een marker die "zij die het weten" scheidt van "zij die het niet weten". Deze shibboleths verschillen per expert. In dit geval is het een detail van algoritmische analyse. Ik heb andere toxische experts gezien die erop stonden dat het essentieel is om C te kennen, of assemblytaal, of recursie en pointers, enzovoort.
Ik zeg niet dat dit geen goede dingen zijn om te weten. Hoe meer je weet, hoe beter. Elk van deze onderwerpen is nuttig. Maar ze zijn niet essentieel. Je kunt goed werk leveren zonder ze. Je verdient het zeker niet om daarom uitgescholden te worden.
De ultieme ironie is dat terwijl pyon en andere toxische experts klagen over de staat van de industrie vanwege ontbrekende kennis, ze precies het belangrijkste gat in de vaardigheden van de techindustrie aanstippen: empathie.
***
Reacties en Discussie
Eddie Ik ben het eens. Mijn aanpak bij dergelijke toxische experts is altijd: 1) lees voor de data, 2) evalueer de data, 3) gebruik de data als kans om te leren, 4) vergeet de rest. Als je deze gesprekken zonder ego benadert, zijn ze simpelweg een kans om een nieuw detail te leren dat later wel of niet nuttig kan zijn. Het kan moeilijk zijn om de emotionele lading te verwijderen omdat toxische experts willen dat je je slecht voelt. Doe dat niet. Lees alleen de feiten, observeer of ze waar zijn, leer wat er te leren valt en ga verder, één stap verder dan waar je hiervoor was. Ook is het woord "shibboleth" fantastisch.
wqw Naar mijn mening is http://www.dbdebunk.com/ het meest toxisch.
Gareth Rees Een belangrijk onderdeel van expertise is weten wanneer details ertoe doen en wanneer niet. In de calculus hoeven we ons bijvoorbeeld niet te schamen als we een functie differentiëren zonder de epsilon-delta-methode te gebruiken. De fundamenten zijn belangrijk, maar ze rechtvaardigen het intuïtieve idee; ze vervangen het niet.
Hetzelfde geldt voor de analyse van algoritmen. We hoeven zelden technische definities te gebruiken, omdat het belangrijkste is om het antwoord te krijgen, niet om een bewijs te schrijven dat een universiteitsexaminator zou tevredenstellen. In dit geval heeft Pyon een bewijstechniek verward met het concept. De gebruikelijke betekenis van "amortized cost" (geamortiseerde kosten) is precies zoals Ned het oorspronkelijk beschreef: de gemiddelde kosten van een operatie in een lange reeks operaties. Als je me of Ned niet gelooft, geloof dan Robert Tarjan: "We shall adapt this term [amortize] to computational complexity, meaning by it 'to average over time' or, more precisely, 'to average the running times of operations in a sequence over the sequence.'"
Pyon heeft gelijk dat er technische definities zijn waarbij sommige kosten van dure operaties worden toegerekend aan goedkope operaties, maar het doel van die definities is om het gemakkelijker te maken om bewijzen te schrijven. Een expert weet dat technische definities onze dienaren zijn, niet onze meesters.
Matt Hall Goed stuk, Ned. Ik ben dit soort gedrag ook weleens tegengekomen binnen organisaties. Voor sommige zogenaamde experts is het onmogelijk om genoeg nederigheid te tonen om mensen te helpen die zij als "dom" beschouwen. Dit is een probleem omdat dat is hoe ze iedereen zien die hun hulp nodig heeft. Als ze geen manier kunnen vinden om de competentie van anderen te verhogen, bij voorkeur met een glimlach, dan is hun kennis nutteloos.
Randy Syring Geweldig artikel, Ned. Ik vond het artikel over Big-O notatie erg behulpzaam, en ik ben allang geen beginner meer.
intentinallyanon Beste Ned, ik begrijp je kritiek op de reactie van pyon. Ik vind het onnodig agressief en beledigend. Toch heeft hij gelijk, en wat hij noemt is geenszins esoterisch. Het juiste om te doen met dit soort reacties is om ze te laten passeren, de feitelijke kritiek te valideren en je bericht bij te werken als je vaststelt dat er iets onnauwkeurig was. Je doel is om mensen iets te leren, en dat moet correct zijn.
Ned Batchelder (Reactie op Eddie en intentinallyanon): Jullie advies is goed. Ik zou nieuwe informatie uit elke bron accepteren en mijn bericht bijwerken om het zo goed mogelijk te maken. In dit geval was er geen update nodig.
Veky Denk je echt dat zeggen dat zaken met logaritmische complexiteit een constante complexiteit hebben "het beste is dat het kan zijn"? Ik geloof je niet. Het probleem met wiskundige notatie is dat het spreekt over een geïdealiseerde wereld. Denken dat we zowel technische details uit de echte wereld als uit de ideale wereld kunnen negeren, is wensdenken.
Ned Batchelder (Reactie op Veky): Ik weet niet waar je het over hebt. Als je een specifieke kritiek hebt op het Big-O stuk, plaats dan een reactie daar, met details.
Simba Dit artikel is toxisch. In 2017 is het grootste probleem met "experts" niet hun toxiciteit, maar dat niemand ze serieus neemt omdat iedereen denkt dat hij het beter weet. De meeste mensen weten niets van niets. Het kost decennia om ergens echt goed in te worden. Misschien is de waargenomen "toxiciteit" van experts het directe resultaat van jarenlang niet serieus genomen worden door mensen met veel minder kennis. Iedereen kan wat arrogantie vergeven als je de slimste persoon bent op een bepaald onderwerp. Als je wilt dat ik aardig tegen je ben terwijl ik wijsheid deel uit decennia aan ervaring, dan moet je me een uitzonderlijk salaris betalen.
David (Reactie op Simba): Absolute onzin! De echte experts zijn degenen die een zekere mate van emotionele intelligentie hebben. Vaardigheid hoeft niet ten koste te gaan van empathie.
Jan Chwiejczak Ned, bedankt dat je opstaat tegen gedrag dat in elke normale sociale situatie onacceptabel zou zijn zonder de anonimiteit van het internet.
Aristotle Pagaltzis Om duidelijk te zijn: ik vind het argument van Pyon misleidend wat betreft het onderwijzen van een onderwerp, en zijn gedrag ongepast. Ik ben het over het geheel genomen eens met wat je zegt.
Ik voel me echter ongemakkelijk bij dit deel: "Elk van deze onderwerpen zal nuttig zijn. Maar ze zijn niet essentieel. Je kunt goed werk leveren zonder ze." Ja, dat kun je. Maar je zult soms ook slecht werk leveren zonder ze. Dat is juist de reden waarom ze de moeite waard zijn om te kennen. In cruciale infrastructuurprojecten kan slecht geschreven code enorme gevolgen hebben.
Ik ben ongemakkelijk bij een puur op inclusiviteit gebaseerd standpunt. Ironisch genoeg zijn veel toxische experts slechter in het onderhouden van kritieke infrastructuur omdat ze zo gefocust zijn op de correctheid van de code dat ze de impact op downstream-systemen negeren. Maar noem iemand niet zomaar een toxische expert alleen omdat hij schreeuwt. Als een ingenieur tegen je schreeuwt omdat je een wijziging aanbrengt in de plannen voor een brug waardoor deze structureel onveilig wordt... dan is het aanpassen van de plannen het probleem, en het geschreeuw een secundair probleem.
Xavier Combelle Na het lezen van het oorspronkelijke debat was ik verrast door de bewering van pyon. Ik heb mijn Cormen (Introduction to Algorithms) erbij gepakt en zag dat Gareth Reese het al goed had verwoord. Pyon zou terug moeten naar de tekstboeken in plaats van foute reacties op internet te plaatsen.
Dave Robinson Dit is een geweldig artikel en een mooie filosofie. Jammer dat sommige reageerders het punt missen.
Danny Sommige mensen zijn beledigd door alles. Sommigen hebben geen behoefte aan kennis of verbetering. Goede, intelligente mensen kunnen ook burn-outs krijgen. Iemand die lijdt, kan tijdelijk toxisch overkomen. Details zijn nodig, meesterschap is nodig... tot een bepaald punt. Daarna wordt het pedantisch.
Chris Stucchio Het punt is dat Pyon gelijk had, ondanks dat hij een eikel was. Je bericht was niet simpelweg onvolledig; het was gewoon fout. Geamortiseerde complexiteit is een pointwise bound op mean(cost[0:i]) voor elke i, niet mean(cost[0:n]) voor één specifieke grote n. Als je beginners niet wilt misleiden, moet dit worden opgenomen. Soms hebben de klootzakken gelijk. Als we hen negeren omdat we hun persoonlijkheid niet leuk vinden, verliezen we hun kennis.
Ned Batchelder (Reactie op Chris): Ik ben nog steeds niet overtuigd van de noodzaak om de volgorde van operaties te bespreken. Het punt dat ik maakte was dat geamortiseerde complexiteit betekent dat individuele operaties zeer verschillende hoeveelheden tijd in beslag kunnen nemen. Dit is waar. De resulterende complexiteit is het gemiddelde van de operaties over tijd. Dit is ook waar.
Er zijn tientallen pagina's aan details die ik moest weglaten. Hoe de operaties geordend moeten zijn, was een van die details. Voorzichtigheid halve: het is een detail dat ik zelf niet wist, en ik ben een succesvol software engineer met een lange carrière, wat volgens mij een goed bewijs is dat het geen kritiek detail is in een introductiestuk. Er was niets onjuists in mijn artikel; er waren extra details die niet werden behandeld. Ik sta erbij.
Sylvain Galineau Bedankt. Ik weet zeker dat ik in mijn beginjaren zelf te vaak de toxische expert was. Het is een grote reden waarom ik de industrie nu soms beu ben. Het bepalen van de "minimaal noodzakelijke expertise" in een gesprek is misschien wel een net zo belangrijke vaardigheid als het bepalen van de MVP (Minimum Viable Product).
Wasy Ik ben al lange tijd onder de indruk van hoe positief en communicatief de hulp in #python is op alle niveaus. Andere kanalen zijn soms brutaal en onbehulpzaam. Hebben jullie een idee waar dit verschil vandaan komt?
Ned Batchelder (Reactie op Wasy): We doen ons best om #python vriendelijk en behulpzaam te houden. Er is een bewuste inspanning om na te denken over de toon in de ruimte. Ik denk dat Python in het algemeen vooroploopt in het waarderen van mensen en gemeenschap, naast het waarderen van technologie.
Will Rogers Dit is een geweldig bericht. Het is fijn dat software een meritocratie is, maar sommige mensen lijden aan de waan dat kennis hen toestaat zich onaangenaam te gedragen. Daar is geen rechtvaardiging voor.
Ryan Ik groeide op met een leerstoornis in wiskunde (dyscalculie) en geschreven taal. Ik heb nu een graad in elektronica en werk aan projecten met budgetten die, laten we zeggen, "verbazingwekkend" zijn. Er zijn veel toxische experts op mijn werk die vuur en toorn spuwen als je iets zegt dat zij als fout beschouwen, of die jargon gebruiken om slimmer te lijken.
Terwijl ik medelijden heb met hun ellendige bestaan, waarin ze de wereld op hun opgeblazen hersenen moeten dragen, herinner ik me dat ik een geweldige baan, een prachtig huis en een liefdevol gezin heb. Ik heb het niet alleen gered; ik had het geluk dat er mensen waren die net slim genoeg waren om me te helpen (hun hersenen waren minder opgeblazen, wat waarschijnlijk hielp bij hun sociale vaardigheden). Daar ben ik elke dag dankbaar voor.
Groetjes,