Wszechstronność czy specjalizacja

Bycie specjalistą w swojej dziedzinie, czy może wszechstronność? Co jest lepsze dla programisty i na czym można wyjść lepiej? Wydaje mi się, że większość osób zapytana o to, wybrałaby “specjalizacje”. Jest to poniekąd sensowna odpowiedź jednak nie do końca się z nią zgadzam. Jeżeli chcecie poznać moje zdanie na ten temat, zapraszam do dalszej lektury.

Wszechstronność

Szczególnie na początku kariery nie warto zamykać się w jednej technologii. Na wczesnym etapie o wiele lepiej jest eksperymentować, by móc później podjąć świadomy wybór, w którą stronę chcemy finalnie się rozwijać. Powiedzmy sobie szczerze – Nie istnieją na rynku osoby, które wiedzą wszystko na temat wszystkich technologii – Może jedynie w cv juniorów, którzy wpisują tam wszystko, co chociaż raz odpalili (Wiem o czym mówię bo sam miałem kiedyś takie cv).Z angielskiego takie osoby nazywa się generalist. Mają szeroką wiedzę, ale paradoksalnie nie są zbyt przydatni dla pracodawcy, ponieważ niczego nie potrafią zrobić wystarczająco dobrze.

Specjalizacja

Przeciwieństwem generalisty jest I shaped person, czyli osoba posiadająca specjalistyczną wiedzę, ale tylko w jednej dziedzinie. Wbrew pozorom bycie takim specjalistą wiąże się z kilkoma zagrożeniami. Przede wszystkim nie ma aż takiego zapotrzebowania na ich usługi, zatem rozwijając tylko jedną umiejętność, podejmujemy ryzyko, którego powinniśmy być świadomi. Poza tym specjalistów w wąskiej dziedzinie rzadko chce się mieć w firmie wewnętrznie, ponieważ nie są aż tak potrzebni cały czas. Pracodawca będzie wolał skorzystać z usługi zewnętrznego konsultanta niż z wewnętrznego członka zespołu – Tego drugiego trzeba przez cały czas utrzymywać, a nie zawsze musi być dla niego wystarczająco dużo pracy.

Złoty środek

Nie pamiętam już gdzie, ale trafiłem kiedyś na cytat “Try to learn something about everything and everything about something”. Zdanie to idealnie wpasowuje się w definicję T shaped person. Osoby o takiej charakterystyce są bardzo pożądane w firmach, ponieważ są połączeniem obu charakterystyk wspomnianych wcześniej. Można powierzyć im wiele różnych zadań, ponieważ mają szeroką wiedzę na różne tematy, a jednocześnie są specjalistami w wybranej dziedzinie. Pracodawcy są najbardziej skłonni zatrudnić właśnie tego typu osoby. Jest to dla nich zwyczajnie najbardziej opłacalne – Kiedy jako specjaliści nie mieliby co robić w danym momencie, można zlecić im inne zadanie, które wykonają wystarczająco dobrze, zamiast siedzieć bezczynnie.

Przykłady

Skonstruujmy sobie przykład programisty typu T od machine learningu –  Jego szeroką interdyscyplinarną wiedzą byłyby znajomość frameworka backendowego, znajomość frameworka frontendowego, znajomość konceptu continuous integration, znajomość Dockera czy znajomość jakiegoś rozwiązania chmurowego. Natomiast jego bardziej specjalistyczną wiedzą byłyby przede wszystkim machine learning, a przy tym data science i matematyka.

Innym przykładem byłby programista typu T zajmujący się Qt’em – jego szeroką wiedzę stanowiłyby umiejętność programowania w C++, solidna wiedza na temat samego Qt, doświadczenie w budowaniu cross-platformowych aplikacji, znajomość konceptów continuous integration czy znajomość jakiegoś dodatkowego języka obcego. Z kolei jego wiedzą specjalistyczną mogłyby stanowić unikalne umiejętności takie jak doświadczenie w tworzeniu systemów embedded, wiedza na temat branży automotive czy programowanie 3D.

Na koniec

Podsumowując, najlepsze rozwiązanie to mieć swoją specjalizację, ale przy tym nie zamykać się tylko w jednej wąskiej dziedzinie. Dobrze jest mieć na tyle szeroką wiedzę by móc stworzyć jakiś produkt, a przy tym być świadomym, że elementy, w których się nie specjalizujemy mogłyby zostać wykonane lepiej. 

A wy co uważacie na ten temat? Nie zgadzacie się z czymś, albo uważacie, że coś ważnego zostało dziś pominięte? Koniecznie dajcie nam znać w komentarzach.

You Might Also Like
Dodaj komentarz

icon