Performance del programmatore [duplicato]

2

Sono un programmatore PHP con 1 anno di esperienza. Mentre sto iniziando la mia carriera, sto imparando molte cose adesso. Posso dire di essere un po 'un perfezionista.

Quando mi viene assegnato un problema, avvio tramite Google. Quindi, anche quando trovo una soluzione, continuo a cercarne una migliore finché non trovo 2-3 opzioni. Quindi inizio a impararlo e scelgo la soluzione più performante.

Anche se sto imparando molto, questo processo mi ha etichettato come a basso rendimento.

Le mie domande:

  1. Come novizio, dovrei continuare a utilizzare questo processo di apprendimento e non preoccuparmi delle mie prestazioni?
  2. Dovrei concentrarmi maggiormente sulle mie prestazioni e meno sulle prestazioni del codice?
posta RSK 03.02.2011 - 18:48
fonte

6 risposte

5

Se hai delle persone esperte intorno a te, potresti chiedere loro se potevano darti una stima di quanto tempo dovrebbe prendere qualcosa, come posso immaginare molte cose nel software che hanno soluzioni che vanno da 2 ore a 2 anni e molti Tra le cose che dipendono dalle risorse, diverse opzioni possono avere senso. Se qualcuno ti dice che qualcosa dovrebbe richiedere alcune ore e hai trascorso alcune settimane senza averlo fatto, questo potrebbe essere un segnale che potresti aver bisogno di più aiuto per fare le cose entro una scadenza ragionevole. Puoi leggere un "Duct Tape Programmer" come esempio di questo tipo di ruolo modello.

Se prendi il tuo perfezionismo troppo lontano, potrebbe benissimo sabotare la tua carriera. Allo stesso tempo, se mantenuto con moderazione e si migliora davvero su base regolare, non è una brutta forza avere se lo si può vedere in questo modo.

    
risposta data 03.02.2011 - 20:16
fonte
13

Mmmm .... che ne dici di un compromesso?

Ora ottieni una soluzione funzionante, cerca soluzioni migliori in modo che tu ne venga a conoscenza, ma usane una migliore la prossima volta .

    
risposta data 03.02.2011 - 18:52
fonte
4

Ci sono molti fattori che guidano un progetto software, ad es. correttezza, flessibilità, costi, velocità, ecc. In ogni progetto dobbiamo scendere a compromessi su questi fattori a seconda di cosa è richiesto.

Ad esempio, il progetto al quale sto lavorando in questo momento è guidato dalla velocità e non dalla correttezza. Ciò significa che possiamo permetterci alcuni bug nel progetto, ma dobbiamo avviarlo al più presto. Quindi non passiamo molto tempo a scrivere casi di test.

Quindi, come sviluppatore, dobbiamo padroneggiare quest'arte del compromesso. A volte una soluzione meno efficace fatta rapidamente può portare benefici al progetto più che "la migliore soluzione". Qualche volta.

Nel tuo caso ti consiglierei di soddisfare i requisiti dei progetti e nel tuo tempo libero trovare soluzioni migliori per imparare. Anche se hai una buona abitudine, ma non dedichiamo molto tempo all'apprendimento a spese del nostro datore di lavoro.

Lettura raccomandata: Rapido sviluppo: addomesticare le pianificazioni software Wild di Steve McConnell

    
risposta data 03.02.2011 - 19:12
fonte
2

Il principale cambiamento alla tua routine che suggerirei è necessario è iniziare a cercare di capire e sviluppare le tue soluzioni ai problemi, prima di passare l'età alla ricerca di una soluzione pronta.

OK, non dovresti reinventare la ruota inutilmente, ma se non fai mai un codice da zero, ciò ostacolerà enormemente le tue abilità.

La correttezza del codice nel mio libro non è un'opzione, è un requisito. La velocità è un sottoprodotto dell'esperienza, arriverà.

    
risposta data 04.02.2011 - 01:46
fonte
1

Capisco il voler fare le cose bene / essere un perfezionista, ma ad un certo punto non hai voglia di iniziare a scrivere codice? La pianificazione è grande. Imparare cose nuove dovrebbe sempre essere incoraggiato (spesso devi farlo nel tuo tempo libero). Alimenta l'impulso di codifica o considera un MBA (non c'è niente di sbagliato in questo).

    
risposta data 03.02.2011 - 20:02
fonte
0

Hai detto che, anche se "stavi imparando molto, questo processo ti ha etichettato come uno scarso rendimento".

Stai misurando la tua performance in un modo e i tuoi datori di lavoro lo stanno misurando in un altro. Determina la differenza e determina se ti interessa o meno. Se hai voglia di essere etichettato, uno scarso rendimento non ti importa rispetto al tuo apprendimento, quindi ignoralo. Se la tua etichetta è di scarsa qualità per te, convincili che il tuo apprendimento è una misura più preziosa del tuo rendimento, o migliora con le misure di rendimento che suggeriscono.

Tuttavia, considera questo:

Forse non stai imparando quanto pensi di essere. Puoi produrre un codice migliore ora di quanto potresti un anno fa? O stai facendo affidamento su Google per risolvere gli stessi problemi che hai fatto allora?

Il modo migliore per fare qualsiasi cosa è esercitarsi a farlo, e il processo che hai descritto è esercitarsi su snippet di codice googling, non sulla programmazione pratica. Certo, la ricerca di soluzioni simili è un aspetto del lavoro di programmazione, ma il nucleo della programmazione è la risoluzione dei problemi producendo codice.

    
risposta data 23.02.2014 - 20:14
fonte

Leggi altre domande sui tag