Je ne sais même pas si cette question a du sens ... mais laissez-moi vous laisser la chercher ...
Imaginez ... Vous êtes totalement absorbé par une pensée / idée / concept de programmation, votre cerveau est dans son état le plus actif à penser à une solution à un problème, ou comme le dit Joel Spolsky - vous êtes profondément dans votre "zone" "- ET, tout à coup, quelqu'un ou un événement brise votre captivité - quelque chose que vous ne pouvez tout simplement pas éviter, quelque chose auquel vous devez assister. ... imagination complète .. retour à la réalité
Quelque chose qui peut briser votre concentration peut être ...
- vous êtes convoqué pour une réunion urgente
- votre code a rompu la construction quotidienne et votre collègue vous appelle
- vous venez de rappeler quelque chose que vous aviez à faire, mais vous avez oublié de le faire
- votre coéquipier a des nouvelles passionnantes à vous annoncer et vous invite à écouter
- votre petite amie (ou votre petit ami) vient de venir
Supposons maintenant que vous ne disposez que de 5 à 10 minutes avant de devoir quitter ce dans lequel vous étiez profondément et de profiter de l'interruption.
Ma question est - comment voulez-vous "sauver" rapidement l'état d'esprit dans lequel vous vous trouviez, quand la diversion est arrivée. L'écrivez-vous «sous une certaine forme» sur un papier ou un ordinateur, ou «vous en souvenez-vous» d'une manière ou d'une autre. Comment récupérez-vous ces pensées exactes dans les 5 à 10 minutes afin que plus tard, lorsque vous reviendrez, vous puissiez rattraper le "point" que vous avez quitté.
Il m'arrive souvent de ne pas pouvoir me souvenir exactement de ces pensées auxquelles je pensais avant le coup - et j'ai l'impression d'avoir perdu une bonne idée ou des solutions à un problème. j'essaie de penser rétroactivement en essayant dur d'arriver à ce MÊME état cognitif qui m'excitait à l'idée - mais je suis frustré de ne pas pouvoir "y arriver".
Est-ce que quelque chose comme ça vous arrive. comment pouvez-vous "récupérer" de cela?
Ma principale préoccupation n'est pas le code - ce sont ces "idées abstraites" qui n'ont pas encore été converties en code que j'ai besoin de "sauvegarder" d'une manière ou d'une autre.
-- mise à jour --
Après ces nombreuses années, je peux dire avec confiance qu'il n'y a AUCUN moyen possible de le faire. Aucune quantité de griffonnage de votre état cognitif sur un morceau de papier ne vous permettra de le restaurer exactement comme il était. Nos cerveaux sont beaucoup plus complexes que la valeur d'un gribouillis d'un extrait minable, quand il s'agit des informations qu'il détient activement à tout moment.
La meilleure façon est d'éviter la distraction, peu importe son importance, à moins que ce ne soit une situation de vie ou de mort. Rien n'est plus important que d'être dans la zone et de la terminer.
Si votre lieu de travail est suffisamment naïf pour ne pas apprécier le fait d'être dans la zone, alors il est temps de chercher un nouveau lieu de travail. YMMV cependant. Et avec les relations personnelles, ce sont les compétences sociales et une pincée d'articulation qui peuvent faire du bien.
la source
Réponses:
Avant de quitter mon PC, j'écrirai ce que je faisais sur un post-it ou sur un morceau de papier. Je le fais généralement de toute façon dans le cadre d'une correction de bogue ou d'une analyse. C'est vraiment utile quand un bogue est (ré) ouvert plus tard , vous pouvez toujours voir vos pensées d'il y a un mois et découvrir ce que vous devez faire beaucoup plus rapidement.
Aussi: définissez des signets dans votre code. Lorsque vous revenez, vous pouvez voir ce que vous faisiez en affichant les signets que vous avez définis.
la source
Je prépare l'application du bloc-notes local et j'écris mon plan des choses à venir.
J'ai trouvé cela pour aider le plus. 100% du temps, je ne me souviens pas de ce que je comptais faire à mon retour, les idées sont faciles à trouver, mais vous souvenez-vous des étapes réelles que vous alliez faire?
J'utilise quelque chose comme;
Je l'enregistre sur le bureau et garde le fichier ouvert.
J'ai trouvé cela, pour moi, a ces avantages;
la source
En plus de l'excellente suggestion d'écrire des choses, c'est une compétence qui peut être développée avec ...
Entraine toi.
J'étais le pire du monde au multitâche. Les gens redoutaient de m'interrompre parce que j'étais tellement désagréable à ce sujet. Ensuite, j'ai réalisé que ce n'était vraiment pas comme un processeur avec plusieurs cœurs parallèles, c'était comme une interruption avec des commutateurs de tâches. J'ai donc commencé à m'entraîner à me détendre et à l'accepter comme une partie nécessaire de la vie.
Une décennie plus tard, j'utilise un système de type Pomodoro où je fais simplement une pause lorsque la minuterie se déclenche. Il est incroyablement facile de revenir "dans la zone" dans un environnement détendu après une pause de quelques minutes - j'attends avec impatience! Et pour les interruptions plus longues, ces notes écrites sont inestimables. Je peux restaurer la quasi-totalité de cet "état CPU" mental assez facilement maintenant, à moins qu'il ne se passe plus d'une journée.
De plus, parce que je suis maintenant plus habitué à faire face aux interruptions, je ne suis plus aussi grognon quand les gens le font. Je me suis aussi beaucoup mieux débrouillé pour dire simplement: «Attendez un instant pendant que je prends une note. C'est incroyable à quel point mes interactions sociales sont plus agréables!
Le cerveau est comme un muscle mental, et il s'améliore dans des choses comme le multitâche si vous lui donnez des exercices progressivement plus difficiles.
la source
Ça arrive tout le temps! Quand je suis en train d'écrire du code, je peux dire à 90% des gens d'attendre quelques secondes - ils savent qu'il est dans leur intérêt de ne pas me déranger. Pendant ces quelques secondes, j'ai intentionnellement écrasé quelques touches sur la ligne du code sur lequel je travaillais et je marque la ligne ci-dessus avec XXX (cela se met bien en évidence dans vim).
Le brassage du code est fait pour que le programme ne compile pas et je suis obligé de regarder cette ligne. Pour la plupart de mes langues dans lesquelles j'écris, cela suffit pour que je regarde où je me suis arrêté et que ma mémoire passe rapidement à son état productif.
J'ai également appris qu'être dans "la zone" est maintenant un luxe de nos jours (de faire face à des interruptions constantes). Bien que ce ne soit certainement pas idéal en termes de productivité, cela vous oblige à tirer le meilleur parti de tout ce que vous avez.
la source
J'ai découvert que chaque fois que je travaille avec git, j'ai moins de mal à quitter le travail (et plus important encore, à continuer de travailler dessus). Ce n'est pas à cause de git lui-même mais des pratiques que j'ai adoptées lors de l'apprentissage des workflows git. Je parle de branches thématiques .
Si vous faites tous des «tout» significatifs dans votre développement dans une branche thématique dédiée, il est beaucoup plus facile de revenir à votre travail. Voici pourquoi.
Si vous avez de la discipline, cette façon de travailler vous permet de quitter votre travail et de le reprendre plus tard.
Quand je travaille sur quelque chose, je trouve toujours un travail quelque peu lié à mon sujet actuel. Encore une fois, avoir une discipline est payant. Soit terminer votre travail actuel. Si vous ne le pouvez pas (j'ai souvent ce «problème» - «j'ai besoin de le résoudre maintenant», etc.), créez simplement une nouvelle branche de sujet pour le correctif (ou refactorisation, amélioration, peu importe). Même si votre espace de travail actuel n'est pas prêt à être engagé, faites
git stash
simplement le petit travail dans son propre sujet et àpop
partir de la cachette pour revenir à votre travail réel.la source
Pour préserver l'état de la tâche et passer à un autre, j'adore la préservation du contexte Mylyn . Ce que Mylyn fait est de stocker et de restaurer ultérieurement l'état exact de votre IDE (perspective ouverte, fichiers ouverts, emplacement dans ceux-ci, etc.).
Pour les choses que je faisais, je mettais TODO des commentaires. Eclipse les affiche automatiquement sous forme de liste de tâches.
la source
Je développe dans une VM. Et quand je suis interrompu (fin de journée, déjeuner, réunions, etc.) et que je ne veux pas perdre le fil de ma pensée, j'écris juste un commentaire dans le code, quelque chose comme:
Parfois, ces commentaires durent quelques lignes, si c'est compliqué. Mais j'écris simplement le commentaire dans le code, dans l'IDE, puis laisse l'IDE ouvert et utilise la commande "Suspend and Exit" sur la machine virtuelle. Puis quand je le remonte, il y a mon commentaire juste devant moi immédiatement, ce qui m'aide à revenir rapidement à ce à quoi je pensais auparavant.
la source
J'ai commencé à utiliser un logiciel de cartographie mentale (actuellement FreeMind). Je l'utilise pour tout, mais pertinent pour cela, il comprend une liste de tâches pour chaque projet sur lequel je travaille. Alors que je réfléchis à une solution à un problème donné sur la liste, je commence à le taper dans ma carte mentale. C'est là que je stocke ma solution, même pendant que j'y travaille, au lieu d'essayer de tout garder dans ma tête.
Cela me permet de me concentrer sur les détails d'implémentation du code, sans perdre l'image globale. Cela signifie également que les interruptions ont un effet minimal sur mon travail, car je garde les étapes que je prévois de suivre enregistrées de toute façon.
Le logiciel ou la méthode de suivi spécifique que vous utilisez n'est pas pertinent. Cette idée serait tout aussi utile dans le Bloc-notes ou avec un morceau de papier. Le concept pertinent est que vous enregistrez vos idées telles que vous les avez, donc elles sont toujours disponibles.
la source
Si vous êtes dans un environnement à forte interruption, je trouve très utile de tenir un journal horaire (notez quelques balles toutes les heures). J'utilise une combinaison de TiddlyWiki et de papier (Tiddly pour la documentation / recherche, du papier pour une réflexion rapide).
J'ai commencé à le faire en travaillant à domicile avec un bébé et cela a augmenté ma productivité à tous les niveaux. Cela aide à résoudre le problème immédiat de redécouvrir mes pensées et a un effet secondaire agréable d'augmenter ma conscience de soi (j'ai passé une heure à modifier une méthode de frappe à 10 lignes la semaine dernière pour la rendre plus lisible. Probablement pas la meilleure utilisation de mon temps).
la source
le premier est une assurance contre les interruptions, les retours en arrière et les répétitions plus tard, tandis que le second est essentiel pour reprendre là où vous vous étiez arrêté
la source
Je garde un commentaire courant dans un bloc-notes à côté de moi. J'ai essayé de le faire sur un fichier bloc-notes, mais pour une raison quelconque, cela ne fonctionne pas aussi efficacement que de l'écrire. Si vous êtes raisonnablement organisé sur ce que vous notez comme votre travail, vous avez effectivement un coredump de vos pensées abstraites à revenir.
la source
Ce que j'ai trouvé beaucoup aidé (même pour «OK, maintenant je rentre chez moi et je rentre travailler demain») était de noter constamment les premières pensées dans mon esprit, puis de faire des choses sur cette liste.
Mais cela repose définitivement sur (i) le traitement actif de cette liste - au minimum la purger plutôt que de se retrouver avec des centaines de "listes de tâches" à moitié finies que vous voulez retourner et (ii) pratiquer suffisamment, vous avez l'expérience pour savoir ce que vous devez écrire et ce que vous n'avez pas - quelles tâches ont le "bouton Ajouter une barre d'outils" et les détails de la conception que vous pouvez recréer la prochaine fois, et quelles tâches vous avez déjà fait la moitié de la planification sans le réaliser et vous devez le noter lui-même.
Évidemment, essayez également d'éviter les distractions inutiles; il est toujours bon de pouvoir continuer sur une distraction, et il y en aura toujours, mais n'en encouragez pas trop.
la source
J'ai en fait causé plusieurs bugs suite à une interruption rapide et brutale des pauses déjeuner dans une ancienne entreprise. J'ai fini par demander quelques minutes de plus ou simplement partir sans moi seulement pour qu'ils me poussent à rejoindre, et j'ai donc laissé le code à moitié écrit, la pensée à moitié terminée, pour revenir au code une heure plus tard et perdre suivre et se tromper.
J'ai fini par commencer à compenser cela en prenant des notes et en écrivant des listes de tâches au fur et à mesure et en maintenant simplement une "pile mentale moins profonde", pour ainsi dire. TDD est également utile car les tests expriment ce que vous essayez de faire avec un design et vous assurent que vous le faites.
J'ai également développé un langage qui se situe quelque part entre ce qui me semble intuitivement comme le codage et le langage humain. Il se compose de sons comme " Nyargh! Bloobly-bloop! " Et je fais ces sons parfois si les gens essaient de me parler pendant que je suis occupé. Bien qu'ils ne comprennent pas ces sons, cela communique que je suis dans un état incapable de communiquer correctement avec les humains pour le moment, à quel point ils s'éloignent et me permettent de reprendre la réflexion et l'écriture de code.
Cela dit, ma femme s'est habituée à l'idée qu'elle pourrait me parler et je pourrais hocher la tête et ainsi de suite et ne pas avoir mentalement traité un seul mot qu'elle a dit. C'est comme si je pouvais voir sa bouche bouger et entendre des sons qui sortaient, mais ce n'est pas vraiment traduit correctement en instructions machine. Elle a en quelque sorte appris à remarquer mes réponses lorsque cela se produit alors que je suis absorbé dans mes pensées.
Parfois, je traite également à mi-chemin ce qu'elle a dit et je le pousse dans la file d'attente simultanée, comme si elle me posait une question, auquel cas je ne peux pas le traiter complètement jusqu'à ce que j'aie tout sauté de ma file d'attente mentale (qui utilise très inefficace mécanismes de verrouillage pour la sécurité des filetages). Elle s'est donc habituée à me poser une question avec seulement un signe de tête et aucune réponse ou une réponse absurde comme "oui" ou "bloobly-bloop" à "que voulez-vous faire ce soir?" seulement pour moi de le traiter dix minutes plus tard et de répondre à la question comme si je venais de l'entendre il y a une seconde.
De plus, je ne sais pas pour vous, mais je suis vraiment distrait quand je suis perdu dans mes pensées de programmation. J'ai fini par chercher mes chaussettes une fois depuis des siècles, oubliant où je les avais mises. D'une certaine manière, je les ai mis au réfrigérateur. Je pense que j'essayais de prendre un verre ou quelque chose avec mes chaussettes à la main et de mettre les chaussettes au réfrigérateur d'une manière ou d'une autre et j'ai oublié de prendre la boisson. À un autre moment, je suis allé à une décharge après avoir garé ma voiture avec mes clés de voiture en main et j'ai essayé de jeter une enveloppe que j'avais dans les poubelles. Au lieu de cela, j'ai fini par jeter mes clés de voiture dans la poubelle et je ne l'ai même pas réalisé jusqu'à ce que j'essaie de déverrouiller la voiture avec l'enveloppe en plastique, à quel point j'ai dû plonger dans les ordures pour mes clés. Quoi qu'il en soit, ma femme est habituée à ce genre de choses, mes affaires apparaissant dans des endroits étranges.
Juste pour cette partie en aparté, la datation et la romance sont difficiles avec la programmation. J'ai eu de nombreuses relations passées où les rencontres se sont merveilleusement bien passées jusqu'à ce que nous commencions à vivre ensemble et ils ont vu ce côté de moi perdu dans ses pensées tout le temps alors qu'il était assis toute la journée devant l'ordinateur et arpentait ses pensées tout en répondant par " bloobly-bloop! ", Et intérêt perdu. C'est difficile de trouver quelqu'un avec la patience pour ça. J'ai vraiment eu de la chance avec ma femme qui accepte.
la source