Czy spotkałeś super programistę? Co identyfikuje go jako takiego w porównaniu z „normalnymi” doświadczonymi / świetnymi programistami?
Również. jak radzisz sobie z osobą w zespole, która uważa, że jest super programistą? Zarówno na wypadek, gdyby rzeczywiście był, czy nie?
Edycja : Ciekawe dane wejściowe, dzięki. Można zebrać kilka rzeczy:
Pojawiło się kilka definicji. Pomijając zbyt zlokalizowane definicje (które identyfikowały autorów lub ich znajomych jako superprogramistów), spodobało mi się kilka definicji:
Definicja Thorbjørna : osoba, która przez długi czas konsekwentnie reprezentuje dobry zespół.
Wolny elektron, powiązany z odpowiedzią Henry'ego . Bardzo produktywna osoba o wyjątkowych zdolnościach. Wyjaśnienie jest dobra lektura.
Wolny elektron może zrobić wszystko, jeśli chodzi o kod. Mogą napisać kompletną aplikację od zera, nauczyć się języka w weekend, a co najważniejsze, mogą zanurzyć się w ogromną kupkę kodu spaghetti, zrozumieć go i faktycznie uruchomić. Możesz zbudować całe firmy wokół wolnego elektronu. Są takie dobre.
Kontrastujący z ostatnią definicją jest punkt związany z Jamesem na temat mitu genialnego programisty ( wideo ). Ten sam pomysł wyraża się w komentarzu rwong jako programowanie bez ego. Przedstawiają przeciwne opinie, jak zoptymalizować pod kątem tak wyjątkowego programisty czy zespołu.
Te definicje są zdecydowanie różne, więc byłbym wdzięczny, jeśli masz wkład w to, co jest lepsze. Lub dodaj własne, jeśli chcesz, ale pomogłoby to powiedzieć, dlaczego różni się od nich.
źródło
Odpowiedzi:
Rozważałbym termin „super programista” tylko dla tych, którzy mogą wykonywać pracę, która zwykle wymaga zespołu dobrych programistów i wykonują to konsekwentnie przez długi czas.
Dotyczy to zarówno pisania wysokiej jakości kodu (dokumentacji, testów itp.), Jak i rozwiązywania bardzo trudnych problemów wymagających dużej wiedzy i talentu do rozwiązania.
Ale wymaga to wysokiej wydajności na wszystkich kontach przez długi czas. Dla tych, którzy piszą tony kodu, których nikt nie może zrozumieć i utrzymać, ten termin nie ma zastosowania.
Jak sobie poradzić z? Jeśli naprawdę masz taką osobę, zrób wszystko, co w jej mocy, aby zapewnić rusztowanie potrzebne do doskonałości. Oznacza to odsunięcie na bok nieistotnych rzeczy i zapewnienie potrzebnych zasobów. Pamiętaj, że zauważyłem, że bardzo dobrzy wykonawcy są zwykle pokorni.
Niestety jest o wiele bardziej prawdopodobne, że masz osobę, która myśli, że jest super programistą, a nie jest. Sposób na radzenie sobie z nimi polega na moim doświadczeniu, aby ich wyniki były mierzalne. „FindBugs może nie znajdować żadnych problemów”, „Cały kod musi mieć testy odpowiadające przypadkom użycia”, „Recenzja”.
Jeśli kod jest naprawdę trudny do zrozumienia, rozważ cotygodniowe spotkania, na których niezbyt super programista wyjaśnia każdy kod, który napisał od czasu ostatniego spotkania, o które każdy może poprosić anonimowo o wyjaśnienie, a każdy może odrzucić anonimowo, aby zaakceptować w podstawa kodu, aby był nie do utrzymania. Przynajmniej podzieliłeś sposób myślenia i pozwoliłeś przyszłym opiekunom zawetować fragment kodu. Będzie to również silnie wskazywać programiście, jaki rodzaj kodu spowoduje, że będzie musiał wykonać dodatkową pracę.
(EDYCJA: Przyczyną tego anonimowego bitu jest uniknięcie sytuacji, w której niezbyt super programista zemści się na tych, którzy mu się sprzeciwiają).
źródło
Superprogramer to każda osoba, która potrafi wygenerować kod szybciej niż kompilator przyspieszający, potężniejszy niż funkcja rekurencyjna i zdolna przeskoczyć stosy FIFO w jednym wiązaniu.
Sposób, w jaki postępujesz z osobą w zespole, która uważa, że jest superprogramerem, polega na wystawieniu go na jedyną słabość - światło słoneczne.
źródło
Poproś osobę o napisanie rozdziału o sobie w stylu Coders at Work . Prześlij go do wydawcy. Jeśli zostanie odrzucony, osoba ta nie jest super programistą.
źródło
Są tacy, którzy mogą wytworzyć więcej produkcji niż inni.
Są tacy, którzy mogą wytwarzać produkt o niższym wskaźniku defektów niż inni.
Ci, którzy ZAPEWNIAJĄ KONSEKWENTNIE większą wydajność, przy niższych niż normalnie wskaźnikach defektów, mogą być godni, aby zostać powołanym na stanowisko Superprogramisty.
Bycie znanym lub uważanym za takiego jest zwykle widoczne tylko dla oświeconego menedżera z korzyścią dla widzenia z tyłu.
Ktoś, kto jest superprogramistą, prawdopodobnie ma duże ego i uważa, że są dobrzy. To nie czyni ich dobrymi.
Postawa <> Zdolność.
źródło
Super programista: osoba o ponadprzeciętnej inteligencji z dużym zaangażowaniem w programowanie. Mówię o osobie, która spędza dużo czasu na programowaniu, nie poddaje się łatwo i jest zdeterminowana, aby rozwiązać konkretny problem. Ta osoba rzadko idzie spać, jeśli występuje nierozwiązany problem / błąd. Super programista pisze efektywny, szybki i niezawodny kod. Super programista ma rozległą i dogłębną znajomość co najmniej jednego języka programowania (i technologii), jest biegły w kilku innych i może szybko nauczyć się wszystkiego, co jest potrzebne.
źródło
Z programów / projektów, które stworzyły , kodu źródłowego, badań, które wykonały.
Jak mówisz, w to wierzy, bardzo trudno jest go zmusić, by w to nie uwierzył. Najgorsze jest to, że ta osoba przestała być lepszym programistą, ponieważ uważa, że wszystko jest gotowe, jest super i powstrzymuje ewolucję. Co gorszego niż w programowaniu. W każdym razie zawsze możesz poprosić o dowód ... i zapytać go, z kim on / ona porównuje go do siebie, aby założył, że jest super.
źródło