Czym zajmuje się programista?

Wstęp

Siemaneczko mordeczki… Misiaczki 🐻 Na to tytułowe pytanie pewnie może każdy domyślać się odpowiedzi. No bo wiadomo, że programista, jak sama nazwa mówi, programuje – zatem czym zajmuje się programistka? – programiką. No to sobie pożartowaliśmy sobie. Jak coś to nie mam nic do programistek i tak na prawdę dziewczyny brakuje was w tym zawodzie 😿

Dzisiaj opowiem o tym jak wygląda praca programisty i developera od tzw. „kuchni”. Także trzymajcie się swoich taboretów, bo będzie wierzgać! 😂

Oczywistości

Programowanie

Tak w zasadzie w każdej pracy programistycznej powinno mieć się styczność z kodem – usuwać, edytować i tworzyć nowy, ale też uczyć się od innych z teamu jak i pomagać jego członkom z problemami. No tutaj mam nadzieję nie będzie jakiegoś zaskoczenia: programista zajmuje się programowaniem i kodem.

Dokumentowanie

Mniej oczywiste, ale jednak dalej wysoko jest pisanie dokumentacji technicznej (i biznesowej) – jakieś opisy tego jak i z czego korzystać. No tutaj generalnie robi się dokumenty adekwatnie do tego co jest w danej chwili potrzebne. Ja nie raz musiałem opisywać instalowanie jakiś modułów do jakiegoś oprogramowania i sposób konfiguracji – inne dla technicznych osób i inne dla tzw. biznesu (a tak w sumie dla tego kogoś kto miał używać modułu).

Gdy pracuje się w grupie to takie dokumentowanie tego co trzeba jest bardzo pożyteczne, zwłaszcza, że nie trzeba za każdym razem latać i wyjaśniać – znaczy ten. wiadomo że to też zależy od kultury pracy, ale to uznajmy, że jest na odpowiednim poziomie 😄

Raportowanie

Jeszcze mniej oczywiste od poprzedniego, ale jednak. Zdarza się, że swoją pracę trzeba ładnie zaraportować przełożonemu. No bywa. Ja się spotykałem z różnymi podejściami do tego tematu. Bywało tak, że musiałem raportować codziennie, a u kogoś innego w ogóle, a jeszcze gdzie indziej raz na miesiąc. Bywało przeróżnie i jakby inne formułki się stosowało. Ja do raportowania nic nie mam o ile jest to zrobione dobrze 😉

Nie raz słyszałem o tym, że ludzie boją się mówić o swojej pracy w raportach. Ja chyba jakiś dziwny i tego nigdy się nie bałem. Po prostu dawałem do informacji to co się udało zrobić, a czego nie. W najgorszych przypadkach byłem pytany czy dam radę coś na jutro zrobić 😄

Reszta (dodatkowych) obowiązków

Wszystko co było wcześniej objaśnione tyczy się typowych prac dla typowych programistów. Aby dalej móc dalej opowiadać muszę wprowadzić słowo „Developer”. A kto to? No mówi się, że programista pisze kod, a developer go tworzy – ma on pieczę nad procesem tego tworzenia – oczywiście w pewnym zakresie. Generalnie to się sprowadza do tego, że musi on więcej rzeczy pilnować

W moim przypadku staję się coraz lepszym Backend Developer-em, a moimi głównymi obowiązkami są sprawy dotyczące rozwoju i optymalizacji oprogramowania po stronie serwera, aczkolwiek zdarza się, że innego rodzaju developerom mówię moje opinie – no tak się może zdarzyć w każdą stronę „nie znam się, ale czy….” 😁 – i co? mój zawód brzmi poważnie? No i taki często jest 😂

Rozmowy z klientami i spotkania

Zanim zacznę omawiać muszę zaznaczyć, że klientem w znaczeniu programistycznym może być też sam szef jak i biznes. To wszystko zależy od sytuacji. Bywają też sytuację gdzie w takiej interpretacji sam dla siebie jestem klientem i to co nie co pomaga pisać lepszy kod (ach te sztuczki psychologiczne). Klientami też mogą być partnerzy biznesowi 🫂

W swoi życiu miewałem tysiące rozmów z klientami. Póki co jeszcze większość z nich była z takimi typowymi klientami (co kupili soft), którym wyjaśniałem oprogramowanie, no albo słuchałem o tym jak bardzo mnie znają 🤫 (to wcale nie były miłe słowa). Dzisiaj można powiedzieć, że mam łatwiej, ale dalej nie jestem pozbawiony spotkań. Z drugiej strony to dzięki spotkaniom i klientom lepiej wiadomo co jest bardziej potrzebne biznesowi. Jeśli zatem planujesz karierę deweloperską z jakimś stackiem technologicznym to miej na uwadze takie aspekty. Nie można być w 100% aspołeczną osobą.

Ciągła nauka i spostrzeganie

O tym powinien powiedzieć każdy dobry developer – kluczem do tego, aby nie zostać w tyle jest ciągła nauka. Też nigdy nie dojdzie się do tego stanu, że się już wszystko potrafi – oj nie 😅 Tego wszystkiego jest tak dużo, że nieraz na rozmowach kwalifikacyjnych można usłyszeć pytanie o tym czy potrafi się googlować – chociaż też pytają inaczej „Jak radzisz sobie z rozwiązywaniem problemów?”, ale nie wystarczy powiedzieć o tym, że się googluje, bo jeszcze napotkasz drugie pytanie „co zrobisz jeśli nie znajdziesz odpowiedzi na internecie?” i wymyśl coś 😉 – no ale tak na serio, bo takie pytanie może paść.

Nauka powinna też łączyć się ze spostrzegawczością, bo warto starać się wprowadzać jakieś optymalizacje do swojej pracy i pracy biznesu. Fajnie jest przeanalizować nową technologię pod kątem tego czy to się może przydać w robocie – ważna jednak sprawa, aby to też miało sen, bo co z tego że w takim NestJS jest fajniejsze mapowanie do DTOsów niż w Symfony, skoro to w Symfony jest całe oprogramowanie – nikt tego nie będzie przepisywać 😂 Także umiar i rozsądek też dobrze do tego włączyć.

Spostrzegawczość też przydaje się do zauważania pewnych rzeczy, które pasuje zoptymalizować – już nie w ramach nauki, a zwykłej codziennej pracy – można to porównać do plastra z opatrunkiem na ranę.

Dbanie o porządek z tym co się robi

To jest sprawa, która wynika z samego programowania, ale nie każdy (przynajmniej początkujący) programista wie, że to co robi ma daleko sięgające konsekwencje. Developerzy są przyzwyczajeni do tego że korzystają z jakiegoś systemu kontroli wersji: najczęściej git – oraz z chmurowego backup-u tego jak np. GitHub czy BitBucket (tego jest wiele więcej). Od wybory takiego systemu trzeba też dbać o przepływ kodu w nim – tutaj jest to już zależne od firmy.

Z mojej strony to staram się jak najbardziej ze wszystkich sił przygotowywać się do każdego powierzonego mi zadania. Staram się robić potrzebną analizę i z niej wywnioskować to czego będę potrzebować i to co mogę zrobić. Gdy jakieś zadanie wymaga dostarczenia jakiś informacji to też daję o tym znać. Ogólnie – staram się zmaksymalizować powodzenie w wykonaniu zadania.

Też gdy zauważam czy coś nie gra, zwłaszcza gdy to jest powiązane z moimi obowiązkami, to zwracam na to uwagę.

Dbać o porządek z kodem można jeszcze robiąc w teamie code review – tym się zajmują oczywiście osoby, które co nie co umieją czytać kod. Code review też jest fajnym sposobem, aby czegoś się nauczyć – samemu czytając jak i gdy samemu jest się poprawianym.

Ważne też jest to, aby pisząc kod trzymać się określonych zasad jak np. wzorce projektowe/strukturalne/architektoniczne itd. No tych rodzai wzorców jest kilka, ale generalnie są uniwersalne.

Wdrażanie kodu

Bo, aby można było testować… no..

Taka czynność, jest też zależna od firmy z którą się współpracuje. Jednym wystarczy dostarczyć kod i oni sobie już z tym poradzą, a innym trzeba ten kod wdrożyć według ich zasad. Najczęściej spotykałem się z takimi sytuacjami, gdzie mogłem na spokojnie wgrywać kod na serwery developwerskie i testowe. Bywałem jednak też w takich sytuacjach, gdzie musiałem klientowi wdrażać na jego serwerze całe oprogramowanie według instrukcji, którą sam dla niego przygotowałem 🤐 Nie raz też musiałem na ich serwerach tworzyć specjalną konfigurację pod takie oprogramowanie. No cóż – różne prace, różne roboty.

Jednak zawsze podczas takiego wdrażania należy, tak jak poprzednio napisałem, zadbać o porządek. Lepiej się wdraża coś nad czym ma się kontrolę 😀

Bycie… informatykiem

No bo nic tak nie wkurza programisty, jak to że jest traktowany jak typowy informatyk, od pomocy przy instalowaniu Windowsa, instalowaniu sterowników oraz podpinaniu drukarki.. Nie mówię, że to nie jest potrzebne, ale nosz.. jestem developerem ja się muszę kodem zajmować…. Czasami na takie sprawy jednak lepiej przymknąć oko. Jeśli to jest jakaś jednorazowa sytuacja to nie ma problemu, ale jeśli trzeba latać za każdym razem to można w końcu powiedzieć, że to nie wchodzi w zakres obowiązków, bo ty masz się zajmować rozwojem oprogramowania, a nie instalować czyiś.

Ja nie lubię zajmować się hardware. Moje podejście do komputera jest takie: działa dobrze? – to dobrze. Do dzisiaj nie wiem jakie są wszystkie podzespoły w moim laptopie. Owszem dysk i ram kiedyś wymieniałem, ale już dawno zapomniałem nawet jakie mam (w sensie markę czy prędkość, bo pojemność jakoś pamiętam). Też mi jakoś uwłacza to, że potrzebna jest moja pomoc do zainstalowania sterowników do drukarki – jak wcześniej – jednorazowo no dobra mogę pomóc, ale jestem przeciwny temu, żeby mi nadać taką rolę na stałe.

Jeśli typowy informatyk to czyta to mam nadzieję, że się nie zraża do mojej osoby – rób swoje – błagam! 🙏

Bycie łącznikiem pomiędzy światami

A to chyba jest nawet gorsza sprawa niż poprzednio opisana. Bywają takie firmy, gdzie ten kto miał programować, miał być developerem zaczyna być łącznikiem pomiędzy IT, a Biznes. W sumie to jest bardzo edukująca w przetwarzaniu informacji sytuacja, bo takie pozorne update i upgrade dla większości znaczy to samo, ale dla IT to są dwa różne pojęcia – niestety to nie jedyna taka sytuacja 😆

Zatem bycie takim łącznikiem to nie prosta sprawa, zwłaszcza, że miało się kodować, a nie przekazywać infosy. To może doprowadzić do frustracji i wyrzeczeń

Podsumowanie

I kończymy w tym momencie, kiedy musiałbym zacząć szukać na siłę reszty zajęć, no a tutaj o to nie chodzi 😉

Jak po tym co napisałem widać, że programowanie, to nie tylko sam kod i jego klepanie na klawiaturze. Nie chcę mówić, że to jakiś nadzwyczajny zawód, ale też jest coś w nim, że nie każdy do niego się nadaje – no chociaż nie każdy nadaje się do wszystkiego, zatem wszyscy jesteśmy wyjątkowi! 😘

Także moje wyjatkowe misiaki. Do następnego! 👋

Subscribe
Powiadom o
guest
0 komentarzy
Inline Feedbacks
View all comments
Włączyć powiadomienia? Bardzo pragnę Dam sobie radę