Mam aktualnie otwarty proces rekrutacyjny na programistę Java, doświadczenie w prowadzeniu takich rekrutacji na przestrzeni kilkunastu lat i trochę spostrzeżeń.
W ciągu ostatnich kilku tygodni, nieco się załamałem poziomem kandydatów na rynku. Nie szukam w tej chwili wymiataczy, chcę programistę z "jakimś" doświadczeniem, ale rozważę kogoś bez doświadczenia komercyjnego. Tylko na miłość boską, jak ktoś kandyduje na stanowisko Java Developer, to znajomość podstaw języka jest umiejętnością wymaganą.
Wystarczy sobie kupić książkę Java Core tom I przeczytać, zrozumieć. Nic więcej. Tym czasem od jakiegoś czasu rozmawiam z ludźmi na poziomie raczej dziwnym i pytania o:
- modyfikatory dostępu
- różnice pomiędzy Set a List
- kontrakt hash equals
- różnicę pomiędzy ArrayList i LinkedList
- zwalnianie pamięci przez JVM
i inne podobne tym pierdoły, sieją spustoszenie w szeregach kandydatów.
Proste zadanie na przekształcenie rekurencji (ciąg Fibonacciego) w kod o sensownej złożoności obliczeniowej, dla 90% było mission impossible.
Więc z mojego punktu widzenia rada jest prosta: chcecie dostać robotę, to opanujcie jej podstawy. Książkę podałem wyżej, ma 700 stron, można spokojnie dać sobie spokój z GUI i wątkami, bo na poziomie juniorskim nikt was o to nie będzie pytać, więc 200 stron odpada. Kurde, chcecie stawek wyższych niż w McDonalds, lżejszej roboty po której nie śmierdzą włosy, to niestety, ale trzeba mieć trochę więcej wiedzy i umiejętności. W pracy nie da się nauczyć programowania, co zresztą widać na rozmowach, bo u ludzi z doświadczeniem też nie koniecznie jest wiedza na temat "kiedy Java zwalnia pamięć". Więc serio - 70zł za książkę w promocji, 3 do 6 miesięcy czytania i ćwiczenia i możecie szukać roboty, albo stażu. Wiedzą przebijecie 90% kandydatów aktualnie błąkających się po rynku.