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

10,705 views

Published on

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.

Published in: Technology
2 Comments
3 Likes
Statistics
Notes
  • Uważam, że Pana wystąpienie było bardzo dobre. Nie wiem z czego wynikało oburzenie niektórych ze słuchaczy. Nie odebrałem języka wystąpienia jako zbyt emocjonalnego, a dosadne słowa pojawiały się także podczas innych wystąpień. Nie zaliczam się do A-playerów i jestem wdzięczny za wskazówki, jak zbliżać się do tego ideału. Nie zgadzam się tylko z Pana oceną certyfikatów. Myślę, że ktoś, kto uczciwie przygotuje się np. do certyfikatu SCJP (dawna nazwa), zgłębi wiele zagadnień Abecadła – dziedziczenie, kompozycja, wątki, kolekcje, hashe i equalsy, a oststnio pojawiła się nawet JDBC i transakcje. Pozdrawiam. Patryk
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Zauważyłem, że mój keynote wywołał sporą burzę emocji. Super. Tak powinno być i bardzo się z tego cieszę. Chciałbym z góry wyjaśnić kilka spraw lub niedopowiedzeń:

    1. oczywiście w ludziach najważniejsza jest pasja, ale samą pasją to porządnych produktów Javowych nie napiszemy. Pasja jest konieczna, ale nie jest wystarczająca. Potrzebne są konkretne umiejętności inżynierskie i wiedza o naszej domenie. Na tym się skupiłem podczas 30 minut - i tak więcej niż powinienem był mówić. O aspektach miękkich powiedziano już dużo. Na konferencji technicznej zdecydowałem się skupić przede wszystkim na aspektach technicznych.

    2. Starałem się nikogo nie obrazić (na pewno nie ad personam). Ponoć wyrwało mi się słowo 'debil'. Nie wiem kiedy (poczekam na nagranie i zobaczę). Tak czy siak już teraz za to przepraszam. No chyba, że moje argumenty tak kogoś zabolały, że już pośrednio sam o sobie tak pomyślał.

    3. CIeszę się, że prezentacja była kontrowersyjna - tak powinno być. Za dużo mamy prezentacji, które pozostają bez echa i głębszych dyskusji. Jak widzę wielu osobom się bardzo podobało, ale jest też grupa ludzi, którzy się ze mną nie zgadzają. Ich prawo. Nie każdego zadowolę. Mam swoje zdanie, popartem doświadczeniem. Tego będę się trzymał, dopóki mnie nikt nie przekona. Na razie nie było nawet takich prób :) Nie przemawiają do mnie argumenty, że np. nie trzeba znać jak działają wątki w Java, bo typowy developer pracujący w JEE nie będzie tego stosował. Nawet jeśli nie będzie, to powinien wiedzieć co się dzieje (a nie uważać to za magię). Co więcej, jak nie będzie tego rozumiał, to nie da rady z rozwiązywaniem nietrywialnych problemów, skalowaniem, zakleszczeniami, niespójnością, itd.

    4. Nie wiem skąd jeden z twitujących wywnioskował, że interesują mnie 20 letni ludzie z 18-letnim doświadczeniem. Gdyby znał naszą firmę i kogo zatrudniamy, to by wiedział, że ten wniosek to nic bardziej błędnego. Jeszcze niedawno jako 35-latek z ponad 10-letnim doświadczeniem zaniżałem średnią ludzi w firmie. Z drugiej strony pracuję ze znacznie młodszymi kolegami, którzy jeśli chodzi o ważne dla mnie cechy i wiedzę kandydata miażdżą dużo starsze i bardziej teoretycznie doświadczone osoby.

    5. Dzięki tym kilku osobom, które po keynote podeszły do mnie i podziełowały za to, że im uświadomiłem, ile się jeszcze muszą jeszcze nauczyć. Czuły się pozytywne zmiażdżone i zmotywowane do rozwoju. Super. Taki feedback przerósł moje największe oczekiwania.

    6. Nie miałem zamiaru być 'zły' czy bezczelny na scenie. Jeśli takie odnieśliście wrażenie - sorki. Może to 10 godzin na upale oraz mega zmęczenie po szalonym dniu.

    Jeszcze raz dzięki za liczne przybycie. Około 700 - 800 osób na sali. Super sprawa. Mega energia dla speakera. Mam nadzieję, że to było dla Was przede wszystkim ciekawe doświadczenie.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
10,705
On SlideShare
0
From Embeds
0
Number of Embeds
5,131
Actions
Shares
0
Downloads
48
Comments
2
Likes
3
Embeds 0
No embeds

No notes for slide

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

  1. 1. HOW TO BE AWESOMEAT A JAVA DEVELOPER INTERVIEW Wojciech Seliga Atlassian JIRA Team Lead Spartez Co-Founder wseliga@atlassian.com @wseliga 1 1
  2. 2. DLACZEGO "AWESOME"? 2 2
  3. 3. 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
  4. 4. JAKI JĘZYK JEST NAJWAŻNIEJSZY? 4 4
  5. 5. 1. JĘZYK FIRMY W KTÓREJ CHCESZ PRACOWAĆ 5 5
  6. 6. POLSKI? 6 6
  7. 7. PODANIE O PRACĘ? 7 7
  8. 8. SPRAWDŹMY 8 8
  9. 9. I...? 9 9
  10. 10. /DEV/NULL 10 10
  11. 11. JAKI JĘZYK JEST NAJWAŻNIEJSZY? 11 11
  12. 12. 2. JĘZYK KLIENTA 12 12
  13. 13. 3. JĘZYK BIZNESU IT, POSTĘPU I ZMIAN 13 13
  14. 14. JĘZYK ANGIELSKI 14 14
  15. 15. BIEGŁA ZNAJOMOŚĆ ANGIELSKIEGO TO PODSTAWOWA UMIEJĘTNOŚĆSZUFLADKUJĄCA POLSKIEGO DEVELOPERA 15 15
  16. 16. ZAROBKI X 2 16 16
  17. 17. ZAROBKI X 2... ALBO RACZEJ X 3 LUB 4 16 16
  18. 18. PODSTAWOWE CERTYFIKATY SUN/ORACLE 17 17
  19. 19. CERTYFIKATY DLA WYTRAWNEGOREKRUTUJĄCEGO NIC NIE ZNACZĄ 18 18
  20. 20. ODWROTNA KORELACJA:ZDAWALNOŚĆ A CERTYFIKAT (SCJP/OCPJP I SCJD/OCMJD) 19 19
  21. 21. CERTYFIKOWANI ANALFABECI 20 20
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. Joel Spolsky,ASTRONAUCI kwiecień 2001 21 21
  28. 28. Joel Spolsky,ASTRONAUCI kwiecień 2001 21 21
  29. 29. Joel Spolsky,ASTRONAUCI kwiecień 2001 21 by pnoeric 21
  30. 30. JAVOWE ABECADŁO 22 22
  31. 31. ABECADŁO - POJĘCIA JAVOWE 23 23
  32. 32. ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy. 23 23
  33. 33. ABECADŁO - POJĘCIA JAVOWE• Dziedziczenie a kompozycja. Klasy a interfejsy.• Kolekcje - cechy, złożoność obliczeniowa, klucze, hashcode 23 23
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. ABECADŁO - BIBLIOTEKI 24 24
  40. 40. ABECADŁO - BIBLIOTEKI• JDK ... tak naprawdę 24 24
  41. 41. ABECADŁO - BIBLIOTEKI• JDK ... tak naprawdę• Guava 24 24
  42. 42. ABECADŁO - BIBLIOTEKI• JDK ... tak naprawdę• Guava• Apache Commons 24 24
  43. 43. ABECADŁO - BIBLIOTEKI• JDK ... tak naprawdę• Guava• Apache Commons• Joda Time 24 24
  44. 44. ABECADŁO - BIBLIOTEKI• JDK ... tak naprawdę• Guava• Apache Commons• Joda Time• Lekkie kontenery DI (Spring, Guice, Pico, Nano) 24 24
  45. 45. ABECADŁO - NARZĘDZIA 25 25
  46. 46. ABECADŁO - NARZĘDZIA• Biegła obsługa IDE 25 25
  47. 47. ABECADŁO - NARZĘDZIA• Biegła obsługa IDE• Debugger 25 25
  48. 48. ABECADŁO - NARZĘDZIA• Biegła obsługa IDE• Debugger• Profiler (mid i senior) 25 25
  49. 49. ABECADŁO - NARZĘDZIA• Biegła obsługa IDE• Debugger• Profiler (mid i senior)• Analizator ruch sieciowego (wireshark, charles, itd.) 25 25
  50. 50. 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
  51. 51. ABECADŁO - KSIĄŻKI (1) 26 26
  52. 52. ABECADŁO - KSIĄŻKI (1) Książka, po której myślisz, że wiesz już wszystko 26 26
  53. 53. ABECADŁO - KSIĄŻKI (2) 27 27
  54. 54. ABECADŁO - KSIĄŻKI (2) Książka, po której wiesz, że nic nie wiesz 27 27
  55. 55. DRUGA STRONA MEDALU 28 28
  56. 56. DRUGA STRONA MEDALUBYCIE "AWESOME" REKRUTUJĄCYM 28 28
  57. 57. LEJEK REKRUTACYJNY1000 osób 10-20 osób 29 29
  58. 58. LEJEK REKRUTACYJNY - LUDZIE POLECENI PRZEZ PRACOWNIKÓW 30 osób 5 - 10 osób 30 30
  59. 59. CZY TYLKO DUŻA FIRMA MOŻE MIEĆ WYSOKIE OCZEKIWANIA? 31 31
  60. 60. 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
  61. 61. UCZCIWY I OTWARTY FEEDBACK 33 33
  62. 62. TESTOWANIE KODOWANIA 34 34
  63. 63. A-PLAYERS 35 35
  64. 64. A-PLAYERS HIRE "A" PLAYERS 36 36
  65. 65. A-PLAYERS HIRE "A+" PLAYERS 36 36
  66. 66. "B" PLAYERS HIRE "C" PLAYERS 37 37
  67. 67. "C" PLAYERS KILL THE COMPANY 38 38
  68. 68. DEVELOPER NAJCENNIEJSZYM KAPITAŁEM FIRMY? 39 39
  69. 69. NAJISTOTNIEJSZE CECHY CHARAKTERU IDOŚ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 releaseach softwareu rzeczywiście używanego przez klientów 40 40
  70. 70. TRUDNE? PYTANIA KANDYDATÓW• Ścieżka rozwoju zawodowego / możliwość awansu• Gwarancja stabilności (projekty, życie firmy) 41 41
  71. 71. 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 releasey i opieka nad produkcyjnym oprogramowaniem 42 42
  72. 72. NAJWIĘKSZYM MOTYWATOREM DLA"AWESOME" LUDZI JEST TO, ŻE PRACUJĄ Z INNYMI "AWESOME" LUDŹMI 43 43
  73. 73. 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
  74. 74. CHCESZ SPRÓBOWAĆ? 45 45
  75. 75. SZUKAMY AWESOMEJAVA I FRONT-END DEVELOPERÓW www.spartez.com http://www.atlassian.com/company/careers 46 46
  76. 76. DZIĘKUJĘ! 47 47

×