Il modo migliore per nascondere rapidamente il tuo stato cognitivo quando non riesci proprio a evitare interruzioni


21

Non so nemmeno se questa domanda abbia un senso ... ma lascia che ti permetta di farlo ...

immagina ... Sei totalmente assorbito da qualche pensiero / idea / concetto di programmazione, il tuo cervello è nel suo stato più attivo e sta pensando a una soluzione a un problema, o come dice Joel Spolsky - sei nel profondo della tua "zona" "- E, improvvisamente qualcuno o qualche evento interrompe il tuo coinvolgimento - qualcosa che non puoi proprio evitare, qualcosa a cui devi occuparti. ... immaginazione completa .. ritorno alla realtà

Qualcosa che può interrompere la concentrazione può essere ...

  • sei convocato per un incontro urgente
  • il tuo codice ha rotto la build quotidiana 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 delle notizie interessanti da rompere e ti insiste ad ascoltare
  • la tua ragazza (o il tuo ragazzo) è appena arrivata

Ora supponi di avere solo 5-10 minuti prima di dover lasciare ciò in cui eri profondamente e intrattenere l'interruzione.

La mia domanda è: come fai a "salvare" rapidamente lo stato mentale in cui ti trovavi, quando è arrivata la diversione. Lo scrivi in ​​"qualche forma" su un foglio o un computer, o lo "ricordi" in qualche modo. Come si salvano quei pensieri esatti entro 5-10 minuti in modo che più tardi, quando torni, riesca a recuperare il ritardo dal "punto" che hai lasciato.

Mi capita spesso di non riuscire a ricordare quei pensieri esatti che stavo pensando prima del colpo - e mi sento come se avessi perso una buona idea o soluzioni a un problema. provo a pensare in modo retroattivo cercando di arrivare a quello STESSO stato cognitivo che mi ha fatto eccitare per un'idea - ma sono frustrato non potendo "arrivarci".

Ti succede qualcosa del genere. come si "recupera" da questo?

La mia preoccupazione principale non è il codice - sono quelle "idee astratte" che non sono state ancora convertite in codice che devo "salvare" in qualche modo.

-- aggiornare --

Dopo tanti anni, posso dire con sicurezza che NON c'è modo di farlo. Nessuna quantità di scarabocchiare il tuo stato cognitivo su un pezzo di carta ti permetterà di ripristinarlo esattamente com'era. Il nostro cervello è molto più complesso di un misero frammento di scarabocchio, quando si tratta delle informazioni che contiene attivamente in qualsiasi momento.

Il modo migliore è evitare la distrazione, non importa quanto sia importante, a meno che non sia una situazione di vita o di morte. Niente è più importante dell'essere nella zona e finirlo.

Se il tuo posto di lavoro è abbastanza ingenuo da non apprezzare l '"essere nella zona" di qualcuno, allora è il momento di cercare un nuovo posto di lavoro. YMMV però. E con le relazioni personali, sono le abilità sociali e un pizzico di articolosità che possono fare un mondo di bene.


Consiglierei di utilizzare uno strumento di mindmapping, come FreeMind. O Emacs Org-mode. Entrambi sono utili per la modifica rapida di attività e idee TODO man mano che arrivano. (e
esegui il

Risposte:


19

Prima di lasciare il mio PC scriverò quello che stavo facendo su un post-it o su un pezzo di carta. Di solito lo faccio comunque come parte di una correzione o analisi di bug. È davvero utile quando un bug viene (ri) aperto in seguito , 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.


2
+1. Nella mia esperienza, l'atto di scrivere ciò che stavi facendo è chiarire in sé e per sé, e aiuta anche se non mi ritrovo a riferirmi a ciò che ho scritto in seguito .
jimwise

+1 sono d'accordo, scriverlo in "qualche forma" è la soluzione migliore :)
treecoder

2
+1: ci sono tutti i tipi di ricerche cognitive a supporto di questo. È come prendere appunti scritti quando ascolti una lezione del college. Più parti del tuo cervello puoi impegnare in questo momento, maggiori sono le possibilità che hai di aggrapparti ai dettagli.
Bob Murphy,

Notebook per me e per quanto io lo faccia mentre vado avanti, poi li barrerò quando fatto. Inoltre lascerò il codice parziale con errori di compilazione intenzionale con un messaggio su ciò che deve essere fatto.
Newtopian,

8

Tiro fuori l'applicazione di blocco note locale e annoto il mio piano di cose a venire.

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

Uso qualcosa del genere;

+ 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 ho aperto il file.

Ho scoperto che questo, per me, ha questi benefici;

  • Ci vogliono 5 minuti
  • È facile tornare nella 'zona'
  • Innesca i ricordi più facilmente

è quello che faccio anche io - ho pensato che qualcuno potesse avere un'idea migliore :)
treecoder il

Non so se ci sia un modo per "salvare" un'immagine perfetta delle tue idee in quel momento. Ma inserirò le parole chiave per aiutare a riportare quell'intero però, e pensare a quell'idea e associarla brevemente a quelle parole mentre le scrivo. Un'altra idea, quando questo fallisce sono i diagrammi, e l'ho fatto molto quando ho programmato un motore 3d come hobby. In questo modo ho potuto visualizzare le mie idee o il mio obiettivo finale, salvarle sulla carta e tornare indietro e persino fare meglio di quando avevo lasciato.
Ross,

5

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

Pratica.

Ero il peggiore del mondo nel multitasking. La gente aveva paura di interrompermi perché ero così spiacevole. Poi ho capito che in realtà non era come una CPU con più core paralleli, era come un interrupt con switch di attività. Così ho iniziato ad allenarmi per rilassarmi e accettarlo come parte necessaria della vita.

Un decennio dopo, uso un sistema simile a Pomodoro in cui mi prendo semplicemente una pausa quando il timer si spegne. È incredibilmente facile tornare "nella zona" in un ambiente rilassato dopo qualche minuto di pausa - non vedo l'ora! E per interruzioni più lunghe, quelle note scritte sono preziose. Riesco a ripristinare quasi tutto quello "stato della 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ù così brontolone quando le persone lo fanno. Sono anche migliorato molto semplicemente dicendo "Aspetta un momento mentre prendo nota". È incredibile quanto siano più piacevoli le mie interazioni sociali!

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


4

Questo succede sempre! Quando sto scrivendo un 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 segnare la linea sopra con XXX (questo si evidenzia bene in vim).

La compressione del codice viene eseguita in modo che il programma non si compili e sono costretto a guardare quella riga. Per la maggior parte delle mie lingue in cui scrivo, questo è sufficiente per guardare da dove avevo interrotto e portare rapidamente la mia memoria nel suo stato produttivo.

Ho anche imparato che essere nella "zona" è ormai un lusso in questi giorni (dal gestire continue interruzioni). Sebbene non sia sicuramente l'ideale in termini di produttività, ti costringe a sfruttare al meglio tutto ciò che hai.


3

Ho scoperto che ogni volta che lavoro con Git, ho meno problemi a lasciare il lavoro alle spalle (e, cosa più importante, continuare a lavorarci su). Non è a causa di Git stesso, ma delle pratiche che ho adottato durante l'apprendimento dei flussi di lavoro di Git. Sto parlando di argomenti .

Se esegui tutti i "buchi" 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. Gli hai dato un nome descrittivo, quindi sai cosa stai guardando.
  • la storia ha un ambito più piccolo e più lineare. Man mano che lavori su insiemi di modifiche (filiali) più piccoli, è probabile che tu abbia meno commit da passare e saranno lineari (non ci sono commit non correlati tra di loro)
  • se si eliminano i rami di argomento al termine di un argomento, è più semplice comprendere su quali argomenti si sta lavorando e, cosa ancora più importante, che richiedono ancora la propria attenzione

Se hai disciplina, questo modo di lavorare rende molto più facile lasciare il tuo lavoro e riprenderlo in seguito.

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 ci riesci (ho spesso questo 'problema' - 'Devo risolverlo ora' ecc.), Basta creare un nuovo argomento per la correzione (o refactoring, miglioramento, qualunque cosa). Anche se il tuo attuale spazio di lavoro non è pronto per essere impegnato, fai semplicemente git stashil piccolo lavoro nel suo argomento e popdalla scorta per tornare al tuo lavoro reale.


3

Per preservare lo stato di attività e passare a un altro, adoro preservare il contesto di Mylyn . Quello che fa Mylyn è 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 commenti TODO. Eclipse li mostra automaticamente come elenco di attività.


2

Sviluppo in una macchina virtuale. E quando sono interrotto, (fine giornata, pranzo, riunioni, ecc.) E non voglio perdere il filo del 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 alcune righe, se è complicato. Ma scrivo solo il commento nel codice, nell'IDE, quindi lascio l'IDE aperto e utilizzo il comando "Sospendi ed esci" sulla VM. Poi, quando lo torno di nuovo, c'è immediatamente il mio commento davanti a me, che mi aiuta a tornare rapidamente a quello a cui stavo pensando prima.


1

Ho iniziato ad usare il software di mappatura mentale (attualmente FreeMind). Lo uso per tutto, ma per questo è rilevante, include un elenco di cose da fare per ogni progetto a cui sto lavorando. Mentre sto pensando a una soluzione a un determinato problema nell'elenco, inizio a scriverlo nella mia mappa mentale. È lì che conservo la mia soluzione, anche mentre ci sto lavorando, invece di provare a tenerlo tutto nella mia testa.

Questo mi permette di concentrare la mia mente sui dettagli dell'implementazione del codice, senza perdere il quadro generale. Significa anche che le interruzioni hanno un effetto minimo sul mio lavoro, perché continuo a registrare da qualche parte i passi che sto pianificando di seguire.

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.


1

Se ti trovi in ​​un ambiente ad alta interruzione, trovo molto utile tenere un diario orario (scrivere un paio di proiettili ogni ora). Uso una combinazione di TiddlyWiki e carta (Tiddly per documentare / ricercare, carta per pensare velocemente).

Ho iniziato a farlo quando lavoravo da casa con un bambino e ciò ha aumentato la mia produttività su tutta la linea. Aiuta con l'immediato problema di riscoprire i miei pensieri e ha un piacevole effetto collaterale di aumentare la mia consapevolezza di sé (ho trascorso un'ora a modificare un metodo di bit banging a 10 righe la scorsa settimana per renderlo più leggibile. Probabilmente non è il miglior uso del mio tempo).


+1 grazie per TiddlyWiki - l'ho usato in precedenza ma non avrei mai pensato di poterlo usare per "serializzare" rapidamente i miei pensieri :)
treecoder

@greengit - Ne ricavo molto chilometraggio. Conservo il diario, il registro delle soluzioni e il backlog in esso. Lo uso per valutare le prestazioni. Faccio un sacco di ricerca e sviluppo in un solo uomo in cui i progetti vengono elaborati per alcune settimane ogni anno (prima delle demo, naturalmente) e poi accantonati di nuovo. Sarei perso se non avessi un modo per eseguire il backup del mio cervello. Mi piace TiddlyWiki perché è ancora personale e non devo scrivere al livello di formalità che vorrei per un wiki o un documento aziendale che chiunque dovrebbe essere in grado di capire.
Steve Jackson,

quindi mi consiglia la versione desktop (quella predefinita) o ccTiddly - che è l'incarnazione supportata dal server di tiddlyWiki
treecoder

@greengit: utilizzo la versione desktop e un processo cron per eseguire il backup su una condivisione di rete. Non ho usato la versione ccTiddly, ma sembra che la maggior parte della sua funzionalità sia coperta dalle wiki del progetto che abbiamo messo in atto per la collaborazione sui progetti. ccTiddly sembra colpire uno dei miei elementi della lista dei desideri - la possibilità di allegare file ai violinisti - ma incolgo i collegamenti secondo necessità.
Steve Jackson,

0
  • pensa ad alta voce nel documento di registro di uno sviluppatore mentre procedi
  • brain-dump nel registro quando vieni interrotto
  • assicurati di annotare la prossima cosa che stavi per fare

il primo è un'assicurazione contro interruzioni, backtracking e ripetizione in seguito, mentre il secondo è essenziale per riprendere da dove si era interrotto


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 di scriverlo. Se sei ragionevolmente organizzato su ciò che annoti mentre lavori, hai effettivamente un coredump dei tuoi pensieri astratti su cui tornare.


0

Ciò che ho trovato mi è stato di grande aiuto (anche per "OK, ora torno a casa e torno a lavorare domani") è stato annotare costantemente i primi pensieri nella mia mente, e poi fare cose da quella lista.

Ma si basa sicuramente su (i) elaborare attivamente tale elenco - almeno eliminandolo piuttosto che finire con centinaia di "elenchi di todo" semifiniti a cui intendi tornare e (ii) praticare abbastanza da avere l'esperienza per sapere cosa devi scrivere e cosa no: quali attività hanno il "pulsante Aggiungi barra degli strumenti" e i dettagli del design che puoi ricreare dalla tua mente la prossima volta e quali attività hai già svolto metà della pianificazione senza realizzandolo e devi annotarlo da solo.

Inoltre, ovviamente, cerca di evitare distrazioni inutili; è sempre bello poter continuare a distrarsi, e ce ne saranno sempre alcuni, ma non incoraggiarne troppi.


0

In realtà ho causato diversi bug a seguito dell'interruzione frettolosa e improvvisa delle pause pranzo in una ex compagnia. Ho finito per chiedere ancora qualche minuto o semplicemente lasciando senza di me solo per loro di spingermi a unirmi, e così ho lasciato il codice per metà scritto, il pensiero per metà completo, solo per tornare al codice un'ora dopo e perdere rintracciare e sbagliare le cose.

Ho finito per iniziare a compensare prendendo appunti e scrivendo todo list mentre procedevo e mantenendo solo uno "stack mentale più superficiale", per così dire. TDD aiuta anche dal momento che i test esprimono ciò che stai cercando di fare con un design, oltre a garantire che lo stai facendo.

Ho anche sviluppato un linguaggio che si trova a metà strada tra ciò che mi sembra intuitivamente come la programmazione e il linguaggio umano. Consiste in suoni come " Nyargh! Bloobly-bloop! " E a volte emetto quei suoni se le persone stanno cercando 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 potrebbe parlarmi e io potrei annuire e così via e non aver elaborato mentalmente una sola parola che ha detto. È come se potessi vedere la sua bocca muoversi e sentire i suoni uscire, ma non è stato tradotto correttamente in istruzioni automatiche. Ha imparato a notare le mie risposte quando succede mentre sono assorto nei suoi pensieri.

A volte, inoltre, elaboro a metà strada quello che ha detto e lo spingo nella coda simultanea, come se mi facesse una domanda, a quel punto non posso elaborarlo completamente fino a quando non ho rimosso tutto dalla mia coda mentale (che usa molto inefficiente meccanismi di bloccaggio per la sicurezza della filettatura). Quindi si è abituata a farmi una domanda con solo un cenno del capo e nessuna risposta o una risposta insensata come "sì" o "bloobly-bloop" a "cosa vuoi fare stasera?" solo per me elaborare dieci minuti dopo e rispondere alla domanda come se l'avessi appena sentita un secondo fa.

Inoltre non so di voi ragazzi, ma mi sento davvero distratto quando mi perdo nella programmazione dei pensieri. Ho finito per cercare i miei calzini una volta per anni, dimenticando dove li ho messi. In qualche modo li ho messi in frigorifero. Penso che stavo cercando di prendere un drink o qualcosa con le mie calze in mano e in qualche modo mettere le calze in frigorifero e ho dimenticato di prendere la bevanda. Un'altra volta, sono andato in una discarica dopo aver parcheggiato la macchina con le chiavi della macchina in mano e ho provato a gettare un involucro che avevo nella spazzatura. Invece ho finito per gettare le chiavi della macchina nella discarica e non me ne sono nemmeno reso conto fino a quando non ho provato a sbloccare l'auto con l'involucro di plastica, a quel punto ho dovuto immergermi nella spazzatura per le mie chiavi. Comunque, mia moglie è abituata a questo tipo di cose con le mie cose che appaiono in posti strani.

[...] la tua ragazza (o il tuo ragazzo) è appena arrivata

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 pensieri tutto il tempo mentre ero seduto tutto il giorno al computer e passeggiare nei pensieri mentre rispondevo con " bloobly-bloop! ", E perso interesse. È difficile trovare qualcuno con la pazienza per quello. Sono stato davvero fortunato con mia moglie che lo sopporta.

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.