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

wtorek, 22 lutego 2022
Praktycznie w każdą ścieżkę zawodową wpisana jest nauka. Bez względu na to, w jakim zawodzie pracujesz niezbędne jest stałe podnoszenie swoich kompetencji. Tylko w ten sposób możliwe jest bycie specjalistą w swej dziedzinie. Również branża IT jest tą dziedziną zawodową, która wymaga stałego uzupełniania swojej wiedzy oraz bieżącego śledzenia wszelkich nowinek technologicznych.

Nauka w Pracy. Czy Programista Powinien Mieć Czas Na Naukę w Pracy?


Istota nauki narzędzi i technologii


Z uwagi na złożoność codziennych projektów developerskich programista powinien posiadać niezbędną do podejmowania codziennej pracy bazę narzędzi i technologii, która umożliwią mu odpowiednie dopasowanie zaplecza technologicznego i narzędziowego do specyfiki danego projektu. Różnorodne wymagania klienta, określone założenia projektowe – wszystko to sprawia, że za każdym razem niezbędne jest przyjęcie indywidualnego podejścia do danego problemu.

W branży IT doświadczenie przychodzi wraz z ilością zrealizowanych projektów. Jednak stale rosnący rozwój technologiczny sprawia, że tu nawet programista z wieloletnim doświadczeniem w zawodzie jest niczym malutka rybka w bezkresnych wodach oceanu. Oznacza to więc, że nauka wpisana jest w codzienną pracę programisty.


Nauka po pracy, w trakcie pracy?


Każdy programista powinien stale poznawać nowe narzędzia i dotąd nieznaną technologię. Pojawia się jednak pytanie, w jaki sposób programista powinien to robić? W praktyce, podczas realizacji bieżących zadań, czy poza pracą, w czasie wolnym?

Przyjmuje się, że nauka narzędzi i technologii wpisana jest w codzienną pracę programisty. Niezależnie od stażu pracy konieczne jest stałe pogłębianie wiedzy i kształtowanie nowych kompetencji – nie jest bowiem możliwe posiadanie wszelkiej wiedzy. Z tego też powodu nauka w trakcie pracy jest czymś zupełnie naturalnym i powszechnie praktykowanym. Najlepszym sposobem na naukę jest praktyka - czy to w procesie realizacji projektów, czy też podczas rozwiązywania codziennych zadań służbowych.

Jeżeli w pracy spotykasz się z jakimś nowym zagadnieniem, musisz zaimplementować funkcję z którą spotykasz się pierwszy raz, zawsze powinieneś mieć czasu na zapoznanie się z nowym zagadnieniem i rozwój swoich umiejętności. Także możesz doczytać, rozwinąć swoją wiedzę podczas godzin pracy, to jest całkowicie normalne i tak to wygląda w większości firm.


Realizacja projektu – nauka przez działanie


Realizacja projektu komercyjnego zwykle opiera się na podzieleniu całości na mniejsze zadania pomiędzy poszczególnych członków zespołu developerskiego. Podział zadań następuje w oparciu o indywidualne umiejętności i preferencje poszczególnych członków zespołu. Od developerów biorących udział w realizacji takiego projektu nie wymaga się natychmiastowej gotowości do rozwiązania stawianych przed nimi zadań, lecz płynnej realizacji poszczególnych elementów projektu w oparciu o wiedzę własną, pomoc ze strony innych osób oraz dodatkowe źródła informacji i stopniowe ich wdrażanie. Nie liczy się bowiem szybkie oddanie swojej części, lecz uczynienie z takiego projektu możliwości do rozwoju w postaci nauki opartej na działaniu.

Realizacja dużego projektu komercyjnego stwarza bowiem możliwość poznania nowych narzędzi i technologii niezbędnej do jego realizacji. Warto więc podzielić sobie jakieś większe zadanie na kilka mniejszych części, realizując je po kolei, na tyle ile pozwala nam aktualna wiedza, zaś nieznane zagadnienia stale uzupełniać – czy to bazując na zewnętrznych materiałach dydaktycznych, czy np. konsultując je z bardziej doświadczonymi developerami. Taka nauka przez działanie pozwala stopniowo nabierać wprawy, tak aby z czasem móc realizować kolejne, trudniejsze zadania.


Samodzielność i otwartość na rozwój szansą na nowe możliwości


Praca programisty jest tak specyficzna i wymagająca, że tu niezbędne jest stałe podnoszenie swoich kompetencji. Najlepszą formą szybkiego przyswajania wiedzy są codzienne projekty. Dlatego dla przełożonego ważne jest, aby programista posiadał kluczowe cechy, potwierdzające, że jest on dobrym i ambitnym specjalistą i jednocześnie dobrze rokujące na przyszłość. Nikt nie będzie oczekiwał, że programista będzie posiadał wszelką możliwą wiedzę w dziedzinie IT, bo jest to po prostu niemożliwe. Dla Team Leadera liczy się, aby taka osoba wykazywała się chęcią rozwoju i podnoszenia swoich kompetencji oraz otwartością na weryfikowanie posiadanej wiedzy.

Tempo rozwoju branży IT sprawia, że tu nigdy nie jesteśmy wystarczająco wyedukowani, dlatego znając pewne narzędzia i posiadając pewne kluczowe umiejętności wskazujemy na swój potencjał, jednocześnie potwierdzając, że będziemy gotowi podjąć nowe, kluczowe role w organizacji. Pokazując, że posiadasz już pewne zaplecze wiedzy i sprawnie się nim posługujesz dajesz sygnał, że nie będziesz miał problemów z opanowaniem nowej technologii, niezbędnej do codziennej pracy.


Praca programisty = ciągła nauka


Nie da się być specjalistą w każdym możliwym obszarze. Obecnie wszelkich technologii i narzędzi jest tak wiele, że nie jest możliwa znajomość ich wszystkich. Poza tym przy każdym nowym projekcie wykorzystuje się zupełnie inne zaplecze technologiczne i narzędziowe. Z tego tez powodu na porządku dziennym podczas codziennej pracy programisty jest nauka.

Choć warto być jak najbardziej sprawnym w różnorodnych narzędziach i technologiach, to trzeba mieć świadomość, że niekiedy bieżące zadania będą wymagały poznania nowych obszarów. Czymś normalnym, wpisanym w codzienność programisty jest to, że czasem trzeba coś sprawdzić, zweryfikować swoją wiedzę, bądź po prostu czegoś się douczyć, tak aby być pewnym tego co się robi.

Każdy, kto choć trochę zna branżę IT wie, że zgubne jest oczekiwanie natychmiastowej odpowiedzi na stawiane pytania, ponieważ na najlepsze rezultaty trzeba czekać, dając programiście czas na swobodne testowanie programu, bądź aplikacji tak długo, aż będzie miał on pewność, że znalazł możliwie jak najbardziej optymalne rozwiązanie.


Presja posiadania kompleksowej wiedzy? Czy aby na pewno?


Wiele osób stawiając pierwsze kroki w branży IT nie jest świadomych tego, że nauka w pracy dla programisty jest czymś naturalnym, oczywistym i wpisanym w metodykę tej pracy. Część z tych osób przekonana jest, iż musi posiadać kompleksową wiedzę, aby móc uzyskać zatrudnienie.

W rzeczywistości tak nie jest. Posiadanie najważniejszych narzędzi i technologii jest potwierdzeniem, że taka osoba w toku pracy nie będzie miała problemu, aby poznać pozostałe zaplecze technologiczne i narzędziowe. Nie da się bowiem znać wszystkich przypadków, sytuacji, rozwiązań i wyjątków. Doświadczenie nabywa się wraz z ilością przerobionych projektów.

Dlatego też nie ma potrzeby obawiać się, że ktoś będzie wymagał od nas kompleksowej wiedzy już na wstępie. Nauka narzędzi i technologii jest czymś zwyczajowo wpisanym w wynagrodzenie i czas pracy, ponieważ bezpośrednio przyczynia się do kształtowania ważnych kompetencji i umiejętności programisty. Specyfika tego zawodu powoduje, że nawet w pracy doświadczonego programisty znajdzie się zawsze coś, co trzeba sprawdzić, doczytać, przetestować, aby być jak najbardziej efektywnym w podejmowanych działaniach.


Solidne przeszkolenie to podstawa


Od każdego dobrego programisty, bez względu na staż pracy wymaga się otwartości na rozwój, chęci poszukiwania nowych, lepszych rozwiązań oraz zaangażowania w codzienną pracę. Od samego początku kładziony jest nacisk na kształtowanie postawy skoncentrowanej na poszukiwaniu możliwie jak najlepszego rozwiązania.

Przy realizacji każdego zadania wszyscy developerzy, niezależnie od stażu pracy otrzymują niezbędny czas na naukę, poznanie technologii oraz rozwiązanie problemu, tak aby zapewnić możliwie jak najlepsze możliwości do pracy. Niekiedy niezbędne jest przebrnięcie przez długotrwałe testy w celu znalezienia możliwie najlepszego rozwiązania. Na najlepsze rozwiązania niekiedy potrzeba poczekać dłużej – nikt nie oczekuje, że przyjdą one od razu.

Szczególnie pośród młodych developerów stawia się na solidnie przeszkolenie i przekazanie wszystko od podstaw – od technologii, narzędzi, po praktykowane zasady organizacyjne, tak aby mogli oni z czasem w pełni wejść w życie całej organizacji i czuć się swobodnie w codziennych zadaniach. W interesie firmy leży bowiem, aby zapewnić odpowiednio długi okres wdrożenia pracownika, nim powierzy mu się większą odpowiedzialność.


Wyzwalanie chęci nauki


Często doświadczonym programistom delegowane są zadania z różnego rodzaju obszarów, które wymagają użycia dotąd nieznanych i nieużywanych narzędzi, technologii i metod, tylko po to, aby mogli oni nabrać nowych kompetencji, poznając nowe zagadnienia, które bezpośrednio wpływają na kształtowanie postawy pełnej otwartości i zmuszając do ciągłego samorozwoju.

Nie jest przecież możliwe, żeby jeden programista był specjalistą od wszystkiego, jednak musi on być w stanie poradzić sobie z różnymi projektami. Dlatego więc ważne jest, aby developerzy byli zaradni, samodzielni i otwarci na samorozwój i stałe uzupełnianie brakującej wiedzy.

Jeśli programista wykazuje takie postawy pracodawca ma pewność, że poradzi on sobie z każdym kolejnym wyzwaniem. Nie da się bowiem zabezpieczyć kadry na wszelkie możliwe ewentualności i przyszłe projekty, ale posiadając w swojej załodze osoby o takich cechach ma on pewność, że zabezpieczą one technologicznie wszelkie przyszłe projekty, podejmując przy tym możliwe usprawnienia.


Kursy i szkolenia online


Większość firm stara się wspierać swoich pracowników – programistów i często zachęca do rozwoju poprzez branie udziału w kursach, czy szkoleniach online. Zazwyczaj dla każdego programisty jest przewidziany jakiś budżet roczny, który może wykorzystać na dowolne szkolenie w celu poszerzenia swoich kompetencji. Ponadto takie szkolenie online programista może przerabiać nawet w godzinach pracy. Dzięki temu sam programista ma szerszą wiedzą, a jego pracodawca lepszego pracownika. Także jest to idealna sytuacja dla obu stron.


Podsumowanie


Jak widać, ścieżka zawodowa programisty to nieustanna nauka. Specyfika tej pracy sprawia, że praca ta wymaga gotowości pracy na najwyższych obrotach, dlatego sprawna realizacja projektów wymaga podstawowej znajomości najważniejszych zagadnień.

Oczywiście często rozwiązanie danej problematyki nie jest takie oczywiste, dlatego niekiedy w codzienną pracę wpisane jest wielogodzinne szukanie odpowiedniej składni kodu oraz testowanie. Ważne jest, aby programista wykazywał się chęcią rozwoju, otwartością na poszerzanie swoich umiejętności i chęcią samodzielnego rozwiązywania pojawiających się problemów, dzięki temu żadne codzienne wyzwanie nie będzie dla niego straszne.

Każdy developer powinien mieć świadomość, że mimo napiętego harmonogramu realizacji projektów, powinien mieć czas, aby próbować, eksperymentować i uczyć się, tak aby dostarczać możliwie jak najlepsze rozwiązania. Nic nie daje większej wprawy, jak nauka na realnych przypadkach, tego nie zastąpi żadna praca własna w zaciszu swojego domu. Dlatego też ważne jest, że w codzienną pracę programisty wpisany jest również czas na naukę.

To wszystkie na dzisiaj. Jeżeli taki artykuł Ci się spodobał, to koniecznie dołącz do mojej społeczności – darmowe 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ł - Ścieżka Zawodowa Programisty – Jakie Stanowiska i Role Można Wyróżnić w Firmie Tworzącej Oprogramowanie
Następny artykuł - 10 Największych Mitów o Programistach i Zawodzie Programisty
Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
CTO & Founder - FindSolution.pl
Programista C#/.NET. Specjalizuje się w Blazor, ASP.NET Core, ASP.NET MVC, ASP.NET Web API, 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