How to be Awesome at a Java Developer Job Interview (Confitura 2012, Polish)

Post on 06-May-2015

6.381 views 4 download

description

Mój keynote z konferencji w Warszawie - Confitura 2012 Znajomość którego języka jest najważniejsza? Co każdy Java developer powinien wiedzieć o Javie i JVM a jakoś dziwnie często nie wie? Co jest Javowym abecadłem i dlaczego jest tak dużo javowych analfabetów? Dlaczego tropimy astronautów? Jaka jest różnica pomiędzy junior a senior developerem? Jakie cechy charakteru i doświadczenia developerów są najcenniejsze dla pracodawcy? Dlaczego boimy się rozmawiać o pieniądzach i jakie są inne trudne pytania kandydatów? Dlaczego wreszcie pracodawcy często niepoważnie traktują zatrudnianie? Na te pytania Wojtek przedstawi swój, mocno subiektywny, punkt widzenia.

Transcript of How to be Awesome at a Java Developer Job Interview (Confitura 2012, Polish)

HOW TO BE AWESOME AT A JAVA DEVELOPER INTERVIEW

Wojciech SeligaAtlassian JIRA Team Lead

Spartez Co-Founder

wseliga@atlassian.com@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