
Pamiętacie, jak w listopadzie pisałam o tym, że zaczynam uczyć się Javy? Listopad był dla mnie rzeczywiście miesiącem Javy, Springa i Spring Boota. Kolejne miesiące zaś upłynęły może już nie pod znakiem Javy, gdyż było jej trochę mniej, lecz pod znakiem intensywnej nauki wielu tematów, które przydają się w pracy programisty - od tworzenia koncepcji produktu od zera zaczynając, na zagadnieniach devSecOps kończąc.
Gdyby ktoś mi powiedział, ile pracy będę musiała wykonać, by sprostać wymogom kursu i być w stanie rzeczywiście przerobić zadany materiał, to być może bym zastanowiła się kilka razy, czy mam wystarczająco dużo sił, by dołączyć do programu i intensywnie uczyć się... Jednak szkolenie trwało, a mi pozostało albo zanurzyć się w zwątpieniu, albo spróbować uzupełnić braki w wiedzy.
Sprawy nie ułatwiało to, że wciąż pracowałam jako freelancer...
Specyfika pracy freelancera
Praca programisty freelancera może wyglądać bardzo różnie. Zazwyczaj jedynym punktem stycznym będzie forma zatrudnienia, czyli działalność gospodarcza (samozatrudnienie). Można jednak (wciąż) być freelancerem, który pracuje dla jednej firmy, a preferowaną formą czy to dla firmy, czy to dla programisty, czy dla obu stron jest współpraca B2B. Można też być wolnym strzelcem łapiącym kilkumiesięczne kontrakty na różnych projektach. Zazwyczaj w obu tych przypadkach będziemy mieć do czynienia z większymi projektami, różnymi architekturami aplikacji, czy rozwiązaniami utrzymywanymi w chmurze. Taka praca pozwala rozwijać sporo umiejętności przydatnych programiście nie tylko na projekcie, lecz także w ewentualnym poszukiwaniu pracy.
Można też działać w ramach mniejszych projektów, które dają prawo do tego samego tytułu: "programista freelancer", jednak nie dają zbyt wielu możliwości rozwoju. Powód jest prosty: budżety tych projektów są zbyt małe, by tworzyć zaawansowane rozwiązania. Po prostu trzeba stworzyć działającą stronę, może czasem coś zoptymalizować - i nic więcej. I z jednej strony można by było zostać przy takiej pracy. Jeśli jednak interesuje nas rozwój, to budowanie nowych umiejętności w przypadku, gdy czas poza projektem trzeba poświęcić na pozyskiwanie nowych zleceń może być to trudne.
To pozyskiwanie nowych klientów czy nowych zleceń nie zawsze jest proste - szczególnie, gdy ma się takie cechy osobowości, które nie ułatwiają podejmowania się tego typu działań związanych z prowadzeniem biznesu. I nie chodzi tu o samą rozmowę z klientem o projekcie, lecz o otoczkę - pozyskiwanie klienta, odpisywanie na zapytania ofertowe, a często również nieprzyjemne przygody z fakturami, kiedy nie opłacone na czas faktury to najmniejszy problem.
Nie będzie zaskoczeniem też, że rozwój AI, czy rozwiązań low code / no code zmienił również rynek zleceń. To nie oznacza ich braku, bardziej zmianę ich rodzaju. Wiele osób, które wcześniej odezwałoby się do freelancera ze zleceniem, teraz skorzysta z takich narzędzi z lepszym lub gorszym skutkiem. A po wsparcie profesjonalisty sięgnie, gdy mimo możliwości modeli językowych nie da rady rozwiązać danego problemu. Albo i nie sięgnie - po prostu "zaora" dotychczasowe rozwiązanie i zacznie do zera. Pracy wciąż jest sporo, lecz ci, którzy mają większe doświadczenie i stabilną pozycję na rynku, są w stanie więcej zdziałać.
Mam poczucie, że w tym momencie kluczem do sukcesu jest albo agresywny marketing (którego organicznie nie znoszę), albo bardzo mocna sieć kontaków, którą umie się podtrzymać i intensywnie rozwijać (co jednocześnie mocno przebodźcowuje). Można jeszcze pomyśleć o jakimś innowacyjnym projekcie, jednak nie każdy ma w sobie takie zasoby kreatywności i odporności, by tworzyć startup od zera.
Poznawszy pracę freelancera od podszewki widzę, że nie jest to forma pracy, która na ten moment sprawdza się w moim przypadku. Tym bardziej, że moim celem jest zrobić przeskok w stronę projektów innego typu.
Między klepaniem kodu a poważnymi projektami
Projekty spod znaku "klepania kodu" powoli zaczynają odchodzić w niepamięć. AI "wyklepie" kod szybciej i często lepiej. A jednocześnie bez doświadczenia projektów spod znaku "klepania kodu" często ciężko jest się dostać na poważniejszy projekt. I nie chodzi tu o wyższość "pisania kodu z palca", lecz o wyższość doświadczenia na różnych projektach, prostszych, ale takich, w których jednak pojawiły się jakieś wyzwania, dzięki którym można było zebrać bezcenne doświadczenie. Projektów, na których trzeba było rozwiązać jakiś problem, opracować od zera przepływ danych, wymyślić architekturę nowego rozwiązania, dobrać technologie. Projektów, w których nad rozwiązaniem pracuje cały zespół ludzi, co sprzyja wymianie myśli. A takie doświadczenie zdobywa się będąc jedną nogą "klepaczem kodu", człowiekiem od rzeczy prostszych, słowem - praktykantem lub juniorem.
Jeśli więc klienci indywidualni kierują się ku low code / no code, a duże firmy inwestują w wykorzystanie AI do prostszych zadań - przeskok między "wprawkami", projektami "do szuflady", małymi komercyjnymi zleceniami a pracą inżyniera oprogramowania staje się coraz trudniejszy. A zdobycie brakującej wiedzy, by móc ten przeskok robić, wymaga sporego zaangażowania.
I właśnie pod znakiem tego zaangażowania minęły mi ostatnie miesiące. Czas wypełniony był intensywną nauką i momentami odcinania się od wszystkiego, po to, by nie potknąć się i nie upaść pod ciężarem zadań tego czasu. Moja głowa nastawiona była na cotygodniowe przerabianie materiału, quizzy, pisanie rozprawek na kolejne technicze tematy i kodowanie aplikacji, o regularnych wieczornych wykładach i warsztatach nie wspominając.
Mimo zmęczenia widziałam, że moja wiedza znacząco rośnie. I to z tych tematów, na których najbardziej mi zależało, a o których poznanie ciężko początkującemu programiście. Jest ogromna różnica międy pracą na małym monorepo a działaniem na monorepo z mikroserwisami czy polyrepo. Zupełnie inaczej wyglądają testy na projekciku, gdzie mamy kilka podstron, a zupełnie inaczej na projekcie, gdzie trzeba zadbać o właściwą komunikację między serwisami, a żeby nie utknąć na wiele godzin w debugowaniu w przypadku błędów, trzeba zadbać o całą piramidę testów...
Przestrzeń kreatywności
Przez ten czas moja głowa oswajała kolejne koncepcje techniczne. Można powiedzieć, że mój wewnętrzny procesor i RAM miały zakolejkowane sporo zadań, które po kolei przetwarzały, aż do momentu wyłączenia się - czyli snu. W takich warunkach, w których nuda staje się konceptem abstrakcyjnym, ciężko jest dać dojść do głosu wewnętrznej kreatywności czy spontaniczności. Wszystko podporządkowane jest zakolejkowanym procesom, trawieniu kolejnych treści, tłumaczeniu ich na własny, wewnętrzny język i podczepianiu pod istniejące już w głowie koncepcje. Jedyne miejsce, w którym może pojawić się pewna kreatywność, to pisanie esejów - jednak bardziej niż kreatywności wymaga ono skupienia na aspektach technicznych.
Na takiej glebie dobrze rosną rośliny, które karmi zdobywanie wiedzy. Gorzej jednak z tymi, które wymagają przestrzeni do refleksji nad czymś innym, niż korzyści korzystania z Dockera czy problemy z bezpieczeństwem mikroserwisów. A przecież do tego drugiego rodzaju zaliczyć można te roślinki, których owocem jest podcast Herbatka ze smokiem, wpisy na bloga, czy rękodzieło.
Zauważyłam, że jeśli brakuje mi odpoczynku, i jeśli jestem bardzo skupiona na konkretnym celu (wręcz wszystko podporządkowuję jego realizacji), to mimo najszczerszych chęci ciężko mi jest być kreatywną. Głowa nie ma na to przestrzeni, a z drugiej strony tęskni do przestrzeni tworzenia. Można tak przetrwać kilka miesięcy, mając w perspektywie realizację ważnego celu. Jednak w pewnym momencie okazuje się, że coraz trudniej jest się zabrać do nauki, coraz ciężej wykonywać codzienne obowiązki. Cel jest zrealizowany; jednak realizacja celu odbywa się kosztem spraw, które są równie ważne.
Wypaleniu mówimy: nie!
To może jeszcze nie jest wypalenie, ale stan, w którym się znalazłam, niebezpiecznie się do niego zbliżył. To jednak wciąż zmęczenie, które ustępuje, gdy pojawia się więcej przestrzeni odpoczynku. Doświadczenia ostatniego czasu pokazują jednak, że nie wystarczy najpierw wcisnąć gaz do dechy ucząc się, a potem przestawić się na równie intensywny odpoczynek. Głowa nie ma połączenia ze specjalną, szybko ładującą ładowarką. Ciało, wraz z układem nerwowym, ma swoje tempo regeneracji. Dla organizmu mniej znaczy więcej. Mniej, to znaczy może trochę mniej odpoczynku, ale regularnie. Codziennie. A nie raz na tydzień czy na kilka tygodni, jeśli skupiam się intensywnie na nauce.
I to skupienie na nauce wcale nie musi być skupieniem spod znaku "kary", "przymusu" czy potrzeby chwili. Nauka programowania sprawia mi zazwyczaj sporo przyjemności, a efekty końcowe dają dużo satysfakcji. I to bywa dość złudne na dłuższą metę. Gdy z jednej strony na szali mamy zmęczenie, a na drugiej satysfakcję, przyjemność, poczucie spełnienia, to łatwiej jest jeszcze znaleźć trochę energii, tak, żeby poczuć więcej przyjemnych odczuć. I tak, zazwyczaj ładują one nasze mentalne baterie, ale nie są jedynym rodzajem paliwa, które potrzebujemy tym bateriom dostarczyć. Są jeszcze inne rodzaje.
To na przykład uważność, czyli bycie tu i teraz. Ruch, poczucie zmęczenia w mięśniach. Skupienie na doznaniach płynących z ciała. Przetworzenie treści, które poruszają nas, czy to w trakcie lektury, słuchania audiobooka, oglądania filmu. Czasem - emocje sportowe, czasem szydełkowanie lub przesadzanie roślinek. Mózg potrzebuje szeregu doznań, różnych bodźców, zróżnicowanego paliwa, różnorodnej diety bodźców - tak, jak ciało potrzebuje różnorodnych składników w ramach dobrze zbilansowanej diety.
Te działania pomagają w utrzymaniu dobrostanu. Ale też będą receptą na czas, gdy zmęczenie długotrwałą nauką sprawia, że już coraz ciężej patrzy się na kolejne lekcje, kolejne fragmenty kodu, satysfakcja z nauki ulatnia się. Gdy - czy to z powodu zaciekawienia, czy z powodu nakreślonych sobie celów, które chcemy zrealizować, naruszyliśmy znacząco mentalną baterię. Kiedy wskaźnik naładowania baterii zbliża się niebezpiecznie do zera, tym bardziej trzeba się skupić na dobrostanie - na uzupełnieniu braków energii.
Powroty do... czyli o ładowaniu mentalnych baterii
Przyszedł więc i na mnie czas, by chwilę odpocząć. Odłożone "na później" projekty szydełkowe nabierają kształtu. Gdy mam moce przerobowe, to wracam do przerabiania kursów, które poszły w odstawkę na kilka miesięcy. Zaczynam uprzątać pokój, który dorobił się kilku nowych warstw geologicznych w wyniku długotrwałego powtarzania sobie: "to problem na czas po kursie". Mam nadzieję znaleźć ukochane pióro, które gdzieś zaginęło między jednym a drugim przerzucaniem papierów, pospiesznym pakowaniem na konferencję czy inne wyjście, w czasie, gdy bieżące problemy sprawiały, że naprawdę ciężko było skupić się na spokojnym odkładaniu rzeczy na miejsce. Wygrywała reaktywność, potrzeba chwili, quiz, funkcjonalność czy praca do napisania, wymyślanie architektury nowego rozwiązania czy naprawianie błędów w aplikacji. Tak drobne rzeczy jak na przykład rozpakowanie plecaka wypadały z głowy i nie wracały do momentu, gdy plecak był znów potrzebny,
Ten czas był bardzo owocny i myślę, że jeszcze napiszę podsumowanie z tego czasu. Kiedyś. Mam nadzieję. Lista pomysłów znów się powiększa. Na razie staram się oszczędzać siebie, przejść w nieśmiertelnym Neverwinter Nights kampanię Hordes of the Underdark, przesadzić roślinki, uszyć pierwszy patchwork, dokończyć ozdoby na wielkanoc. Mam jeszcze w tle inne projekty edukacyjne, które wypadałoby również skończyć, niektóre bardziej ograniczone czasowo, inne mniej.
Wciąż jednak z tyły głowy mam lekcję, którą nieustannie odrabiam, starając się, by przy każdej iteracji bardziej dbać o siebie - lekcję odpoczywania. Lekcję wręcz planowania odpoczynku, by nie zaniedbywać podstawowych potrzeb zarówno ciała, jak i głowy, ale też ducha czy czegoś niedookreślonego, co dopomina się o odrobinę więcej tajemnicy i magii w codzienności.
Lekcja ta brzmi: odpoczynek to nie coś, na co należy zasłużyć pracą, godzinami nauki czy osiągnięciami. To coś, co jest nie tylko moim prawem, lecz obowiązkiem, zobowiązaniem wobec siebie. Tak, mogę czasowo ograniczać zaangażowanie na rzecz odpoczynku, by osiągać cele, które są kluczowe dla poprawienia jakości mojego życia. Są w końcu sytuacje, gdy trzeba uruchomić nawet rezerwy sił, by osiągnąć cel. Trzeba jednak mieć z tyłu głowy plan uzupełniania tych rezerw, a potem odbudowywania zasobów. I realizować go z podobną konsekwencją, jaką wcześniej charakteryzowało nas dążenie do celu.
Docenienie siebie i tankowanie na dalszą drogę
Odpoczynek po sukcesie smakuje zupełnie inaczej, niż odpoczynek po projekcie, który co prawda wiele dał, ale nie zaoferował tego, czego najbardziej potrzebowaliśmy na ten moment, czy nie zakończył się spodziewanym sukcesem. I jest to opowieść na zupełnie inny wpis. Jednak nawet w sytuacji, w której nie wszystkie cele zostały osiągnięte, warto doceniać się za wysiłek i dać sobie odpocząć.
W końcu brak sukcesu nie oznacza, że nie byliśmy zaangażowani w działanie, że nie poświęciliśmy czasu i energii na osiągnięcie celu. Podobnie osiągnięcie części założonych sobie celów. Niezależnie od wyniku zużyliśmy sporo zasobów, które trzeba odnowić, by podjąć się kolejnych zadań, tworzyć nowe cele, pracować na kolejne sukcesy.
Docenienie tego, co poszło dobrze, poklepanie siebie po ramieniu za małe sukcesy, które pozwoliły nauczyć się czegoś po drodze, pomoże przy kolejnej okazji zajść dalej. Jednocześnie warto pamiętać, że gdy zabraknie paliwa do dalszej jazdy, to nie da rady podjąć kolejnej próby osiągnięcia celu. Trzeba sobie to paliwo zapewnić - i to zanim okaże się, że wskaźnik paliwa spadł do zera. Wtedy zorganizowanie sobie paliwa będzie o wiele trudniejsze i bardziej wymagające.
