Rekrutacja - Zadanie programistyczne

0

Witam wszystkich : )
Wypełniłem kwestionariusz rekrutacyjny na juniora (Java). Niedawno otrzymałem e-mail, że w krótkim czasie powinienem otrzymać zadanie programistyczne. Jeszcze nigdy takiego nie wykonywałem i ciekawy jestem czy do rozwiązanego zadania powinienem tworzyć dokumentacje. Co z testami i np. diagramami klas? Czy takie rzeczy są wymagane, czy opcjonalne na plus?
Mieliście już kiedyś styczność z takimi rzeczami? Jestem ciekawy waszych przemyśleń i doświadczeń: )

0

Kiedyś miałem takie zadanie zrobić na juniora. Wszystko było wyraźnie opisane, czego wymagają. Program polegał na napisaniu prostej klasy z kilkoma polami i załadowaniu obiektów do ArrayListy z pliku tekstowego. Miałem zrobić dokumentację opisująca poczynione założenia i zastosowane rozwiązanie na 2 strony A4. Na plus mogą być, wg mnie, testy JUnit, jeśli znasz. Albo proste użycie Mavena do załadowania bibliotek.

0

Albo dostaniesz coś prostego do napisania albo linka do codility ;] Diagramów ani dokumentacji raczej nie ;)

0

Nie lepiej zaczekać na treść zadania?

0

Jeśli nie będzie jasno wymagana olej dokumentacje i diagramy, skup się czy czystym kodzie i dobrym nazewnictwie. Moim zdaniem testy byłyby na duży plus, ale opcjonalny, jeśli Ci się uda przejść dalej i zwrócą na to uwagę to przynajmniej będziesz miał jako tako pewność że sami produkują kod dobrej jakości

0

Takie zadanko to może być właśnie Codility albo Hackerrank, względnie coś typu współpraca z kimś z firmy w środowisku typu cloud9 + skype, albo jakieś zadanko do domu na 24/48h/tydzień.

Wersja codility/hackerranki/inne

Dostaniesz zadanko, kod do napisania i jakieś test casey do przejścia - nie marnuj czasu na dokumentację bo jak coś nie działa to ci to nie pomoże. Najlepiej pisać w czymś ludzkim jak IntelliJ i później odpowiednio kopiować, przynajmniej jakiś debug jest dostępny. Zwykle link będzie żywy przez np 24h, najlepiej wcześniej sobie wejść na odpowiednią stronkę i przeklikać przez jakieś proste zadanka, będziesz przynajmniej widzieć gdzie klikać i jaki format odpowiedzi jest oczekiwany, również jaki jest feedback z testów.

Wersja live coding

Tutaj powiedzą ci co i jak, warto w trakcie uzasadniać decyzje projektowe i dopytywać się o szczegóły zadania przed implementowaniem - jakie założenia można przyjąć itp - otwórz sobie jakieś przeszukiwalne javadocsy wcześniej.

Wersja zadanko do domu

Na początku pozadawaj pytania odnośnie niejasności i założeń (również później jeśli coś wyjdzie w trakcie implementacji, ale nie co 5 minut), na końcu przydałoby się mieć kod który:

  • działa (w tym sprawdzanie poprawności wejścia, jakaś odpowiednia obsługa innych błędów)
  • jest sensownej jakości (sensowna struktura, spójne formatowanie, dobre nazewnictwo, użycie "nowszych" ficzerów Javy)
  • ma 1-click build (mvn, gradle, sbt, whatever)
  • ma jakiś opis architektury chociażby przez machanie rękami (chyba że to coś prostego) - najlepiej README + poglądowy obrazek (raczej nie ma sensu robić
  • ma odpowiednie testy
  • ma kontrolę wersji (upewnij się że masz skonfigurowanego autora pod twoim nazwiskiem i mailem, a nie jako AnalRapist235 <[email protected]>, widziałem coś podobnego)
  • jeśli ci wolno to jakoś wystawić najlepiej podpiąć to na githubie pod Travisa, krótkie, proste a daje punkty za nawet podstawowe użycie CI
  • jeśli korzysta z zewnętrznej bazy (wątpię żeby coś takiego dali, prędzej coś zembedowanego typu h2) to również jakiś Vagrant czy Docker nie zaszkodzi, ale to raczej niski priorytet
  • jeśli to jakieś webowe cudo to można to wrzucić na przykład na heroku

Oczywiście w tej kolejności. Pierwsze cztery są oczekiwane (czwarte od biedy ustnie), testy w jakimś rozsądnym wymiarze raczej też (przynajmniej żeby pokazać że wiesz że jest coś takiego jak testy), historii w VCSie ci raczej nikt nie będzie przeglądać ale tak czy siak trzymaj to czysto. Reszta to raczej bonus, zwłaszcza na juniora. W zależności od firmy mogą nawet oczekiwać tylko pierwszych dwóch.

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