Wady pracy programisty

Paweł Dedio Programowanie 2018-07-21

Dzisiaj chciałbym Wam przestawić wady pracy programisty. Myślę, że warto o nich wiedzieć zanim zdecydujecie się na wybór tej ścieżki kariery. W Internecie możecie spotkać wiele tekstów wychwalających pracę programisty, ale mało jest artykułów, w których autor skupia się na wadach tego zawodu. Na wstępie chciałbym jeszcze zaznaczyć, że ten artykuł będzie mocno subiektywny. Przed napisaniem go rozmawiałem z moimi znajomymi, aby poznać ich odczucia odnośnie pracy programisty – jednak głównie w tekście będą zawarte moje osobiste opinie.

Zmęczenie i ciągła nauka

Jedną z najbardziej odczuwalnych wad jest to, że tej pracy nie da się tak po prostu zostawić i iść do domu po 8 godzinach w biurze. Pracowałem już w kilku firmach i często spotykałem się z sytuacją, gdy w domu myślałem nad tym w jaki sposób rozwiązać problem, z którym akurat mierzę się w pracy. Ma to też swoje pozytywy, bo nieraz zdarzało się, że wpadłem na jakieś rozwiązanie w nietypowej sytuacji – na przykład jedząc obiad czy biorąc prysznic.

Zobacz: forum dla programistów android

Kolejna wada łączy się nieco z tym, co napisałem wyżej. Mianowicie programowanie bywa bardzo męczące – często po ciężkim dniu nie mam ochoty na nic i zamiast mózgu mam wielkiego ziemniaka. Zmęczenie psychiczne jest bardzo specyficzne. Nie da się go porównać do zmęczenia fizycznego na przykład po ciężkim treningu. Objawia się ono tym, że nie jesteśmy się w stanie skupić na niczym i stajemy się nieefektywni. Na szczęście można sobie z tym poradzić. Na mnie najlepiej działają wszelakie aktywności fizyczne – chodzi o to żeby robić coś, co nie wymaga zbytnio myślenia, żeby nasz mózg mógł odpocząć. Dużo firm zachęca swoich pracowników do wysiłku fizycznego, zapewniając na przykład odpowiednie karty. Pracodawcy dobrze wiedzą, że zregenerowany pracownik jest znacznie wydajniejszy 😉

Kolejną bardzo odczuwalną wadą jest konieczność ciągłego podnoszenia swoich kwalifikacji. Niestety, ale nie da się raz nauczyć jednego frameworka („szkieletu”) i korzystać już tylko z tej wiedzy. Oczywiście jest sporo programistów, którzy tak robią, ale z całą pewnością nie można o nich powiedzieć, że są dobrzy w swoim fachu. Cała branża bardzo szybko się rozwija, co jest oczywiście bardzo dobre, ale zmusza nas do ciągłej nauki i bycia na bieżąco.

Również tutaj pracodawcy idą nam z pomocą. Coraz więcej firm decyduje się na wydzielenie pracownikowi specjalnego czasu w ciągu tygodnia, który może przeznaczyć na doskonalenie swoich umiejętności. Ja osobiście spotkałem się z takim rozwiązaniem. W jednej firmie tylko cztery dni tygodnia musieliśmy pracować nad rzeczywistym projektem, natomiast piąty dzień mogliśmy przeznaczyć na co chcieliśmy. Dzięki temu nauczyłem się na przykład programowania reaktywnego.

Klienci i managerowie

Klienci to niestety temat rzeka. Musisz się przyzwyczaić, że bardzo często będziesz pracował dla kogoś, kto nie ma pojęcia na czym polega ta praca. Komentarze „Dlaczego to tyle trwa?”, „Tyle pieniędzy za głupią stronę?” czy „Dla Pana to pewnie maks godzinka roboty” są niestety chlebem powszednim. Klienci nie mają pojęcia, że czasami drobna zmiana wizualna, taka jak zmiana animacji, może być bardzo problematyczna i wymagać kilku godzin pracy. Nie mam na to żadnej rady, musisz się do tego przyzwyczaić lub szukać klientów, którzy znają się nieco na technologii.

Managerowie to kolejny temat rzeka. Powiedzenie „Manager to osoba, która myśli, że 9 kobiet dostarczy dziecko w 1 miesiąc” stało się już klasykiem w branży. Niemniej jest ono bardzo prawdziwe. Kilkukrotnie spotykałem się z sytuacją, gdy w sytuacji kryzysowej manager dorzucał nam nową osobę do zespołu myśląc, że to pomoże nam ukończyć projekt szybciej. Rezultat był niestety odwrotny – traciliśmy sporo czasu na zapoznanie nowego kolegi z projektem, pokazanie mu czego jeszcze brakuje, co należy poprawić i tak dalej. Na szczęście tacy managerowie to mniejszość, ale trzeba na nich uważać i być asertywnym.

Presja czasu

Jeszcze nie było na świecie projektu, który skończyłby się przed wyznaczonym terminem. Musisz się przyzwyczaić do nieustającej presji. Ważne by wyrobić sobie asertywność, ponieważ często będziesz spotykał się z różnymi naciskami od managerów. Kilkukrotnie tłumaczyłem na przykład, że rezygnacja z testów jednostkowych wcale nie przyśpieszy projektu. Wręcz przeciwnie, bo bez testów nasze oprogramowanie będzie bardziej zawodne i będziemy musieli tracić czas na poprawki błędów.

Raz nawet sugerowano mi, abym nie pisał kodu zgodnie ze wzorcami projektowania tylko byle jak, bo nie ma czasu na ładne pisanie. W każdej takiej sytuacji odpowiadałem, że to nie ma sensu i popierałem to odpowiednimi argumentami.

Częste zmiany

Projekty przeważnie trwają kilka miesięcy, czasami nawet dłużej. Przez ten okres wymagania klienta mogą zmienić się diametralnie. To właśnie ciągłe zmiany powodują największy bałagan w kodzie. Czasami klienci dopiero po zobaczeniu już gotowej aplikacji stwierdzają, że coś im się nie podoba i wprowadzają zmiany. Nie jestem w stanie policzyć ile razy musiałem przywracać coś, co usunąłem wcześniej na życzenie klienta. Na szczęście takie ekstremalne programowanie uczy pisania dobrego kodu. Masz świadomość tego, że kod może być zmieniony w każdej chwili, więc pilnujesz się, aby Twój kod był bardzo elastyczny.

Wszyscy są tylko ludźmi

Nie da się napisać wszystkiego samemu. Nie powinniśmy nawet próbować tego robić. Jesteśmy skazani na współpracę z innymi ludźmi i używanie napisanego przez nich oprogramowania. Jednak inni programiści też popełniają błędy. Pisząc jakąś aplikację będziesz korzystał z wielu bibliotek napisanych przez innych. Część z nich będzie miała jakieś błędy lub po prostu nie będą działać tak, jakbyś tego oczekiwał. Nawet Android sam w sobie ma mnóstwo błędów. Musisz się przyzwyczaić do pisania sporo różnych obejść, aby naprawić błędy innych programistów. Ta wada również ma swoje plusy. Dzięki pisaniu takich obejść, nauczysz się sporo o wewnętrznej architekturze komponentów, z których będziesz korzystał.

Myślmy pozytywnie

Mam nadzieję, że nie zniechęciłem Was za bardzo do wyboru tego zawodu. Obiecuję, że był to ostatni taki pesymistyczny odcinek. W kolejnej części opowiem Wam o zaletach tej pracy, a uwierzcie mi – jest ich sporo! Dziękuję, że dotrwaliście do końca i zapraszam do kolejnego odcinka.

Zapraszamy na największe w Polsce Forum dla programistów Android. Jeśli macie pytania odnośnie kariery jako programista – zapraszamy do działu Kariera programowanie.

Zachęcam również do przeczytania poprzedniego odcinka: Typowy dzień pracy programisty



  • NDIE

    Generalnie podpisuje się pod tym „obiyma rencami” jak by to powiedział pewien Bolesław 😂

    Co do klientów to na początku roku zgłosił się do mnie typowy Janusz, „byznesmen” żebym zrobił mu serwis na wzór innego który zrobiłem na zlecenie. Chciał żebym tylko zmienił kolorki i będzie fajnie. Oczywiście go wyśmiałem bo to byłby plagiat. Firma płaci grube pieniądze za coś unikalnego a on chce to samo tylko z drobnymi zmianami za jakieś grosze 😂 więc go poinformowalem, że takie projekty robię tylko po godzinach co trochę wydłuża czas ukończenia projektu i mogę mu to zrobić od podstaw wg jego specyfikacji. Z tyłu zapaliła mi się żarówka,że to będzie kłopotliwy klient i będzie chciał wszystko najtaniej a jak coś się zepsuje to będzie miał pretensje jak by zapłacił za to pół swojego majątku 😂 Miał mi dać znać za kilka dni co będzie potrzebował. Oczywiście tego nie zrobił co mnie też ucieszyło. Odezwał się kilka dni temu żebym się z nim skontaktował. Oczywiście tego nie zrobilem żeby zobaczył jak to jest kiedy ktoś się nie odzywa 🤣

    Jak ktoś nie ma wyboru to bierze wszystko co mu wpadnie. Jak ma wybór i zlecenia robi po godzinach a praca programisty na pełny etat zaspokaja jego potrzeby finansowe to może robić tylko opłacalne projekty dla poważnych ludzi. Nie róbcie dobrze takim cwaniakom. Jak cały świat pokaże im środkowy palec to może zrozumieją jakimi są glupkami 😁

  • Mateusz

    Ja jak wychodzę z pracy to automatycznie przestaję myśleć o tym co mam zrobić i co robiłem. Nie ma co się przepracowywać bo to jednak tylko praca. Poza pracą zawsze są ważniejsze rzeczy do roboty :). Co do nauki to dodatowa wiedza zawsze przydaje się przy zmianie pracy także warto nadążać za trendami. Ja jakoś nie czuję się mocno zmeczony po pracy. Może warto zmienić projekt na jakiś przyjemniejszy? 🙂

    • Paweł Dedio

      Masz racje, dużo zależy od firmy i projektu. Jednak w tym artykule chciałem opisać wszystkie wady z jakimi można się spotkać w tej pracy w ogole.

      • Grzegorz Gorol

        To akurat cecha ludzka a nie zawodowa. Jeśli ma się taki charakter to w każdej pracy tak będzie i w każdym zawodzie. Wielu głupich programistów (ciężko inaczej to nazwać) śmieje się z life work balance a potem marudzi…