Jak utrzymywać koncentrację i unikać prokrastynacji przy programowaniu?

Jak utrzymywać koncentrację i unikać prokrastynacji przy programowaniu?

3 listopada 2022

Zanim napisałem to zdanie, kilka razy poprawiłem pozycję na fotelu, przescrollowałem Reddita i sprawdziłem, czy przypadkiem nie przyszedł mi nowy e-mail.

Z problemami z koncentracją borykam się już od najmłodszych lat. Sądzę, że zaczęło mi się to w czasach, w których zacząłem niemal nałogowo grać w gry komputerowe. Do dziś potrafię raz na jakiś czas odlecieć myślami tak mocno, że zapominam o danej czynności i przez kilka minut po prostu gapię się w ścianę.

Nie piszę tego jednak po to, żeby się nad sobą użalać. Przez lata znalazłem i przetestowałem masę ciekawych sposobów na zapobieganie prokrastynacji i lepsze utrzymywanie koncentracji podczas programowania i nie tylko. Te sposoby pozwoliły mi nauczyć się w niezłym stopniu kilku języków programowania i zrealizować wiele fajnych projektów — myślę, że przez ten czas spędziłem już co najmniej kilka tysięcy godzin nie tylko na samym siedzeniu, ale też na realnym kodowaniu.

W tym wpisie podzielę się moimi ulubionymi sposobami, które mogą Wam pomóc, jeśli również macie tendencje do prokrastynacji lub wykazujecie słabą zdolność do koncentracji.

Zablokowanie rozpraszaczy

Ten punkt to z pewnością największa oczywistość. Nie jest żadną tajemnicą, że dostęp do internetu potrafi odciągnąć nas od pracy nawet na wiele godzin. Rozpraszaczy jest oczywiście wiele i nie u każdego będzie to np. Facebook, czy TikTok — prawdopodobnie sam wiesz, na czym ucieka Ci najwięcej czasu, a jeśli nie wiesz, pobierz np. RescueTime i sprawdź to na własną rękę.

Oto co robię, by uniknąć rozpraszaczy:

  • Pracując, zawsze chowam telefon do szuflady i wyłączam w nim internet. Jeśli ktoś do mnie zadzwoni, usłyszę to, ale nie będą przychodziły mi ciągłe powiadomienia i nie będę miał łatwego dostępu do “poprzeglądania sobie czegoś przez dwie minutki”.
  • Stosuję wtyczki i programy, którymi w określonych godzinach blokuję dostęp do ulubionych stron internetowych i programów, na które niepotrzebnie wchodziłem podczas pracy. Możesz skorzystać np. z darmowej wtyczki BlockSite, ale jeśli problem jest bardziej złożony i np. masz tendencję do odpalania jakichś gier, programów, czy komunikatorów desktopowych jak np. Discord, polecam Ci zainteresowanie się programem Cold Turkey — u mnie był to prawdziwy gamechanger.
  • Dbam o minimalizm. Staram się, żeby na moim biurku znajdowało się jak najmniej rzeczy mogących mnie rozproszyć. Próbuję też odizolować się od wszelkich dźwięków, które mogą mnie rozproszyć i negatywnie wpłynąć na moją koncentrację (będzie o tym osobny punkt).

Stosowanie techniki Pomodoro

Wiem, że na pewno większość z Was słyszała o technice Pomodoro. Pytanie tylko, czy próbowaliście wdrożyć ją u siebie, a jeśli tak — czy zrobiliście to we właściwy sposób.

Według mnie standardowe ustawienie 25 minut pracy i 5 minut przerwy może sprawdzić się przy nauce, ale nijak nie nadaje się do programowania, przynajmniej w moim przypadku. W 25 minut zrobię naprawdę niewiele, a zanim złapię odpowiednie flow i koncentrację, trzeba będzie zrobić przerwę.

Jeśli chcecie, proponuję Wam ustawienia takie jak np. 50/10 czy 80/15 – sam robię 80/10, czyli 80 minut pracy i 10 minut przerwy. Po 80 minutach zwykle zaczynam tracić koncentrację, więc jest to u mnie dobry moment na zrobienie sobie przerwy i “naładowanie baterii” (zwykle spędzam je z dala od ekranu, najchętniej spacerując). Potestujcie to sami, bo choć metoda może wydawać się trywialna, świadomość obecności jakiegoś tam zegara i czasu na pracę może pozwolić Wam się lepiej na niej skupić i za bardzo się od niej nie odrywać.

Wyciszenie niepotrzebnych dźwięków

Jeżeli podobnie jak ja, nie potrafisz skoncentrować się w głośnym otoczeniu, warto byłoby coś z tym zrobić. Mnie przeszkadzają rozmowy domowników, szczekanie psa, czy nawet dźwięki przejeżdżających przez ulicę samochodów — takie pierdoły naprawdę potrafią zaburzyć mi koncentrację i doprowadzić do sytuacji, w której mimowolnie zmienię myśli i oderwę się od programowania.

Rozwiązań jest co najmniej kilka:

  • Wyposaż się w słuchawki z funkcją ANC. Choć nie tłumią one najlepiej głośnych dźwięków, dla Twoich zastosowań mogą sprawdzić się idealnie. Jeśli masz możliwość, pierw je przetestuj np. pożyczając je od jakiegoś kolegi, lub upewnij się, że kupując, będziesz mógł je zwrócić, jeśli nie spełnią Twoich oczekiwań.
  • Zacznij słuchać czegoś, co nie wybija Cię z koncentracji. O ile osobiście programując nie jestem w stanie słuchać swojej ulubionej muzyki, lubię posłuchać chociażby Lofi hip hop, czy różnych dźwięków z mynoise.net. Raczej preferuję przy pracy absolutną ciszę, ale takie dźwięki i tak sprawdzają się u mnie w tle znacznie lepiej niż chociażby szczekający pies.
  • Jeśli pracujesz w domu, rozważ wynajęcie jakiegoś drobnego biura lub cichego pomieszczenia. To dodatkowy koszt, ale pracując w domu, naprawdę ciężko jest utrzymywać odpowiednią produktywność (choć nie jest to niemożliwe).

Rozbijanie dużych zadań na mniejsze

Znasz to uczucie, gdy podświadomie boisz się jakiegoś zadania lub wydaje Ci się ono bardzo przytłaczające?

To praktycznie codzienność w naszej pracy, przynajmniej do momentu, w którym nauczymy się rozbijać jedno duże zadanie na wiele małych zadań.

Przykładowo, zamiast zadania “Stwórz moduł dodawania postów na bloga” zrób sobie kilka zadań jak chociażby:

  • Utwórz podstronę dodawania postów na bloga
  • Stwórz w HTML prosty formularz pozwalający na dodanie postów na bloga
  • Stwórz w PHP system dodający nowego posta na bloga po przesłaniu formularza
  • Przerób zwykłe pole textarea w formularzu na edytor obsługujący podstawowe funkcje jak np. pogrubianie tekstu, czy wstawianie odnośników.

Spoiler: wiem, co wielu z Was pomyśli. “To dodawanie sobie roboty”, “Taka ilość zadań jest dopiero przytłaczająca”.

Wiem, bo sam tak myślałem. Jeżeli rzeczywiście spróbowaliście i nadal tak uważacie, spoko – rozumiem, ale jeśli nie, przynajmniej spróbujcie.

Podzielenie trudnego zadania na wiele mniejszych (tzw. sposób na zjedzenie słonia po kawałku) u wielu osób, w tym mnie, po prostu działa. Pozwala na lepszą organizację i zapobieganie sytuacji, w których nie wiemy, co mamy w danej chwili zrobić, a także skutecznie nagradza nas za zrealizowanie każdego małego zadania, co napędza nas do dalszej pracy… W końcu kto nie lubi odhaczać na liście zrobionych tasków?

Robienie przerw

Nieodrywanie się od ekranu nie sprzyja nie tylko naszemu zdrowiu, ale również naszej koncentracji. Jeśli jesteś doświadczonym programistą, jestem pewien, że znasz ten stan, w którym przez kilka godzin nie możesz rozgryźć trudnego problemu, a następnego dnia, wracając ze “świeżym umysłem” rozwiązujesz go w kilkanaście minut.

Taki świeży umysł możesz mieć nawet kilka razy w ciągu dnia. Nie wiem na ile pozwala Ci Twój szef, ale jeśli masz taką możliwość, proponuję Ci, żebyś zrobił sobie krótką przerwę przynajmniej raz na dwie godziny. Możesz to, podobnie jak ja, połączyć z systemem Pomodoro i np. raz na ~półtorej godziny wyjść na krótki spacer lub przynajmniej oderwać wzrok od ekranu i przez kilka minut bezcelowo pogapić się w okno.

Uwaga! Stanowczo odradzam spędzanie przerw na mediach społecznościowych, bo choć może wydawać się to relaksujące, powinniśmy fundować przerwy nie tylko naszemu umysłowi, ale również naszym oczom.

Dobieranie właściwych zadań i projektów

Ten punkt nie sprawdzi się u każdego, ale jeżeli jesteś “na swoim” lub masz wpływ na to, jakie zadania są Ci przydzielane, staraj się dobierać takie, które:

a) Będą dla Ciebie wyzwaniem. Trudne zadania, przy których musimy się trochę namęczyć, oczywiście frustrują, ale też pozwalają nam się rozwijać i czerpać satysfakcję, która napędza nas do dalszej pracy. Osobiście mam problemy z utrzymywaniem koncentracji podczas łatwych zadań, które jestem w stanie robić “z głowy”, ale te bardziej wymagające wciągają mnie na tyle, że łapię się na sytuacjach, w których “nie wyjdę, póki nie zrobię”. O ile naprawdę lubisz programowanie i jesteś osobą, która dużo od siebie wymaga, myślę, że może to u Ciebie zadziałać podobnie.

lub

b) Będą Cię interesowały. Jakiś czas temu tworzyłem portal o kompletnie nieinteresującej mnie tematyce. Nie było tam też zbyt wielu ciekawych wyzwań technicznych i po prostu się nudziłem, przez co notorycznie odrywałem się od pracy i miałem problemy z utrzymaniem koncentracji. Dla porównania, gdy tworzyłem niemal identycznie działający portal związany z moim hobby, szedłem jak burza, bo sam jako użytkownik wiedziałem, czego bym chciał, a także bardzo chciałem zrobić coś, co przyda się ludziom o podobnych zainteresowaniach. Wielu znanych osób ze świata biznesu powie Ci, żebyś robił to, co kochasz. Coś w tym jest, bo gdy praca Cię pasjonuje, o wiele łatwiej ją wykonywać, bo nie musisz się do niej zmuszać.

Wdrożenie grywalizacji

Grywalizacja to coś, co testuję od niedawna i zdaje się u mnie całkiem dobrze działać. Pomysłów na to jest wiele, a niektóre, zwłaszcza jeżeli lubisz gry komputerowe, mogą pomóc Ci pracować o wiele wydajniej.

Dawniej świetnie działała na mnie Habitica, którą mogę Ci szczerze polecić. Obecnie przerzuciłem się jednak na Todoist, bo lubię dzielenie zadań na projekty i łatwiej utrzymuje mi się tam porządek. Jeśli chodzi o aspekt grywalizacji, podliczam sobie “punkty” za zrealizowane zadania (w Todoist możesz użyć do tego wbudowanego mechanizmu “karmy”) i wpisuję je do arkusza. W arkuszu z kolei wyznaczyłem sobie za ile punktów mogę odblokować jaką nagrodę.

Aktualnie jestem na etapie zbierania punktów na nową myszkę – obecna mnie trochę wkurza, bo czasami robi double clicka, ale da się z tym funkcjonować. Mam jednak motywację, bo jeśli będę wykonywał dużo zadań, zbiorę punkty na tę myszkę np. za miesiąc, a jeśli mało – może mi to zająć nawet kilka miesięcy.

Wiem, że może to wszystko brzmieć dziecinnie, a nawet głupio, ale taki system może nas motywować do bardziej wydajnej pracy. Mnie w każdym razie motywuję i po osobach, które spotkałem na Habitice, wiem, że nie tylko mnie, dlatego chętnie się tym dzielę.

Osiąganie stanu flow

Powyższe punkty były bardzo ważne, ale najlepsze zostawiłem tym razem na sam koniec.

Nic nie pomaga programiście utrzymać koncentracji tak dobrze, jak osiągnięcie stanu flow.

Wchodząc w stan flow, zapominamy o wszystkim dookoła i skupiamy się na danym zadaniu tak mocno, jakby nic innego nie istniało. Grasz w gry komputerowe albo czytasz książki? Jeśli tak, pewnie kojarzysz uczucie, w którym wykonywanie danej czynności pochłonęło Cię tak mocno, że sam nie wiedziałeś, kiedy minęło kilka godzin.

Zapytasz pewnie, “jak osiągnąć taki stan przy programowaniu”. Niestety, jak możesz się domyślać, nie jest to takie proste. Oto jednak kilka porad, które mogą zadziałać:

  • Nie odrywaj się od pracy zbyt często i unikaj rozpraszaczy.
  • Pracuj nad rzeczami, które Cię pasjonują lub stanowią dla Ciebie wyzwanie. Jeśli nie lubisz tego, co robisz, prawdopodobnie nie uda Ci się osiągnąć stanu flow.
  • Staraj się za często nie zatrzymywać. Może Ci w tym pomóc między innymi lepsza organizacja listy zadań, w tym rozbicie dużych zadań na wiele mniejszych, o czym pisałem w jednym z powyższych punktów.

Osiąganie tego stanu nie jest proste i nie udaje się zawsze (chyba że naprawdę kochasz programowanie i jest to Twoja ulubiona czynność), ale możesz spróbować wyżej wymienionych metod i zobaczyć, czy któraś na Ciebie zadziała. Jeśli chcesz, przejrzyj też rekomendacje innych osób, na przykład te w tym wątku na Reddicie.