Dzisiaj postaram się zastanowić nad wybranymi cechami, które bardzo ułatwiają rozwój czegoś, co magicznie określamy jako kariera w IT. Ich posiadanie to moim zdaniem dobry prognostyk dla wszystkich, którzy chcą zacząć pracę w tym świecie.
Myślę, że te trzy cechy zdecydowanie znajdą również miejsce w zawodach poza światem IT. Warto zatem się nad nimi głębiej zastanowić.
Lecimy!
Dekompozycja
Przyjrzyjmy się na początku definicji słowa dekompozycja.
Dekompozycja
Zmiana układu składników jakiejś całości lub jej całkowity rozpad.
Słownika języka polskiego PWN
W świecie IT, zwłaszcza w programowaniu, definicję tę traktujemy bardzo bezpośrednio. Dla nas dekompozycja problemu, to umiejętność jego rozbicia na mniejsze fragmenty.
Dlaczego jest to istotna cecha?
Przede wszystkim chodzi o zdolność do szybszego analizowania problemów. Często na początku wydaje się, że problem jest bardzo ciężki i złożony. Składa się z wielu elementów, których nawet nie do końca na początku widać.
Umiejętność rozkładania takich problemów na czynniki pierwsze pozwala nam oszczędzić czas, sprawdzić nasze zrozumienie danego zagadnienia, jak również dokonać estymacji o wyższym prawdopodobieństwie (np. ile dany problem wymaga czasu do rozwiązania).
Przykład 1.
Na początek przykład projektowy. Mamy do przygotowania system wspierający rejestrację biletów na wydarzenie sportowe.
Czy stwierdzenie „przygotuj system rejestracji biletów” jest wystarczające do realizacji tego projektu? Oczywiście nie. Nie wiemy, jak ten system ma działać, jak wyglądać i jakie cele ma spełniać.
W tym przypadku w naturalny sposób zaczynamy dekomponować ten projekt na mniejsze składowe. Od bardzo ogólnego stwierdzenia, aż do wymagań, które będą leżały na samym dole hierarchii.
Innymi słowy, staramy się znaleźć możliwie małe wymaganie dla systemu, które jesteśmy w stanie poprawnie zdefiniować i ocenić.
Dzięki takiemu podejściu możemy dużo lepiej przygotować się do takiego projektu.
Przykład 2.
W ramach przykładu nr 2 weźmy sobie inny życiowy przypadek. Nasz kod. Bardzo często mamy do przygotowania jakiś złożony algorytm. Zwykle naszym dążeniem nie będzie napisanie 1000 linii w jednej metodzie.
Nasze podejście będzie inne. Będziemy chcieli podzielić ten algorytm na mniejsze bloki, które jeden po drugim będziemy mogli zaimplementować.
Tak, czasem to będzie trudne. I tak, bardzo często będziemy wracać, zmieniać miejsce podziału, usuwać i dodawać kawałki kodu. To normalne.
Chciałem zwrócić Twoją uwagę w tym miejscu, że nawet teoretycznie bardzo małe fragmenty kodu można podzielić na czytelne części.
Dlatego zachęcam do przejrzenia części dotyczącej dekompozycji przykładowego problemu podczas rekrutacji, który dostępny jest w innym artykule: Oceniam zadanie rekrutacyjne Junior Programista. Dowiesz się z niego kilku ciekawych rzeczy w tym temacie, m. in. kilku możliwych implementacji zdekomponowanego problemu rekrutacyjnego.
Konsekwencja
Na mojej liście konsekwencja zajmuje drugie miejsce. Konsekwencja to pewna ciągłość w działaniu. Nasze podejście do realizacji działań.
Dlaczego jest tak ważna?
Z uwagą obserwuję zmieniający się rynek pracy programistów w Polsce. Aktualnie bardzo, ale to bardzo dużo osób chce pracować w tym zawodzie.
Czytając liczne fora zauważyłem, że bardzo dużo osób zaczynających programować chce od razu dostać pracę. Nie ważne, że programują dwa, czy trzy miesiące, ważne, że praca ma być tu i teraz.
Rynek nie do końca tak działa. Tak, zdarzają się przypadki, które ucząc się całymi dniami przez te trzy miesiące będą gotowe do pierwszej pracy programistycznej. Ale to przypadki, które moim zdaniem można policzyć na palcach jednej ręki na tysiąc przypadków.
Złe rady niszczą konsekwencję
Na tych forach bardzo często pojawiają się rady typu: no jak już kodujesz trzy miesiące to ciśnij i wysyłaj CV dalej, do skutku.
Bardzo, ale to bardzo rzadko pojawia się rada w stylu: jeszcze musisz się wiele nauczyć, pracuj nad warsztatem.
Moim zdaniem efektem złych rad jest to, że cała energia ludzi idzie nie tam, gdzie trzeba. Czyli na wyszukiwanie i zajmowanie się w kółko ofertami pracy.
Skoro chcesz zostać programistą komercyjnym, to najpierw musisz mieć warsztat. Musisz konsekwentnie rozwijać swoje umiejętności programistyczne. Chęci są ważne, ale konsekwencja to jest to, co pozwoli Ci na obranie pewnej ścieżki. To ta wytrwałość, która kieruje Cię do celu. Nie zapominaj o nim.
Poczucie celu
A jeśli o celu mowa, to warto go tu też wymienić. Bo jest niezwykle ważny. Tutaj naszym celem jest kariera w IT. Czyli zostanie np. programistą, analitykiem, testerem, pracownikiem wsparcia IT, administratorem, Scrum Masterem, Product Ownerem, Project Managerem, etc.
Przypomnij sobie swój cel
Chcesz pracować na danym stanowisku z jakiegoś powodu. Masz jakiś cel. Po coś chcesz to robić.
Pisałem wcześniej trochę o motywacji. Tak dokładnie, tej motywacji, która jest wszędzie tak wychwalana. Jeśli uważasz, że potrzebujesz w tym miejscu motywacji, żeby zostać… (tu wpisz rolę w IT), to rzuć okiem na artykuł Motywacja pracy jako Junior Developer. Może zmienisz zdanie. A w każdym razie zdasz sobie sprawę, że dużo ważniejsze jest określenie własnego celu.
Dlaczego Twój cel jest taki ważny w rozwoju kariery IT?
Przede wszystkim dlatego, że jest Twój. To Twój cel. Nikogo innego. Nie babci, cioci, mamy, taty, żony, brata, dzieci. To tylko i wyłącznie Twój cel.
Dlatego określ swoje cele dotyczące kariery w IT. Zadaj odpowiednie pytania. I zapisz odpowiedzi. Będziesz mógł potem sobie zweryfikować, czy osiągnąłeś to, co założyłeś. I dlaczego to sobie założyłeś.
My, jako ludzie, mamy naturalną skłonność do dużo lepszego działania, jeśli rozumiemy i wierzymy w cel danego przedsięwzięcia. A skoro naszym celem jest kariera w IT, to naturalnie będziemy dużo bardziej efektywnie działać w tym kierunku.
Materiał zawarty w Motywacja pracy jako Junior Developer dostarczy Ci wielu wskazówek i przykładów dotyczących motywacji i ustalania celów.
Podsumowanie
Kariera w IT to bardzo często nie taki łatwy kawałek chleba. A jej początek bywa często ciężką drogą z licznymi wybojami. Teoretycznie to tylko trzy cechy. Ale według mnie niezwykle ważne na tej ścieżce rozwoju.
A jak Ty myślisz? Dodałbyś coś jeszcze?
PS 1 Ale i inne zawody mogą tutaj skorzystać. Dlatego jeśli podoba Ci się ten artykuł i uważasz go za wartościowy, to będzie fajnie, jeśli go prześlesz dalej. Będzie mi niezmiernie miło, jeśli ta treść pomoże komuś w jego ścieżce kariery.
PS 2 Jeśli interesuje Cię omówienie przykładowych zawodów w IT poza programistą to polecam Ci materiał Jeśli nie programistą, to kim?. A gdyby jednak to programowanie było tym, co chcesz w życiu robić, to ten artykuł może być dla Ciebie fajny A może jednak zostać programistą?