Il modo migliore per nascondere rapidamente il tuo stato cognitivo quando non puoi evitare le interruzioni

18

Non so nemmeno se questa domanda abbia senso ... ma lascia che te lo faccia ...

imagine ... You're totally absorbed into some programming thought/idea/concept, your brain is in its most active state thinking up a solution to a problem, or as Joel Spolsky puts it -- you're deep into your "zone" -- AND, suddenly someone or some event breaks your engrossment -- something that you just can't avoid, something you have to attend to. ... imagination complete .. back to reality

Qualcosa che può rompere la tua concentrazione può essere ...

  • sei convocato per un incontro urgente
  • il tuo codice ha rotto la build giornaliera e il tuo collega ti sta chiamando
  • hai appena ricordato qualcosa che dovevi fare ma hai dimenticato di farlo
  • il tuo compagno di squadra ha alcune notizie interessanti da interrompere e ti insiste per ascoltare
  • la tua fidanzata (o fidanzato) è appena arrivata

Supponiamo che tu abbia solo 5-10 minuti prima che debba lasciare ciò in cui eri profondamente e intrattenere l'interruzione.

La mia domanda è: come fai a "salvare" velocemente lo stato d'animo in cui eri, quando è arrivato il diversivo. Lo scrivi in "qualche forma" su un foglio di carta o su un computer, o lo "ricordi" in qualche modo. Come recuperi quei pensieri esatti entro 5-10 minuti, in modo che più tardi, quando torni, puoi raggiungere il punto che hai lasciato.

Mi capita spesso che non riesca a ricordare quei pensieri esatti che stavo pensando prima del colpo - e mi sembra di aver perso una buona idea o una soluzione a un problema. Cerco di pensare retroattivamente cercando di raggiungere lo stato cognitivo di SAME che mi ha entusiasmato per un'idea - ma mi sento frustrato di non essere in grado di "arrivarci".

Succede qualcosa di simile a te. come si "recupera" da questo?

La mia preoccupazione principale non è il codice: sono quelle "idee astratte" che non sono ancora state convertite in codice che ho bisogno di "salvare" in qualche modo

    
posta treecoder 27.07.2011 - 08:01
fonte

13 risposte

16

Prima di lasciare il mio PC, scrivere cosa stavo facendo su un post-it o su un pezzo di carta. Di solito lo faccio comunque come parte di una correzione di bug o analisi. È davvero utile quando un bug è (ri) aperto più tardi , puoi ancora vedere le tue linee di pensiero di un mese fa e scoprire cosa devi fare molto più velocemente .

Inoltre: imposta alcuni segnalibri nel tuo codice. Quando torni puoi vedere cosa stavi facendo visualizzando i segnalibri che hai impostato.

    
risposta data 27.07.2011 - 09:29
fonte
7

Eseguo l'applicazione del blocco note locale e annoto il mio piano delle cose a venire.

Ho trovato questo per aiutare di più. Il 100% delle volte non riesco a ricordare cosa ho intenzione di fare quando torno, le idee sono facili da trovare ma ti ricordi i passi che avresti fatto?

Uso qualcosa del tipo;

+ Fix i.d bug
    - look at first name , problem?
    - ...

+ Deploy changes to test database

+ Come up with production deployment plan

L'ho salvato sul desktop e tieni il file aperto.

Ho trovato questo, per me, ha questi vantaggi;

  • Ci vogliono 5 minuti
  • È facile tornare nella 'zona'
  • Riattiva i ricordi più facilmente
risposta data 27.07.2011 - 11:15
fonte
5

Oltre all'eccellente suggerimento di scrivere le cose, questa è un'abilità che può essere sviluppata con ...

Practice.

Ero il peggiore del mondo al multitasking. La gente era solita temere di interrompermi perché ero così spiacevole a riguardo. Poi ho capito che in realtà non era come una CPU con più core paralleli, era come un'interruzione con i commutatori di attività. Così ho iniziato ad allenarmi per rilassarmi e accettarlo come una parte necessaria della vita.

Da un decennio in poi, uso un sistema tipo Pomodoro in cui faccio semplicemente una pausa quando il timer scatta. È incredibilmente facile tornare "nella zona" in un ambiente rilassato dopo una pausa di pochi minuti - non vedo l'ora! E per interruzioni più lunghe, quelle note scritte sono inestimabili. Posso ripristinare quasi tutto questo "stato CPU" mentale abbastanza facilmente ora a meno che non passi più di un giorno.

Inoltre, poiché ora sono più abituato a far fronte alle interruzioni, non sono più un brontolone quando le persone lo fanno. Sono anche migliorato nel dire semplicemente: "Aspetta un attimo mentre faccio un appunto". È incredibile quanto siano più piacevoli le mie interazioni sociali!

Il cervello è come un muscolo mentale e migliora le cose come il multitasking se gli dai progressivamente allenamenti più difficili.

    
risposta data 28.07.2011 - 00:29
fonte
4

Questo succede sempre! Quando sono nel mezzo della scrittura del codice, posso dire al 90% delle persone di aspettare qualche secondo: sanno che è nel loro interesse non disturbarmi. Durante questi due secondi, ho intenzionalmente schiacciato alcuni tasti sulla riga del codice che stavo lavorando e segnavo la riga sopra con XXX (questo si evidenzia bene in vim).

L'ammucchiamento del codice è fatto in modo che il programma non venga compilato e io sono costretto a guardare quella linea. Per la maggior parte dei miei linguaggi in cui scrivo, questo è sufficiente per permettermi di guardare dove ho interrotto e spostare rapidamente la memoria nel suo stato produttivo.

Ho anche imparato che essere in "zona" ora è un lusso in questi giorni (dal trattare con continue interruzioni). Anche se non è assolutamente l'ideale in termini di produttività, ti costringe a sfruttare al meglio qualsiasi cosa tu abbia.

    
risposta data 27.07.2011 - 08:08
fonte
3

Ho scoperto che ogni volta che lavoro con git, ho meno problemi a lasciare il lavoro alle spalle (e, soprattutto, a continuare a lavorarci su). Non è a causa di Git in sé, ma le pratiche che ho adottato durante l'apprendimento dei flussi di lavoro git. Sto parlando di rami di argomenti .

Se fai tutti gli "insiemi" significativi nel tuo sviluppo in un ramo tematico dedicato, è molto più facile tornare al tuo lavoro. Ecco perché.

    Il ramo dell'argomento
  • fornisce il contesto. Hai dato un nome descrittivo, quindi sai cosa stai guardando.
  • la cronologia
  • ha un ambito più piccolo e lineare. Mentre lavori su insiemi di modifiche più piccole (diramazioni), è probabile che ci siano meno commit da passare, e saranno lineari (non ci sono commit non correlati tra loro)
  • se elimini i rami degli argomenti quando hai finito un argomento, è più facile capire su quali argomenti hai lavorato e, cosa ancora più importante, che richiedono ancora la tua attenzione

Se sei disciplinato, questo modo di lavorare rende più facile lasciare il tuo lavoro e riprenderlo più tardi.

Quando lavoro su qualcosa, mi viene sempre in mente un lavoro in qualche modo correlato al mio argomento attuale. Ancora una volta, avere una disciplina paga. O finisci il tuo lavoro attuale. Se non puoi (ho spesso questo 'problema' - 'Ho bisogno di aggiustarlo ora' ecc.), Basta creare un nuovo ramo argomento per la correzione (o refactoring, miglioramento, qualunque cosa). Anche se il tuo spazio di lavoro corrente non è pronto per essere eseguito, fai solo git stash , fai il piccolo lavoro nel proprio argomento e pop di stash per tornare al tuo lavoro effettivo.

    
risposta data 27.07.2011 - 09:10
fonte
3

Per preservare lo stato delle attività e passare a un'altra, mi piace assolutamente Mylyn preservare il contesto. Ciò che Mylyn fa è archiviare e successivamente ripristinare lo stato esatto del tuo IDE (prospettiva aperta, file aperti, posizione in questi ecc.).

Per le cose che stavo facendo, ho inserito i commenti di TODO. Eclipse le mostra automaticamente come elenco delle attività.

    
risposta data 27.07.2011 - 17:49
fonte
2

Sviluppo in una VM. E quando sono interrotto, (fine giornata, pranzo, riunioni, ecc.) E non voglio perdere il filo del mio pensiero, scrivo solo un commento nel codice, qualcosa del tipo:

//Figure out how to implement "Date range too far out" check correctly

A volte questi commenti vanno avanti per poche righe, se è complicato. Ma scrivo solo il commento nel codice, nell'IDE, quindi lascia aperto l'IDE e uso il comando "Sospendi ed esci" sulla VM. Poi quando lo tiro di nuovo su di nuovo, c'è subito il mio commento davanti a me, che mi aiuta a tornare rapidamente a quello a cui stavo pensando prima.

    
risposta data 28.07.2011 - 01:40
fonte
1

Ho iniziato a utilizzare il software di mappatura mentale (attualmente FreeMind). Lo uso per tutto, ma rilevante per questo, include una lista di cose da fare per ogni progetto su cui sto lavorando. Mentre sto pensando a una soluzione per un dato problema sulla lista, comincio a scriverlo nella mia mappa mentale. È lì che immagazzino la mia soluzione, anche mentre ci sto lavorando, invece di provare a tenere tutto in testa.

Permettetemi di concentrarmi sui dettagli di implementazione del codice, senza perdere l'immagine complessiva. Significa anche che le interruzioni hanno un effetto minimo sul mio lavoro, perché mantengo comunque i passi che sto pianificando di seguire registrati da qualche parte.

Il software specifico o il metodo di tracciamento che usi è irrilevante. Questa idea sarebbe altrettanto utile nel blocco note o con un pezzo di carta. Il concetto rilevante è che stai registrando le tue idee come le hai, quindi sono sempre disponibili.

    
risposta data 27.07.2011 - 14:41
fonte
1

Se ti trovi in un ambiente ad interruzione elevata, trovo molto utile tenere un diario orario (annota un paio di pallottole ogni ora). Uso una combinazione di TiddlyWiki e carta (Tiddly per la documentazione / ricerca, la carta per un rapido pensiero).

Ho iniziato a farlo quando funziona da casa con un neonato e ha aumentato la mia produttività su tutta la linea. Aiuta con il problema immediato di riscoprire i miei pensieri, e ha un effetto collaterale positivo di aumentare la mia consapevolezza di sé (ho impiegato un'ora per modificare un metodo di battitura a 10 linee la scorsa settimana per renderlo più leggibile. Probabilmente non è il miglior uso del mio tempo).

    
risposta data 27.07.2011 - 17:14
fonte
0
  • pensa ad alta voce nel documento di registro di uno sviluppatore mentre vai
  • brain-dump nel log quando viene interrotto
  • assicurati di annotare la prossima cosa che avresti intenzione di fare

il primo è l'assicurazione contro le interruzioni, il backtracking e il ripetersi più tardi, mentre il secondo è essenziale per riprendere da dove eri rimasto

    
risposta data 28.07.2011 - 00:00
fonte
0

Tengo un commento in esecuzione in un blocco note accanto a me. Ho provato a farlo su un file di blocco note, ma per qualche motivo non funziona in modo altrettanto efficace come scriverlo. Se siete ragionevolmente organizzati su ciò che annotate mentre state lavorando, avete effettivamente una copia dei vostri pensieri astratti su cui tornare.

    
risposta data 28.07.2011 - 10:38
fonte
0

Ciò che ho trovato mi ha aiutato molto (anche per "OK, ora vado a casa e torno a lavorare domani") è stato costantemente annotando i pensieri più importanti nella mia mente, e poi facendo cose fuori da quella lista.

Ma sicuramente fa affidamento su (i) elaborando attivamente quella lista - almeno eliminandola piuttosto che finendo con centinaia di "elenchi di cose da fare" completati a metà che intendi tornare indietro e (ii) praticare abbastanza te avere l'esperienza per sapere che cosa hai bisogno di scrivere e cosa no - quali attività hai "aggiungi il pulsante della barra degli strumenti" ei dettagli del design che puoi ricreare dalla tua mente la prossima volta e quali attività hai fatto a metà pianificando già senza rendersene conto e devi buttarlo giù da solo.

Inoltre, ovviamente, cerca di evitare distrazioni non necessarie; è sempre bello poter continuare oltre una distrazione, e ce ne saranno sempre alcuni, ma non incoraggiarne troppi.

    
risposta data 01.08.2011 - 11:01
fonte
0

In realtà ho causato diversi bug a causa di un'interruzione frettolosa e improvvisa per le pause pranzo in una ex azienda. Ho finito per chiedere qualche minuto in più o semplicemente se ne andavo senza di me solo perché mi spingessero ad unirmi, e così ho lasciato il codice scritto a metà, il pensiero a metà completo, solo per tornare al codice un'ora dopo e perdere rintraccia e sbaglia.

Ho finito per cominciare a compensare prendendo appunti e scrivendo le liste di cose da fare mentre vado e mantenendo semplicemente uno "stack mentale meno profondo", per così dire. TDD aiuta anche perché i test esprimono ciò che stai cercando di fare con un design e ti assicurano che lo stai facendo.

Ho anche sviluppato un linguaggio che si trova a metà strada tra ciò che mi sembra intuitivo come la codifica e il linguaggio umano. Consiste in suoni come " Nyargh! Bloobly-bloop! " e faccio quei suoni a volte se le persone cercano di parlarmi mentre sono occupato. Mentre non capiscono quei suoni, comunica che sono in uno stato incapace di comunicare correttamente con gli umani al momento, a quel punto si allontanano e mi permettono di riprendere a pensare e scrivere codice.

Detto questo, mia moglie si è abituata all'idea che lei potesse parlare con me e io potrei annuire e così via e non ho mentalmente elaborato una sola parola che ha detto. È come se potessi vedere la sua bocca muoversi e sentire i suoni che escono, ma in realtà non è stata tradotta correttamente nelle istruzioni della macchina. Ha imparato a notare le mie reazioni quando succede mentre sono assorto nei miei pensieri.

Anch'io a volte a metà strada elaboro ciò che ha detto e lo spingo alla coda simultanea, come se mi facesse una domanda, a quel punto non posso elaborarlo completamente finché non ho cancellato tutto dalla mia coda mentale (che utilizza meccanismi di bloccaggio molto inefficienti per la sicurezza delle filettature). Quindi si è abituata a farmi una domanda con solo un cenno del capo e nessuna risposta o una risposta priva di senso come "sì" o "bloobly-bloop" a "cosa vuoi fare stasera?" solo per me la processerò dieci minuti dopo e rispondo alla domanda come se l'avessi appena sentita un secondo fa.

Inoltre non so voi ragazzi, ma divento molto distratto quando mi perdo nei pensieri di programmazione. Alla fine ho cercato i miei calzini una volta per anni, dimenticando dove li ho messi. In qualche modo li ho messi nel frigorifero. Penso che stavo cercando di prendere qualcosa da bere o qualcosa con le mie calze in mano e in qualche modo mettere i calzini nel frigorifero e ho dimenticato di prendere la bevanda. In un altro momento, sono andato in una discarica dopo aver parcheggiato la macchina con le chiavi della macchina in mano e ho cercato di gettare un involucro che avevo nella spazzatura. Invece ho finito per gettare le mie chiavi della macchina nella discarica e non me ne sono nemmeno accorto fino a quando non ho provato a sbloccare la macchina con l'involucro di plastica, a quel punto ho dovuto immergermi nella spazzatura per le mie chiavi. Ad ogni modo, mia moglie è abituata a questi tipi di cose con le mie cose che appaiono in posti strani.

[...] your girlfriend (or boyfriend) has just come over

Solo per questa parte, a parte, la datazione e il romanticismo sono difficili con la programmazione. Ho avuto molte relazioni passate in cui gli appuntamenti sono andati meravigliosamente fino a quando non abbiamo iniziato a vivere insieme e hanno visto quel lato di me perso nei miei pensieri tutto il tempo mentre ero seduto tutto il giorno al computer e camminavo pensieroso mentre rispondevo con " bloobly-bloop! "e ha perso interesse. È difficile trovare qualcuno con la pazienza per questo. Sono stato davvero fortunato con mia moglie che lo sopporta.

    
risposta data 10.12.2017 - 14:09
fonte

Leggi altre domande sui tag