Come posso sapere se sono un buon programmatore?


301

Come la maggior parte delle persone, penso a me stesso un po 'al di sopra della media nel mio campo. Vengo pagato bene, ho ottenuto promozioni e non ho mai avuto problemi reali nel trovare buone referenze o trovare lavoro.

Ma sono stato abbastanza in giro per notare che molti dei peggiori programmatori con cui ho lavorato pensavano che fossero tra i migliori. I cattivi programmatori che sono circondati da altri cattivi programmatori sembrano essere i più illusi.

Non sono certamente perfetto. Faccio errori. Mi mancano le scadenze. Ma penso di fare lo stesso numero di mosse di bonehead che fanno "altri bravi programmatori". Il problema è che definisco "altri buoni programmatori" per indicare "persone che sono come me".

Quindi, mi chiedo, c'è un modo in cui un programmatore può fare una sorta di ragionevole autovalutazione? Come facciamo a sapere se siamo bravi o cattivi nel nostro lavoro?

Oppure, se termini come buono e cattivo sono troppo mal definiti, come possono i programmatori identificare onestamente i propri punti di forza e di debolezza, in modo che possano trarre vantaggio dal primo e lavorare per migliorare il secondo?


Perché vuoi sapere? Nessuno può definire cosa sia "buono". Se fai il lavoro come previsto e vieni pagato bene, è abbastanza buono.
Mert Akcakaya l'

Risposte:


325

Un buon programmatore capisce che devono continuare a imparare e crescere. Si sforzano di fare del proprio meglio ad ogni sforzo, ammettere i fallimenti e imparare da loro.

Sono straordinariamente comunicativi. Non solo sono in grado di spiegare termini tecnici complessi a un laico, ma fanno del loro meglio per agire come sostenitori del diavolo per la propria idea per assicurarsi che stiano offrendo le migliori opzioni al loro cliente.

I migliori programmatori sanno e accettano che esiste più di un modo di fare le cose, che non tutti i problemi sono un problema e che, poiché esiste sempre un modo migliore di fare qualcosa rispetto a come stavano pianificando, cercano costantemente di apprendere nuove tecniche , tecnologie e comprensione.

Un buon programmatore ama programmare e lo farebbe nel tempo libero anche se già impiegano più di 80 ore alla settimana a programmare.

Un buon programmatore sa che non è un grande programmatore. Non esistono programmatori veramente grandi, ci sono solo quelli che affermano di essere grandi e quelli che sanno di non essere grandi.


5
Lo inchiodi proprio sulla testa! IMO!

13
E penso che un corollario più generale sia che sei bravo in quello che fai quando ti importa di quello che fai.

7
Ben detto. Per quanto riguarda l'ego / l'umiltà, sono arrivato al MIT AI Lab negli anni '70. I migliori programmatori avevano una certa umile fiducia. Se pensi di fare qualcosa di importante, potresti sbagliarti, ma se non lo fai, probabilmente hai ragione.
Mike Dunlavey,

4
Concordo parzialmente con il paragrafo 2, "Non solo sono in grado di spiegare termini tecnici complessi a un laico ..." Conosco alcuni bravi programmatori. Ma non potevano spiegare niente a nessuno al di fuori della loro cerchia. Né potevano capire cosa stesse cercando di dire il laico. Entrambi si guardano l'un l'altro con occhi da "cervo nei fari". Dirò che sono straordinariamente comunicativi. Per il resto dei tuoi punti, li riassumo dicendo che un buon programmatore è umile e disposto a condividere le sue conoscenze nel miglior modo che lui / lei conosce.
Estratto

101
"e lo farebbe nel tempo libero, anche se già impiegano più di 80 ore alla settimana a programmare". Sbarazzati di questa sciocca affermazione e sono completamente d'accordo con il resto. Un vero "buon programmatore", si rende conto che quando si lavora per più di 80 ore settimanali fare qualcosa di diverso dalla programmazione (nel tempo libero) è essenziale per la salute fisica e mentale e la produttività sul lavoro.

91

Come Paul Graham sottolinea eloquentemente in questo cast pod , non puoi. Solo i tuoi colleghi possono dirtelo.


4
Questa risposta è molto meglio di quella accettata ...

125
I tuoi colleghi non possono dire se sei competente se sono incompetenti. Penseranno solo che hai strane opinioni e discutono appassionatamente di argomenti irrilevanti.

2
D'accordo, keyersoze. Allora nessuno può dirtelo e non lo saprai mai, a meno che non ti procuri dei nuovi colleghi. Penso che a lungo termine non sia gratificante lavorare con nessuno competente.

1
@keysersoze, ma se in realtà sono incompetente i miei colleghi potrebbero essere competenti e sono troppo stupido per realizzarlo;)

1
Paul Graham ha anche scritto un saggio sui grandi programmatori, sottolineando che non è in grado di nominarne di grandi, dal momento che non ha mai effettivamente lavorato con le scelte ovvie (come Richard Stallman, Linus Torvalds e altri).
David Thornley,

59

Ho sempre scoperto che è più semplice giudicare la tua esibizione facendo due cose.

  1. Circondati di altri buoni programmatori
  2. Guarda quanto si lamentano del codice che scrivi.

Il problema ovviamente è trovare buoni programmatori e quindi essere un buon programmatore non è solo questione di programmazione. Devi essere in grado di lavorare bene in gruppo, ma anche di lavorare bene da solo.

Ora, per il gusto di andare fuori tema, citerò Robert A. Heinlein e il suo punto di vista sull'argomento:

"[Un programmatore di calci in culo] dovrebbe essere in grado di cambiare un pannolino, pianificare un'invasione, macellare un maiale, connettere una nave, progettare un edificio, scrivere un sonetto, bilanciare i conti, costruire un muro, sistemare un osso, confortare la morte , prendere ordini, dare ordini, cooperare, agire da soli, risolvere equazioni, analizzare un nuovo problema, lanciare letame, programmare un computer, cucinare un pasto gustoso, combattere in modo efficiente e morire galantemente. La specializzazione è per gli insetti. "
- da Il quaderno di Lazzaro.


12
mi ricorda un po 'la citazione: "Le persone stupide si circondano di persone intelligenti. Le persone intelligenti si circondano di persone intelligenti che non sono d'accordo con loro".
Sam Hasler,

Mi permetto di dire che questa è la migliore citazione di Heinlein su SO.

1
Il problema è che altri programmatori potrebbero essere al di sopra o al di sopra del tuo livello, ma potrebbero non voler insultarti. Non ho ottenuto molto in termini di feedback da tre programmatori con cui ho lavorato, e molto minimale da altri 2, uno che considererei "buono" ...

4
... sebbene siamo sterotipati come anti-social, altri programmatori possono prevenire la difesa del codice semplicemente non fornendo feedback sui problemi con esso. Che può effettivamente trascurare i problemi reali del codice al fine di non creare problemi sociali.

55

Questa è la matrice delle competenze del programmatore per te: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm


Sono 3-4 su come il 90% di quegli articoli e non riesco a programmare merda. Almeno non troppo in fretta.

-1 per la lista della spesa.

6
-1 - la conoscenza degli algoritmi è buona, ma non c'è modo di archiviarti nella testa quando qualcuno ti intervista. Ecco a cosa servono Wikipedia, Google e StackOverflow.

1
Concordare che tale elenco è per lo più inutile; è una buona fonte di idee se stai cercando degli esercizi, ma non è molto utile nella misura in cui decidi di essere un "buon programmatore". "Un buon programmatore" è più un atteggiamento che un elenco arbitrario.

2
+1. Anche se non sono in disaccordo con quanto detto sopra, continuo a pensare che questa sia una lista molto valida. Grazie per averlo pubblicato. Questi sono sicuramente i tipi di criteri su cui valuterei un programmatore che fa domanda per un lavoro. E @macnnicken, passa solo al livello 3. :)
EMP,

38

Jeff ha uno dei miei post sul blog preferiti su questo argomento ... Perché sono il miglior programmatore al mondo

"... non è il nostro lavoro essere migliori di chiunque altro; dobbiamo solo essere migliori di come eravamo un anno fa."


3
Mi piace quella citazione, molto bene. Ed è di questo che parla la programmazione. "Sii migliore in quello che fai e conosci giorno dopo giorno."

1
Ogni anno negli ultimi 12 anni, ho guardato indietro al codice che avevo scritto un anno prima e ho pensato che fosse assolutamente merda. Forse sto facendo qualcosa di giusto! Non c'è niente di peggio di un programmatore stagnante.

28

Penso che il fatto che tu stia ponendo la domanda dimostra che non sei un cattivo programmatore, quindi, secondo me, sei a metà strada. :)

I cattivi programmatori pensano sempre di essere grandi programmatori, nella mia esperienza.


quanta esperienza hai?

1
La mia esperienza concorda con la tua esperienza, motivo per cui mi preoccupo ogni volta che inizio a pensare di essere bravo.
Kristopher Johnson,

21

@L'affermazione di Nick "I cattivi programmatori pensano sempre di essere dei grandi programmatori ..." è spiegata dall'effetto Dunning Kruger , che generalizza che le persone che conoscono un po 'l'argomento spesso stimano quanto sanno effettivamente.

Essere un po 'faceto ... meno pensi di sapere più probabilmente fai .... a meno che ovviamente tu non sia un idiota davvero autocosciente.

Rispondere alla domanda originale, anche se tendo a pensare che la maggiore influenza (non controllo) che hai in genere sia un buon indicatore. Se vedi che gli altri seguono il tuo esempio o raccolgono le tue pratiche, allora sei sulla strada giusta.


L'effetto Dunning-Kruger è terribilmente umiliante. Mi piace provare a tenerlo a mente ogni volta che mi sento bene per qualcosa che ho fatto!

I bravi programmatori non fanno domande e poi votano le risposte perché non gli piacciono. Non si comportano come se sapessero tutto in una nuova materia e quando un esperto risponde a una domanda per loro non lo votano perché non è quello che volevano.

Vorrei avere un indizio su DK al college, quando ero un bell'esempio di un'estremità dello spettro!
DarenW,

18

La risposta che ha ottenuto più voti positivi è davvero angosciante. Fondamentalmente dice che non hai vita al di fuori della programmazione. E la famiglia? Comunità? Hobby? Che tipo di professione siamo in cui devi essere preoccupato fino all'ossessione per essere considerato "buono"? Penso davvero che dobbiamo avere una prospettiva qui.


2
Sono d'accordo. Dovremmo sforzarci di essere una grande persona prima di diventare un grande programmatore.

Buon posto per riferirsi al termine programmatore 501: hanselman.com/blog/…
ChrisFletcher,


9

Non sono perfetto. Faccio degli errori. Mi mancano le scadenze. Ma penso di fare lo stesso numero di mosse di bonehead che fanno "altri bravi programmatori".

Quella realizzazione da sola ti rende un programmatore migliore della maggior parte dei cattivi programmatori là fuori.

Molti dei peggiori programmatori tendono a pensare di sapere già tutto quello che c'è da sapere e non sono consapevoli dei loro limiti. Di conseguenza, non migliorano mai le proprie capacità.


9

Se guardi il tuo codice da diciamo un anno fa e pensi, accidenti, avrei potuto farlo molto meglio, probabilmente sei bravo :).


Ho appena guardato il mio programma mondiale Hello e ho pensato che, ora è molto più efficiente, sto bene? jks jks

9

Ecco alcuni esempi reali di cattiva programmazione. Naturalmente, un codice simile era ovunque copiato / incollato in 100 punti. Guy è stato licenziato, ma ho sentito che ha ottenuto di nuovo un buon lavoro. Godere:

un)

if (! TableObject.loadList("sql condition").isEmpty()) {  
    List<TableObject> myList = TableObject.loadList("sql condition");  
    ...  
}

b)

public static Type getInstance() {  
    if (instance == null) {  
        return new Type();  
    }  
    return instance;  
}

c)

getForeignKeyObjectProperty1() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty1();  
}  

getForeignKeyObjectProperty2() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty2();  
}  

...

getForeignKeyObjectPropertyN() {
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getPropertyN();
}

d)

public boolean isHasImage() throws SQLException {
    StringBuilder query = new StringBuilder();
    query.append("select user_name");
    query.append(" from user");
    query.append(" where has_image = 1");
    query.append(" and user_name ='"+getUserName()+"' and user_image is not null");
    Connection c = Database.getInstance().getConnection();
    Statement st = c.createStatement();

    try {
        ResultSet rs = st.executeQuery(query.toString());
        if (rs.hasNext()) {
            return true;
        } else {
            return false;
        }
    } finally {
        st.close();
    }
}

Se si crea questo tipo di codice, interrompere la programmazione. Se non vedi nulla di strano in questo codice, interrompi la programmazione. Altrimenti non sei cattivo, quindi potresti anche essere buono :)

EDIT: Per rispondere ai commenti: ho ottenuto un lavoro prima di laurearmi, e questo ragazzo ha già avuto alcuni anni di esperienza di programmazione. Fu licenziato pochi mesi dopo il mio impiego, quindi non ero in grado di tutorare nessuno. Gli esempi di cui sopra erano proprio dalla cima della mia testa - ogni pace del codice che toccava era imperfetta in vari modi e immaginativi. La maggior parte delle cose ha iniziato a insinuarsi dopo che è andato dalla società, perché solo allora altre persone hanno visto alcune parti del codice. È generalmente un bravo ragazzo, piacevole con cui parlare ecc. Ma non sarà MAI un buon programmatore, così come non sarò mai un buon pittore o uno scrittore o altro.

Per contrastare questo con un altro esempio, il ragazzo che è venuto a rimpiazzarlo era anche studente all'epoca. Ha studiato college più famoso per la gestione che per la programmazione. Non è troppo geek, nel senso che ha programmato qualcosa per divertimento o che sarebbe seduto a casa a leggere java o programmazione, eppure sta andando bene. Si aggiustò rapidamente e iniziò a produrre codice utile e gestibile. Alcune persone possono farlo, altre no - basta chiedere a dailywtf.


11
Chiunque può pubblicare codice arbitrario e affermare che chi non lo capisce è stupido. Andrò in piedi nella linea stupida.

20
Un buon programmatore si sarebbe preso il tempo (2 minuti forse?) Per spiegare al suo collega cosa c'era di sbagliato in un codice come questo.

4
D'accordo, un buon programmatore avrebbe sottolineato perché questo codice fosse "cattivo" e avrebbe aiutato il suo collega a migliorare, invece di deriderlo.

7
Spero che quel ragazzo abbia trovato un lavoro in cui i suoi colleghi lo hanno aiutato a crescere piuttosto che a rimproverarlo.
Robert S.

8
@Morfo: al instancecampo non viene mai assegnata Typeun'istanza e quindi rimane sempre null=)
missingfaktor

8

Ci sono alcune cose che potresti provare per capire meglio come accumulare.

  • Confronta le recensioni dei codici. Vedi la cui recensione ha rivelato più problemi.
  • Chiedi quando è stata l'ultima volta che hanno letto libri periferici al loro normale corso di studi. Quindi chiediti la stessa cosa.
  • Chiediti chi porta nuove idee all'azienda (e quanto bene funzionano).
  • Ultimo (e almeno), esiste una qualche forma di riconoscimento aziendale?

(L'ho messo per ultimo perché nella mia ultima azienda, un programmatore ha ricevuto "sviluppatore dell'anno" due volte in tre anni. Dopo la sua partenza, abbiamo trovato almeno 20 frammenti di codice degni di TDWTF. Ha sviluppato il codice velocemente , ma non necessariamente bene Il management non conosceva la differenza.)


1
+1 per "confrontare le recensioni dei codici". Sembra una cosa nuova e molto pratica da fare.
j_random_hacker,

6

Consenti ad altri sviluppatori con cui rispetti di lavorare o di vedere il tuo codice.

Chiedi alle persone di usare effettivamente quello che ti piace e vedere cosa pensano.

- Kevin Fairchild


6

Puoi capirlo?

if(rp->p_flag&SSWAP) {
	rp->p_flag =& ~SSWAP;
	aretu(u.u_ssav);
}

:-)


Modificato in basso ??!?!?!?! Qualcuno non conosce la sua storia. :-)
Iain Holder

5
Non ci si aspetta che tu lo capisca

È un riferimento a qualcosa? In ogni caso, se si tratta di codice C / C ++, probabilmente intendevi "& =" invece di "= &" sulla seconda riga. (Dico "probabilmente" perché sovraccaricando l'operatore ~ ​​() in C ++ potresti fare la compilazione sopra ... Ma sono abbastanza sicuro che non è quello che volevi.)
j_random_hacker

1
@j_random_hacker Sospetto che = & abbia ragione dato che questo codice è stato scritto da Dennis Ritchie. Vedi cm.bell-labs.com/who/dmr/odd.html
Iain Holder,

1
@IainMH, dmr ammette anche che era difettoso.

4

Solo il semplice pensiero che devi autovalutare ti fa fare un taglio sopra il resto.

Un modo in cui mi giudico sempre è ascoltare ciò che i miei colleghi hanno da dire su di me. Il trucco sta nel trovare le persone giuste.


4

È sempre soggettivo chi è un buon programmatore. Concordo con Nick sul fatto che semplicemente porre la domanda sia un passo nella giusta direzione. Penso che il costante desiderio di imparare di più e migliorare sia ciò che rende un buon programmatore.


4

Per me i migliori programmatori non sono mai in cerca di lavoro. Hanno offerte permanenti per nuove posizioni basate sulla loro reputazione. Quindi un buon programmatore può avere offerte da precedenti datori di lavoro per tornare, se lo desiderano. O un buon programmatore avrebbe avuto richieste da ex colleghi per venire a lavorare per loro in una nuova società.

In termini di punti di forza / debolezza, probabilmente li conosci già. In caso contrario, chiedi a una persona più anziana della tua squadra. Non deve nemmeno essere uno sviluppatore. Un buon project manager conosce i punti di forza / di debolezza dei programmatori. Inoltre, i tratti che definiscono un buon programmatore non si limitano al codice. Comprendere il business, le capacità comunicative, il giudizio, ecc. Sono tutti eseguiti al di fuori del proprio IDE.


2
Potresti essere un grande programmatore e una persona orribile. Preferiresti lavorare con una persona simpatica che forse non sa molto ma che è disposta a imparare o con un coglione totale che è un programmatore fantastico in ogni modo? Quindi ciò che descrivi rende un buon impiegato, non un buon programmatore. ;)

2
Non capisco da dove provenga questo commento. Le due domande principali che sto affrontando sono "Come faccio a sapere se sono un buon programmatore?" e "Come faccio a sapere i miei punti di forza / di debolezza?" Cos'è tutto questo parlare di cretini e persone orribili. Ho delle opinioni su queste cose, ma non credo che si riferiscano alla mia risposta.

2
Ottenere una reputazione è spesso più una questione di PR e di fiducia che di capacità reali.
David Thornley,

Supponendo che "abilità" sia un'abilità tecnica, allora essere un buon programmatore è più che "abilità reale". L'attitudine tecnica è solo un pezzo del puzzle.

3

Penso che sia come chiedersi come puoi sapere se sei una brava persona.

Penso che, sfortunatamente, la risposta sia che solo altre persone credibili possono dirtelo. Non penso che sia qualcosa che puoi determinare con precisione per te (almeno è molto difficile - ma penso che potrebbe essere impossibile).


3

direi semplicemente: se sei appassionato (intendo DAVVERO appassionato) di ciò che fai, se sei flessibile (un'altra lingua, nuova tecnologia, remake completo di un vecchio progetto - facciamolo!), se continui a imparare e migliorare le tue abilità e mai, mai pensare di essere abbastanza bravo da fermarti - allora sei un buon programmatore!


3

Il 95% di tutti i programmatori pensa di essere tra i primi 5% programmatori, l'altro 5% sono manager. Quindi se sei un manager, probabilmente non sei un buon programmatore, altrimenti probabilmente lo sei.


... e il 25% lo sa che sono tra i primi 1%;)

3

Penso che sia più una questione di cosa fai con le tue capacità di programmazione. Essere un grande programmatore va bene, ma cosa importa se stai programmando software di banca tutto il giorno (senza offesa). Semplicemente non si somma.

Per dimostrare davvero a te stesso che sei un buon programmatore, affronta un interessante progetto laterale difficile. Questo dimostra alcune cose: sei interessato a programmare il tuo tempo libero e goditi davvero l'argomento - questo è essenziale per essere un buon programmatore. Mostra versatilità in quanto puoi estendere le tue capacità oltre a ciò che fai nel tuo ambiente di lavoro. Mostra anche motivazione e creatività: hai definito un problema da solo e stai prendendo provvedimenti per risolverlo.

Tutti questi aspetti mi definiscono un buon programmatore.


3

La mia risposta sarà politicamente scorretta. Tuttavia, in realtà sono il fondatore di una start-up e il mio compito è assumere i migliori programmatori.

Come faccio a sapere quali persone saranno buoni programmatori o possono essere buoni programmatori?

1 parola: QI.

Il QI è per la programmazione come l'altezza è per i giocatori di basket.

Vorrei mettere le abilità matematiche come un altro indicatore politicamente più corretto. I miei insegnanti di informatica mi hanno detto che esiste un criterio che prevede correttamente chi riuscirà ai corsi di programmazione. Punteggi di matematica della High School. Quelli sono effettivamente un QI comunque.

Questo può essere una sorpresa. Ci viene detto che la programmazione è un lavoro di laurea. Indovina un po ', non mi interessa la laurea. Mi importa solo di 3 cose.

  1. Competenze di programmazione (che possono essere testate).
  2. Aptitude.
  3. Competenze delle persone di buon senso (non troppo basse).

Sfortunatamente il QI misura solo una cosa. Quindi faccio alcuni test.

Faccio domande alla gente. Semplice domanda che mi aspetto che il bambino della scuola elementare dovrebbe essere in grado di rispondere.

Faccio domande come:

  1. Qual è la distanza tra lancetta corta e lunga dell'orologio alle 7:35
  2. Se vado da Giacarta a Semarang e voglio mantenere una velocità di 60 km / ora. Quindi nelle prime 2 ore guido 100 km / ora. Quanto veloce dovrei andare per il resto del viaggio in modo che la mia velocità MEDIA sia di 60 km / ora?

Se osservi attentamente queste domande non richiedono affatto creatività. Solo buon senso. Tutti i bambini delle scuole elementari con QI possono rispondere a questa domanda.

La maggior parte dei laureati non può. Ora immagina se qualcuno non può rispondere a questo? Può programmare? Pensaci. Con quale frequenza dovrai specificare cosa dovrebbe fare?

Puoi anche porre domande come Microsoft che richiedono creatività. Puoi porre domande su come pesare 8 palline in una bilancia per sapere quale è la più pesante. Il problema con tali domande è che comporta fortuna. Tuttavia, alcuni sono abbastanza facili, dovrebbe essere un requisito minimo.

Ottenere un programmatore eccezionale può migliorare il morale degli altri programmatori. Ottenere un programmatore legale può abbassare il morale di tutti gli altri.

Dopo che le persone possono rispondere a domande del genere, il che è molto semplice, vorrei far loro scrivere del codice jam di Google.

I bravi programmatori possono risolvere il codice jam di google e prevedere quali problemi sono più facili.


2

imho sei un buon programmatore se

-hai un solido background teorico. reinventare la ruota, nonché un algoritmo o un framework è una perdita di tempo, il più delle volte.

-puoi vedere cose e problemi da una prospettiva distorta a volte. questo potrebbe portarti a trovare soluzioni innovative.

-poi spendi tempo e sforzi per avere gli strumenti migliori e le migliori competenze aggiornate.

-il tuo codice è facile da modificare. se si progetta un codice pulito, elegante e comprensibile, modificarlo non sarà doloroso.

-se il tasso di codice / bug è ragionevolmente alto. So che questo può sembrare banale, ma conosco molti sviluppatori creativi e qualificati che sono comunque molto inclini a fare bug insignificanti. questo compromette notevolmente la loro efficacia e utilità.

-le persone intorno a te sanno che puoi aiutare a decidere quali scelte fare

-puoi risolvere i problemi usando diversi strumenti. i programmatori malvagi continuano a usare lo stesso strumento (sia esso un linguaggio o una tecnologia o un'architettura e così via) per qualsiasi problema si presentino

-si continua a imparare, sei curioso.

-ti diverti a programmare, dopo tutti questi anni


2

"Signore, ci sono passato da Alpha a Omaha, e ti dico che meno un uomo conosce il più grande rumore che fa e maggiore è lo stipendio che comanda." Mark Twain

... la mia conclusione è che i bravi programmatori comandano un salario basso e fanno poco rumore ... :)


2

Miglior programmatore: completa l'attività con il minor numero di istruzioni di codice in tempo.


1

Quanti bug ha il tuo codice per ogni metrica? (ad esempio bug per riga) Quanto del tuo codice deve essere ricodificato quando è necessario aggiungere nuove funzionalità? I tuoi colleghi hanno problemi a modificare il tuo codice?

In definitiva, alla domanda è quasi impossibile rispondere dato che la domanda di "cos'è il codice di qualità" è ancora un argomento molto dibattuto dopo tutti questi anni.


1

Mi piace molto quello che ha detto Adam V sopra.

Oltre a ciò che altri hanno detto, guarda la manutenibilità e la storia di supporto del tuo lavoro. Se il tuo codice ha pesanti requisiti di manutenzione e viene costantemente riparato o è difficile da modificare, questi possono essere indicatori della sua qualità. Ma questi possono anche essere indicatori di scarsi requisiti.


1
"Ma questi possono anche essere indicatori di scarsi requisiti." molto probabilmente il nostro caso qui. requisiti scadenti ci hanno fatto riscrivere un intero modulo.

1

È molto difficile autovalutarsi. Le persone incompetenti tendono ad avere valutazioni fortemente gonfiate delle proprie capacità.

Una buona metrica è se le altre persone che rispettate come programmatori stessi vogliono lavorare su / con il codice che avete scritto. Data la possibilità di lavorare direttamente con te o di ereditare il codice che hai scritto, lo abbasserai? Accetto a malincuore? O cogliere l'occasione per imparare dal tuo lavoro? Questa tecnica funziona ancora meglio se è un pari, non un underling o qualcuno che pensa che potrebbe esserci qualche beneficio nel farti sentire bene.


1

Se vuoi davvero scoprirlo, invia del codice ai tuoi colleghi e chiedi una revisione (costruttiva) del codice. Nel peggiore dei casi, impari qualcosa. Il semplice fatto che tu sia qui su questo sito in cerca di illuminazione ti distingue già dalle masse non lavate. (a meno che tu non sia qui solo per l'accarezzare l'ego. :-)

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.