Pytanie rekrutacyjne na Juniora ...

Odpowiedz Nowy wątek
2019-08-12 16:13
0

Takie ototo przykładowe zadanie dostałem do przerobienia przed rozmową rekrutacyjna i przyznam sie nawet nie wiem od czego zacząć. Interfejs ArrayList? Za wszelką pomoc dziekuje serdecznie.
Zadanie

  1. Zaprojektuj interfejs systemu obsługującego mecze drużyn piłkarskich.Interfejs powinien operować metody umożliwiające planowanie meczy między drużynami , przechowywanie ich wyników, wyliczanie i prezentowanie statystyki dla poszczególnej drużyny, (np. ile meczy wygranych, ile przegranych, ile remisów, mecze zaplanowane lub przeprowadzone pomiędzy zadanymi datami.Możesz też zaproponować inne metody.
  2. Zaimplementuj także metody umożliwiające tworzenie list rankingowych drużyn wg. różnych kryteriów np. liczby wygranych meczy, alfabetycznie po nazwie drużyny.
  3. Zaimplementuj interfejs oraz napisz testy jednostkowe dla tego systemu.

Rozważ użycie klas : Mecz, Drużyna, Zawodnik, wykorzystaj kompozycje, rozważ użycie dziedziczenia.
Rozważ wykorzystanie typu enum do reprezentacji wyniku meczu.

Z ciekawości jakie wynagrodzenie podali w ogłoszeniu? - slayer9 2019-08-12 18:18

Pozostało 580 znaków

2019-08-12 16:20
0

a) Z czym dokładnie masz problem? Dostałeś nawet wskazówki jakie klasy masz stworzyć i co masz użyć.
b) Nie widzę, aby był wymóg aplikacji webowej więc możesz to zrobić konsolowo.
c) Najpierw zrób brzydko - "aby działało", potem to będziesz upiększać.

edit: Żeby nie było, mój komentarz nie jest zgryźliwy. serio pytam z czym dokładnie masz problem. Nie oczekuj, że dostaniesz od nas gotowe zadanie. Łatwiej by było jakbyś wypunktował swoje przemyślenia i swoje obawy jak Ty to widzisz.

edytowany 1x, ostatnio: kixe52, 2019-08-12 16:22
Powinienem stworzyc interfejs ArrayList żeby to działalo? - Arbiej 2019-08-12 16:23

Pozostało 580 znaków

2019-08-12 16:20
1

Zabrałbym się za to w taki sposób, że stworzyłbym klasę Mecz. KlasaMecz powinna zawierać dwa obiekty Drużyna, natomiast klasa Drużyna listę zawodników (obiektów klasy Zawodnik). Tworzenie list rankingowych zapewne ma się opierać o comparatory różnego typu. Poczytaj o https://docs.oracle.com/javas[...]api/java/util/Comparator.html. Ranking opierać o wyniki pobierane z tabeli z bazy danych z meczami.

Pozostało 580 znaków

2019-08-12 16:24
0
Arbiej napisał(a):

Powinienem stworzyc interfejs ArrayList żeby to działalo?

Dlaczego tak myślisz? Skąd Ci to przyszło do głowy? Wypunktuj proszę swoję przemyślenia dotyczące tego projektu i dodaj do niego swoje obawy. Postaramy Ci się pomóc ale nie w sytuacji gdy włożymy w to więcej niż Ty ;)

Po poziomie zadawanych pytań sukcesu nie wróżę. - slayer9 2019-08-12 18:19
Ostatnio założyłem temat w Oceny i recenzje z pytaniem czy moje odpowiedzi mogły być uznane za atak. Także tym razem powstrzymałem się od odpowiedzi jak Twoja :D Plusem jest to, że to jest zadanie przygotowujące do rozmowy rekrutacyjnej, a nie zadanie z rozmowy. Przerobi takich 50, rozwiąże napotkane problemy i będzie gotowy ;) - kixe52 2019-08-12 18:21
Czytałem właśnie dzisiaj w pracy ten temat :D Ja za to na pytanie powinienem stworzyc interfejs ArrayList żeby to działalo? chciałem odpisać: tak, powinieneś stworzyc interfejs ArrayList żeby to działalo, ale też się powstrzymałem. :D - slayer9 2019-08-12 18:25
Pytanie od czapy, ale trzeba zrozumieć że osoba początkująca ma problem z takimi pojęciami. W IT przyjęły się takie idiotyczne słowa jak interfejs lub encja, które są używane w tak wielu kontekstach, że w efekcie nie znaczą nic. - Grzyboo 2019-08-12 20:44

Pozostało 580 znaków

2019-08-13 06:53
0

Masz zdefiniować listę metod pozwalających na modyfikację danych według założeń projektu, a później zapisać ją w formie Java interface.

interface Score{
MatchId scheduleMatch(Team host, Team guest, Instant date);
void setResult(MatchId matchId, int goalsHost, int goalsGuest);
.....
}

Do tego oczywiście trzeba rozpisać klasy danych występujące w tych metodach. Na koniec zaimplementować ten interface.

Ale zdajesz sobie sprawę, że w ten sposób łamiesz Interface segregation principle? - mikee728 2019-08-13 08:09
@mikee728: Odpowiadam na pytanie czym jest interface, bo mam wrażenie, że brak tej wiedzy jest głównym problemem pytającego. - piotrpo 2019-08-13 08:30

Pozostało 580 znaków

2019-08-13 08:13
0

Może jednak zacznij od stażu a najlepiej książki

edytowany 1x, ostatnio: baant, 2019-08-13 08:14

Pozostało 580 znaków

2019-08-13 09:35
2

Powinienem stworzyc interfejs ArrayList żeby to działalo

Obawiam sie ze jesteś bardzo daleko od poziomu żeby iść na jakąkolwiek rozmowę rekrutacyjną. Interfejs List istnieje od dawna, klasa ArrayList też. Jednocześnie nie mają one zupełnie nic wspólnego z twoim zadaniem. Tzn może gdzieśtam w kodzie trzeba będzie użyć listy, ale jest to zupełny szczegół implementacyjny.
Dostałeś zadanie zaprojektuj samochód a pytasz się nas czy powinienem pokolorować to na czerwono.

Twoim zadaniem jest stworzyć biznesowy interfejs (albo raczej zestaw interfejsów) plus zestaw klas domenowych, które reprezentują podany problem. Masz to też zaimplementować, wiec realnie twoim zadaniem jest napisać program który umożliwia: planowanie meczy między drużynami , przechowywanie ich wyników, wyliczanie i prezentowanie statystyki dla poszczególnej drużyny, (np. ile meczy wygranych, ile przegranych, ile remisów, mecze zaplanowane lub przeprowadzone pomiędzy zadanymi datami.
Może ten interfejs w poleceniu cie zmylił, nie wiem, ale generalnie masz napisać program z takimi funkcjami jw.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 2x, ostatnio: Shalom, 2019-08-13 09:37

Pozostało 580 znaków

2019-08-13 15:52
0

Dzięki za porady i uszczypliwości rozmowe sobie daruje.

Pozostało 580 znaków

2019-08-13 15:55
0

Krytyka i porady, które mają swoje podstawy to uszczypliwości?

Pozostało 580 znaków

2019-08-13 17:15
0
Arbiej napisał(a):

Dzięki za porady i uszczypliwości rozmowe sobie daruje.

Dostałeś solidne porady jak się za to zabrać. Czego oczekiwałeś - że forumowicze napiszą za Ciebie aplikację? Czy, że każdy doda kawałek kodu od siebie, Ty to posklejasz w całość i będziesz miał z głowy? To jest dość prosty task, zwłaszcza jeżeli możesz go rozwiązać w domu. Naprawdę, w pracy będą czekały na Ciebie większe wyzwania, czasem bardziej skomplikowane, często usytuowane w ogromnym systemie i będziesz musiał to ogarnąć. Musisz dużo praktykować, bo po prostu na stanowisko Junior xxx Developer nie dostaje się z dobrymi chęciami nauki w pracy. Trzeba już coś umieć.

Właśnie widzę że trzeba juz coś umiec miałem mylne pojęcie.Jak pisałem dzięki. - Arbiej 2019-08-13 17:38
Odnosząc się do komentarza poniżej, od 3 tygodni uczysz się Javy na poziomie zerowym. Jest to zdecydowanie za szybko aby robić zadania rekrutacyjne. Przed Tobą nie 3 tygodnie, a 30 tygodni nauki (jak nie więcej). Dopiero jak opanujesz solidnie podstawy, możesz myśleć o rekrutacji. Nie poddawaj się! - kixe52 2019-08-13 22:09
To nie jest tak że sie poddaje ale warto wiedzieć co powinienem wiedziec a co nie.Uważam jednak ze po 3 tygodniach powinienem umiec rozwiąc powyższe zadanie. Wiem ze nauka programowania jest to proces ciagłej nauki wiec staram sie mocno nie zarażać. - Arbiej 2019-08-13 22:14
3 tygodnie to wcale nie jest dużo. Zależy czy przez 3 tygodnie siedziałeś 10h dziennie czy 2h. Zadanie jest proste, ale na jakimś poziomie, a nie na starcie nauki. DLatego tak wszyscy tutaj zareagowali, bo wspomniałeś o rozmowie rekrutacyjnej, a nie napisałeś, że naukę zacząłeś 3 tyg temu. - kixe52 2019-08-13 22:16
Zwyczajnie myślałem że powinienem to ogarnac już, dlatego nic nie pisałem.Starałem sie uczyć sporo jednak dla człowieka który wczesniej nie programował idzie to naprawde opornie.Nawet opanowanie podstawowych zagadnień. Siedziałem ok 20h tygodniowo tak to można uśrednić. - Arbiej 2019-08-13 22:19

Pozostało 580 znaków

2019-08-13 17:46
0

Miałeś na studiach inżynierię oprogramowania, gdzie rysowałeś diagram klas i tym podobne? Możesz to zrobić na takiej samej zasadzie, a później wygenerować i uzupełnić kod lub przynajmniej rozrysować graficznie projekt, aby widzieć co z czym się łączy :)
Może nie jest to zadanie, które zrobisz w 1 godzinę (przynajmniej ja, bo lubię eksperymentować:) ), ale dużo się przy tym nauczysz albo przypomnisz. Grunt to to, aby wszystko poukładać w logiczną całość, a później to już z górki.

A i podeślij kod, jeśli już coś zrobisz - sprawdzimy i powiemy czy jest dobrze :)
Powodzenia!

PS: Nie poddawaj się, bo widziałem w życiu masę ludzi, którzy byli blisko celu a i tak odpuszczali.

edytowany 2x, ostatnio: sweeneytodd, 2019-08-13 17:48
Pokaż pozostałe 15 komentarzy
Jak minie miesiąc i zaproponują Ci dalsze szkolenie, zorientuj się jaki jest tego cel i jakim kosztem. Jeśli szkolą Cię w kierunku technologii rynkowych - pożądane technologie, a nie jakieś g**no wewnętrzne, to wcale tak źle może nie być. Wszystko jednak zależy od umowy, którą będziesz miał podpisać. Pamiętaj, że skoro nie masz mentorów, to uczyć możesz się równie dobrze sam w domu. - kixe52 2019-08-13 23:11
Dzięki za rady, sam jestem ciekawy jak to się zakończy.Póki co mówia że Java ewentualnie Python ale to mało prawdopodobne. - Arbiej 2019-08-13 23:21
Java javie nierówna. Pytanie co w tej javie ;) - kixe52 2019-08-13 23:22
Tzn, że w tej javie możesz trafić na jakiś wewnętrzny system stworzony naście lat temu, który będziesz musiał utrzymywać, gdzie nie zobaczysz żadnej z pożądanych obecnie technologii rynkowych. Jeśli się na nim zasiedzisz to Twoja wartość rynkowa nie wzrośnie, a utracisz zdrowie psychiczne. Równie dobrze w tej samej javie możesz trafić na dosyć nowy projekt, gdzie w kilka miesięcy możesz poczynić większy progres niż przez ostanie 2 lata. - kixe52 2019-08-13 23:26

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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

Użytkownik: p_maciek