Cosa fare quando l'attività di programmazione diventa un problema? [duplicare]

23

Una volta ho visto un programma (non ricordo quale) in cui parlava di persone che "sperimentano il flusso" quando fanno qualcosa di cui sono appassionati. Quando "in flusso", tendono a perdere la cognizione del tempo e dell'ambiente circostante, concentrandosi solo sulla loro attività a portata di mano.

Questo succede molto per me quando programmo; soprattutto quando ho un problema. Mi rifiuto di arrendermi finché non è risolto. Questo di solito porta ad ore di fretta e mi dimentico di pranzare, la cena viene spinto fino a sera inoltrata, e quando finalmente guardo l'orologio, è il modo di passare le ore piccole della notte e ne prenderò solo alcune ore di sonno prima di alzarsi presto al mattino. (Questo non vuol dire che sono in solo di fronte a un problema - ma trovo particolarmente difficile interrompere la programmazione e tornare indietro quando c'è qualcosa che non posso risolvere immediatamente.)

Adoro programmare, ma lo odio quando disturba le mie normali abitudini (soprattutto i modi di mangiare e dormire). E stare fermo per così tante ore, a fissare uno schermo, non è salutare.

Per favore, qualche idea su come posso controllare la mia attività di programmazione sfrenata?

    
posta gablin 16.03.2013 - 21:09
fonte

14 risposte

43

Sposati

Un partner che urla "La cena è pronta". oppure "Adesso vai a letto o sarai scontroso al mattino" ti farà uscire a destra da quella zona.

Scherzi a parte. L'unica ragione per cui vado a letto in orario è perché mia moglie mi odia la mattina dopo le ultime notti di programmazione.

Ci sono anche altri vantaggi.

    
risposta data 27.07.2011 - 12:58
fonte
31

Bevi molta acqua. Ti fa bene, e causa certi stimoli a cui è difficile resistere.

    
risposta data 06.10.2010 - 21:06
fonte
14

Lo stato mentale che stai descrivendo suona come Flow , un fenomeno studiato estensivamente dallo psicologo ungherese Mihaly Csikszentmihalyi . In breve, le sue caratteristiche principali sono:

  • Obiettivi chiari
  • Alto grado di concentrazione su un campo limitato di attenzione
  • Perdita di autocoscienza
  • Senso del tempo distorto
  • Senso di controllo personale sulla situazione o sull'attività.
  • L'attività è intrinsecamente gratificante, quindi c'è un'azione senza sforzo.
  • Una mancanza di consapevolezza dei bisogni corporei (come la fame o la stanchezza)

I programmatori di computer sembrano essere maggiormente in grado di raggiungere Flow, ed è stato ipotizzato che le persone con una autotelica personalità siano anche meglio in grado di raggiungere Flow.

Il flusso è generalmente considerato un'esperienza positiva correlata alla massima produttività. Nel suo libro Emotional Intelligence , lo psicologo Daniel Goleman ha scritto: "Il segno distintivo del flusso è una sensazione di gioia spontanea, persino di estasi, mentre svolge un compito."

Quindi, visto tutto questo, perché mai vuoi soffocarlo? Il mio consiglio è di assaporarlo e promuoverlo il più possibile.

Tuttavia, dato che vuoi estirpare Flow, ecco un paio di idee:

  1. Flusso di blocco di noia e ansia. Quindi coltivare questi stati mentali potrebbe funzionare. Ma consiglio vivamente di non farlo.
  2. Ci sono alcune condizioni che rendono possibile il flusso (obiettivi chiari, equilibrio tra il tuo livello di abilità e il livello della sfida, e il compito su cui stai lavorando deve avere un riscontro immediato). Liberarsi di una qualsiasi di queste condizioni può anche liberarsi di Flow.
  3. Nella mia esperienza personale, Flow diminuisce in frequenza e intensità con l'età. Quindi potresti semplicemente voler "aspettare".
risposta data 07.10.2010 - 05:44
fonte
6

Amo quando succede ... È quello che spero ogni volta che mi siedo al codice. Se fossi in te non proverei a fermarlo, potresti desiderarlo in seguito.

    
risposta data 06.10.2010 - 21:08
fonte
5

Imposta un timer. Chiaro e semplice. Usa questo timer per interrompere le tue attività e impedirti di non mangiare, dormire, ecc.

    
risposta data 06.10.2010 - 21:06
fonte
5

Tutte le altre risposte a questa domanda si concentrano solo sui trucchi per interromperti , per ricordarti di smettere: sposati (quindi qualcuno ti costringerà a fermarti), bevi acqua (quindi la voglia urinare ti costringerà a fermarti), imposta un timer (per ricordarti di fermarti). Questi sono tutti espedienti e non risolvono il problema principale.

"Flusso" può essere una cosa reale, ma non è una superpotenza magica. Ad un certo punto devi dormire. La cosa che ti tiene alla tastiera, anche quando sei esausto, è la paura. Hai paura che se ti fermi ora, non avrai tempo per finire domani o non ti ricorderai dove hai lasciato. Quando sei stanco, il problema inizia a formarsi: è più difficile focalizzarti, quindi diventi meno efficace, quindi ti ci vuole più tempo per realizzare le cose.

Quante volte hai lavorato fino alle prime ore del mattino, lottando con un problema, solo per rinunciare alla sconfitta, sentirsi infelice, poi dopo una notte di riposo, ti viene una soluzione nel momento in cui ritorni lavorare? Non è fortuna. Questo è un indizio abbastanza grande che il tempo che passi lontano dalla tastiera è importante quanto il tempo che passi su di esso.

Devi imparare a fidarti del fatto che lavorerai in modo più efficiente se lavori su un programma regolare e ti riposi, piuttosto che se tratti il tuo lavoro come qualcosa che devi continuare ad arare il più rapidamente possibile. Sembra semplice e potresti anche essere d'accordo con me ora, ma ci vuole un po 'di lavoro per impararlo al livello in cui la tua mente inconscia non combatte con te non appena sei stanco di lavoro incompiuto lasciato a fare.

    
risposta data 07.07.2011 - 17:08
fonte
3

Quello che sembra che tu voglia sia un modo di lavorare più controllato, mentre sei ancora produttivo con la tua programmazione?

Se è così, dai un'occhiata a La Tecnica del Pomodoro dove prendi deliberatamente pause brevi senza interruzioni ogni mezz'ora e pause più lunghe ogni due o tre ore.

Significa anche assicurarti che i tuoi compiti siano suddivisi in cose che possono essere fatte in piccoli blocchi - così ti concentri sulle cose che effettivamente devi fare ed evita di scappare su un singolo problema.

Ci sono molte tecniche simili là fuori, che potrebbero variare in dettaglio, ma i punti chiave per assicurarsi che i problemi siano suddivisi in attività discrete che possono essere cancellate e che tu debba fare delle pause regolari, dovrebbero aiutarti a focalizzarti quando hai bisogno e vai avanti quando altrimenti potresti perdere tempo in una tana di coniglio.

    
risposta data 09.10.2010 - 01:44
fonte
2

Allenati per terminare in un momento specifico e attenersi ad esso. Ad esempio, se devi partire alle 17:00, fai scattare una sveglia alle 4, 4:30, 4:45 e 4:55, avvertendoti di metterla giù e continuare il giorno successivo.

La parte difficile naturalmente è allenarsi a fare questo. Ciò richiede principalmente l'autodisciplina, ma può anche essere aiutato dividendo il lavoro in unità. Il vantaggio delle unità è che è possibile completare un'attività in modo più rapido e ottenere la soddisfazione del completamento in precedenza, il che potrebbe dare un senso sufficiente per ascoltare l'allarme che si attiva. Sarà dura, ma è qualcosa che devi fare.

    
risposta data 06.10.2010 - 21:16
fonte
2

Stabilisci obiettivi per la notte. Ho l'impressione dalle risposte che in pratica ti siedi, inizi a lavorare, entri in un flusso e continui ad andare avanti.

È tanto un problema di gestione del tempo quanto un problema di autocontrollo: annota le cose che stai cercando di ottenere (niente di mentale, non preoccuparti del software, mantieni queste attività su post-it, ecc.). Scribble un preventivo contro di loro - ad esempio "Scrivi feature X, dovrebbe richiedere un'ora". Forse aggiungi anche un punteggio di "difficoltà" in modo da farti un'idea dei potenziali problemi in cui ti imbatterai e di quanto farai male nel tuo flusso e perdi tempo.

Prima di iniziare a lavorare quella sera, calcolare quante ore puoi spendere e scegliere le attività che si adattano a quella fascia oraria - questo è particolarmente importante (ad es. "Ho due ore di riserva, ho intenzione di prendere due ore 1 facile attività, o una singola operazione difficile di 2 ore ").

Questo è, in sostanza, ciò che faccio ora. Ho avuto un problema simile a te - alla fine ho capito che perdere questo tempo era il risultato semplicemente di non aver previsto problemi o di conoscere lo sforzo richiesto per il compito. Non appena ho iniziato a pensare a questo all'inizio e a rompere il mio progetto in piccolissimi piccoli tak, è diventato molto più gestibile.

Tuttavia aggiungerò un avvertimento; Flow is a Good Thing (tm), e la stima è una supposizione - a volte succede. Quello che cerchi un equilibrio e gestire meglio le tue attività ti darebbe questo.

    
risposta data 08.10.2010 - 11:56
fonte
1

[Ho già una risposta a questa domanda, che è stata ignorata radicalmente da un punto di vista. Quindi rimango di nuovo ignorato ...]

Ho pensato a questa domanda oggi mentre sto codificando. Per me , uno dei motivi principali per cui non voglio mettere qualcosa è che i costi di transizione sono troppo alti. Ho 5 finestre del terminale aperte, due o tre server aperti, ecc. E più so cosa sto facendo.

Per gestire le finestre del terminale che sono aperte ecc., ho appena finito la mia macchina e la maggior parte degli stati sono mantenuti. Ma per sapere dove sei e cosa stai facendo ...

Uno dei modi in cui POTREBBE aiutarti a fermarti quando sei nel mezzo di qualcosa è documentare dove-sei-quando-vai. Lo faccio praticamente adesso, altrimenti il mio ADD prende il sopravvento: scrivo sempre i prossimi 4 o 5 mini-compiti che devo fare, oltre a TUTTO ciò che tengo nella mia memoria a breve o medio termine. In questo modo, riprendere l'attività il giorno successivo è più semplice.

Quindi, abbassando i costi di arresto e riavvio, potresti essere più motivato a smettere. Oppure no, e anche questa risposta è off-base :)

    
risposta data 09.10.2010 - 01:29
fonte
0

Imposta una sveglia su quando vuoi fermarti e decidi se continuare a scricchiolare o chiamarlo un giorno.

    
risposta data 06.10.2010 - 22:56
fonte
0

È chiaro che quello che ti dà fastidio è dover svegliarti presto la mattina e NON stare svegli fino alle ore piccole della notte, né mancare il pranzo. Parla con il tuo capo, moglie, cliente o chiunque, e cerca di ottenere alcune ore che rispettano il tuo lavoro ossessivo. Supponendo che tu programmi efficacemente in quei momenti, chi vorrebbe che tu sia equilibrato e "sano" (grandi citazioni intorno a questo: come se i cicli noiosi fossero sani)?

    
risposta data 07.10.2010 - 06:54
fonte
0

Utilizza la tecnologia per distrarti dal flusso.

Ad esempio, se utilizzi Windows 7, i controlli genitori possono bloccarti fuori dal tuo account in determinati orari (orari dei pasti, ora di andare a letto, ecc.). Il mio suggerimento sarebbe quello di impostare un'altra installazione di Windows (dual-boot) con tutti i tuoi strumenti di sviluppo. Rimuovi tutto lo sviluppo correlato dalla tua installazione originale di Windows. Nell'installazione di sviluppo, configura un account amministratore con una password lunga generata automaticamente che ti affidi a qualcun altro (o metti la password fuori dalla portata in qualche altro modo) e configura un account limitato con i controlli parentali che limitano le ore puoi utilizzare l'account, in modo che durante questo periodo di tempo tu sia bloccato fuori dal tuo account (bloccando la workstation non si chiudono le applicazioni, quindi non ci sarà alcuna perdita di lavoro).

Ottenere la password dell'amministratore per sovrascrivere i controlli parentali dovrebbe essere un processo lungo e abbastanza sconveniente da farti uscire dal flusso, o un processo che non considereresti affatto fare (es. svegliare qualcuno a tarda notte per chiedere per la password). Non appena ne uscirai, la fame, la sete e / o la sonnolenza si stabilizzeranno, prendendo il posto dell'adrenalina e tornando nel flusso sarà molto difficile.

Questa è l'idea generale. Sono sicuro che ci sono soluzioni tecnologiche simili che puoi provare che saranno più adatte a te (e che funzionano sul tuo OS preferito). Sono sicuro che ci sono anche soluzioni che richiedono meno lavoro da impostare, ma trovo che meno richiedono, più sono facili da bypassare e minori sono le possibilità che hanno di interrompere il flusso.

    
risposta data 07.10.2010 - 22:39
fonte
0

Uso Workrave per assicurarmi di fare delle pause. Tendo a entrare molto nel flusso e non riesco a mangiare, a dormire, ecc. L'implementazione di uno strumento di cronometraggio ha contribuito enormemente. A volte è bene allontanarsi da un problema. Ho trovato che il mio problem solving è migliorato da quando uso Workrave. Le interruzioni fanno bene alla mente.

    
risposta data 07.07.2011 - 18:36
fonte

Leggi altre domande sui tag