Jak przez mgłę widzę czyjąś twarz. Rusza ustami, chce mi coś przekazać. Początkowo dociera do mnie tylko głuchy bulgot, jakbyśmy byli pod wodą. Powoli jednak skrawki wypowiadanych słów w jakiś sposób trafiają do moich uszu. Im więcej rozumiem, tym głębszy mają sens. Chcę słuchać, jeszcze i jeszcze. Przeżywam moment olśnienia. Skąd on wie co mówić? Skąd zna odpowiedzi na wszystkie dręczące mnie pytania? Kto to jest? Zresztą, nieważne. Niech mówi, niech mówi… Niech nie przestaje…
Wzrok zdaje mi się wyostrzać. Rysy twarzy zaczynają wyglądać znajomo. Kto prawi takie mądrości? Kto potrafi w tak prosty sposób wytłumaczyć mi wszystkie skomplikowane zawiłości niedające mi spokoju od tylu dni?
Moment… Jak to możliwe? Przecież ja jestem tu – ja słucham. Skąd więc ja jestem również tam? Ja mówiący i ja słuchający… Dziwne…
Rozlega się przenikliwy dźwięk, zagłusza płynące słowa. Nie! Niech przestanie! Nieważne kto mówi, ja chcę dalej słuchać!
Ale nagle wszystko staje się jasne. Tak, ja jestem i tu i tam, w dwóch miejscach jednocześnie. A ten dźwięk to budzik. Damn. Nie ma magicznych odpowiedzi na moje problemy. Damn, nadal jestem w kropce. Damn, to tylko sen. Znowu.
Zwlekam się z wyra. Oczy mam ciągle zamknięte. Nic dziwnego, w końcu położyłem się niecałe trzy godziny temu, po raz któryś z kolei. Rozklejenie powiek to nie taka prosta sprawa, zostawię to na potem. Póki co doczłapię do kuchni i przygotuję kawę. Zimna posadzka działa pobudzająco na bose stopy – pierwsza oznaka powrotu do rzeczywistości. Po omacku włączam czajnik, wsypuję kawę do kubka, ciągle próbując przywołać z pamięci zdania usłyszane kilka minut temu od samego siebie. Przysiągłbym, że było to rozwiązanie problemu trzymającego mnie przy komputerze do tak późna! Oparty o szafkę staram się zmusić umysł do jakiejkolwiek aktywności, jednak ten odmawia współpracy. No cóż…
Czas płynie dziwnie: przecież sekundę temu włączyłem czajnik, a on już piszczy że woda się zagotowała. Może po prostu przysnąłem na stojąco?
Nieważne, dość mazgajenia, robota czeka. Zalewam kawę, wsypuję cukier, niech sobie stygnie. W międzyczasie macając ściany znajduję łazienkę, wślizguję się do wanny. Kieruję prysznic prosto na twarz, odkręcam zimną wodę. Durne oczy, nakazuję wam się otworzyć! Nic nie działa tak orzeźwiająco jak silny lodowaty strumień prosto w mordę. “Poranna bryza, incorporated“. 5 minut i jestem jak nowy.
Po tak sprytnym zabiegu biorę przygotowaną wcześniej kawę i siadam do komputera. Jest jeszcze ciemno, więc trupi blask monitorów kłuje zmrużone oczy. Potrzebują kilku chwil adaptacji. Ciało trochę skrzypi, ale zaraz znajdzie odpowiednią pozycję. Krzesło i biurko to taka moja ślimacza muszla. Początkowo siedzenie tu przez następne kilkanaście godzin może wydawać się niemożliwe, ale to tylko złudzenie. Wszystko jest kwestią prawidłowego ułożenia całej machinerii na siedzisku. Da się. Musi się dać. Zawsze się daje.
Pierwsze minuty spędzam sącząc kawę i przeglądając techniczne RSSy i Twittera, żeby wszystko pod kopułą złapało odpowiedni kontekst, zaczęło funkcjonować na pożądanym poziomie. Sączenie kawy zakończyło się niestety niepowodzeniem – bawiąc się w ślepego kreta nieprzytomnie dosypałem soli zamiast cukru, pić się tego nie da. Trudno, potem dowalę końską dawkę pożywnej wysokooktanowej ludzkiej benzyny i też będzie git – te Tigery i Burny potrafią zdziałać cuda. Sól to jeszcze i tak pół biedy, kiedyś zdarzyło mi się nieświadomie włożyć do kawy 5 łyżek majonezu, a sam majonez wrzucić do kosza zamiast do lodówki. Więc dzisiaj nie jest jeszcze ze mną tak źle.
Dobra, dość zabawy. Jako-tako widzę, jako-tako myślę, zaraz się rozkręcę. Wirtualka z projektem już odpalona. Obroty trybów w głowie nabierają tempa z zadowalającym przyspieszeniem. Do devu… gotowi… start!!!
Odrywam się za kilka chwil, zerkam na zegarek. Hoho, czas leci, nie ma co! Ale to dobrze, znaczy że dużo dzisiaj zrobię. Jednak coś jest nie tak… w głowie dzieje się coś dziwnego… A, racja. Zapomniałem zjeść śniadania, a tu zaraz pora obiadowa. Sprint do kuchni, szybki rekonesans w lodówce. Bezapelacyjne zwycięstwo w konkurencji “kto wsadzi do ryja najwięcej żarcia w pozycji Dziecka Z Bangladeszu Pochylonego Nad Zlewem“. I z powrotem do komputera. Nie ma czasu na zbytnie rozwlekanie całej procedury dostarczania organizmowi pokarmu. Festina lente my ass! W końcu chodzi tylko o efekt – żeby te wszystkie flaki kręciły się przez kolejne kilka godzin.
Czas płynie dalej, robota pali się w rękach. Pojawia się lekki szum w głowie i przed oczami. O co chodzi, przecież dopiero co jadłem?? Durne ciało, powinno działać jeszcze przez jakiś czas na tym co dostało! Spojrzenie na zegarek… hę?? Lost in code, yeah! Faktycznie pora dorzucić do pieca. Ale nie mogę przerwać w tej chwili, w połowie zadania. Nastawiam budzik, niech mi przypomni za 10 minut.
Budzik dzwoni, znowu. Ehh, spokoju nie daje! Ręka bezwiednie podąża w kierunku przycisku “SNOOZE”, który powoduje przesunięcie budzika o 8 minut. Coś tu jednak nie gra… Gdzie podziały się ostatnie 4 godziny, od włączenia budzika? A niech to, musiałem wciskać tego snooze’a kilkadziesiąt razy nie zdając sobie z tego sprawy. Zaraz sklep zamkną, a w lodówce pusto!
Odpowiedzialnie zrywam się z krzesła i wybiegam z mieszkania. Uff… zdążyłem. Tylko czemu to babsko w sklepie tak się na mnie dziwnie gapi? A może mi się wydaje… bo wygląda na to że wszyscy się gapią. No o co chodzi, goły przecież nie jestem! Zresztą nieważne, co tam oni wiedzą… Półświadomie kupuję coś-tam coś-tam, nie ma większego znaczenia co. Tępo wpatruję się w kasjerkę wydającą resztę. No, kobieto, ruchy! Nie mam na to całego dnia! Wreszcie zostawiam ich samych. Niech się w swoim sosie duszą.
Wracam do domu. Operacja pasza->jama ustna->brzuch przebiega bardzo sprawnie, wracam do kompa. Co prawda obiecałem sobie, że dzisiaj skończę wcześniej, ale przecież nie zostawię wszystkiego ot tak. Zaczynam kodować…
Za jakiś czas się odrywam. Cholera, znowu to samo… 2:30 rano. Przeglądam kod napisany w ciągu ostatnich kilkudziesięciu minut i faktycznie, widać że jest taka pora a nie inna. Większość będzie do wyrzucenia i przepisania. Nie ma co dalej kozaczyć, nic już ze mnie dzisiaj nie będzie. Zajmę się tym jutro, teraz ledwo dam radę zwlec się z krzesła.
Siadam w fotelu, włączam telewizor, otwieram browar. Pójście do łóżka prosto od komputera nie sprawdza się – zbyt duży natłok myśli. Mimo całkowitego wyczerpania zaśnięcie jest praktycznie niemożliwe. Po zamknięciu oczu widzę tysiące linii kodu, dziesiątki diagramów, zupełnie jakbym od komputera wcale nie odchodził. Trzeba się przed snem trochę przygotować, trochę przytępić, trochę odfrunąć. Powtórki programów z polskimi politykami i zimne piwko nadają się do tego po prostu doskonale.
Mija kilka minut, otwieram oczy. Kurde, znowu zasnąłem na siedząco, znowu się oblałem browarem. Fu. Ale drogą indukcji matematycznej dochodzę do jasnej strony całej sytuacji: skoro zasnąłem teraz to zasnę i za pół minuty, jak walnę się na wyro, w swojej gawrze.
Podchodzę do łóżka, osuwam się na posłanie. Mam nadzieję, że naprawdę zasnę bez problemów, bo za trzy godziny pobudka. W końcu projekt nie napisze się sam.
Zasypiam jeszcze zanim głowa dotknie poduszki. Bezwładne, wygięte, storturowane zwłoki zbierające siły na kolejny dzień walki. I ktoś do mnie gada… Skąd ten ktoś wie nad czym pracuję? I skąd zna odpowiedzi na wszystkie moje pytania? Jakiś mędrzec. Mów, mów, dobry człowieku. Ja sobie poleżę, poodpoczywam, i posłucham. Mów…
Uff… no to się wyżyłem literacko na kolejne kilka miesięcy:).
Do powyższego tekstu można by dodać dopisek “don’t try this at home“. Wiadomo, przekoloryzowałem (jak to mam w zwyczaju). Wiadomo, nie żyje się tak przez cały czas. Wiadomo, nie każdego to spotyka… Ale jednak… Czy macie doświadczenia z przebywania w takim stanie? Kompletnego programistycznego amoku i wyczerpania absolutnego? Gdy ciało zdaje się być żałosną rozładowaną baterią słoneczną, ciągnącą jakieś marne resztki życia z blasku monitorów?
Ja na szczęście musiałem doprowadzać się do takiego stanu tylko dwa razy w życiu: na ostatnim roku studiów i półtora roku temu (kiedy to zresztą sam siebie określiłem demonem, procentd :)). W chwili obecnej również niejako zmuszony zostałem do pracy nad dwoma projektami jednocześnie, ale nie jest dzięki Opatrzności aż tak hardkorowo.
Może to zabrzmi głupio i nieodpowiedzialnie, ale… całkiem miło wspominam takie jazdy. To znaczy te fragmenty życia, które pamiętam. Wtedy da się odkryć w sobie prawdziwego programistę. Jeśli ktoś dopowie “chyba prawdziwego idiotę” to też nie będę się specjalnie spierał, bo doskonale wiem jak to działa na zdrowie… więc trzeba korzystać póki ono na to pozwala:). Mimo wszystko są dobre tego strony. Uczucie “bycia niezastąpionym”. Wsadzanie brudnej szmaty nasączonej benzyną w usta sumienia szepczącego wcześniej “przestań marnować czas, przestań marnować czas, do roboty, do roboty, do roboty…“.
Co motywuje was do takiego wysiłku? A może nie ma takiej rzeczy?
Są. Np. Kończąca się sesja i wspomniany ostatni rok studiów – niech się sypie i wali co chce, byle po tym jak zaliczę. A nierozwiązany problem i zbliżający się nieprzesuwalny termin sprawia że dowolna niezerowa ilość snu wydaje się nierealna.
Hehe… jak pisałeś o tym głowie i o tej postaci wszystko wiedzącej to myślałem że chodzi o mnie :P
Przyszła żona dupę urwałaby mi przy samej szyi gdybym spróbował czegoś takiego. Bo niby jak to ma być, że jej ukochany może w ogóle zainteresować się czymś bardziej niż nią samą? No nie do pomyślenia! Jeśli już ma się nad czymś skupić to wtedy kiedy Ona akurat nie potrzebuje jego uwagi i oczywiście nie za długo. Z jednej strony nie mam możliwości nieskończonego poddania się programowaniu, temu szałowi klepania kolejnych linii przez co projekty idą wolniej. Z drugiej jednak strony zachowuję równowagę i nie palę mózgu przez brak snu, niedożywienie, odwodnienie i nadmiar kofeinopodobnych substancji. Ale ja mam plan szczwany i przebiegły! Ukochana moja szkolić się na grafika będzie niedługo więc zaciągnę ją do pracy nad moimi projektami!
Ja powiem o innej stronie.
Jeśli dane będzie ci mieć do tego dzieci, to wtedy zobaczysz dopiero co to jest amok :)
pzdr
squash
Dobre!
Przypomina mi to właśnie czasy z okolic studiów czy przed-małżeństwem i przed-młodym. Później trochę inaczej to wygląda, ale faktycznie podobne sytuacje się zdarzały i jak piszesz było to cholernie wymęczające, ale jednocześnie… przyjemne :)
Świetny wpis.
Odpowiadając na Twoje pytania: Mnie najbardziej motywuje uczucie jakie pojawia się po zakończeniu zadania. Mógłbym nawet powiedzieć, że duma z sumiennie wykonanej pracy. Niestety ze swojego doświadczenia powiem jednak, że programując już ładnych kilka lat, nie motywują mnie te same zadania. Fajnie jest zaimplementować jakieś rozwiązanie z wykorzystaniem np. teorii grafów i to mnie motywuje bardziej niż codzienna praca programisty.
Jak myślicie kiedy może nastąpić wypalenie programisty? Czym się ona może objawiać?
opis jakby z mojego dnia :) tyle, że bez tego telewizora wieczorem. dość często mi się zdarza, że Żona o 2 zgarnia mnie do łóżka (a standardowo wstaję o 6). jakoś to tak już jest, że pracując wieczorem czas leci inaczej i zmęczenia się nie odczuwa do momentu położenia głowy na poduszce :)
ja mam zawsze kryzys między północą a pierwszą – jak to przetrwam to czuję, że jestem niezniszczalny – no chyba, że Żona się przebudzi ;)
Aż mi ciarki przeszły …
W okresach intensywnego kodowania zdarza mi się śnić na ten temat. Jednak staram się aby życie zawodowe nie kłóciło się z rolą bycia mężem i ojcem. Zresztą rodzina to chyba dobre lekarstwo na opisane przez Ciebie problemy.
Kolejna rzecz to zdrowie. Pamiętajcie, że nie jesteśmy niezniszczalni. Mając 20-kilka lat człowiek człowiek tak tego jeszcze nie odczuwa, ale od 30-tki ciało zaczyna się dopominać o swoje. Osobiście kilka lat temu rozpocząłem przygodę z bieganiem. Mogę tylko powiedzieć: POLECAM!!! Po dniu pracy, położeniu dzieci do łóżek, wybieram się na moją 45 minutową rundkę. Po powrocie czuję się jak "młody bóg". Myślę, że gdybym pracował w domu, wkomponował był trening w plan dnia. Gwarantuje, że gdy wrócicie z biegania, Wasze mózgi będą pracowały o wiele lepiej.
Nieźle piszesz, masz talent literacki ;)
@p.nowicki
Dokładnie trochę Cię podszlifować i możesz śmiało książki pisać :) Gdyby twój blog nie był mi potrzebny do motywowania samego siebie coś w stylu "popatrz na tego kolesia, taki dobry koder, freelancer i jeszcze ładnie pisze, też możesz taki być jak się skończysz opie#$%lać" to napisał bym żebyś się przerzucił z pisania "while(cośtam) to cośtam" na teksty w stylu "Przez ogród mój szatan szedł smutny śmiertelnie, I zmienił go w straszną, okropną pustelnię… Z ponurym, na piersi zwieszonym szedł czołem I kwiaty kwitnące przysypał popiołem" itp :D
Tak właśnie pracuję firmy z branży Game Dev w ostatnich 3 miesiącach przed wyadniem :) Stąd największa ilość bugów potem leci oraz testerzy mają pełne ręce roboty. Zawsze w grach są tzw. Easter Eggs – nic innego jak głupawka na 4:00 nad ranem , przed ukochanym projektem.
@jj:
gadająca głowa, nie lśniący plecak:)
@ptw, squash, Łukasz, Jacek
Macie rację, na pewno rodzina takie coś… utrudnia. Na szczęście moja Joanna sama jest programistką więc rozumie OCB i że czasami tak po prostu trzeba (tym bardziej jak mieszkanie trzeba do końca wreszcie urządzić)
@barozi:
"Wypalenie" mi się zdarza dość regularnie, mniej więcej 2x w roku. Co prawda nie jest jakieś bardzo hardkorowe bo najdłuższe trwało tydzień, ale przez ten czas ciężko jest zrobić cokolwiek… Taka jazda jak opisałem wyżej może się tymczasowym wypaleniem na pewno skończyć, o ile powrót do "normalności" nie będzie kontrolowany.
@p.nowicki, G:
Dzięki, lubię czasem oderwać się od programowania i zaszaleć pisząc :).
@siranen:
Nie jest mi trudno uwierzyć że stąd biorą się easter eggs:). Chociaż ty pewnie znasz takie jazdy z Imagine Cup – mój ‘devamok’ na 5 rok był m.in. IC spowodowany.
Jak w tym świecie jesteśmy wszyscy do siebie podobni… :)
Taak, programowanie to jak matrix – czas płynie tu inaczej i dobrze mieć wyrozumiałą rodzinkę. U mnie takie czasy jak piszesz skończyły się z narodzinami potomków, tu nie ma zmiłuj się. Aczkolwiek żona dostrzega w tym plusy, bo zawsze w nocy jestem w stanie zareagować a ona może obrócić się na drugi bok. Choć każda akcja maluszka zabiera potem 15 minut powrotu na właściwe tory.
Ale nauczyłem się co najmniej jednej złotej zasady którą zobrazuję tak:
while(CzytamKod()){
if(NicNieRozumiem.Equals(True)) {
QueueWork();
throw new SleepException();
}
DoWork();
}
To samo zadanie po północy zajmuje 2-3 godziny, a rano już tylko 15 minut. W tej sposób uratowałem już wiele godzin drzemania nad monitorem.
Może napiszemy wspólnie jakieś opowiadanie "Z życia programisty"? Widziałem już takie akcje wspólnego pisania opowiadań przez net… każdy dopisywał jakiś epizod i powstawała cała opowieść :)
@twk:
Takie opowiadanie mogłoby być fajną sprawą – kilkanaście krótkich rozdziałów, każdy napisany przez inną osobę. A wyglądałoby jakby pisane przez jedną, w końcu – jak zauważyłeś – wszyscy jesteśmy podobni:).
WOW:) Aż mi się 2. i 3. rok studiów przypomniały. Programy zaliczeniowe z Algorytomów i Struktur Danych – yeah. Mieliśmy nawet założony wątek na wewnętrznym forum w stylu "w oczekiwaniu na świt…" czy coś takiego;] Wszyscy takie coś przeżywali! Dobry post!
masz talent! może w przyszłości jakaś powieść fantastyczna "copyright by Procent" ? ;) szczęśliwie – nie miałem jeszcze takiej sytuacji…
Świetny tekst! Opis tak skonstruowany, że aż poczułem obrzydliwość i piękno przestawionego przez Ciebie stanu – mimo że noc jeszcze młoda :P
Jak pisałem mgr, to tak żyłem. Potem jeszcze raz. Fajnie, dopóki zdrowie pozwala (a prędzej czy później odbija się na zdrowiu)
barozi
Dopóki nie przeżyjesz, nie zrozumiesz ;)
Łatwo rozpoznać. Wstajesz rano, "wymiotujesz" i idziesz do pracy. W trakcie pracy myślisz, żeby dać sobie spokój z programowaniem, i założyć sklep mięsny. Jak porównasz sobie swoją wydajność teraz i 2 miesiące wcześniej, to wychodzi Ci, że robisz 10x wolniej.
@twk
"To samo zadanie po północy zajmuje 2-3 godziny, a rano już tylko 15 minut." – też mi wychodzi taki przelicznik :)
Jest jeszcze parę innych minusów:
– rano nie ma czasu się ogolić – utrwalamy stereotyp zarośniętego informatyka
– myślenie wymaga kalorii, a wiadomo że o północy nie będziemy niczego gotować, więc chrupiemy co wpadnie w ręce, często słodycze – stereotyp brzuchatego informatyka
– zawiły problem uziemia nasze myśli na długie godziny – stereotyp informatyka który gada tylko o robocie
Pewnie znacie jeszcze inne.
Aaa, jeszcze mam jedną złotą regułę: żadnego troubleshootingu po północy – to po prostu zaprzeczenie efektywności.
@procent
No jeśli Twoja Joanna to też programistka to wy jak para narkomanów jesteście! Kto wam będzie dzieci karmił?! :D
Zasady jak ‘żadnego troubleshootingu po północy’ są fajne i pożyteczne, ale jak jestem już tak zdesperowany że siedzę powiedzmy o 23:30 przy kompie i programuje, to oznacza raczej perspektywę "wyłączę kompa i pójdę spać" a 15 minut później "to może jednak wstanę bo skoro i tak nie mogę zasnąć i myślę o visual studio to leżeć i tracić czasu nie ma sensu". Więc albo nie ma programowania po powiedzmy 20, albo mała efektywność bo trzeba to jednak skończyć(to chyba oznaka że kiepsko mi idzie zarządzanie wykorzystaniem swojego czasu).
No powiem że osobiście , kiedyś w takim amoku pracy – to jeszcze przed programowaniem jak bawiłem się poważnie w 3d to musiałem brać auto i tak ok 22:00 pojechać sobie nad wode ( mieszkałem wówczas 7km od pięknego jeziora ) i się wykompać. Potem do 4:00 napierdzelanie i render – 3h snu – 7:30 znowu woda. I tak pamiętam , jakiś tydzień aż organizm nie powiedział stop i dał czerwony sygnał – krew z nosa.
@procent -> IC to moi wspólnicy mieli amoki – ja mówiłem że sorry ale 6h musze spać. Koleś z ASP , dla IC na 1 miesiąc nie chodził na zajęcia , ostani 1 tydzień wógle nie wychodził a 3 ostatnie noce nie spał (max 1 – 1,5h). Potem to juz miał problem aby zrobić herbate.
@ptw
Nikt nie będzie musiał karmin procentów dzieciaka. Urodzi się od razu z wtyczkami (USB 3.0 i te sprawy:) :D
A swoją drogą to z dzieciakami bywa różnie. Ja najwięcej pomysłów mam między 16:00 a 20:00 kiedy bawię się z dzieciakami w odrabianie lekcji => do kompa siadam po 21:00 i tak do 2:00.
Potem rano dziwię się jaki fajny kod napisały krasnoludki, bo ja tego nie pamiętam, a program (o zgrozo) działa.
Tekst bardzo dobrze napisany, aż miło się czytało. Dodatkowego smaczku dodał fakt, że (jak chyba większość osób tutaj) mogłem się utożsamić z bohaterem opowieści.
Sam przeżywałem podobne chwile. Po wszystkim, człowiek ma wrażenie bycia niezniszczalnym, i czuje że tak naprawdę może zrobić każdy projekt. Pomimo, że taki wyskok może odbić się negatywnie na kondycji fizycznej, to jednak ten ból wynagradzany jest poczuciem chwały :) Sukces po czymś takim gwarantuje morale w górnych granicach skali.
Co do devznużenia, to raz zdarzyło mi się doświadczyć czegoś innego. W pracy dobre 3 tygodnie męczyłem się z pewną funkcjonalnością. Niby już wszystko było gotowe, ale ciągle gdzieś znajdowane były regresje. To dobija. W pewnym momencie byłem zmuszony zrobić prosty projekcik na uczelnie, jakąś grę, cokolwiek.
Wziąłem dwa dni urlopu na pn i wt i postanowiłem zająć się wszystkim od soboty do wtorku.
Nie pamiętam, żeby coś dało mi taką frajdę jak napisanie tamtej gierki (Pacmana – http://warsztat.gd/projects.php?x=view&id=1496). Uwierzyłem w siebie… po urlopie w pracy szło mi dużo lepiej :)
Czasami coś nam musi przypomnieć jak bardzo zacni jesteśmy ;)
@twk, @procent:
sam na takie opowiadanie bym się pisał! Programista to przecież istota społeczna (sic!), która w swoim życiu niejednokrotnie musi się zmagać z uczuciami towarzyszącymi tworzeniu oprogramowania. Wiele osób spoza naszego światka nie jest w stanie zrozumieć charakterystyki naszej pracy. Dla innych praca to tylko praca. 9-17 i do domu. My mamy większe wymagania. My chcemy czuć się potrzebni, chcemy czuć swoją misję, a czasami jakieś inne pierdoły nam w tym przeszkadzają.