Czy programiści naprawdę są poszukiwani? A jeśli tak, to programujący w jakim konkretnie języku? Wreszcie, jakie cechy programisty są szczególnie pożądane?
Oferty pracy dla programistów
Poszukiwanie odpowiedzi na powyższe pytania zacząłem od ustalenia, ile aktualnych ofert pracy skierowano do programistów. Wykorzystałem w tym celu trzy popularne portale: infopraca.pl, pracuj.pl i gazetapraca.pl. Udało mi się znaleźć na nich 3254 takie oferty (1532 w pracuj.pl, 1072 infopraca.pl oraz 650 w gazetapraca.pl), co jest liczbą imponującą, nawet jeśli niektóre oferty pojawiały się na więcej niż jednym portalu. Z punktu widzenia programisty poszukującego pracy ponad 3 tys. jednocześnie dostępnych ofert wydaje się wręcz przepychem. Faktem jest, że ogłoszenia dotyczyły obszaru całego kraju (zdarzały się także oferty pracy zagranicą), niemniej zważywszy, że według badań Sedlak & Sedlak już w 2012 roku np. początkujący programista języka Java ze stażem nie przekraczającym roku zarabiał przeciętnie 3 250 zł miesięcznie (a 5 000 zł ze stażem 2-3 letnim), zmiana miejsca zamieszkania w celu podjęcia pracy nie powinna stanowić problemu.
Na tle branży
Jak jednak liczby te wypadają na tle liczby ofert pracy dla przedstawicieli innych profesji informatycznych? Okazuje się, że więcej niż korzystnie. Korzystając z wyszukiwarek trzech wspomnianych portali łącznie, udało mi się znaleźć np.: 907 ofert pracy dla różnej maści administratorów (w branży IT), 220 ofert dla testerów oprogramowania, 219 dla różnego rodzaju projektantów (w branży IT), 140 ofert przeznaczonych dla grafików komputerowych oraz 128 dla menedżerów różnego poziomu (w branży IT). Krótko podsumowując: polski rynek pracy dla informatyków jest zdominowany przez programistów.
Języki
Pracodawcy poszukują zwykle programistów władających konkretnym językiem programowania. Jak preferencje pracodawców mają się do panującej mody na pewne języki programowania, której dobrym wyznacznikiem jest ranking języków programowania TIOBE, oparty na popularności nazw języków w zapytaniach kierowanych do największych wyszukiwarek internetowych? W kwietniu 2014 r. czołowe miejsca zajmowały w nim: C, Java, Objective-C, C++, C#, Basic, PHP i Python. Wśród ofert pracy zaskakujące I miejsce zajął, dopiero 12-sty w rankingu TIOBE, język SQL (43,1%). Drugie miejsce przypadło grupie języków C, C++ i C#, których nie dało się łatwo rozróżnić z uwagi na ograniczenia wyszukiwarek (43% ofert). Na podium znalazło się też miejsce dla Javy (31,3%). Kolejne miejsca zajęły: JavaScript (24,1%), PHP (22,6%), Python (7,3%), Ruby (3%), Pascal/Delphi (1,1%), (Visual) Basic (0,8%) i Perl (0,7%). Procenty nie sumują się do 100%, gdyż wiele ofert dotyczyło różnych języków (szczególnie często w przypadku SQL i języków skryptów internetowych).
Okiem profesjonalistów
Z opisów ofert pracy można niekiedy dowiedzieć się o pożądanych cechach charakterystycznych dla programistów. Tym razem skorzystałem jednak z opinii trzech wysoce przeze mnie cenionych specjalistów, wypowiadających się z różnych perspektyw.
Krzysztof Diks, profesor, Wydział Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego:
Każdy programista powinien znać bardzo dobrze podstawy informatyki tak, żeby mógł szybko uczyć się operowania ciągle zmieniającymi się narzędziami informatycznymi. Niezmiernie ważne są też umiejętności miękkie, przede wszystkim umiejętność pracy zespołowej.
Sebastian Smug, dyrektor jednostki biznesowej InForum Business Intelligence, DomData AG:
Poszukujemy osób, które są mocno samodzielne i potrafią pracować w zespole (nie tylko programistycznym) oraz tworzyć kod realizujący założoną funkcjonalność i optymalnie wykorzystujący zasoby. W tworzeniu systemów wielomodułowych i wielokomponentowych, takich jak nasz system klasy Business Intelligence, bardzo istotne jest doświadczenie, dlatego programiści ze stażem krótszym niż 5 lat stanowią u nas do 20% stanu osobowego.
Artur Kulpa, programista, Heuthes:
Potrzebni są programiści odznaczający się elastycznym myśleniem oraz uparcie dążący do realizacji określonego celu. Powinni potrafić działać w zespole, a jednocześnie być samodzielni w wykonywaniu własnych obowiązków. Powinni posiadać doświadczenie adekwatne do docelowego stanowiska pracy. Jeśli chodzi o wiedzę zawodową, wymagana jest znajomość: metodyk projektowania i programowania strukturalnego, oraz obiektowego; technologii bazodanowych, systemów operacyjnych Linux i Windows oraz narzędzi zarządzania kodem źródłowym.
Jakub Swacha