Zawód "programista" - trudny czy nie?

Pracowałem jako programista i niedługo pewnie znowu zacznę.

Ten zawód jest owiany dziwną sławą. Niektórym się wydaje, że to trudny zawód, ogarniać te wszystkie kody. Ale czy faktycznie tak jest? Czy praca programisty jest trudna?



To zależy.

Samo programowanie, jeśli wiesz co robisz, jest łatwe.

Jeśli wiesz co robisz. To jest klucz.

Musisz trochę jednak to programowanie ogarniać. A żeby ogarniać musisz mieć wiedzę i umiejętności.

A na to trzeba czasu. Teraz nastała moda na to, że wszyscy się uczą programować w trybie ekspresowym. I myślą, że w kilka tygodni czy miesięcy będą w stanie się nauczyć programować jak zawodowcy, którzy mają za sobą lata praktyki.

No nie, to tak nie działa. Popatrzcie na to, jak to wygląda w innych dziedzinach. Jak ktoś chce się nauczyć języka obcego, śpiewać czy rysować, to musi poświęcić na to masę czasu. Latami ludzie się uczą. Czemu więc zakładać, że nauka kodowania jest łatwiejsza od nauki innych umiejętności? Nie mówię, że kodowanie jest jakieś wybitnie trudne, ale mimo wszystko. Jest to pewna umiejętność, którą trzeba ćwiczyć latami.

I dopiero potem staje się czymś łatwym.

Jednak nawet jeśli umiesz programować i jest dla ciebie łatwe, nie znaczy to wcale, że będziesz "wiedzieć co robić". Czasem jesteś zwykłym psem w kosmosie. Takim jak ten:


via GIPHY

Owszem, jak masz wolną rękę i mówią ci:

- zrób aplikację, która robi A, B, C oraz D.

To robisz. Bo to w sumie najbardziej szczęśliwa opcja. Zrobienie od zera aplikacji, która robi coś konkretnego. To można robić od niechcenia, gadając z kimś w międzyczasie i pijąc piwo, a i tak zrobisz. Bo pisanie kodu od zera jest nieznośnie lekkie.

edit 17 listopada 2018: taka uwaga uzupełniająca - mam na myśli tutaj tylko pisanie kodu, jednak programista tak naprawdę na tym mitycznym pisaniu kodu nie spędza wcale całego dnia. Wiele czasu trzeba poświęcić na pracę koncepcyjną. I to bywa trudniejsze. Chociaż znowu - dużo zależy od doświadczenia. Jeśli robisz coś, co ci się zdarzało robić tysiące razy, to tej pracy koncepcyjnej będzie mniej i pozostanie zakodowanie idei, które masz w głowie. Wtedy faktycznie będzie to lekkie... pod warunkiem, że środowisko pracy pozwoli ci na to.

Jednak czasem tak, że idziesz do firmy i na dzień dobry wpuszczają cię w maliny.

Nie pozwalają robić od zera, a każą rozwijać już istniejącą aplikację. Dzieło twoich kolegów z pracy, którzy przez ileś miesięcy przed tobą klepali kod w języku programowania i wymyślali różne dziwy. Czasem lepiej, czasem gorzej, ale zwykle i tak dość słabo o.O

Tak, tak, słabo napisane aplikacje to codzienność w pracy programisty. W slangu programistów istnieje nawet specjalne określenie na źle napisany i nieczytelny kod - "spaghetti code". Rozumiecie, że taki długi i splątany, że ciężko odwinąć, oddzielić poszczególne części od siebie.

No i musisz taki kod przeglądać i próbować go zrozumieć, co czasem jest bardzo trudne. To trochę jak interpretacja trudnego wiersza. Nie wiadomo, o co chodziło poecie/programiście i często musisz wprost pytać innych, "co poeta miał na myśli?", bo inaczej nie zrozumiesz.

To cię może bardzo spowolnić i sprawić, że napisanie czegokolwiek będzie wiązało się z dużym nakładem pracy.

Szczególnie, że nie wystarczy zrozumieć taki kod, bo też trzeba dopisać wtedy swój kawałek, który będzie pasował idealnie do całej reszty. Wyobraź sobie, że nie tylko masz zanalizować wiersz np. Mickiewicza, ale również dopisać swój własny kawałek, tak żeby nie odbiegało to stylem od tego, co napisał Mickiewicz. Wyobraź sobie, że masz napisać dalszą część inwokacji z Pana Tadeusza i pisać trzynastozgłoskowcem.

Chociaż porównanie z poezją jest trochę bez sensu, bo poezja jest piękna - a jak wspominaliśmy - kod źródłowy rzadko jest piękny. Zwykle to syf. I jako programista musisz się poruszać w tym syfie jak szambonurek. Za to ci w końcu płacą (a ludzie się dziwią, że programiści zarabiają więcej niż normalny człowiek - sorry, ale za brudną robotę się płaci więcej. Jakby płacili normalnie, to nikt by nie chciał być programistą).

Druga sytuacja, w której możesz przestać mieć pojęcie o tym co robisz to kiepsko określone, mało konkretne wymagania.

Zwykle jest tak, że programiści dowiadują się, co mają robić, z nudnych przegadanych spotkań (na których jest kupę gadania o niczym i niewiele konkretów) oraz ze spisanej po spotkaniu listy zadań.

Problem w tym, że opisy zadań są zwykle dość niejasne, mętnie opisane. Zresztą nie dziwne, biorąc pod uwagę, że często jest tak, że te zadania są na spontanie pisane na spotkaniu. A wiecie jak to jest, jak kilka osób robi burzę mózgu, co chwila ktoś przerywa, a w międzyczasie, w tym całym mętliku, Project Manager pisze skrótowo opis zadania na zasadzie strumienia świadomości.

A potem otwierasz takie zadanie i nie wiesz co masz robić, musisz się i tak dopytywać, o co chodziło. A to zabiera czas i nerwy.

I zaczynamy czuć ciężar egzystencji.

Tak więc, praca programisty bywa dość trudna, ale wcale nie z powodu programowania, bo to akurat najłatwiejszy element w tym wszystkim.

Często wystarczy bowiem umieć tylko minimalnie programować, ważniejsza jest jednak umiejętność odnalezienia się w tym całym chaosie.

Jeszcze inna kwestia, która jest trudna, że musisz się nauczyć odpowiedniej samoorganizacji.

Warto wypracować swój spójny system robienia notatek w pracy. Bo w pracy trzeba od cholery notować różnych rzeczy, albo planować sobie dzień. I warto opracować taki system (albo używać odpowiedniej, sprawdzonej przez nas aplikacji do notowania), żeby się w tym nie pogubić.

Szczególnie, że nasi przełożeni i współpracownicy tak bardzo lubią nas zasypywać toną nowych informacji w każdej godzinie pracy. Nie zapiszesz, to zapomnisz. Zapiszesz, to też możesz zapomnieć. Bo to nie sztuka zapisać w randomowym pliku na pulpicie i potem nie wiedzieć, gdzie to jest.

Sztuka to ogarniać całość. Dlatego na serio się przydaje jakiś sprawdzony przez was sposób notowania bieżących spraw.



Sam musisz też opracować sobie pewien styl pracy i nawyki, które pozwolą ci na maksymalną wydajność. Musisz wiedzieć np. czy jest odpowiednia pora na przerwę?

Ja np. tego nie wiedziałem i często zbyt długo starałem się pracować bez przerwy.

Szczególnie, że czułem się mniej kompetentny od innych i chciałem to nadrobić, więc czasem całe dnie pracowałem bez większych przerw (poza łazienką i robieniem sobie kawy i może jakieś jedzenie, ale też nie zawsze, bo czułem, że nie zasługuję na to, żeby zjeść obiad w pracy).

I potem nie byłem wydajny. Po iluś godzinach bez przerwy i bez jedzenia już nie miałem siły patrzeć na komputer. Nie mówiąc już o tym, że z dnia na dzień i z tygodnia na tydzień coraz bardziej się wypalałem.

A to tak nie działa w tym zawodzie.

Programiści zwykle mogą i powinni robić sobie przerwy.

I są to przerwy nienormowane. Nie tak jak w innych zawodach jest tak, że się ludziom wyznacza przerwy z dokładnością co do minuty. Nie, programiści sami sobie ustalają przerwy kiedy chcą, mogą sobie też wychodzić na miasto i zjeść obiad. Czyli generalnie większe poszanowanie praw człowieka.

Byleby nie przesadzić z tymi przerwami. Chociaż... można powiedzieć, że przerw nigdy za dużo. W jednej firmie, w której pracowałem, byli zatrudnieni ludzie, którzy potrafili grać 1,5 godziny dziennie ciurkiem w Play Station, doliczcie do tego wyjście na lunch 50 minut i jeszcze różne inne krótkie przerwy oraz ciągłe gadanie dowcipów w pracy...

...a mimo wszystko robota się jakoś posuwała do przodu. W zasadzie ci goście byli bardziej efektywni ode mnie (w tamtej pracy akurat robiłem sobie przerwy, ale z drugiej strony na nic mi się to zdało i tak, skoro ogólny nastrój w firmie był taki, że ciężko mi było się na czymkolwiek skupić, skoro ktoś ciągle mnie odrywał od pracy nowym żartem. I to odbijało się na mojej wydajności).

Więc - praca biurowa to niestety również to, że ciągle ktoś przeszkadza i ciężko się skupić. I cała praca staje się o cały level trudniejsza.

Czyli podsumowując: praca programisty bywa trudna, ale raczej nie z powodu programowania, tylko z powodu innych czynników.

Z drugiej strony są momenty, kiedy wystarczy coś zakodzić, wtedy jest to raczej zabawa i coś tam niby robisz, ale ma się wrażenie, że to rozrywka, bo to czyste kodowanie.

Tym niemniej rzadko się to zdarza. Przynajmniej tam, gdzie ja pracowałem.

Komentarze

Popularne posty