Praca Programowanie

Jak wygląda praca programisty?

Pinterest LinkedIn Tumblr

Osoby, które chciałby zostać programistą zapewne chciałby dowiedzieć się jak z grubsza wygląda taka praca. W tym wpisie postaram się przybliżyć się charakterystykę tej pracy.

Dobra informacja jest taka, że praca programisty w każdej firmie będzie wyglądała podobnie. Różnica będzie polegała jedynie na proporcjach w czasie spędzonym na danym zadaniu.

W wielkim skrócie można powiedzieć, że praca programisty polega na pisaniu, testowaniu i wprowadzaniu do użytku oprogramowania. Programiści pracują nad różnymi rodzajami oprogramowania, takimi jak:

  • aplikacje internetowe,
  • aplikacje mobilne,
  • gry komputerowe,
  • oprogramowanie dla firm i wiele innych.

W pracy programisty ważną umiejętnością jest rozwiązywanie problemów (zazwyczaj logicznych) oraz uczenie się nowych technologii. Programiści pracują zazwyczaj z zespołem, współpracując z innymi programistami, projektantami i testerami oprogramowania. Dzisiaj programista musi znać język angielski w stopniu minimum dobrym aby przeczytać i zrozumieć dokumentację oraz móc się porozumieć z innymi członkami zespołu.

Wchodząc bardziej szczegółowo w obowiązki programisty, to możemy to rozpisać następująco.

Nowe funkcjonalności i bugi (features and bugs)

Każda szanująca się firma cały czas rozbudowuje swój produkt, testuje różne rozwiązania. Do tego potrzebni są właśnie programiści by założenia biznesowe wdrożyć w życie. W większości przypadków to właśnie tego typu zadania wykonuje programista.

Efektem ubocznym tych nowych funkcjonalności są błędy (bugi). Powstają one na wiele sposobów – coś za szybko było wdrożone, źle przetestowane. W skrajnych przypadkach klient coś źle zrobił i spowodował scenariusz, którego nikt nie przewidział. Czasami bywa tak, że błąd można poprawić zmieniając jedna linijkę kodu. Ale aby to zrobić trzeba poświęcić cały dzień na analizę.

Stosunek pracy nad nowymi rzeczami a błędami wynosi około 80/20 lub 90/10.

Testy, nie zapominajmy o testach!

Każda funkcjonalność (jak i błąd) powinna być przetestowana. To też istotna część pracy programisty.

A czym są testy? Na przykład, jeśli programista stworzył aplikację do robienia zakupów, to musi upewnić się, że można w niej prawidłowo dodawać i usuwać produkty z koszyka, a także, że wszystko jest wyświetlane poprawnie na ekranie.

Jak widzimy na powyższym przykładzie, tego typu dodatkowy wysiłek jest gwarantem jakości.

Analiza wymagań funkcjonalnych i spotkania (refinements, backlog)

Wszystkie te nowy „ficzery” i „babole” muszę gdzieś się znajdować. Najczęściej taką składnicą pomysłów jest backlog. W takim backlogu, zazwyczaj product owner, ustala priorytety. Im zadanie wyżej na liście tym jest ono ważniejsze.

Backlog sprintu - czyli bierzące zadania do wykonania (wersja karteczkowa)
Backlog sprintu – czyli bierzące zadania do wykonania (wersja karteczkowa)

Czytaj więcej: Co to jest backlog?

Aby omówić zadania z backlogu cały zespół spotyka się np. dwa razy w tygodniu i je omawia. Tego typu spotkania często nazywa się refinementami (lub planningami). To kluczowy moment by zadać ważne pytania biznesowi czy zastanowić się nad zależnościami w innych miejscach. I te zależności są też istotne. Czasem to może być zmiana w bazie danych, innym razem zmiana w API, a w jeszcze innym wymagana będzie synchronizacja innych zespołów. W tym ostatnim przypadku mogą pojawiać się już poważniejsze problemy, bo trzeba współpracować na dużo wyższym poziomie.

W zależności od stażu, poziomu doświadczenia (stanowiska), taki programista może brać udział w jeszcze innych spotkaniach. Mogą to być spotkania z architektami, gdzie trzeba sprawdzić jakieś rozwiązanie czy sprawdzi się do danego zadania. Czasami trzeba zrobić jakiś research narzędzia czy technologii.

Tego typu spotkania zajmują około 20-30% czasu pracy. Może to się różnić w zależności od poziomu doświadczenia programisty czy poziomem skomplikowania problemu.

Nauka

Dzisiejsze niemal każde ogłoszenie o pracę posiada specjalną rubrykę – budżet szkoleniowy. Można go wydać na szkolenia stacjonarne, online czy konferencje. Nauka, to też istotny element pracy programisty. I nie chodzi tutaj o uczenie się kompletnie nowych rzeczy ale też robienie tzw. proof of concept (tzw. prace koncepcyjne), który rozwiąże jakiś problem.

Są firmy, które same z siebie pozwalają pracownikom np. co drugi piątek poświęcić pół dnia (a nawet cały) na naukę. Jeżeli wyszło nowe narzędzie, to ten dzień jest idealnym by się nim pobawić i sprawdzić jak może usprawnić pracę naszego zespołu.

Znam też przypadek firmy, która zorganizowała kompletny kurs przebranżawiający na programistę. Każda osoba z tej firmy mogła spróbować (np. ktoś z HR). Po pół roku intensywnych zajęć można było „zmienić” stanowisko.

Podsumowanie

Jak widzimy praca programisty (i w sumie każdej innych osoby IT), to nie jest „siedzenie przed komputerem”. Jest to ciężka praca umysłowa. Zdarzają się okresy mniej intensywne ale są też takie gdzie po dniu pracy może boleć głowa od myślenia.

Od ponad 5 lat dzielę się swoją wiedzą na temat elektroniki użytkowej. Tworzę poradniki technologiczne rozwiązujące realne problemy napotykane podczas użytkowania sprzętu. Recenzuję elektronikę taką jak routery, audio, smartfony, laptopy itp.

komentarze 2

  1. Wbrew pozorom to ciężka i wymagająca praca, która przynosi najlepsze efekty po pewnym czasie. Nie mówi się o tym, że najlepsi programiści pracują po 12-16 godzin dziennie, tylko o tym jak dużo i „łatwo” zarabiają. Fajnie, że w artykule jest wzmianka o ciągłej nauce, która w tym zawodzie jest codziennością.

    • Piotr Cichosz Odpowiedz

      Nie wiem skąd ta informacja o najlepszych programistach pracujących po 12-16. To chyba jakiś mit. Najlepsi tyle nie pracują. Najlepsi pracują tyle co inni a nawet mniej :).

Skomentuj