Wpis z mikrobloga

IT Mireczki,
Jestem po swojej pierwszej rozmowie kwalifikacyjnej na stanowisko intern Java developera.
Luźna rozmowa na początku:
- Jak zacząłem się bawić w programowanie,
- Opowiedz coś o projekcie open source w którym bierzesz udział
Rozmówka po angielsku:
- What's Your dream job,
- Whats Your hobby, raczej typowe pytania, odpowiadałem bez zająknięcia.

Przestawia się Project Manager, zaczyna się weryfikacja techniczna, zadania robione przed tablicą.
Sortowanie bąbelkowe - Ok, poszło w miarę nieźle, chociaż troszkę zamieszałem się przy pętlach przez co straciłem kilka minut na "debugowanie" paru szczegołów. Zoptymalizowałem kod, na pytanie "czy wiesz co to złożoność algorytmu" przedstawiłem mu przykłady O(n) i O(n^2), potwierdziłem, że sortowanie bąbelkowe należą do tej bardziej złożonej itd.
Wszystko szło w miarę dobrze, ale dostałem kolejne zadanie:
"Zaimplementuj klasę listy jednokierunkowej" - WTF
Kojarzyłem co to lista, że może działać na zasadzie FILO, FIFO, ale implementowanie własnej klasy to było dla mnie coś MEGA nowego.
Najpierw dostałem krótki opis takiej listy ("pierwszy obiekt na liście ma odnośnik do obiektu następnego itd.")
Lista miała przyjmować typ generyczny, dla mnie to była póki co tylko taka ciekawostka, używana przy ArrayListach, ale konkretnie nie wiedziałem do czego to służy.
Napisałem klasę, klasę w niej zagnieżdżoną reprezentującą obiekt na liście, konstruktory tych klas, metodę na dodawanie następnego obiektu do listy. Wszystko odbywało się ze sporą pomocą gościa, który mnie weryfikował.
Odpowiedź odnośnie wyniku rekrutacji dostanę w przeciągu tygodnia, chociaż nie sądzę, żebym był lepszy niż inni dostający się na to stanowisko, szkoda.

Pozostaje mi czekać z cichą nadzieją na pozytywne rozpatrzenie, pocieszam się tym, że drugie zadanie moim zdaniem ma prawo wykraczać poza możliwości gościa, który chce być tylko stażystą.

Dzięki za wszystkie porady, wołam ludzi, którzy zainteresowali się moją sytuacją:
@Trytka @kaervek @zranol @ppawel @macentos @Xonar @nuker92 @grizzly_joe

  • 110
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Xemioza: 2 godziny z razem z pisaniem kodu.
@Sapphir
Wszystko to i jeszcze wiecej jest w 2 pierwszych wykladach o algorytmach na courserze. Troche salabo, ze nie znales generykow w javie jednak to podstawa.

I nie sluchaj typa co ci radzi uczyc sie z symfonii. Pytania
  • Odpowiedz
@Sapphir: pojęcie o budowie i zasadach działania struktur danych są akurat podstawą w rozmowach na juniora, nie ma nic dziwnego w takim pytaniu PMa. generyki z kolei omawiane są najczęściej na podstawie C++ i Javy jako jedna z właściwości języka, więc też nie dziwię się, że chciał sprawdzić czy znasz środowisko na które rekrutują (i czy nie ściemniasz gdzieś po drodze).
@M4ks: "tydzień nauki", ale dla kogoś kto
  • Odpowiedz
@revMaxx: Ale to jest tydzien nauki. Zobacz linka ktorego wrzucilem wczesniej. Wszystko o co jego pytali jest w 3 godzinach wykladow. Lacznie z wytlumaczeniem generykow w javie. Wszystkie podstawowe sortowanie (bez q, m, h), podstawy zlozonosci, kolejki i sporo wiecej.

Akurat taki fart, ktos zrobil wyklady pod ta rozmowe ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@Sapphir: Oczywiście dla wykopków to wszystko jest banał. JAVA w tydzień, a dlaczego nie w weekend? Już widzę jak gościu się nauczył OOP JAVY w tydzień i czwartego dnia robił polimorfizacje! Sortowanie bąbelkowe - faktycznie proste w implementacji i trzeba sobie z tym poradzić. Jednak listy, z tego się nie korzysta codziennie. Tak jak mówisz ciekawostka zrobisz i tyle.
Ostatnio też szukam pierwszej pracy w php i najgorsze co może
  • Odpowiedz
@Sapphir: moim zdaniem to nie są dobre pytania sprawdzające na rozmowie o pracę na stanowisku Java developera, nawet stażysty (poza częścią o generykach). Wiadomo, algorytmika też się przydaje, ale coś bardziej "javowego" byłoby bardziej na miejscu. Nie są trudne, ale bardziej dla osoby studiującej coś związanego z programowaniem, niż "praktycznego" programisty. Pokazuje to też, że warto mieć jakieś podstawy z "niższych" języków i znajomość głębszej teorii.

Powodzenia, zawołaj jak tam
  • Odpowiedz
@Sapphir: Chłopie nie przejmuj się. Jak na Interna to jest dużo. Znam kilka firm które przyjmują z podstawami języka i głównym atutem na rozmowie jest deklaracja chęci do nauki i polecenie kogoś już pracującego w tej firmie.
  • Odpowiedz
@Trytka: zobacz na komentarz @pierniki_mojej_babci, bo dobrze gada. miałem już styczność z osobami, które nawet po całym semestrze nauki na kierunku informatycznym miały problemy z napisaniem prostych zadań testowych z zakresu obiektowości. nadal twierdzę że u OP wyszły na wierzch braki w wiedzy, które musi uzupełnić zamiast zajmować się świeceniem oczami "jak to tak można, to tylko staż, a tam stało zomo".
  • Odpowiedz
@Sapphir: Jakie widelki, jesli mozna spytac? Moim zdaniem tematy meeega podstawowe i wywalic sie na czyms takim aplikujac na stanowisko programisty to grzech. Wszystkie tematy omawiane na pierwszym roku na moich studiach.
  • Odpowiedz
@pierniki_mojej_babci: Dla osób, które są zaawansowane w danej dziedzinie często ciężkie jest zrozumienie tego, że rzeczy banalne (z jego punktu widzenia) nie muszą być takie dla kogoś, kto nie ma takiego pojęcia o takich zagadnieniach.
Przykład: W sezonie jestem instruktorem kitesurfingu, niektórzy ludzie uczą się szybciej, niektórzy wolniej. Powiedzmy, że poziom zaawansowany jest wtedy, gdy ktoś potrafi pływać pod wiatr (około 2-3 tygodni szkolenia).
Nieraz uczyłem "kolegów po fachu", którzy zajmowali się uczeniem WIndsurfingu w tej samej szkółce co ja.
Pierwsza styczność z innym całkowicie innym sprzętem niż windsurfing, ale jednak takie zalety jak "czucie wiatru", równowaga itd., pozwalały im na ogarnięcie im poziomu pływania po zaledwie kilku godzinach.

Ucząc kitesurfingu starszy stażem kolega dał mi kiedyś BARDZO ważną radę: "Nie zapominaj, że rzeczy, które są dla Ciebie proste, nie muszą być takie dla innych", trzeba sobie cały czas przypominać "Jak to było, gdy byłeś taki jak oni" i dopiero wtedy stajesz się
  • Odpowiedz