Truly zaawansowane Java Interview Questions

1

@vpiotr: ja nie mówię, że pytania powinny być tylko z algorytmów i struktur danych, wymieniłem przecież więcej przykładów. Dodałbym do tego jakiś design systemów i design kodu (wzorce, oop, fp).
W znajomość IDE jest istotna chyba tylko wtedy jak szukasz klepacza, który nie musi myśleć, a szybko pisać. Z toolami jest podobnie.

0

Mialem w zespole takiego geniusza co nie znal ani jezyka ani ide. Co chwile wyskakiwal z jakimis pseudoproblemami.

0
  • fail-fast vs fail-safe
  • jak sprawdzić czy 2 BigDecimale przedstawiają tę samą liczbę

Co do powyższych pytań, senior seniorowi nierówny. Nie mówiąc o tym, że osoba po takiej rozmowie i tak czasem trafia do konfiguracji XMLi

1

@vpiotr to pewnie jakiś pseudogeniusz. W Google przez taka rekrutację mają samych takich, a ich software działa przez przypadek.

Rozumiem że kiedy trzeba naklepac jakiś skrypt zdalnie w terminalu korzystając z Vima to zatrudniacie do tego nowego człowieka który zna wszystkie skróty, a przy np. zmianie języka czy nowej technologii/frameworku wymieniany jest cały zespół?

1

@tdudzik imputujesz rzeczy, których tu nikt nie pisał.

Podkreślałem np., że chodzi o znajomość **swoich **narzędzi. Bardzo mi mocno zwisjają znajomości wszystkich frameworków, IDE itp., dokładnie wiem, że jak ktoś ogarnia javę i ma trochę doświadczenia technicznego, to sobie w czymkolwiek poradzi. I nawet jak ktoś spędził 10 lat w jakimś mega niszowym frameworku (typu wicket) - to go z tego wicketa popytam, (chociaż nie znam) i to z dziwnych rzeczy. Będę wiedział na ile jest odpowiedzialny technicznie w tym co robi.
Dużo rekrutujących dokładnie to robi, pyta o rzeczy z CV i to te najbardziej długo używane technologie, a nie o to, co tam sobie w firmie używamy. (Przecież jak u mnie to i tak, będzie jakaś technologia w wersji alfa, i nie ma szans, żeby ktoś poza autorami znał :-) ).

WIelu apologoetów różnych frameworków zupełnie nie ma o nich pojęcia i permanetnie wpada w te same dziury. Zero wniosków, żeby chociaż doczytać co się dzieje.
Chyba najczęściej spotykam się z tym w JavaSkrypcie. **Mistrzowie ** js znają 6 wiodocącyh frawemorków, ale nie kumają czasem po co jest '==='.
Application serwery, Spring, JavaEE, nawet java - podobnie.
Trzeba to doświadczenie techniczne zweryfikować.

0

@jarekr000000: i uważasz, że fakt że ktoś zna jakąś technologie od podszewki po 10 latach używania jest wystarczającym dowodem że nada się on do roli seniora czy w ogóle programisty w firmie do której aplikuje? Możemy też spojrzeć na efekty. Większość firm w Polsce rekrutuje w taki sposób i software jaki jest każdy widzi. :D Topowe firmy (AFAIK) tego w taki sposób nie robią a ich efektywność i jakość jest o wiele większa. Dla mnie większy sens od pytań dotyczących konkretnej technologii mają pytania dotyczące core'owych konceptów na których wszystkie technologie są budowane. W każdym razie z mojej strony to już koniec tematu, bo to są tylko moje opinie nie poparte jeszcze doświadczeniem, życie zweryfikuje kto ma racje. ;)

0

@tdudzik: chyba sobie żartujesz. Większośc firm z którymi miałem rekrutacje daje g*wno rozmowke na 40 minut pt. "Czym się różni klasa abstrakcyjna od intefejsu" i inne podstawowe [CIACH!]. Brak coding testu to przede wszystkim.

3

@tdudzik znowu przeinaczasz i stosujesz wyolbrzymienie - kiespki chwyt erystyczny. Pytania techniczne to częśc rozmów i weryfikacji (cały ten wątek powstał, z tego że OP takich szuka). Senior musi tez mieć odpowiednie umiejętności komunikacyjne itp. Ale to nie ten wątek.
A co do topowych firm - (pewnie chodzi Ci o google), to:

  • pewnie znasz opis rekrutacji tylko z drugiej ręki (podobnie jak ja),
  • nie wiadomo czy to nie zależy od stanowiska,
  • wcale nie wiadomo czy IM się sprawdza - google też czasem coś ładnie spieprzy,
  • zupenie wątpliwe, że sprawdziło by się w wielu pomniejszych firmach :-) - np.: w takiej bankowości, gdzie algorytm to się implementuje raz na 6 last i całe piętro programistów otwiera szampana, żeby pogratulowac koledze, że miał do zrobienia coś więcej niż dodanie dwóch liczb, i nie było gotowca w internecie,

Btw. jak będę potrzebował algorytmika, analityka to takiego zrekrutuje, na seniora zwykle potrzebuję kogoś kto umie wyciągnąć zespół z gówna, częścią tego jest umiejętność grzebania się w technologiach. To umiejętność analityczna :-)

0
Pinek napisał(a):

Myślę że

  • concurrency - to zawsze jest trudne, czy to niskopoziomowo na poziomie wait/notify czy fork/join czy ExecutorService czy @Async
  • głęboki Hibernate jak np optymalizacja zpaytań, N+1 problem, cachowanie
  • jakimi narzędziami kontrolować użycie zasobów (chyba JMeter czy inne metryki)
  • ogólno architekturowe rzeczy i pytania np dotyczące transakcji w systemie rozproszonym
  • java 8 i konkretne API streamów

Nie spotkaliśmy się czasami na interview w Krakowie? Pytam bo wybrałem wtedy inną lepiej płatną ofertę.
To są pytania które niedawno miałem kiedy aplikowałem na pozycję Java juniora zaraz po obronie dyplomu.

Może z wyjątkiem ostatniego, bo zamiast streamów było na temat Optional.

0
Maticzok napisał(a):
Pinek napisał(a):

Myślę że

  • concurrency - to zawsze jest trudne, czy to niskopoziomowo na poziomie wait/notify czy fork/join czy ExecutorService czy @Async
  • głęboki Hibernate jak np optymalizacja zpaytań, N+1 problem, cachowanie
  • jakimi narzędziami kontrolować użycie zasobów (chyba JMeter czy inne metryki)
  • ogólno architekturowe rzeczy i pytania np dotyczące transakcji w systemie rozproszonym
  • java 8 i konkretne API streamów

Nie spotkaliśmy się czasami na interview w Krakowie? Pytam bo wybrałem wtedy inną lepiej płatną ofertę.
To są pytania które niedawno miałem kiedy aplikowałem na pozycję Java juniora zaraz po obronie dyplomu.

Może z wyjątkiem ostatniego, bo zamiast streamów było na temat Optional.

Nie, na pewno nie, z Krakowem nie mam nic wspólnego ;D a że miałeś takie pytania na juniora to beka

0

Aktualizuje.
1)Security - w sumie ważny temat - jakiego rodzaju sa ataki, jak się zabezpieczać itd.
2)Dziś zostalem trochę zagięty odnośnie GC w Javie - problem starej generacji i cachowania danych. Chodzi o to że dane zcachowane moga być bardzo długo w pamięci i przez to trafić do starej generacji. Gdy się wartośc cache zmieni, niestety stara generacja dalej będzie zaśmiecona (bo jest odśmiecana ostatnia i to w rzadkich przypadkach). Cóż, okazało się że cache jest zazwyczaj robiony poza pamięcią JVM w tzw. pamięci natywnej.

0
scibi92 napisał(a):

@Bambo: A na przykład w takim żeby wiedziec że w Javie tez może powstac problem z memory leakami. Tak, wiem zadziwiające.

Czy w Javie może powstać memory leak?
Potrafisz na kartce napisać kod który to robi?

Pytanie dostałem Luxoft, stanowisko Junior Java Developer.
Rekrutacja zaliczona pozytywnie

0
AbocaT napisał(a):
scibi92 napisał(a):

@Bambo: A na przykład w takim żeby wiedziec że w Javie tez może powstac problem z memory leakami. Tak, wiem zadziwiające.

Czy w Javie może powstać memory leak?
Potrafisz na kartce napisać kod który to robi?

Pytanie dostałem Luxoft, stanowisko Junior Java Developer.
Rekrutacja zaliczona pozytywnie

Co napisałeś tak z ciekawości?

0

@AbocaT

To jest akurat proste, Effective Java item 7 ma klasyczny przykład jak zrobić prosty memory leak.

0
scibi92 napisał(a):

Co napisałeś tak z ciekawości?

Klasa Stack bazująca w implementacji na tablicy, z automatycznym powiększaniem x 2 tablicy wg. potrzeb, i tylko powiększanie tablicy, push i pop tylko zmieniają bieżący wskaźnik stosu.
Push milion razy, pop milion razy. Pusty stos, w środku upasiona tablica, w komórkach trzyma referencje do obiektów wcześniej wypchanych na ten kulawy stos.

Pytania zgłębiające okolicę tematu było o Weak, Soft, Phantom Reference, co to i czy bym zastosował do tego kodu. Pytanie o kolekcje hash i comparator, powiązanie z equals, kontrakt, LinkedHashMap jako cache. Skok z cache do design patterns i wzorce kojarzące mi się z cache, proxy i flyweight. Skok do map, czemu hashtable rozmiar 31 lepszy od 32, najlepiej jakiś przykład opisowy, bez teorii matematycznej.

0

Ja widziałem kiedys przykład pt. użytkownik który miał UUID generowany i była zwykła lista która przechowywała te zajęte id-ki. Przy sporej licznie użytkowników talica pod spodem listy robiła się już spora :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1