Come combatti la fatica della programmazione? [chiuso]


48

Non stanchezza come in "Ho bisogno di dormire", ma stanchezza come in "Non riesco proprio a disturbarmi più" che di solito si verifica quando colpisci i blocchi stradali in qualsiasi progetto stai lavorando, in genere più ti avvicini alle scadenze.

Può essere in progetti di lavoro o progetti personali, ma è qualcosa che continuo a colpire sempre più ultimamente. Avrò un'idea, inizierò a lavorarci su, avrò alcuni giorni davvero buoni e farò progressi, poi solo alcune cose insignificanti mi faranno inciampare, non riesco a far funzionare le cose nel modo desiderato, ho raggiunto limiti nel framework, ho problemi per i quali non riesco a trovare documentazione, ecc. e diventa troppo frustrante.

O sono solo in questo?


4
I tuoi progressi sono misurabili nei tuoi progetti anche quando raggiungi blocchi stradali? Altrimenti, considera di renderlo misurabile. La visibilità di progressi costanti è il miglior progresso che io conosca.

7
Questo mi ricorda Mort (Terry Pratchett) - la parte in cui Mort sta pulendo lo sterco nelle stalle. "Vediamo, pensò, ho fatto quasi un quarto, chiamiamolo un terzo, quindi quando avrò fatto quell'angolo vicino alla rastrelliera sarà più della metà, chiameremo cinque ottavi, il che significa altri tre la carriola si carica ... Non dimostra nulla se non che lo straordinario splendore dell'universo è molto più facile da gestire se lo si considera come una serie di piccoli pezzi. "
Steve314,

@ Steve314: +1 rocce di Pratchett.
Orbling


@rwong: la maggior parte dei miei progetti sono progetti solisti (o team molto piccoli). Sembra un'idea interessante, però.
sevenseacat,

Risposte:


42

Indugio

Quello che descrivi è probabilmente la procrastinazione . È un fenomeno molto comune. Fai clic sul link e leggi la Teoria della motivazione temporale .

Per battere la procrastinazione, faccio liste. Quando mi sento procrastinare, apro l'elenco e mi costringo a lavorare sul primo elemento. Dopo pochi minuti, entro nella zona o nel flusso come descritto dalla psicologa Mihály Csíkszentmihályi .

Dovresti riconoscerti in questa immagine:

testo alternativo


2
+1 per forzarti. Ho trovato lo stesso per me vero; solo l'inizio è la parte più difficile.
Michael K,

2
Non vedi col passare degli anni che tutti i progetti scendono sull'asse verticale. Tende ad esserci movimento anche in orizzontale.
Orbling

Oggi ho procrastinato tutto il giorno invece di codificare il mio progetto open source. Dannazione.
gruszczy,

1
+1 per aver risolto questo problema.
Conor,

2
Trovo che se l'elenco ha solo compiti spiacevoli in alto, può essere quasi impossibile forzarsi a farlo ...
Roman Starkov,

10

Ciò che funziona per me è allontanarsi dal problema che pone la barriera. Questo può significare come altri hanno suggerito di lavorare su un'altra parte della base di codice. Può significare andare a correre. Ho scoperto che battere la testa contro una barriera non fa che rafforzare la barriera. Cambiare la tua attenzione su qualcosa di non correlato consentirà al tuo subconscio di eliminare il problema. Sono stato sorpreso molte volte trovando la soluzione mentre ero sotto la doccia, ecc.


4
Le docce sono sicuramente buoni posti per la correzione di bug.
Orbling

Questo è davvero un buon punto per rafforzare solo la barriera. Penso che sia quello che devo fare, suddividere i progetti in parti disparate, quindi quando il mio cervello ne ha abbastanza, passa a un altro, usa una parte diversa del cervello.
sevenseacat,

8

Un programmatore deve avere un disco più grande di quello delle Lanterne Verdi . È quel piccolo prurito che abbiamo quando qualcosa non funziona cerchiamo di scavare più a fondo e scoprire perché, sia che si tratti di porre domande o di leggere un libro.

Quello che puoi fare per fermare quella fatica è allontanarti un po 'dal problema e lavorare su un altro aspetto del compito che ti è stato assegnato.

Per me, le attività di programmazione che mi fanno rilassare come un bambino stanno lavorando sulla GUI. È molto facile e mi permette di spegnere il cervello. Inoltre dà al mio cervello l'effetto placebo che sto realizzando qualcosa.


Quindi, in sostanza, rimanere immersi nel progetto, ma nel lavoro occupato? E sì, questa è la peggiore sensazione - quando hai messo tutto questo tempo in qualcosa e ti senti ancora come se non avessi realizzato nulla.
sevenseacat,

3
@Karpie Stai ancora realizzando qualcosa. Fare un po 'di "lavoro occupato" ti consente di continuare a lavorare su qualcosa che deve essere fatto, ma non è qualcosa che richiede al tuo cervello di sparare su tutti i cilindri.

Non lo so - il lavoro con la GUI sembra essere sempre in esecuzione per me. Far funzionare correttamente ed essere utilizzabile è divertente e stimolante, ma farlo sembrare bello è molto difficile per me.
Michael K,

Quando mi allontano per un po 'in questo modo, circa il 50% delle volte non torno più ...: /
Roman Starkov

6

Ho la tendenza a cadere in quest'area, quasi sempre.

Iniziare un progetto è facile, tutto è nuovo, cose da cercare e scoprire, prototipi da costruire, tutto divertente. Ma quando la sfida svanisce, anche il mio interesse svanisce. Ottenere le versioni di produzione del software costruite, risolvendo piccoli bug ridicoli che esistono a causa di problemi oscuri con alcune piattaforme che devi usare.

Basta annoiarti a morte.

Non ho mai trovato nulla di troppo utile in questo, lavoro o gioco con qualcosa di completamente diverso (StackOverflow fa bene a questo), fino a quando mi annoio con le altre cose e inizio a sentirmi in colpa. Quindi fai un po 'del lavoro noioso. La produttività si riduce a circa il 20%, ma questo è l'onere della codifica noiosa.

C'è una soluzione, la programmazione in team, molto difficile da fermare quando altre sono direttamente coinvolte.


1
+1, il team building funziona alla grande. Sfortunatamente, è molto difficile coinvolgere altre persone nei tuoi progetti personali.
dan_waterworth,

@dan_waterworth: Vero, anche se sono passati moltissimi anni da quando ho programmato per me stesso. 60-80 ore settimanali, con preziose piccole vacanze per anni rimuove piuttosto il desiderio.
Orbling

2
+1 per l'onestà: "... finché non mi annoierò con le altre cose e inizierò a sentirmi in colpa ... La produttività si riduce a circa il 20% ..."
Kavka,

Puoi dare maggiori dettagli nella programmazione di gruppo?
Esqarrouth,

6

Coppia di programmazione

Trovo che la programmazione in coppia sia di grande aiuto in questi casi. Trova qualcuno con cui abbini bene e attacca i problemi, non c'è niente di meglio di un'altra opinione o di una cassa di risonanza per superare i blocchi stradali. Una volta che inizi a fare di nuovo progressi, l'entusiasmo tende a tornare da solo.

Purtroppo questo è malvisto nella nostra azienda, quindi tendo a farlo solo quando riesco davvero a sentire i problemi che incidono sulla mia produttività.


+1, poiché questa è stata l'unica cosa che ho suggerito nella mia risposta, sebbene la chiamassi programmazione di gruppo, poiché più di due sono buoni. ;-)
Orbling

3

Impara una nuova lingua. Non c'è niente come imparare una nuova lingua per suscitare il tuo interesse. Suggerirei Haskell.


1
+1 per la nuova lingua, +1 per Haskell. La matematica del voto sembra 1 + 1 = 1tuttavia fare .
Orbling

1
@Orbling, è perché1 | 1 = 1
dan_waterworth il

Penso che 1 & 1 = 1sarebbe più vicino alla mia intenzione. ;-)
Orbling

1
@Orbling, che ne dici P(vote) = S((1 + 1)/t), dov'è S(x)la funzione sigmoid ? (Puoi scegliere la temperatura del sistema).
dan_waterworth,

Questo è quello che ho provato con il mio ultimo progetto, ho provato ad imparare Ruby and Rails! Quella era la parte in cui la documentazione non era tutta lì,
eh

2

Comincio a colpire altre aree per un'ora o per. Uso Eclipse al lavoro ed Eclipse ti consente di inserire un // TODO:codice nel tuo codice e poi li raccoglie tutti in una finestra per te. Se vedo qualcosa che voglio cambiare o correggere mentre sto lavorando su qualcos'altro, inserisco un TODO in modo da non interrompere il mio slancio. Quando rimango bloccato per troppo tempo (più di un'ora o due) inizierò a lavorare sull'elenco. Fornisce un cambiamento di scenario e il più delle volte i cambiamenti sono piuttosto semplici, il che mi aiuta a rilassarmi. Spesso la risposta viene fuori, mentre mi fa ancora sentire che sto realizzando qualcosa.

Nota: adoro il refactoring e rendere sempre migliore una parte del codice. Il tuo chilometraggio può variare.


1
+1 Questo è qualcosa che faccio sempre, particolarmente utile per garantire il flusso regolare del codice. Naturalmente, se si seguono le solite dottrine di codifica, lo pseudo codice completo in anticipo è una buona idea, lentamente da elaborare nel vero codice.
Orbling
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.