Nie wiem nawet, czy to pytanie ma sens ... ale pozwól, że zrozumiem ...
wyobraź sobie ... Jesteś całkowicie pochłonięty jakąś myślą programistyczną / pomysłem / koncepcją, twój mózg jest w najbardziej aktywnym stanie, wymyślając rozwiązanie problemu lub, jak to ujmuje Joel Spolsky - jesteś głęboko w swojej „strefie” „- I nagle ktoś lub jakieś wydarzenie łamie twoje zaangażowanie - coś, czego po prostu nie możesz uniknąć, coś, na co musisz się zwrócić. ... wyobraźnia kompletna ... powrót do rzeczywistości
Coś, co może zakłócić koncentrację, może być ...
- jesteś wezwany na pilne spotkanie
- Twój kod złamał codzienną wersję, a twój kolega dzwoni do ciebie
- właśnie przypomniałeś sobie coś, co musiałeś zrobić, ale zapomniałeś to zrobić
- Twój kolega z drużyny ma kilka ekscytujących wiadomości i nalega, abyś wysłuchał
- twoja dziewczyna (lub chłopak) właśnie przyszła
Załóżmy teraz, że masz tylko 5-10 minut, zanim będziesz musiał opuścić to, w co byłeś głęboko zanurzony, i rozkoszuj się przerwą.
Moje pytanie brzmi - w jaki sposób szybko „ratujesz” stan umysłu, w którym się znajdowałeś, kiedy nastąpiło przekierowanie. Czy piszesz to w „jakiejś formie” na papierze lub komputerze, czy po prostu „jakoś” pamiętasz. Jak ocalić te dokładne myśli w ciągu 5-10 minut, aby później, kiedy wrócisz, nadrobić zaległości od „punktu”, który opuściłeś.
Często mi się tak zdarza, że po prostu nie mogę sobie przypomnieć dokładnie tych myśli, które myślałem przed ciosem - i mam wrażenie, że straciłem dobry pomysł lub rozwiązanie problemu. staram się myśleć z mocą wsteczną, starając się dotrzeć do takiego SAMEGO stanu poznawczego, który wzbudził we mnie pomysł - ale denerwuję się, że nie mogę się tam dostać.
Czy coś takiego ci się przytrafiło. jak się z tego „odzyskujesz”?
Moim głównym zmartwieniem nie jest kod - to te „abstrakcyjne pomysły”, które nie zostały jeszcze przekonwertowane na kod, które muszę jakoś „zapisać”.
-- aktualizacja --
Po tylu latach mogę śmiało powiedzieć, że NIE ma na to żadnego sposobu. Żadne zapisanie stanu poznawczego na kartce papieru nie pozwoli ci przywrócić go dokładnie tak, jak był. Nasze mózgi są znacznie bardziej złożone niż wartość skąpego skryptu, jeśli chodzi o informacje, które posiada aktywnie w dowolnym momencie.
Najlepszym sposobem jest uniknięcie rozproszenia, bez względu na to, jak ważne, chyba że jest to sytuacja życia i śmierci. Nic nie jest ważniejsze niż przebywanie w strefie i ukończenie jej.
Jeśli twoje miejsce pracy jest wystarczająco naiwne, aby nie docenić czyjejś „bycia w strefie”, to czas poszukać nowego miejsca pracy. Jednak YMMV. Dzięki osobistym relacjom umiejętności społeczne i szczypta artykulacji mogą uczynić świat dobrym.
źródło
Odpowiedzi:
Przed opuszczeniem komputera napiszę to, co robiłem, na kartce pocztowej lub na papierze. I tak zwykle robię to w ramach naprawy błędu lub analizy. Jest to naprawdę pomocne, gdy błąd zostanie (ponownie) otwarty później , nadal możesz zobaczyć swoje myśli sprzed miesiąca i dowiedzieć się, co musisz zrobić znacznie szybciej.
Ponadto: ustaw kilka zakładek w kodzie. Po powrocie możesz zobaczyć, co robiłeś, przeglądając ustawione zakładki.
źródło
Wyciągam lokalną aplikację do notatnika i spisuję mój plan na przyszłość.
Znalazłem to, aby najbardziej pomóc. W 100% nie pamiętam, co planowałem, kiedy wrócę, pomysły są łatwe do znalezienia, ale czy pamiętasz, jakie kroki zamierzałeś zrobić?
Używam czegoś takiego;
Zapisuję go na pulpicie i utrzymuję otwarty plik.
Odkryłem, że dla mnie ma to zalety;
źródło
Oprócz doskonałej sugestii zapisywania rzeczy, jest to umiejętność, którą można rozwinąć za pomocą ...
Ćwiczyć.
Byłem najgorszy na świecie w wielozadaniowości. Ludzie bali się, że mi przeszkadzają, ponieważ byłam z tego powodu bardzo nieprzyjemna. Potem zdałem sobie sprawę, że tak naprawdę nie był to procesor z wieloma równoległymi rdzeniami, to było jak przerwanie przełącznikami zadań. Zacząłem więc trenować, aby się do tego zrelaksować i zaakceptować jako niezbędną część życia.
Dziesięć lat później używam systemu przypominającego Pomodoro, w którym po prostu robię sobie przerwę, gdy odlicza czas. Niezwykle łatwo jest wrócić „w strefie” w relaksującym otoczeniu po kilku minutowej przerwie - czekam na to! W przypadku dłuższych przerw te pisemne notatki są nieocenione. Mogę teraz dość łatwo przywrócić prawie cały ten mentalny „stan procesora”, chyba że upłynie więcej niż jeden dzień.
Ponieważ jestem teraz bardziej przyzwyczajony do radzenia sobie z przerwami, nie jestem już taki zrzędliwy, gdy ludzie to robią. Znacznie lepiej mi też było po prostu powiedzieć: „Poczekaj chwilę, piszę notatkę”. To niesamowite, o ile przyjemniejsze są moje interakcje społeczne!
Mózg jest jak mięsień umysłowy i staje się lepszy w takich sprawach, jak wielozadaniowość, jeśli stopniowo przyspieszacie treningi.
źródło
To się zdarza cały czas! Kiedy jestem w trakcie pisania kodu, mogę powiedzieć 90% ludzi, aby poczekali kilka sekund - wiedzą, że w ich najlepszym interesie jest, aby mi nie przeszkadzać. W ciągu tych kilku sekund celowo zacieram niektóre klawisze w wierszu kodu, nad którym pracowałem, i zaznaczam powyższą linię symbolem XXX (ładnie to podkreśla w vimie).
Mashowanie kodu zostało wykonane, aby program się nie skompilował i jestem zmuszony spojrzeć na tę linię. W przypadku większości moich języków, w których piszę, wystarczy mi to, aby spojrzeć na miejsce, w którym skończyłem, i szybko przyspieszyć pamięć do stanu produktywności.
Dowiedziałem się również, że przebywanie w „strefie” jest obecnie luksusem (od radzenia sobie z ciągłymi zakłóceniami). Chociaż zdecydowanie nie jest idealny pod względem produktywności, zmusza cię do maksymalnego wykorzystania wszystkiego, co masz.
źródło
Dowiedziałem się, że ilekroć pracuję z git, mam mniej problemów z porzuceniem pracy (a co ważniejsze, kontynuowaniem pracy nad nią). Nie jest to spowodowane samym gitem, ale praktykami, które zastosowałem podczas uczenia się przepływów pracy git. Mówię o gałęziach tematów .
Jeśli robisz wszystkie znaczące „całości” w swoim rozwoju w specjalnej gałęzi tematycznej, o wiele łatwiej jest wrócić do pracy. Dlatego.
Jeśli masz dyscyplinę, ten sposób pracy znacznie ułatwia opuszczenie pracy i podjęcie jej później.
Kiedy pracuję nad czymś, zawsze wymyślam nieco powiązaną pracę z moim bieżącym tematem. Ponownie dyscyplina się opłaca. Albo zakończ swoją obecną pracę. Jeśli nie możesz (często mam ten „problem” - „Muszę to naprawić teraz” itp.), Po prostu utwórz nową gałąź tematu dla poprawki (lub refaktoryzacji, ulepszenia, cokolwiek). Nawet jeśli bieżący obszar roboczy nie jest gotowy do zaangażowania, po prostu zrób
git stash
niewielką pracę w swoim własnym temacie ipop
odłóż, aby wrócić do rzeczywistej pracy.źródło
Aby zachować stan zadania i przejść do innego, absolutnie uwielbiam zachowanie kontekstu Mylyn . Mylyn przechowuje, a następnie przywraca dokładny stan IDE (otwarta perspektywa, otwarte pliki, lokalizacja w nich itp.).
Do rzeczy, które robiłem, dodałem komentarze TODO. Eclipse automatycznie wyświetla je jako listę zadań.
źródło
Tworzę na maszynie wirtualnej. A kiedy mi przeszkadza (koniec dnia, lunch, spotkania itp.) I nie chcę stracić rozumu, po prostu piszę komentarz w kodzie, na przykład:
Czasami te komentarze pojawiają się w kilku wierszach, jeśli jest to skomplikowane. Ale po prostu piszę komentarz w kodzie, w IDE, następnie pozostawiam IDE otwarte i używam polecenia „Suspend and Exit” na maszynie wirtualnej. Potem, kiedy znów go wyciągam, natychmiast pojawia się przede mną mój komentarz, który pomaga mi szybko wrócić do tego, o czym myślałem wcześniej.
źródło
Zacząłem używać oprogramowania do mapowania myśli (obecnie FreeMind). Używam go do wszystkiego, ale istotne, zawiera listę rzeczy do zrobienia dla każdego projektu, nad którym pracuję. Gdy zastanawiam się nad rozwiązaniem danego problemu na liście, zaczynam pisać go w mojej mapie myśli. W tym miejscu przechowuję swoje rozwiązanie, nawet gdy nad nim pracuję, zamiast próbować trzymać to wszystko w głowie.
To pozwoli mi skupić się na szczegółach implementacji kodu, bez utraty ogólnego obrazu. Oznacza to również, że zakłócenia mają minimalny wpływ na moją pracę, ponieważ i tak zapisuję gdzieś kroki, które zamierzam wykonać.
Określone oprogramowanie lub metoda śledzenia, z której korzystasz, nie ma znaczenia. Ten pomysł byłby równie przydatny w Notatniku lub z kawałkiem papieru. Istotna koncepcja polega na tym, że nagrywasz swoje pomysły tak, jak je masz, aby były zawsze dostępne.
źródło
Jeśli znajdujesz się w środowisku, w którym często występują zakłócenia, uważam, że prowadzenie cogodzinnego dziennika (zapisuj kilka kul co godzinę) jest bardzo przydatne. Używam kombinacji TiddlyWiki i papieru (Tiddly do dokumentowania / wyszukiwania, papier do szybkiego myślenia).
Zacząłem to robić, pracując z domem z niemowlakiem, co zwiększyło moją produktywność we wszystkich dziedzinach. Pomaga w natychmiastowym problemie z ponownym odkryciem moich myśli i ma przyjemny efekt uboczny, zwiększając moją samoświadomość (spędziłem godzinę na modyfikowaniu 10-liniowej metody bitu bitów w zeszłym tygodniu, aby była bardziej czytelna. Prawdopodobnie nie jest to najlepsze zastosowanie mojego czasu).
źródło
pierwsza z nich to ubezpieczenie od przerw, cofania się i powtarzania się później, podczas gdy druga jest niezbędna do podjęcia pracy w miejscu, w którym została przerwana
źródło
W notatniku obok mam ciągły komentarz. Próbowałem to zrobić w pliku notatnika, ale z jakiegoś powodu nie działa on tak skutecznie, jak zapisywanie. Jeśli jesteś rozsądnie zorganizowany w kwestii tego, co zapisujesz jako swoją pracę, skutecznie masz do dyspozycji całą serię swoich abstrakcyjnych myśli.
źródło
To, co znalazłem, bardzo pomogło (nawet dla „OK, teraz wracam do domu i wracam jutro do pracy”) ciągle zapisywałem w myślach kilka najważniejszych myśli, a następnie robiłem rzeczy z tej listy.
Ale zdecydowanie opiera się na (i) aktywnym przetwarzaniu tej listy - przy minimalnym wyczyszczeniu jej, a nie na skończeniu setek niedokończonych „list rzeczy do zrobienia”, do których zamierzasz wrócić i (ii) ćwiczyć wystarczająco dużo, abyś miał doświadczenie aby wiedzieć, co trzeba napisać, a czego nie - które zadania mają „przycisk dodawania paska narzędzi” i szczegóły projektu, które można odtworzyć z umysłu następnym razem, a które zadania wykonano już w połowie planowania zdając sobie z tego sprawę, musisz sam to zapisać.
Oczywiście staraj się unikać niepotrzebnych rozrywek; zawsze dobrze jest być w stanie kontynuować rozproszenie i zawsze będzie ich trochę, ale nie zachęcaj zbyt wielu.
źródło
Zrobiłem kilka błędów w wyniku pośpiesznego i nagłego przerwania przerw na lunch w byłej firmie. Skończyło się na tym, że poprosiłem o kilka minut lub po prostu wyszedłem beze mnie, aby zmusili mnie do przyłączenia się, więc zostawiłem kod w połowie napisany, myśl w połowie ukończona, tylko po godzinie wróciłem do kodu i straciłem śledź i myl się.
Skończyło się na tym, że zacząłem rekompensować to, robiąc notatki i wypisując listy rzeczy do zrobienia, i po prostu utrzymując „płytszy stos mentalny”, że tak powiem. TDD pomaga również, ponieważ testy pokazują, co próbujesz zrobić z projektem, a także upewniają się, że to robisz.
Opracowałem również język, który jest gdzieś pomiędzy tym, co intuicyjnie wydaje mi się kodowaniem a językiem ludzkim. Składa się z dźwięków takich jak „ Nyargh! Bloobly-bloop! ” I czasami wydaje się te dźwięki, gdy ludzie próbują ze mną rozmawiać, gdy jestem zajęty. Chociaż nie rozumieją tych dźwięków, to komunikuje, że jestem w stanie, który nie jest w stanie właściwie komunikować się z ludźmi w tym momencie, w którym to momencie odchodzą i pozwalają mi wznowić myślenie i pisać kod.
To powiedziawszy, moja żona przyzwyczaiła się do myśli, że może ze mną rozmawiać, a ja kiwam głową i tak dalej, i nie przetworzyłam w myślach ani jednego słowa, które powiedziała. To tak, jak widzę, jak porusza ustami i słyszę wydobywające się dźwięki, ale tak naprawdę nie jest to właściwie przetłumaczone na instrukcje maszyny. W pewnym sensie nauczyła się zauważać moje odpowiedzi, kiedy to się dzieje, kiedy jestem pochłonięty myślami.
Czasami również przetwarzam w połowie to, co powiedziała, i po prostu wypycham to do współbieżnej kolejki, na przykład jeśli zadaje mi pytanie, w którym momencie nie mogę go w pełni przetworzyć, dopóki nie wyrzucę wszystkiego z mojej kolejki mentalnej (która wykorzystuje bardzo nieefektywne mechanizmy blokujące dla bezpieczeństwa wątków) Więc przyzwyczaiła się zadawać mi pytanie tylko skinieniem głowy i bez odpowiedzi lub bezsensownej odpowiedzi typu „tak” lub „bloobly-bloop” na „co chcesz dziś robić?” tylko dla mnie przetworzenie go dziesięć minut później i udzielenie odpowiedzi na pytanie, jakbym przed chwilą go usłyszał.
Poza tym nie wiem o was, ale jestem naprawdę zaniepokojony, kiedy zagubiłem się w programowaniu myśli. Raz na zawsze szukałem skarpetek, zapominając, gdzie je położyłem. Jakoś włożyłem je do lodówki. Myślę, że próbowałem złapać drinka lub coś z skarpetkami w dłoni i jakoś wsadziłem skarpetki do lodówki i zapomniałem wziąć drinka. Innym razem poszedłem na wysypisko śmieci po zaparkowaniu samochodu z kluczami w ręku i spróbowałem wrzucić do śmieci owijkę. Zamiast tego wyrzuciłem kluczyki do śmietnika i nawet nie zdawałem sobie z tego sprawy, dopóki nie spróbowałem odblokować samochodu za pomocą plastikowego opakowania, w którym to momencie musiałem zanurkować w śmieciach po klucze. W każdym razie moja żona jest przyzwyczajona do tego typu rzeczy, a moje rzeczy pojawiają się w dziwnych miejscach.
Tak na marginesie, randki i romans są trudne w programowaniu. Miałem wiele przeszłych relacji, w których randki szły wspaniale, dopóki nie zaczęliśmy żyć razem i zobaczyli, że ta strona mnie cały czas pogrąża się w myślach, siedząc cały dzień przy komputerze i krocząc w myślach, odpowiadając „ głupkowatym śmiechem! ”, I stracić zainteresowanie. Trudno jest znaleźć na to kogoś cierpliwego. Naprawdę miałem szczęście z moją żoną, która się z tym pogodziła.
źródło