76
HOW TO BE AWESOME AT A JAVA DEVELOPER INTERVIEW Wojciech Seliga Atlassian JIRA Team Lead Spartez Co-Founder [email protected] @wseliga 1 1

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

  • Upload
    wseliga

  • View
    6.381

  • Download
    4

Embed Size (px)

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.

Citation preview

Page 1: 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

[email protected]@wseliga

1

1

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

DLACZEGO "AWESOME"?

2

2

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

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

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

JAKI JĘZYK JEST NAJWAŻNIEJSZY?

4

4

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

1. JĘZYK FIRMY W KTÓREJ CHCESZ PRACOWAĆ

5

5

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

POLSKI?

6

6

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

PODANIE O PRACĘ?

7

7

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

SPRAWDŹMY

8

8

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

I...?

9

9

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

/DEV/NULL

10

10

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

JAKI JĘZYK JEST NAJWAŻNIEJSZY?

11

11

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

2. JĘZYK KLIENTA

12

12

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

3. JĘZYK BIZNESU IT, POSTĘPU I ZMIAN

13

13

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

JĘZYK ANGIELSKI

14

14

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

BIEGŁA ZNAJOMOŚĆ ANGIELSKIEGO TO PODSTAWOWA UMIEJĘTNOŚĆ

SZUFLADKUJĄCA POLSKIEGO DEVELOPERA

15

15

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

ZAROBKI X 2

16

16

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

ZAROBKI X 2

... ALBO RACZEJ X 3 LUB 4

16

16

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

PODSTAWOWE CERTYFIKATYSUN/ORACLE

17

17

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

CERTYFIKATY DLA WYTRAWNEGO REKRUTUJĄCEGO NIC NIE ZNACZĄ

18

18

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

ODWROTNA KORELACJA: ZDAWALNOŚĆ A CERTYFIKAT

(SCJP/OCPJP I SCJD/OCMJD)

19

19

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

CERTYFIKOWANI ANALFABECI

20

20

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

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

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

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

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

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

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

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

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

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

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

ASTRONAUCIJoel Spolsky,

kwiecień 2001

21

21

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

ASTRONAUCIJoel Spolsky,

kwiecień 2001

21

21

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

ASTRONAUCIJoel Spolsky,

kwiecień 2001

by pnoeric21

21

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

JAVOWE ABECADŁO

22

22

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

ABECADŁO - POJĘCIA JAVOWE

23

23

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

ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.

23

23

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

ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.

• Kolekcje - cechy, złożoność obliczeniowa, klucze, hashcode

23

23

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

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

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

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

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

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

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

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

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

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

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

ABECADŁO - BIBLIOTEKI

24

24

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

• JDK ... tak naprawdę

ABECADŁO - BIBLIOTEKI

24

24

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

• JDK ... tak naprawdę

• Guava

ABECADŁO - BIBLIOTEKI

24

24

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

• JDK ... tak naprawdę

• Guava

• Apache Commons

ABECADŁO - BIBLIOTEKI

24

24

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

• JDK ... tak naprawdę

• Guava

• Apache Commons

• Joda Time

ABECADŁO - BIBLIOTEKI

24

24

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

• JDK ... tak naprawdę

• Guava

• Apache Commons

• Joda Time

• Lekkie kontenery DI (Spring, Guice, Pico, Nano)

ABECADŁO - BIBLIOTEKI

24

24

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

ABECADŁO - NARZĘDZIA

25

25

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

ABECADŁO - NARZĘDZIA

• Biegła obsługa IDE

25

25

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

ABECADŁO - NARZĘDZIA

• Biegła obsługa IDE

• Debugger

25

25

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

ABECADŁO - NARZĘDZIA

• Biegła obsługa IDE

• Debugger

• Profiler (mid i senior)

25

25

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

ABECADŁO - NARZĘDZIA

• Biegła obsługa IDE

• Debugger

• Profiler (mid i senior)

• Analizator ruch sieciowego (wireshark, charles, itd.)

25

25

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

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

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

ABECADŁO - KSIĄŻKI (1)

26

26

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

ABECADŁO - KSIĄŻKI (1)

Książka, po której myślisz, że

wiesz już wszystko

26

26

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

ABECADŁO - KSIĄŻKI (2)

27

27

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

ABECADŁO - KSIĄŻKI (2)

Książka, po której wiesz, że nic nie wiesz

27

27

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

DRUGA STRONA MEDALU

28

28

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

DRUGA STRONA MEDALU

28

BYCIE "AWESOME" REKRUTUJĄCYM

28

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

LEJEK REKRUTACYJNY

1000 osób 10-20 osób

29

29

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

LEJEK REKRUTACYJNY - LUDZIE POLECENI PRZEZ PRACOWNIKÓW

30 osób 5 - 10 osób

30

30

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

CZY TYLKO DUŻA FIRMA MOŻE MIEĆ WYSOKIE OCZEKIWANIA?

31

31

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

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

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

UCZCIWY I OTWARTY FEEDBACK

33

33

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

TESTOWANIE KODOWANIA

34

34

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

A-PLAYERS

35

35

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

A-PLAYERS HIRE "A" PLAYERS

36

36

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

A-PLAYERS HIRE "A+" PLAYERS

36

36

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

"B" PLAYERS HIRE "C" PLAYERS

37

37

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

"C" PLAYERS KILL THE COMPANY

38

38

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

DEVELOPER NAJCENNIEJSZYM KAPITAŁEM FIRMY?

39

39

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

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

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

TRUDNE? PYTANIA KANDYDATÓW

• Ścieżka rozwoju zawodowego / możliwość awansu

• Gwarancja stabilności (projekty, życie firmy)

41

41

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

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

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

NAJWIĘKSZYM MOTYWATOREM DLA "AWESOME" LUDZI JEST TO, ŻE PRACUJĄ

Z INNYMI "AWESOME" LUDŹMI

43

43

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

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

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

CHCESZ SPRÓBOWAĆ?

45

45

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

SZUKAMY AWESOMEJAVA I FRONT-END DEVELOPERÓW

www.spartez.com

http://www.atlassian.com/company/careers

46

46

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

DZIĘKUJĘ!47

47