HOW TO BE AWESOME AT A JAVA DEVELOPER INTERVIEW
Wojciech SeligaAtlassian JIRA Team Lead
Spartez Co-Founder
[email protected]@wseliga
1
1
DLACZEGO "AWESOME"?
2
2
KILKA SŁÓW O MNIE
• Kilkanaście lat w branży, głównie Java i C++, Spartez co-founder
• około 7 lat doświadczenia w zatrudnianiu ludzi (ostatnio moje najważniejsze zajęcie)
• setki przejrzanych CV,
• grubo ponad setka przesłuchanych osobiście kandydatów,
• kilkanaście (z hakiem) zatrudnionych ludzi, setki odrzuconych
3
3
JAKI JĘZYK JEST NAJWAŻNIEJSZY?
4
4
1. JĘZYK FIRMY W KTÓREJ CHCESZ PRACOWAĆ
5
5
POLSKI?
6
6
PODANIE O PRACĘ?
7
7
SPRAWDŹMY
8
8
I...?
9
9
/DEV/NULL
10
10
JAKI JĘZYK JEST NAJWAŻNIEJSZY?
11
11
2. JĘZYK KLIENTA
12
12
3. JĘZYK BIZNESU IT, POSTĘPU I ZMIAN
13
13
JĘZYK ANGIELSKI
14
14
BIEGŁA ZNAJOMOŚĆ ANGIELSKIEGO TO PODSTAWOWA UMIEJĘTNOŚĆ
SZUFLADKUJĄCA POLSKIEGO DEVELOPERA
15
15
ZAROBKI X 2
16
16
ZAROBKI X 2
... ALBO RACZEJ X 3 LUB 4
16
16
PODSTAWOWE CERTYFIKATYSUN/ORACLE
17
17
CERTYFIKATY DLA WYTRAWNEGO REKRUTUJĄCEGO NIC NIE ZNACZĄ
18
18
ODWROTNA KORELACJA: ZDAWALNOŚĆ A CERTYFIKAT
(SCJP/OCPJP I SCJD/OCMJD)
19
19
CERTYFIKOWANI ANALFABECI
20
20
CERTYFIKOWANI ANALFABECI
• Nie znają podstawowych API i technik/idiomów programowania (java.util.concurrent obchodzi w tym roku 8. urodziny, od 3 lat Java 5 jest EOL-ed)
20
20
CERTYFIKOWANI ANALFABECI
• Nie znają podstawowych API i technik/idiomów programowania (java.util.concurrent obchodzi w tym roku 8. urodziny, od 3 lat Java 5 jest EOL-ed)
• Nie rozumieją Garbage Collectora i zarządzania zasobami w Java/JVM
20
20
CERTYFIKOWANI ANALFABECI
• Nie znają podstawowych API i technik/idiomów programowania (java.util.concurrent obchodzi w tym roku 8. urodziny, od 3 lat Java 5 jest EOL-ed)
• Nie rozumieją Garbage Collectora i zarządzania zasobami w Java/JVM
• Nie znają programowania sieciowego, wielowątkowego
20
20
CERTYFIKOWANI ANALFABECI
• Nie znają podstawowych API i technik/idiomów programowania (java.util.concurrent obchodzi w tym roku 8. urodziny, od 3 lat Java 5 jest EOL-ed)
• Nie rozumieją Garbage Collectora i zarządzania zasobami w Java/JVM
• Nie znają programowania sieciowego, wielowątkowego
• Nie znają programowania (i stosu) webowego
20
20
CERTYFIKOWANI ANALFABECI
• Nie znają podstawowych API i technik/idiomów programowania (java.util.concurrent obchodzi w tym roku 8. urodziny, od 3 lat Java 5 jest EOL-ed)
• Nie rozumieją Garbage Collectora i zarządzania zasobami w Java/JVM
• Nie znają programowania sieciowego, wielowątkowego
• Nie znają programowania (i stosu) webowego
• Nie rozumieją pojęcia złożoności obliczeniowej, skalowalności, transakcyjności, itd.
20
20
ASTRONAUCIJoel Spolsky,
kwiecień 2001
21
21
ASTRONAUCIJoel Spolsky,
kwiecień 2001
21
21
ASTRONAUCIJoel Spolsky,
kwiecień 2001
by pnoeric21
21
JAVOWE ABECADŁO
22
22
ABECADŁO - POJĘCIA JAVOWE
23
23
ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.
23
23
ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.
• Kolekcje - cechy, złożoność obliczeniowa, klucze, hashcode
23
23
ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.
• Kolekcje - cechy, złożoność obliczeniowa, klucze, hashcode
• Programowanie współbieżne - wątki, monitory, synchronizatory
23
23
ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.
• Kolekcje - cechy, złożoność obliczeniowa, klucze, hashcode
• Programowanie współbieżne - wątki, monitory, synchronizatory
• Strumienie
23
23
ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.
• Kolekcje - cechy, złożoność obliczeniowa, klucze, hashcode
• Programowanie współbieżne - wątki, monitory, synchronizatory
• Strumienie
• Immutability
23
23
ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.
• Kolekcje - cechy, złożoność obliczeniowa, klucze, hashcode
• Programowanie współbieżne - wątki, monitory, synchronizatory
• Strumienie
• Immutability
• Reflection, AOP, bytecode, proxy
23
23
ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.
• Kolekcje - cechy, złożoność obliczeniowa, klucze, hashcode
• Programowanie współbieżne - wątki, monitory, synchronizatory
• Strumienie
• Immutability
• Reflection, AOP, bytecode, proxy
• Stos technologii webowych
23
23
ABECADŁO - BIBLIOTEKI
24
24
• JDK ... tak naprawdę
ABECADŁO - BIBLIOTEKI
24
24
• JDK ... tak naprawdę
• Guava
ABECADŁO - BIBLIOTEKI
24
24
• JDK ... tak naprawdę
• Guava
• Apache Commons
ABECADŁO - BIBLIOTEKI
24
24
• JDK ... tak naprawdę
• Guava
• Apache Commons
• Joda Time
ABECADŁO - BIBLIOTEKI
24
24
• JDK ... tak naprawdę
• Guava
• Apache Commons
• Joda Time
• Lekkie kontenery DI (Spring, Guice, Pico, Nano)
ABECADŁO - BIBLIOTEKI
24
24
ABECADŁO - NARZĘDZIA
25
25
ABECADŁO - NARZĘDZIA
• Biegła obsługa IDE
25
25
ABECADŁO - NARZĘDZIA
• Biegła obsługa IDE
• Debugger
25
25
ABECADŁO - NARZĘDZIA
• Biegła obsługa IDE
• Debugger
• Profiler (mid i senior)
25
25
ABECADŁO - NARZĘDZIA
• Biegła obsługa IDE
• Debugger
• Profiler (mid i senior)
• Analizator ruch sieciowego (wireshark, charles, itd.)
25
25
ABECADŁO - NARZĘDZIA
• Biegła obsługa IDE
• Debugger
• Profiler (mid i senior)
• Analizator ruch sieciowego (wireshark, charles, itd.)
• FireBug, FF Web Dev Tool, Chrome Dev Tool, itd.
25
25
ABECADŁO - KSIĄŻKI (1)
26
26
ABECADŁO - KSIĄŻKI (1)
Książka, po której myślisz, że
wiesz już wszystko
26
26
ABECADŁO - KSIĄŻKI (2)
27
27
ABECADŁO - KSIĄŻKI (2)
Książka, po której wiesz, że nic nie wiesz
27
27
DRUGA STRONA MEDALU
28
28
DRUGA STRONA MEDALU
28
BYCIE "AWESOME" REKRUTUJĄCYM
28
LEJEK REKRUTACYJNY
1000 osób 10-20 osób
29
29
LEJEK REKRUTACYJNY - LUDZIE POLECENI PRZEZ PRACOWNIKÓW
30 osób 5 - 10 osób
30
30
CZY TYLKO DUŻA FIRMA MOŻE MIEĆ WYSOKIE OCZEKIWANIA?
31
31
PIENIĄDZE
• Polacy nie lubią i nie potrafią rozmawiać o pieniądzach
• O oczekiwania pytamy się na pierwszym spotkaniu
• Oczekiwania finansowe kształtują proces rekrutacji (nasz poziom oczekiwań)
• Kandydat musi znać swoje oczekiwania finansowe. (samoocena)
32
32
UCZCIWY I OTWARTY FEEDBACK
33
33
TESTOWANIE KODOWANIA
34
34
A-PLAYERS
35
35
A-PLAYERS HIRE "A" PLAYERS
36
36
A-PLAYERS HIRE "A+" PLAYERS
36
36
"B" PLAYERS HIRE "C" PLAYERS
37
37
"C" PLAYERS KILL THE COMPANY
38
38
DEVELOPER NAJCENNIEJSZYM KAPITAŁEM FIRMY?
39
39
NAJISTOTNIEJSZE CECHY CHARAKTERU I DOŚWIADCZENIE "AWESOME" KANDYDATA
• Bystrość i otwartość umysłu na zmiany
• Inicjatywa, aktywność, chęć zmiany świata i samego siebie
• Poczucie własnej wartości ("A" Player) a zarazem własnej niewiedzy
• Ciekawość i kwestionowanie status quo
• Pragmatyzm
• Projekty publiczne lub open source, ślady działalności publicznej
• Aktywne uczestnictwo w licznych release'ach software'u rzeczywiście używanego przez klientów
40
40
TRUDNE? PYTANIA KANDYDATÓW
• Ścieżka rozwoju zawodowego / możliwość awansu
• Gwarancja stabilności (projekty, życie firmy)
41
41
RÓŻNICE POMIĘDZY JUNIOREM A SENIOREM
• Doświadczenie praktyczne (nie znaczy wiedza)
• Rozróżnianie trendów i buzzwordów od nowości rzeczywiście zmieniających świat
• Chęć i umiejętność dzielenie się wiedzą z młodszymi developerami
• Wielokrotne release'y i opieka nad produkcyjnym oprogramowaniem
42
42
NAJWIĘKSZYM MOTYWATOREM DLA "AWESOME" LUDZI JEST TO, ŻE PRACUJĄ
Z INNYMI "AWESOME" LUDŹMI
43
43
PODSUMOWANIE
• Aby być w czymś dobrym potrzeba 10 lat praktyki. Aby być mistrzem, potrzeba całego życia
• Doświadczony developer bez trudu wykryje ściemę kandydata
• A nawet jeśli nie, to są okresy próbne...
• Na swoją wartość jako Software Developer pracujemy cały czas. Efektywność naszego rozwoju zależy z kim pracujemy.
• Korzystajmy z procesu rekrutacji jako dobrej sondy do poznania tego, jak firma naprawdę traktuje developerów
• Bycie sobą podczas rekrutacji (po obydwu stronach) najbardziej popłaca
44
44
CHCESZ SPRÓBOWAĆ?
45
45
SZUKAMY AWESOMEJAVA I FRONT-END DEVELOPERÓW
www.spartez.com
http://www.atlassian.com/company/careers
46
46
DZIĘKUJĘ!47
47