Praca programistki – 10 ważnych lekcji po prawie dekadzie w zawodzie!

_Praca programistki – 10 ważnych lekcji po prawie dekadzie w zawodzie!

Jako programistka pracuję od 2011 roku. Niektórym może się to wydawać długo, dla innych to wciąż brzmi dopiero jak początek kariery. W moim odczuciu – na pewno jest przede mną jeszcze dużo do nauczenia i kolejne doświadczenia zawodowe do zebrania, choć myśl o tym, że pracuję w zawodzie już prawie od dekady – niewątpliwie łechta moje ego! Dzisiaj chciałabym się jednak podzielić z Tobą dziesięcioma lekcjami, które wyniosłam z różnych firm i projektów, które były kluczowe dla mojej kariery i dały mi pewność siebie, by rozwijać się w tej branży – w końcu praca programistki, to nie tylko pisanie kodu! 

1. Kto pyta – nie błądzi!

W szkole podstawowej i liceum nie miałam problemów z nauką (a przynajmniej jeśli chodzi o matematykę i informatykę) – większość materiału “wchodziła” z łatwością. Wierzyłam więc, że programować jakoś tam umiem i na pewno na studiach będzie to dla mnie kaszka z mleczkiem. Na mojej uczelni studenci pierwszego roku mogli wybrać “potok” i zdecydować czego i jak chcą się uczyć – były dwa “potoki”: programowanie imperatywne, gdzie prowadzący zakładał, że studenci nigdy wcześniej nie programowali; oraz programowanie funkcyjne, dla osób, które z kodzeniem miały już bliższe spotkania trzeciego stopnia. 

Jako pewna siebie (a może i trochę arogancka) młoda studentka – stanęłam do testu, który miał zakwalifikować nas do różnych potoków. Udało się i zostałam przyjęta do tego zaawansowanego – choć wtedy nawet nie wiedziałam, z czym programowanie funkcyjne się je i jak bardzo ten wybór wpłynie na resztę mojej uniwersyteckiej edukacji. Okazało się, że nie tylko zajęcia z programowania, ale też w sumie wszystkie inne, były podzielone na grupy z uwzględnieniem wybranego potoku, a ja wyładowałam na zajęciach z różnych matematyk, czy programowania z grupą naprawdę mądrych i szybkomyślących osób. Po raz pierwszy w życiu czułam, że totalnie nie nadążam za materiałem, podczas gdy inne osoby w sali odkrzykiwały: “to trywialne!” w odpowiedzi na pytania prowadzącego. 

Dlaczego o tym piszę? Otóż moja nauka matematyki na studiach była tak naprawdę pierwszą lekcją tego, że warto pytać i nie ma w tym żadnego wstydu. Początkowo bałam się, że koledzy i koleżanki z grupy uznają mnie za głupią oszustkę, która nie powinna być na zajęciach grupy zaawansowanej i przez pierwszy semestr próbowałam samodzielnie ogarnąć materiał. I wiesz co? Nie było to ani szybkie, ani efektywne rozwiązanie! Dopiero kiedy zaczęłam pytać na zajęciach, dotarło do mnie, że takich jak ja – osób zbyt mało pewnych siebie, by zadać pytanie na forum sali, bojących się wypaść na nieuków – jest znacznie więcej! 

Tę postawę przeniosłam również do pracy. Znacznie łatwiej i szybciej pracuje się w zespole, w którym każdy wie, że może pytanie zadać, nie bojąc się o bycie źle ocenionym przez innych. A uwierz mi – tak naprawdę nikt z Twojego zespołu nie siedzi po nocach, czekając na Twoje potknięcie! Twoim współpracownikom również zależy na tym, żeby robota była zrobiona szybko, dobrze i w dobrej atmosferze, a zadawanie pytań oszczędza dużo czasu, pieniędzy i stresu. Dodatkowo – warto pamiętać, że osoby, które są bardziej doświadczone od Ciebie, chętnie dzielą się swoją wiedzą, a z drugiej strony (wcale nie rzadko) okazuje się, że zadanie, z którym się mierzysz może być problematyczne też dla innych osób w zespole – Twoja szczerość i otwartość w tym wypadku przysłuży się więc nie tylko Tobie, ale i innym! 

Pytaj, więc jeśli czegoś nie wiesz; jeśli potrzebujesz szczegółowego wytłumaczenia zadania; jeśli nie wiesz jak rozgryźć jakiś problem lub jeśli potrzebujesz opinii innych dotyczących proponowanego rozwiązania czy projektu.  

2. Bycie “najmądrzejszą osobą” w zespole nie jest dobre dla Twojego rozwoju.

Tak długo, jak czujesz, że wciąż się uczysz i otaczasz się osobami, które możesz pytać o radę i opinię – tak długo się rozwijasz. Jeśli czujesz, że często bywasz “najmądrzejszą osobą” w pokoju podczas burzy mózgów – na przykład nikt nie kwestionuje Twoich opinii i decyzji, a wszystko, co zaproponujesz “przejdzie” – to znaczy, że czas na zmianę. Zmień projekt, zmień zespół, zmień firmę. Tylko tyle i aż tyle – pracując (zwłaszcza jako programistka) powinnaś ciągle się czegoś uczyć. I bycie “najmądrzejszą osobą” bardzo utrudnia ten proces.  

3. Krytyka Twojej pracy nie jest krytyką Twojej osoby.

Wiadomo, że każdy kiedyś pisze program z deadlinem “na wczoraj” i wtedy presja czasu lekko przyćmiewa nam finezję. Jeśli jednak tylko mam na to czas – wkładam w pisanie kodu całe swoje serce i dbam o każdy szczegół. Kiedy więc później słyszę krytykę bądź po pół roku od napisania danego programu okazuje się, że z oryginału nie pozostało już nic – odbieram to jednak trochę osobiście. Jak taki lekki policzek.  

A przynajmniej tak odbierałam to na początku swojej kariery. Pierwsze code reviews były dla mnie bardzo stresujące – czy okaże się, że jestem beznadziejna i mój kod jest do dupy? Ale code review wcale nie jest po to, żeby doszukiwać się “beznadziejności” wśród współpracowników. Każdy z nas – nawet ci najlepsi – popełnia błędy. Testy pomagają nam wyłapać ich część, ale jednak spojrzenie drugiej osoby może pomóc znacznie ulepszyć implementację, bądź wyłapać błędy w logice czy interpretacji zadania, upewnić się, że pisząc, wzięłaś pod uwagę każdy scenariusz. Często takie błędy są trudne do wyłapania samodzielnie – zupełnie jak literówki w tekście, który sama napisałaś! 

Nie bój się zatem prosić o ocenę Twojej pracy i traktuj ją, jako kolejną lekcję i dobre doświadczenie. I pamiętaj też, że (w zależności od wielkości firmy) czas życia danej linijki kodu jest bardzo ograniczony – niezależnie więc jak dużo serca w nią włożysz, za jakiś czas przyjdzie ktoś, kto napisze ją od nowa i wcale nie dlatego, że ma Cię za słabą programistkę – po prostu zmienia się projekt, zmieniają się wymagania, zmienia się nasza wiedza i umiejętności. Być może osobą, która napisze Twój stary program od nowa, będziesz właśnie Ty?  

4. Nie trać wiary w siebie w trakcie burz mózgów!

Ostatnio pracuję nad dosyć skomplikowanym i rozbudowanym projektem. Pracuję z grupą programistów i programistek, a także koordynuję komunikację i współpracę z innymi zespołami. Grupa osób zainteresowanych postępami naszej pracy tylko rośnie. Rośnie też liczba opinii o tym, jakie rozwiązania powinniśmy implementować. Wypowiadają się nie tylko członkowie mojego zespołu, ale też “seniorzy” – starsi programiści z innych zespołów. Ich doświadczenie przyćmiewa innych członków naszego zespołu, co niekiedy onieśmiela. 

Jeden z członków mojego zespołu był niedawno dosyć zdołowany i sfrustrowany – 3 seniorów dyskutowało między sobą o jego implementacji, każdy z nich proponując inne rozwiązanie i wypowiadając swoje opinie. Chłopak odebrał to jako sygnał, że jest “zbyt głupi”, by samodzielnie odpowiadać za tę część projektu. Powiedziałam mu wtedy, że tak to już bywa, gdy pracuje się z mądrymi i doświadczonymi osobami – programiści są osobami, które mają opinie o wielu sprawach związanych z pracą i chętnie się nimi dzielą. Im więcej doświadczenia – tym więcej tematów, o których się wypowiadają. W naszym wypadku jednak – te osoby proponują rozwiązania w dobrej wierze; każda z nich “optymalizuje” rozwiązanie zgodnie z tym, na czym jej zależy. I tak – jeden z tych seniorów zastanawia się nad tym, jak najlepiej zabezpieczyć się przed błędami i nadużyciami ze strony naszych Użytkowników, ponieważ chce ograniczyć do minimum późniejszą “opiekę” nad wdrożonym rozwiązaniem; podczas gdy mojemu koledze w dużej mierze zależy na łatwości korzystania z opracowanego narzędzia. 

Samo uświadomienie sobie, że wszystkie osoby zaangażowały się w projekt, bo bardzo im się on podoba i zależy im na tym, żeby był zrealizowany jak najlepiej – pomogła mojemu koledze zrozumieć, że w żadnym stopniu nie jest głupi, po prostu ma inne priorytety niż wspomnieni “seniorzy”. Dzięki temu spojrzał też na proponowane rozwiązania z bardziej otwartą głową – nie odbierając ich jako krytykę, ale pomoc; nie biorąc ich za żądania, ale sugestie. 

Oczywiście, zastój w projekcie spowodowany wielogodzinnymi dyskusjami może być frustrujący, ale nie powinien w żadnym stopniu wpływać na Twoją samoocenę! Jeśli nie czujesz się dobrze w trakcie takiej dyskusji – weź przerwę, zastanów się na spokojnie, na czym Tobie zależy, a co nowego wnoszą inne propozycje i pozwól sobie spojrzeć na daną debatę z innej strony. 

5. Nie bój się mówić “nie” oraz prosić o pomoc, gdy nie wyrabiasz…

Nie wiem, czy też tak masz, ale dla mnie przyznanie się, że nie nadążam z pracą i potrzebuję wsparcia w postaci dodatkowej pary rąk, wciąż jest bardzo trudne. Pracy zawsze jest więcej niż pracowników, zawsze jest coś do roboty, a w “gorących okresach” nie wiadomo w ogóle, w co ręce wsadzić. Choćbym nie wiem, ile godzin dziennie spędzała, pracując, czasem jest tego po prostu za dużo dla jednej osoby. 

Dlatego też jedną z ważniejszych (i najtrudniejszych!) lekcji, które dostałam będąc programistką jest nauczenie się mówić “nie” dla nowej roboty, kiedy wiem, że nie dam rady. Mam tendencję bycia Super Bohaterką – podwijam rękawy i pracuję tak długo, aż będzie zrobione. Dopóty, dopóki oczy same mi się nie zamkną. Ale to – moja droga – jest prosta droga do wypalenia zawodowego.  

Jeśli więc jesteś zawalona pracą, a wciąż spływają do Ciebie nowe bugi, raporty i “feature requests” – nie bój się powiedzieć “nie mogę”, “później”, “nie teraz”. Ustalaj priorytety i pytaj swój zespół i przełożonych o pomoc w ustaleniu, co jest najważniejsze. Nie próbuj rozwiązać wszystkich zadań od razu – skup się na tym, co jest niezbędne i jeśli ktoś będzie próbował wcisnąć Ci “taki mały task, nie zajmie więcej niż 5 minut” – odmawiaj, bądź odkładaj go do kolejki rzeczy do zrobienia z niższym priorytetem.  

Nie bój się też poprosić o pomoc. Jeśli się nie wyrabiasz – może jest to spowodowane rozmiarem projektu, do którego zostałaś przydzielona? Nawet największe alfy i omegi nie dadzą rady samodzielnie ogarniać wielowarstwowych projektów w krótkim czasie – Twój szef na pewno spróbuje przydzielić Ci kogoś do pomocy, jeśli tylko o to poprosisz. I uwierz mi – nikt nie będzie kwestionował Twoich kwalifikacji – jesteś dość dobra do tej roboty, ale tak jak każdy człowiek masz co najwyżej dwie ręce…! 

Ja przez jakiś miesiąc próbowałam pracować nad wszystkim, skupiać się nad wszystkimi taskami i bugami i dowozić cały projekt samodzielnie, aż w końcu pękłam i zaczęłam trochę naokoło i nie wprost wspominać, że przydałaby mi się pomoc. Teraz mam w zespole 5 osób i razem pracuje nam się znacznie lepiej! W końcu praca programistki nie polega na robieniu wszystkiego samodzielnie, ale też na umiejętności pracy w zespole, planowania i projektowania…

6. Tylko pozytywny lub tylko negatywny feedback, to żaden feedback!

Zarówno dawanie, jak i przyjmowanie krytyki jest ciężkim kawałkiem chleba. Zwłaszcza jeśli ten chleb ma bardzo specyficzny, konkretny smak i w dodatku – zawsze ten sam. 

Dobry feedback to taki, po którym wiesz, co robisz dobrze lub w czym masz braki i co możesz zrobić (konkretne kroki), by być lepszą. Taka konstruktywna krytyka dotyczy pracy, a nie osoby, i umiejętności, które dana osoba może szlifować. Osobiście uwielbiam czytać feedback kierowany do mnie – często dowiaduję się, że moi współpracownicy doceniają rzeczy, które nie przyszłyby mi nawet do głowy! Poza tym dzięki temu też wiem, nad czym warto pracować (by stać się jeszcze lepszą, bądź, by w ogóle wypracować pewną umiejętność).  

Feedback, który jest tylko pozytywny, nie mówi Ci, co możesz poprawić w swojej pracy. Hamuje on więc Twój rozwój. Z drugiej strony – tylko negatywy mocno demotywują, a także nie pozwalają odkrywać swoich mocnych stron, które można wykorzystywać w pracy – czyli znowu – hamuje to Twój rozwój! Dlatego dając feedback, bądź prosząc o ocenę Twojej osoby – staraj się by był to pełny obraz i uwzględniał zarówno mocne strony, jak i to, co wymaga pracy. 

7. Otaczaj się mentorami i dołączaj do grup i społeczności.

Mentor to zazwyczaj osoba, która ma trochę więcej doświadczenia niż Ty. Ktoś, kto chętnie podzieli się nimi z Tobą, kto Cię wysłucha, podsunie rozwiązanie, poradzi, podpowie… Mentorów możesz mieć wielu – niektórzy mogą być po prostu Twoimi przyjaciółmi lub współpracownikami, ale możesz też mieć nieco bardziej sformalizowaną relację z mentorem bądź mentorką. Najważniejsze w tej relacji to zaufanie pomiędzy Tobą a tą drugą osobą oraz poczucie, że ta osoba poświęci Ci swój czas. 

Z mentorem możesz rozmawiać o różnych rzeczach – sprawach technicznych (np. kiedy pracujesz nad jakimś projektem i zastanawiasz się, jak najlepiej ugryźć rozwiązanie); sprawach “miękkich” (np. kiedy masz problem z innym członkiem zespołu i nie potrafisz samodzielnie rozwiązać konfliktu); sprawach związanych z planowaniem kariery i cokolwiek jeszcze leży Ci na wątrobie! Mentor to osoba, od której możesz się uczyć i której zależy na Twoim rozwoju osobistym.  

Warto również dołączać do różnych grup i społeczności – z jednej strony poszerzasz swoją sieć kontaktów zawodowych, z drugiej – zyskujesz możliwość wymiany opinii i zadawania pytań związanych z pracą. I – co najważniejsze – dzięki temu dostrzeżesz, że nie jesteś jedyna i wiele osób boryka się z podobnymi problemami i wątpliwościami (niezależnie od tego, czy są na początku swojej kariery, czy to już wieloletnie wyjadaczki).  

Zachęcam do dołączenia do Grupy Super Programistek na Facebooku – to może być Twoje pierwsze (albo i kolejne!) miejsce w sieci, gdzie poczujesz się dobrze, swobodnie i komfortowo, by pytać i dzielić się opiniami. 

8. Nie bój się chwalić swoimi osiągnięciami!

Czy też tak czasem masz, że nawet jeśli zrobisz coś… zajebistego i wszystkim wokół opadają szczęki, to machasz tylko ręką mówiąc “e, to nic takiego”? 

Ja mam tak często. Pracuję nad projektem, który poniekąd dotyka wszystkich zespołów w firmie, ale kiedy ktoś wspomina, że to taki super projekt, ja zastanawiam się na głos, czy na pewno. Kiedy słyszę, że ktoś komuś pokazał mój kod – w pierwszej chwili myślę, że pewnie był użyty jako przykład beznadziejnej implementacji, choć w rzeczywistości wykorzystywany jest jako wzór, przykład dobrych rozwiązań. W końcu jestem też osobą, która słysząc jakikolwiek komplement, odpowiada “e, to nic takiego” bądź w jakikolwiek inny sposób umniejsza temat. 

Ja nad tym pracuję. I jeśli też tak masz – to też zacznij. Twój sukces jest Twoim sukcesem, a Ty powinnaś znać swoją wartość! Co więcej – jeśli sama się nie docenisz, inni tym bardziej nie będą. To Ty musisz zadbać o to, żeby Twoje umiejętności i osiągnięcia były dostrzegane, nikt inny tego za Ciebie nie zrobi. 

9. Przekuwaj porażki w sukces.

Każdy popełnia błędy – chciałabym napisać, że to najważniejsza lekcja, którą się chcę z Tobą podzielić, choć tak naprawdę każda z tych wymienionych jest tą “najważniejszą”. Wiele z nas ma jednak pewien kompleks – usilnie wierzymy, że wszyscy wokół są idealni i przez to również staramy się takie być. A w idealnym świecie nie ma miejsca na potknięcia, a każdy błąd traktowany jest niesamowicie poważnie.  

Nie mówię, żeby błędy olewać, ale każdy popełnia błędy i Ty też możesz. Masz na to moje pozwolenie (teraz czas na Ciebie – czy Ty pozwalasz sobie na popełnianie błędów?).  

Najważniejsze, to po każdym takim potknięciu jest podnieść się, otrzepać pył z kolan i nie tylko iść dalej, ale też jeszcze czegoś się z tego nauczyć i wyciągnąć wnioski. W końcu uczenie się na błędach jest… ludzkie. Próbuj więc przekuwać swoje porażki w sukces – wdrożenie projektu na produkcję nie poszło płynnie i system padł na 2 godziny? Zastanów się, co poszło nie tak, zaproponuj systemowe rozwiązanie, które pomoże uniknąć podobnych błędów w przyszłości tak Tobie, jak i innym pracownikom firmy! I wiele innych! 

10. Praca programistki jest dla Ciebie – Jesteś dość dobra, by dostać awans, podwyżkę, czy ofertę marzeń!

Ten punkt jest w gruncie rzeczy podsumowaniem wszystkich poprzednich – bez wiary w siebie i ciągłej nauki bez skrępowania poprzez zadawanie pytań, czy przyjmowanie konstruktywnej krytyki bez obrażania się, ciężko jest się rozwijać i osiągać sukcesy. Bez analizy swoich błędów i wyciągania z nich wniosków na przyszłość nie tylko dla siebie, ale też dla reszty zespołu, ciężko jest być dostrzeżoną przez szefostwo i innych współpracowników. Ciężko jest więc czuć, że jest się “dość dobrą”, by prosić o podwyżkę, awans, czy zmienić pracę. 

Nie idź tą drogą! Uwierz mi, jesteś dość dobra, by ogarnąć to wszystko, a nawet jeszcze więcej!  

A jeśli szukasz nowej pracy – polecam Ci mojego najnowszego e-booka, którego premiera już za tydzień: “Twoje programistyczne CV: wyróżnij się z tłumu i znajdź pracę marzeń”, gdzie opowiadam między innymi, jak prezentować swoje dotychczasowe osiągnięcia i doświadczenie w procesie szukania pracy. Co jeszcze dodałabyś do tej listy?