Znajomość Javy na poziomie 80%. Doskonała orientacja w PHP5, zaawansowane posługiwanie się frameworkami, SQL w stopniu dobrym. To standardowe cytaty z CV osób świeżo po studiach informatycznych. Jak realnie ocenić swoje umiejętności i dlaczego nie warto ich w CV przeszacowywać?
Początkujący programista – CV
Każdy człowiek, kiedy czegoś się uczy, przechodzi przez cztery fazy rozwoju kompetencji. Pierwszym jest poziom nieuświadomionej niekompetencji – czyli mówiąc wprost, braku wiedzy na temat tego, że się czegoś nie wie. Dla osób, które ukończyły właśnie studia i zdobywają właśnie pierwsze doświadczenia zawodowe, to najbardziej typowy stan, który dodatkowo wzmacniany jest nieadekwatną oceną własnych umiejętności. Potwierdzają to opinie specjalistów na co dzień rekrutujących początkujących programistów.
Aleksandra Biwald – Resource Project Manager w firmie CONNECTIS_ tak opisuje to zjawisko: „Media prawie codziennie informują nas o rosnącym zapotrzebowaniu na specjalistów rynku IT oraz ich niedoborze. Pracodawcy coraz częściej poszukują młodych programistów na uczelniach wyższych, nie tylko wśród studentów ostatnich lat. Takie działania sprawiają, że młodzi ludzie nabierają, często mylnego, przekonania o swojej wysokiej wartości nie tylko windują stawki, ale także znacznie przeceniają swoje kompetencje.
Efektem tego przeszacowania są źle opisane w CV umiejętności programisty. Nierzadko osoba z 3-miesięcznym doświadczeniem komercyjnym opisuje znajomość 2-3 języków programowania jako „doskonałą”, a 3-4 kolejnych jako „bardzo dobrą” – co technicznie jest właściwie niemożliwe. Programiści w swoich CV lubią też określać swoje umiejętności na skali (nierzadko przedstawiając je w formie atrakcyjnej wizualnie infografiki). Przy takiej metodzie praktycznie nie spotyka się sytuacji, w której programista dałby sobie sam 1 bądź 2 punkty na 6 stopniowej osi znajomości danego języka.
Przeszacowanie kompetencji wychodzi bardzo szybko, a osoby rekrutujące programistów nie biorą informacji z CV na poważnie.
– Moje doświadczenia w procesach rekrutacyjnych z młodymi programistami pokazują, że nawet krótka rozmowa techniczna lub prosty test szybko weryfikują, że 80% kompetencji z CV, których znajomość została oceniona „bardzo dobrze”, są znane danej osobie w stopniu podstawowym lub tylko w teorii – opisuje Aleksandra Biwald z CONNECTIS_.
Ile zarabia początkujący programista?
Tymczasem uświadomiona niekompetencja oznacza większe szanse na rekrutacji i bardziej adekwatne wynagrodzenie.
– Młodym ludziom wydaje się, że jeżeli zrobili jeden projekt na uczelni z SQL-a na pierwszym roku, to po czterech kolejnych latach braku kontaktu z bazami danych nadal znają go bardzo dobrze – podkreśla Biwald.
Takie przeszacowanie własnych kompetencji jest zgubne zwłaszcza jeśli chodzi o adekwatne ustalenie poziomu oczekiwanego wynagrodzenia. Programiści zarabiają dobrze, ale osoba, która ma zaledwie podstawową wiedzę i umiejętności, nie może oczekiwać seniorskiego wynagrodzenia. Przeszacowanie swoich kompetencji kończy się rozczarowaniem, kiedy młody człowiek otrzymuje konkretną ofertę zatrudnienia. W tej branży bowiem płaca rośnie proporcjonalnie do umiejętności, a bywa, że programista z doświadczeniem zarabia nawet dwa razy tyle, co jego młodszy kolega tuż po studiach.
Co powinien umieć początkujący programista
Jakie są kluczowe kompetencje programisty? Przede wszystkim technologia i umiejętność jej zastosowania. O wartości programisty świadczy nie tylko to, na ile potrafi posługiwać się daną technologią czy językiem, ale również to, czy i w jakim stopniu potrafi je wykorzystać. Czy stosuje adekwatne rozwiązania, a tworzony przez niego kod jest przejrzysty, schludny i optymalny. W procesie rekrutacji bada się obie kwestie.
Aleksandra Biwald wyjaśnia: – W CONNECTIS_ stosujemy dwie metody weryfikacji umiejętności kandydatów: testy i rozmowy z doświadczonymi programistami. Każda z metod ma swoje zalety. Testy pokazują wiedzę z zakresu danej technologii oraz umiejętność podstaw programowania. Rozmowy z doświadczonymi programistami pokazują nie tylko znajomość danych technologii, ale także na ile dany kandydat rozumie konkretne zagadnienia, czy wie, do czego służą oraz jak podchodzi do rozwiązywania problemów.
Początkujący programista – uświadomiona kompetencja
Jak realnie ocenić swoje umiejętności programowania? Metod jest kilka. Aleksandra Biwald radzi, by przyjrzeć się temu, jak długo używa się danej technologii. Trzeba jednak być szczerym ze sobą i faktycznie policzyć ten czas uczciwie.
Programista napisał swój pierwszy skrypt w PHP na zajęciach na pierwszym roku studiów, potem nie programował, a po zakończeniu studiów przez 6 miesięcy pracował w korporacji. Nie oznacza to, że ma 5,5 roku doświadczenia w PHP tylko ok. 0.5 – wyjaśnia specjalista z CONNECTIS.
Biwald podkreśla jednak, że wiele osób w IT nie zgadza się z twierdzeniem, że ilość lat doświadczenia przekłada się bezpośrednio na umiejętności. – Ja w takiej sytuacji sugeruję ocenę znajomości danej technologii przyjmując skalę np. od 1 do 6, gdzie 1 oznacza, że dana osoba spotkała się z daną technologią tylko na studiach, a 6, że jest w stanie samodzielnie programować – proponuje Biwald.
Innym sposobem jest skorzystanie z testów badających poziom umiejętności. Wiele z nich jest dostępnych online bezpłatnie. Testy można znaleźć zarówno na stronach producentów oprogramowania i technologii, jak i na wielu stronach poświęconych programowaniu bądź rekrutacji programistów. Warto je wykonywać, bo dzięki temu można nie tylko bardziej precyzyjnie określić swoje umiejętności, ale również znaleźć te obszary, które wymagają poprawy.
Nieuświadomiona kompetencja – po kilku latach
Pracując w zawodzie i stale się doszkalając, programista dochodzi w końcu do poziomu nieuświadomionej kompetencji – to ostatni etap rozwoju umiejętności, w którym praktyka staje się częścią naszego „ja”. Pewne kwestie zawodowe stają się wtedy tak oczywiste, że nawet się o nich nie wspomina.
To również może rodzić problemy na rekrutacji. Zwłaszcza wtedy, kiedy przy badaniu kompetencji kandydata, zamiast odpowiedzieć na pytanie, kandydat szuka „haczyka”, zakładając, że odpowiedź prawidłowa jest zbyt prosta, by w ogóle ktokolwiek o to pytał. To już jednak innego kalibru problem, z którym początkujący programista będzie miał kłopot dopiero za kilka, kilkanaście lat.