Jak walczysz ze zmęczeniem programistycznym? [Zamknięte]

48

Nie zmęczenie, jak w „Potrzebuję snu”, ale zmęczenie, jak w „Po prostu nie mogę się już przejmować”, które zwykle pojawiają się, gdy napotykasz przeszkody w jakimkolwiek projekcie, nad którym pracujesz, na ogół im bardziej zbliżasz się do terminów.

Może to dotyczyć projektów pracy lub projektów osobistych, ale ostatnio coraz częściej to robię. Wpadnę na pomysł, zacznę nad tym pracować, będę mieć kilka naprawdę dobrych dni i zrobię postępy, a potem tylko niektóre cholerne rzeczy mnie potkną, nie mogę sprawić, żeby działało tak, jak chcesz, mam ograniczenia w ramach mam problemy, dla których nie mogę znaleźć dokumentacji itp., a to staje się zbyt frustrujące.

Czy jestem w tym sam?

sevenseacat
źródło
4
Czy Twoje postępy są mierzalne w projektach, nawet jeśli napotkasz przeszkody? Jeśli nie, rozważ uczynienie go mierzalnym. Widoczność ciągłego postępu jest najlepszą kontynuacją, jaką znam.
7
Przypomina mi to Morta (Terry Pratchett) - kawałek, w którym Mort oczyszcza gnojówkę w stajni. „Zobaczmy, pomyślał, zrobiłem prawie jedną czwartą, nazwijmy to trzecią, więc kiedy zrobię ten róg przy stogu siana, będzie więcej niż połowa, nazwijmy to piątą ósmą, co oznacza trzy kolejne taczki ... Nic to nie dowodzi, poza tym, że niesamowitej świetności wszechświata łatwiej jest sobie poradzić, jeśli myślisz o nim jako o małych kawałkach. ”
Steve314 16.01.11
@ Steve314: +1 skały Pratchetta.
Orbling 16.01.11
Wypróbuj efekt Catfish .
rwong
@rwong: Większość moich projektów to projekty solo (lub bardzo małe zespoły). Brzmi jednak jak ciekawy pomysł.
sevenseacat 17.01.11

Odpowiedzi:

42

Kunktatorstwo

To, co opisujesz, to prawdopodobnie zwlekanie . To bardzo powszechny fenomen. Kliknij link i poczytaj o teorii motywacji czasowej .

Aby pokonać kunktatorstwo, robię listy. Kiedy czuję, że zwlekam, otwieram listę i zmuszam do pracy nad pierwszym przedmiotem. Po kilku minutach wchodzę do strefy lub nurtu, jak opisuje psycholog Mihály Csíkszentmihályi .

Powinieneś rozpoznać cię na tym obrazku:

alternatywny tekst

8bittree
źródło
2
+1 za zmuszanie się. Odkryłem, że to samo dotyczy mnie; dopiero początek jest najtrudniejszy.
Michael K
2
Czy z biegiem lat nie widać, że wszystkie projekty schodzą na osi pionowej. Na poziomie również występuje ruch.
Orbling
Zwlekałem dziś cały dzień zamiast kodować mój projekt open source. Cholera.
gruszczy
1
+1 za przybicie tego problemu.
Conor,
2
Uważam, że jeśli lista ma tylko nieprzyjemne zadania na szczycie, może być prawie niemożliwe zmusić się do zrobienia tego ...
Roman Starkov
10

Dla mnie najlepsze jest odejście od problemu, który stanowi barierę. Może to oznaczać, że inni sugerowali pracę nad inną częścią bazy kodu. Może to oznaczać ucieczkę. Przekonałem się, że uderzenie głową o barierę tylko ją wzmacnia. Zmiana skupienia na coś niezwiązanego pozwoli twojej podświadomości rozwiązać problem. Wiele razy byłem zaskoczony, znajdując rozwiązanie pod prysznicem itp.

Jeff
źródło
4
Prysznice są zdecydowanie dobrym miejscem do naprawy błędów.
Orbling 16.01.11
To naprawdę dobra uwaga na temat jedynie wzmocnienia bariery. Myślę, że to właśnie muszę zrobić, rozbić projekty na różne części, więc kiedy mój mózg ma już dość jednego, przełącz się na inny, użyj innej części mózgu.
sevenseacat
8

Programista musi mieć napęd większy niż Green Lantern . To ten niewielki świąd, gdy coś nie działa, staramy się kopać głębiej i dowiedzieć się, dlaczego, zadając pytania lub czytając książkę.

Aby powstrzymać to zmęczenie, wystarczy oderwać się od problemu i popracować nad innym aspektem powierzonego zadania.

Dla mnie zadania programistyczne, które sprawiają, że relaksuję się jak dziecko, pracują nad GUI. To bardzo łatwe i pozwala mi odciąć mózg. Daje też mózgowi efekt placebo, że coś osiągam.


źródło
Zasadniczo pozostań zanurzony w projekcie, ale w pracy? I tak, to najgorsze uczucie - kiedy wkładasz w to cały czas i nadal czujesz, że niczego nie osiągnąłeś.
sevenseacat
3
@Karpie Nadal coś osiągasz. Wykonywanie niektórych „pracochłonnych zadań” pozwala ci pracować nad czymś, co należy zrobić, ale nie jest to po prostu coś, co wymaga twojego mózgu do odpalenia wszystkich cylindrów.
Nie wiem - praca z GUI zawsze wydaje mi się prosta. Sprawienie, by działało poprawnie i było użyteczne, jest zabawne i trudne, ale sprawienie, by wyglądało ładnie, jest dla mnie bardzo trudne.
Michael K,
Kiedy odsuwam się na jakiś czas w ten sposób, około 50% czasu nigdy nie wracam ...: /
Roman Starkov
6

Prawie cały czas mam tendencję do wpadania w ten obszar.

Rozpoczęcie projektu jest łatwe, wszystko jest nowe, rzeczy do zbadania i odkrycia, prototypy do zbudowania, cała zabawa. Ale gdy wyzwanie mija, moje zainteresowanie maleje. Pobieranie wersji produkcyjnej oprogramowania, eliminowanie niedorzecznych błędów, które istnieją z powodu niejasnych problemów z pewną platformą, z której musisz korzystać.

Wystarczy zanudzić cię na śmierć.

Nigdy nie znalazłem w tym nic zbyt pomocnego, po prostu pracuję lub bawię się czymś zupełnie innym (przepełnienie stosu jest do tego dobre), dopóki nie nudzę się innymi rzeczami i nie czuję się winny. Potem wykonaj trochę nudnej pracy. Wydajność zmniejsza się do około 20%, ale taki jest ciężar matowego kodowania.

Jest jedno rozwiązanie, programowanie zespołowe, bardzo trudno stać w miejscu, gdy inne są bezpośrednio zaangażowane.

Orbling
źródło
1
+1, budowanie zespołu działa świetnie. Niestety, bardzo trudno jest zainteresować inne osoby Twoimi osobistymi projektami.
dan_waterworth
@dan_waterworth: To prawda, chociaż minęło wiele lat, odkąd programowałem dla siebie. 60-80 godzin tygodni, z cennymi małymi wakacjami przez lata raczej usuwa pragnienie.
Orbling
2
+1 za uczciwość: „... dopóki nie nudzę się innymi rzeczami i nie zaczynam czuć się winny ... Wydajność spada do około 20% ...”
Kavka
Czy możesz podać więcej szczegółów w programowaniu zespołowym?
Esqarrouth
6

Programowanie par

Uważam, że programowanie par naprawdę pomaga w takich przypadkach. Znajdź kogoś, z kim dobrze się sparujesz i zaatakuj problemy, nie ma nic lepszego niż kolejna opinia lub tablica rezonansowa, aby przedostać się przez bloki. Gdy znów zaczniesz robić postępy, entuzjazm sam wróci.

Niestety w naszej firmie jest to niezadowolone, więc zwykle robię to tylko wtedy, gdy naprawdę czuję problemy wpływające na moją wydajność.

Andy Lowry
źródło
+1, ponieważ to była jedyna rzecz, którą zasugerowałem w mojej odpowiedzi, choć nazwałem to programowaniem zespołowym, ponieważ więcej niż dwa są dobre. ;-)
Orbling 16.01.11
3

Nauczyć się nowego języka. Nie ma nic lepszego niż nauka nowego języka, który wzbudzi Twoje zainteresowanie. Sugerowałbym Haskell.

dan_waterworth
źródło
1
+1 dla nowego języka, +1 dla Haskell. Wydaje się 1 + 1 = 1jednak, że matematyka głosowania się dokonuje .
Orbling
1
@Orbling, to dlatego, że1 | 1 = 1
dan_waterworth 16.01.11
Myślę, że 1 & 1 = 1byłoby to bliższe mojej intencji. ;-)
Orbling 16.01.11
1
@Orbling, a co powiesz na to P(vote) = S((1 + 1)/t), gdzie S(x)jest funkcja sigmoidalna? (Możesz wybrać temperaturę systemu).
dan_waterworth
Właśnie tego próbowałem z moim najnowszym projektem, próbowałem nauczyć się Ruby i Rails! To była część braku dokumentacji, heh ...
sevenseacat
2

Zaczynam uderzać w inne miejsca przez godzinę lub. Korzystam z Eclipse w pracy, a Eclipse pozwala ci wstawić a // TODO:do twojego kodu, a następnie zestawia je wszystkie w oknie dla ciebie. Jeśli widzę coś, co chcę zmienić lub naprawić, pracując nad czymś innym, umieszczam TODO, aby nie złamać tempa. Kiedy utknę zbyt długo (ponad godzinę lub dwie) zacznę przeglądać listę. Zapewnia zmianę scenerii i przez większość czasu zmiany są dość proste, co pomaga mi się zrelaksować. Często odpowiedź wyskakuje, jednocześnie pozwalając mi poczuć, że coś osiągam.

Uwaga: Uwielbiam refaktoryzować i ulepszać kawałek kodu. Twój przebieg może się różnić.

Michael K.
źródło
1
+1 To jest coś, co zawsze robię, szczególnie pomocne w zapewnieniu płynnego przepływu kodu. Oczywiście, jeśli postępujesz zgodnie ze zwykłymi doktrynami kodowania, dobrym pomysłem jest pełny pseudo kod, który powoli należy przerabiać na prawdziwy kod.
Orbling 16.01.11