Esiste qualcosa come un super programmatore? [chiuso]


14

Hai incontrato un super programmatore? Cosa lo identifica come tale, rispetto ai programmatori esperti / grandi "normali"?

Anche. come gestisci una persona della tua squadra che crede di essere un super programmatore? Entrambi nel caso in cui lo sia davvero o se non lo è?

Modifica : input interessanti a tutto tondo, grazie. Alcune cose possono essere raccolte:

Sono emerse alcune definizioni. Ignorando le definizioni troppo localizzate (che identificavano gli autori o i loro conoscenti come super programmatori), mi piacevano un paio di definizioni:

  1. La definizione di Thorbjørn : una persona che fa costantemente l'equivalente di una buona squadra per molto tempo.

  2. Elettrone libero, collegato dalla risposta di Henry . Una persona molto produttiva, di eccezionali capacità. La spiegazione è una buona lettura.

    Un elettrone libero può fare qualsiasi cosa quando si tratta di codice. Possono scrivere un'applicazione completa da zero, imparare una lingua in un fine settimana e, soprattutto, possono immergersi in un enorme mucchio di spaghetti code, darne un senso e farlo funzionare davvero. Puoi costruire un intero business attorno a un elettrone libero. Sono così bravi.

    In contrasto con l'ultima definizione, è il punto collegato da James sul mito del geniale programmatore ( video ). La stessa idea è espressa come programmazione senza ego nel commento di rwong. Presentano opinioni opposte su come ottimizzare per un programmatore così unico o per una squadra.

Queste definizioni sono decisamente diverse, quindi apprezzerei se tu avessi un input su quale sia meglio. Oppure aggiungi il tuo se vuoi, ovviamente, anche se sarebbe utile dire perché è diverso da quelli.


3
Sì, e si chiama John Carmack .
Gary Willoughby,

1
Ho un elenco di 4 elettroni liberi su un piccolo pezzo di carta bloccato in un disegno nella mia scrivania.
Henry,

Se "super programmatore" == "programmatore geniale" click_this google.com/events/io/2009/sessions/MythGeniusProgrammer.html
James,

Vedi la risposta di Jeff sulla programmazione senza ego .
rwong,

Vorrei solo aggiungere un pensiero dal libro The Mythical Man-Month, en.wikipedia.org/wiki/The_Mythical_Man-Month , è stato citato un documento di ricerca che indica un grande programmatore più volte meglio di uno a posto. Non ricordo tutti i dettagli, ma ovviamente c'è molto valore in qualcuno che può produrre in una squadra, ordini di grandezza più di altri.
Travis,

Risposte:


17

Considererei il termine "super programmatore" solo per coloro che possono svolgere un lavoro che di solito richiede un team di buoni programmatori, e lo farei costantemente per molto tempo.

Questo vale sia per la scrittura di codice di alta qualità (documentazione, test, ecc.) Sia per la risoluzione di problemi molto difficili che richiedono molta conoscenza e talento da risolvere.

Ma richiede prestazioni elevate su tutti gli account per lungo tempo. Per coloro che scrivono tonnellate di codice che nessuno può capire e mantenere, il termine non è applicabile.

Come affrontare? Se veramente avete tale persona un poi fare tutto il possibile per fornire l'impalcatura necessaria per la persona in Excel. Ciò significa spostare le cose irrilevanti e fornire le risorse di cui la persona ha bisogno. Si noti che ho scoperto che artisti molto alti tendono ad essere umili.

Purtroppo, è molto più probabile che tu abbia una persona che pensa di essere un super programmatore e non lo è. Il modo di gestirli è nella mia esperienza per rendere misurabili le loro prestazioni. "FindBugs potrebbe non riscontrare alcun problema", "Tutti i codici devono avere test corrispondenti ai casi d'uso", "Revisione tra pari".

Se il codice è veramente difficile da capire, prendi in considerazione le riunioni settimanali in cui il programmatore non così eccellente spiega qualsiasi codice il codice che ha scritto dall'ultima riunione che chiunque può richiedere anonimamente di aver spiegato, e chiunque può rifiutare anonimamente di aver accettato nel base di codice per essere non mantenibile. Quindi almeno hai condiviso la mentalità e permesso ai futuri manutentori di porre il veto su un pezzo di codice. Ciò indicherà anche fortemente al programmatore che tipo di codice lo attiverà a dover fare un lavoro extra.

(EDIT: La ragione del bit anonimo, è di evitare che il programmatore non così super si vendichi su coloro che si oppongono a lui).


2
Punti eccellenti, ad eccezione dell'input anonimo. Se il team vuole veramente unificarsi e il "superprogrammatore" capisce se è effettivamente all'altezza della definizione, dovrà imparare i punti di forza e di debolezza degli altri per lavorare insieme per il successo del team e del software e per creare fiducia. Si tratta di aprirsi alle critiche degli altri (come viene fatto fino a un certo punto qui) affinché si possano trovare e correggere le proprie carenze come superprogrammatori.
Huperniketes,

@Huper, l'anonimato è evitare che questo diventi personale all'inizio. Se ritieni di essere sovrumano, potresti non prendere troppo bene le critiche (o questa domanda non sarebbe stata posta in primo luogo).

2
@Thor, è già personale quando hai a che fare con ciò che qualcuno crede di se stesso. L'anonimato rende la fiducia molto più difficile da sviluppare. I membri del team devono fidarsi che possono essere onesti, che le critiche sono ben accette e che opinioni importanti sono aperte.
Huperniketes,

Un super programmatore troverebbe più facile o più difficile spiegare il codice a un programmatore junior? Se il divario è grande, la spiegazione può essere difficile. No?
Muhammad Alkarouri,

1
@Muhammad, dato che la mia definizione è che un super programmatore scrive un codice pulito e gestibile con una buona documentazione, che anche un programmatore junior può capire (tranne che per algoritmi molto complessi che sono meno frequentemente necessari in Java a causa delle cose disponibili in runtime, quindi non li considero). Penserei che sarebbe facile, ma forse impiegherebbe più tempo a spiegarlo a un programmatore junior.

5

Un superprogrammatore è qualsiasi persona in grado di generare codice più velocemente di un compilatore ad alta velocità, più potente di una funzione ricorsiva e in grado di saltare le pile FIFO in un unico limite.

Il modo in cui affronti una persona della tua squadra che crede di essere un superprogrammatore è esponendolo alla sua unica debolezza: la luce del sole.


5
@Chetan: Cos'è uno stack FIFO?
rwong,

3
@Chetan: questa è una risposta inutile. Forse non hai lavorato con programmatori che sono così incredibili, inizi a chiederti se sei degno del tutto.
JBR Wilkinson,

Un superprogrammatore dovrebbe vivere nel cloud e fornire un'API pubblica per il suo linguaggio Mind Query .
rwong,

@rwong first-in first-out stack, noto anche come coda.
alternativa il

1
@mathepic: se puoi chiamare una coda uno stack, vuol dire che LIFO e FIFO sono la stessa cosa? (parafrasando Lincoln)
rwong

3

Chiedi alla persona di scrivere un capitolo di se stesso nello stile Coders at Work . Invialo a un editore. Se viene rifiutato, la persona non è un super programmatore.


Il contrario della tua affermazione è vero? (Se è accettato, puoi presumere che sia un super programmatore?) Penso che questo potrebbe usare un chiarimento.
alternativa il

Ho perso il rispetto che avrei potuto avere per l'autore di quel libro non appena ho letto che una volta era "l'architetto di un sistema di messaggistica transazionale basato su Java". Oh, beh, almeno aveva avuto il buon senso di lasciare quel lavoro.
Dan Molding,

1
@Dan Molding: Fintanto che si chiude e lascia che i programmatori che sta intervistando in quel libro facciano tutte le chiacchiere, non mi interessa quello che afferma. (Ho appena comprato quel libro e non vedo l'ora di leggerlo. Spero che sia bello come penso). =)
gablin,

L'idea è buona, ma gli editori tendono ad accettare programmatori famosi piuttosto che super programmatori. Corretta?
Muhammad Alkarouri,

@Alkarouri: se super ha lo stesso significato di superstar , allora sì, essere un super-programmatore significa anche essere famoso.
rwong,

2

Ci sono quelli che possono produrre più output di altri.

Ci sono quelli che possono produrre output con un tasso di difetto inferiore rispetto ad altri.

Coloro che sono in grado di produrre costantemente più output, con tassi di difetto inferiori al normale, potrebbero essere degni di essere chiamati come superprogrammatori.

Essere conosciuti o pensati come tali di solito è evidente solo a un manager illuminato con il vantaggio della vista posteriore.

Qualcuno che le cose SONO un super-programmatore probabilmente ha un grande ego e pensa di essere buono. Questo non li rende buoni.

Atteggiamento <> Abilità.


1

Super programmatore: una persona di intelligenza superiore alla media con una forte dedizione alla programmazione. Sto parlando di una persona che trascorre molto del suo tempo a programmare, non si chiude facilmente ed è determinata a risolvere un problema particolare. Questa persona raramente va a dormire se c'è un problema / bug in sospeso. Il super programmatore scrive un codice efficace, veloce e affidabile. Il super programmatore ha una conoscenza approfondita e approfondita di almeno un linguaggio di programmazione (e tecnologia), è abile in pochi altri e può imparare rapidamente tutto ciò che è necessario.


0

Hai incontrato un super programmatore? Cosa lo identifica come tale

Dal programmi / progetti che hanno creato , dal suo codice sorgente, dallo studio che ha fatto.

crede di essere un super programmatore

Come dici tu ci crede, è molto difficile fargli non crederci. La cosa peggiore è che quella persona è stata fermata per essere programmatore migliore perché pensa che sia tutto pronto è super, e ferma l'evoluzione di lui. Cosa peggio di quello nella programmazione. Ad ogni modo, puoi sempre chiedere una prova ... e chiedergli con chi lo paragona per fare il presupposto che lui / lei sia super.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.