Blog Dla Młodszych Programistów C#/.NET

wtorek, 18 stycznia 2022
Stale rosnący rozwój technologiczny oraz postępująca cyfryzacja przyczyniły się do umocnienia roli programistów na rynku pracy. Zawód ten z roku na rok cieszy się coraz większym prestiżem oraz bardziej wzmożonym zainteresowaniem pośród młodych ludzi rozpoczynających swoją ścieżkę zawodową. Wiele osób, słysząc pochlebne opinie na temat zarobków w dziedzinie IT, myśli o przebranżowieniu lub skierowaniu swojej kariery zawodowej właśnie na tą drogę. Część z nich zastanawia się czym tak naprawdę każdego dnia zajmują się programiści i jak wygląda ich typowy dzień pracy.

Jak Wygląda Typowy Dzień Pracy Programisty?


Jak wygląda dzień pracy programisty?


W rzeczywistości nie da się jednoznacznie opisać typowego dnia pracy z życia programisty. W tej branży każdy dzień jest inny. Dużo zależy od miejsca zatrudnienia – w zależności od tego czy pracuje się w korporacji, małej firmie, czy działa jako freelancer, styl codziennej pracy może wyglądać nieco inaczej. Jeśli programista działa w pojedynkę, jego sposób codziennego funkcjonowania wynika z tego, jak pokieruje swoje obowiązki i w jaki sposób podejdzie do rozwiązywania codziennych zadań.

Niemniej jednak w niektórych firmach istnieją pewne przyjęte metody pracy programistów. Tak usystematyzowany schemat funkcjonowania ma na celu zoptymalizowanie ich pracy i uczynienie jej bardziej efektywną.


Planowanie


Typowy dzień programisty rozpoczyna się od ustalenia priorytetów oraz wyznaczeniu celów niezbędnych do realizacji danego zadania. Szczegółowe omówienie tematu pozwala efektywniej rozdzielić zadania między członków zespołu wykonawczego. Odpowiednia komunikacja jest więc kluczowa, aby każdy mógł przejść do swojej części pracy.


Code-review


W wielu firmach (szczególnie w korporacjach) praktykowane jest tzw. Code-review, czyli sprawdzenie na początku każdego dnia kodów programów oraz aplikacji stworzonych dnia poprzedniego. Zazwyczaj taki research wykonywany jest przez innego programistę, dzięki czemu możliwe jest wychwycenie wszelkich błędów w toku myśleniowym programisty na etapie pisania kodu.

Praktykowanie takiego stylu pracy wzmacnia potrzebę dbania o staranność i czytelność kodu oraz daje możliwość zdobycia cennego doświadczenia od bardziej doświadczonych kolegów. Dokładnie omówiona problematyka pozwala łatwiej rozplanować sobie dzień i jednocześnie odpowiednio ukierunkowuje pracę każdego z członków zespołu.


Analiza problemu


Dobrze rozpoczęty dzień oparty na konkretnym planie działania pozwala w łatwiejszy sposób zdefiniować i zrozumieć poruszaną problematykę i wyjaśnić wszelkie niezrozumiałe kwestie już na starcie. Czasami rozwiązanie problemu zajmuje dużo czasu, a czasami przychodzi z łatwością, jednak wcześniejsze jego omówienie pozwala na bardziej efektywne rozpoczęcie pracy własnej.

Programista swoją indywidualną pracę rozpoczyna od analizy problemu pod kątem technicznym – na tym etapie dobierane są narzędzia, metody i środowisko programistyczne pozwalające na rozpoczęcie danego zadania. To wszystko umożliwia rozrysowanie całego schematu działania (np. w oparciu o schemat blokowy).


Kodowanie


Dopiero, gdy wszystko jest jasno i przejrzyście zwizualizowane programista rozpoczyna kodowanie. Zastosowane w kodzie komendy i polecenia oraz odpowiednie funkcje pozwalają na zaprogramowanie sekwencji takich działań, których wykonanie pozwoli uzyskać zamierzony efekt końcowy. Oczywiście raz napisany program wymaga ciągłego testowania kodu źródłowego. Niemożliwe jest bowiem przewidzenie wszystkich czynników i wychwycenie wszelkich możliwych błędów na etapie pierwotnego tworzenia kodu. Ponadto raz napisany kod wymaga ciągłego optymalizowania.


Testowanie, weryfikacja, bugi, debugowanie


Samo pisanie kodu to kwestia kilku godzin w trakcie całego dnia pracy programisty - kodowanie jest tylko pewną część codziennej pracy developera. Najwięcej czasu programista poświęca na testowanie swoich programów oraz aplikacji. Testowanie pozwala zapewnić w efekcie końcowym najwyższą jakość oprogramowania. To z kolei jest niezwykle ważne dla każdego programisty, bowiem oddając swój program do użytku podpisuje się niejako pod nim swoim nazwiskiem, dlatego żaden programista nie chce doprowadzić do wystąpienia nieoczekiwanych błędów w działaniu programu/aplikacji.

Potwierdzenie zgodności przyjętych rozwiązań technologicznych ze specyfikacją wymagań jest więc kluczowym elementem pracy programisty i swego rodzaju momentem weryfikacji realizacji wcześniej ustalonych celów. Wykrywanie i raportowanie błędów jest standardową procedurą w codziennej pracy programisty. Uzyskane wyniki w procesie testowania aplikacji ujawniają wszelkie odchylenia od założonego działania systemu, pozwalając skonfrontować je z oczekiwanym rezultatem i wyciągnąć potrzebne wnioski. Wszelkie powstałe w procesie testowania nieścisłości skutkują koniecznością ponownej poprawy kodu. Dlatego ważne jest, aby pisać czytelny kod, dzięki temu łatwiej programiście w przyszłości będzie znaleźć ewentualny błąd. Nie sztuką jest bowiem napisanie od razu działającego kodu, lecz umiejętność debugowania, tak aby programista nigdy nie dał się zaskoczyć żadnemu z pojawiających się problemów.


Rozwój


Nie raz potrzebne jest przetestowanie nowych technologii i narzędzi, aby móc zobaczyć, jakie rozwiązanie danego problemu jest najlepsze. Niekiedy programista musi tworzyć prototypy funkcjonalności czy komponentów, aby upewnić się, że są właściwym rozwiązaniem danej problematyki, nim zostaną użyte w konkretnym kodzie.


Daily Scrum


W dziedzinie IT testowanie i optymalizowanie kodu oraz stałe rozwiązywanie pojawiających się problemów jest czymś normalnym, dlatego w niektórych firmach stałym punktem programu dnia jest tzw. Daily Scrum Meeting, czyli spotkanie całego zespołu programistów, podczas którego każdy z członków dzieli się problemami, które napotkał podczas swojej pracy oraz wskazuje sposoby, które pozwoliły mu na ich rozwiązanie.

Wsparcie zespołu jest kluczowym czynnikiem wpływającym na jakość i szybkość pracy. Praktykowanie takich codziennych spotkań pozwala na rozwiązanie wszelkich wątpliwości, z którymi zmaga się programista i dzięki temu na bieżąco rozwiązywane są wszelkie trudności. Na zakończenie danego projektu przeprowadzane są również tzw. Sprint Review – czyli spotkania organizowane w celu prezentacji efektów prac poszczególnych członków zespołu oraz dostosowanie wymaganych funkcjonalności danej aplikacji, czy programu do przyjętych założeń.


Schemat pracy w każdej firmie może wyglądać trochę inaczej


Choć w praktyce w wielu firmach i korporacjach przyjmowany jest przytoczony schemat pracy, to w teorii praca programisty często jest mniej usystematyzowana (szczególnie w przypadku tych programistów lub freelancerów, którzy działają w pojedynkę).

Często programiści mający doświadczenie pracy zarówno w tych mniejszych, jak i większych firmach wspominają, że istnieje pewna analogia mówiąca, że im mniejsza firma, tym programista na więcej czasu na realne pisanie kodu, aniżeli w korporacji. Faktycznie, osoba działająca samodzielnie może mieć tego czasu na kodowanie więcej, ponieważ nie uczestniczy w spotkaniach zespołu, czy meetingach, mających na celu omówienie efektów bieżącej pracy, bo o wszystkim decyduje samodzielnie.

Jednak w praktyce korporacyjne podejście do zespołowej pracy programisty ma na celu zapewnienie programiście wsparcia doświadczonego zespołu oraz systemowe podejście do problematyki mające na celu skrócenie czasu kodowania i testowania, aby uchronić go przed ryzykiem popełnienia niepotrzebnych błędów. Jak widać to charakter miejsca pracy oraz złożoność realizowanej problematyki warunkuje schemat codziennej pracy programisty.


Każdy dzień jest nowym wyzwaniem


Zwykle zakres podejmowanych na co dzień obowiązków zależy od zakresu odpowiedzialności, jednak dobrego programistę poznaje się nie tylko po umiejętnościach programistycznych, ale także zdolnościach komunikacji oraz umiejętności przełożenia postawionych przez szefa lub klienta wymagań na konkretne rozwiązanie technologiczne. Aby jednak nie dać się zaskoczyć pojawiającym się problemom, ważne jest, aby posiadać elementarną wiedzę z zakresu programowania oraz podążenie za wszelkimi nowinkami technologicznymi, dlatego w tym zawodzie niezbędne są szkolenia i ciągły samorozwój. W tej branży każdy dzień przynosi nowe wyzwania – w zawodzie programisty nie ma czasu na nudę.

To wszystkie na dzisiaj. Jeżeli taki artykuł Ci się spodobał, to koniecznie dołącz do mojej społecznościdarmowe zapisy, gdzie będziesz również miał dostęp do dodatkowych materiałów i przede wszystkim bonusów. Do zobaczenia w kolejnym artykule.

Poprzedni artykuł - Jak Wygląda i Na Czym Polega Praca Programisty?
Następny artykuł - Jak Szukać Pracy Jako Młodszy Programista? Jak Zwiększyć Swoje Szanse Na Zatrudnienie?
Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
Programista C#/.NET. Specjalizuje się w ASP.NET Core, ASP.NET MVC, ASP.NET Web API, Blazor, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Dodaj komentarz

Wyszukiwarka

© Copyright 2024 modestprogrammer.pl. Wszelkie prawa zastrzeżone. Regulamin. Polityka prywatności. Design by Kazimierz Szpin