Dobra znajomość Javy

0

Na ogłoszeniach o prace często można się spotkać z określeniem dobra znajomość Javy. Czy istnieje jakaś lista zagadnień które się na to kwalifikują? Jeśli nie to czy możecie taką zaproponować?

4

Obawiam sie ze jesli musisz o to pytac to takiej znajomosci nie masz :(

1

Umiesz napisać program w Javie, a później naprawić błędy - jak znajdą się jakieś błedy i zoptymalizować. // w skrócie

2

@Shalom, no nie do końca, bo to pojęcie jest dość pojemne. Dla jednych to tylko umiejętność pisania kodu w miarę zgodnego z SOLID/YAGNI/wzorcami projektowymi. Dla innych to znajomość tego jak działa spring/CDI/hibernate. Dla kogoś innego to wiedza o magii JVM i gc.

@pioflor, zazwyczaj oznacza, że poza znajomością składni i podstawowego API języka ogarniasz najpopularniejsze frameworki i technologie.

1

Wydaje mi się, że chodzi tutaj bardziej o znajomość tego na jakiej zasadzie działa, znajomość składni języka, obiektowości, standardowych bibliotek i mechanizmów. Konkretne rzeczy takie jak SOLID, YAGNI, KISS, wzorce, CDI, hibernate, spring itp. są zazwyczaj wyszczególniane w osobnych punktach.

0

Z mojego doświadczenia rekrutacyjnego bym dodał od siebie, że najczęściej pytają o :

  1. Dziedziczenie, klasy , interfejsy
  2. Wyjątki
  3. Stringi
    to tyle jeśli chodzi o JavaSE.
1

@pioflor o_O chyba na staż, bo do pracy to jeszcze przynajmniej concurrency, kolekcje i wzorce ;]

0

Zapomniałem o przetwarzaniu współbieżnym. Z kolekcjami się jeszcze nie spotkałem. To dziwne, bo mi się też wydają istotne ,może jakoś miałem takie dziwne szczęście. Wzorce projektowe ( domyślam się, że o takie chodzi) nie są częścią Javy. Pojawiają się na testach, tak samo jak znajomość SQL czy JavaScript, ale to nie integralna część Javy. Na testach jest oczywiście jeszcze cześć dotycząca JavaEE. Wydaje mi się, że jak pojęcie "dobra znajomość Javy" odnosi się tylko do JavaSE. JavaEE to zbiór frameworków.

0

Masz rację, wydaje ci się. Nie wiem jak mogłeś nie spotkac sie z kolekcjami. Napisałeś coś więcej niż hello world kiedyś? o_O Co do frameworków to właściwie nie da sie pracować w javie bez nich...

0

Ostatnio byłem na spotkaniu rekrutacyjnym gdzie również była wymagana dobra znajomość javy.
O ile teoria faktycznie zawierała sporo na temat wzorców, kolekcjach, interfejsach czy typy generyczne to zadania praktyczne polegały na napisaniu prostych metod generujących szachownicę 01 czy też sortowanie tablicy wg określonych kryteriów.

0
Shalom napisał(a):

Masz rację, wydaje ci się. Nie wiem jak mogłeś nie spotkac sie z kolekcjami. Napisałeś coś więcej niż hello world kiedyś? o_O Co do frameworków to właściwie nie da sie pracować w javie bez nich...

Widocznie firmy w który byłem uznały, że nie potrzeba sprawdzać kandydatów z kolekcji. Nie pisałem ani razu hello world. Widać uznali że to zbyt proste :). Trzeba było pisać parę metod które np. liczą ilość jedynek w rozkładzie binarnym, albo odwracają tablice znaków. Wszystko na kratce, można powiedzieć, że programowałem kartkę:).
Co do freamworków, to na ogłoszeniach są wyszczególnione jakie są wymagane, więc myśląc logicznie nie są częścią pojęcia dobra znajomość Javy. Inaczej po co by powtarzali to samo wymaganie. Mogli by napisać porostu dobra znajomość Java.

0

To w takim razie @Koziołek @Shalom elementarna lub podstawowa znajomosc JAVY wg was co oznacza?

2

@pioflor jakby mi ktoś odwrócił tablicę znaków inaczej niż za pomocą Lists.reverse(Arrays.asList(tablica)).toArray() to bym sie mocno zdziwił, szczególnie jakby miał w cv "dobrą" znajomość javy ;)
Tak samo jakby ktoś tą ilość jedynek w rozkładzie binarnym zrobił inaczej niz przez ''Integer.toBinaryString(liczba)" + stream + filter + collect, więc generalnie tak jak powyżej to jest pół linijki kodu... Ale jak się ma słabą znajomość javy to się siedzi i pisze fory...

elementarna znajomość to znaczy że ktoś zna składnie języka ;]

1
Shalom napisał(a):

@pioflor jakby mi ktoś odwrócił tablicę znaków inaczej niż za pomocą Lists.reverse(Arrays.asList(tablica)).toArray() to bym sie mocno zdziwił, szczególnie jakby miał w cv "dobrą" znajomość javy ;)
Tak samo jakby ktoś tą ilość jedynek w rozkładzie binarnym zrobił inaczej niz przez ''Integer.toBinaryString(liczba)" + stream + filter + collect, więc generalnie tak jak powyżej to jest pół linijki kodu... Ale jak się ma słabą znajomość javy to się siedzi i pisze fory...

elementarna znajomość to znaczy że ktoś zna składnie języka ;]

  1. ArrayUtils.reverse lub zwykła pętla

  2. java.lang.Integer.bitCount()

lub coś ze świata C:

int NumberOfSetBits(int i)
{
     i = i - ((i >> 1) & 0x55555555);
     i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
     return (((i + (i >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
}

http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer

Generalnie to wkurzają mnie takie pytania na rozmowach, bo rozmowy o pracę są dość stresujące, a odpowiedzi na te pytania na kompie znajduję w pół minuty.
Więc co takie pytanie ma testować? Umiejętność programowania papierowego komputera?

2

Ja byłem na jednej rozmowie i kod musiałem podawać... ustnie. Czy to jest normalne?

0

W moim przypadku dyktowałem zapytania sql, komendy linuxa i np. implementacje bodajże ArrayList.

0

Implementacja ArrayList no najs :D Jakieś jeszcze ktoś dostawał pytania ? Temat wydaje się być interesujący :D

0

Tak, nie mogłem sobie poradzić z tym to łaskawie dostałem kartkę do napisania... pisząc na kartce zdecydowanie łatwiej niż to wydukać... heh

0

Ale ta akcja z ArrayList nie jest niczym niezwykłym. W niektórych firmach potrafią poprosić o wymienienie wszystkich metod z interfejsu Map.

0

zabawmy się w wirtualne rekrutacje;
if(student.getName() != null && student.getName().equals("jakistam")) { ...

jak to robić lepiej?

0

@karolinaa:

  1. styl Jody (może być też stylem właścicieli kotów):
if ("jakistam".equals(student.getName()))
  1. styl indiański
if (StringUtils.equals(student.getName(), "jakistam"))

Ile można zarobić? :)

0

ja chciałam jakiś newbies ;p

0
vpiotr napisał(a):

@karolinaa:

  1. styl Jody (może być też stylem właścicieli kotów):
if ("jakistam".equals(student.getName()))
  1. styl indiański
if (StringUtils.equals(student.getName(), "jakistam"))

Ile można zarobić? :)

Jestem newbie, dlaczego te style są lepsze?

0

Bo nie musisz sprawdzać czy coś jest nullem

1

Jeszcze jedna opcja:

student.isNamed("jakiśtam");

//... i dlalej

public boolean isNamed(@Nonnull String otherName){
   return otherName.equlas(this.name);
}

Całość pociągnięte analizą w trakcie kompilacji wywali się w momencie gdy otherName będzie null albo "pochodzenie" zmiennej będzie wskazywać na to, że jest ona null (np. przychodzi jako parametr nie oznaczony @Nonnull i nie jest sprawdzana pod kątem bycia null wyżej w stosie wywołania).

0
Koziołek napisał(a):

Ale ta akcja z ArrayList nie jest niczym niezwykłym. W niektórych firmach potrafią poprosić o wymienienie wszystkich metod z interfejsu Map.

Może i tak ale i tak o niebo łatwiej napisać na kartce chociaż niż o tym mówić :D

0

Zależy dla kogo. Tu można by wejść w temat typów osobowości i neuropsychologię by spróbować określić jaka forma rekrutacji komu odpowiada, ale samo wymienianie metod z interfejsu jest idiotyzmem.

0

Java to bardzo rozległy temat.
Na ogół takie wymaganie oprócz dobrej znajomości samego api Javy wiąże się ze znajomością Javy EE i przynajmniej podstawową znajomoscią Springa, Mavena, Hibernate'a, tego typu praktycznych zagadnień.

0

Dodatkowo wypada znać Apache Commons + Guava

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