Podsumowanie konkursu Najlepszy Java Developer

Podsumowanie konkursu

Celem konkursu „Najlepszy Java Developer” było zmotywowanie ludzi do rozwiązywania przedziwnych problemów wykorzystując do tego języka Java. Zgłosiło się łącznie 70 osób, niektórzy tylko się zgłosili, niektórzy wykonali kilka zadań, jednej osobie udało się wykonać wszystkie – ale o tym później.

Sam konkurs zakończył się 28 lutego 2019 roku, od tego czasu aż do 23 kwietnia leżały nie sprawdzone trzy ostatnie zadania z konkursu. W końcu się udało i nadszedł temat podsumowania konkursu.

Chciałbym, aby ten wpis był dla mnie krótką refleksją po konkursie, miejscem gratulacji dla uczestników oraz Waszego feedbacku.

Jeśli nie słyszałeś wcześniej o samym konkursie to możesz o nim przeczytać dokładnie tutaj.

Rezultat

Tak jak wspomniałem – w konkursie wzięło udziało 70 osób. Poniżej możecie zobaczyć ranking uczestników (pełny ranking znajduje się tutaj).

I tak o to pierwsze miejsce zajął: Poul12, drugie adekeagle, zaś trzecie Nebra. Bardzo Wam gratuluję wytrwałości trwania w konkursie oraz samej chęci rozwiązywania zadań. Byliście najlepsi – czytajcie dalej, czekają na Was małe upominki. 😉

Chcę pogratulować wszystkim uczestnikom – oczywiście tym, którym udało się wykonać chociażby jedno zadanie. Jeszcze bardziej chcę pogratulować osobom, które wykonały wszystkie, albo prawie wszystkie zadania. W szczególnie Poul12 oraz adekeagle – byliście ze mną do końca. 😉

Mam nadzieję, że każda osoba, która rozwiązała chociaż jedno zadanie, dzięki niemu i może mojemu krótkiemu komentarzowi nauczyła się czegoś.

Nagrody

Na samym początku, gdy rozpocząłem organizować konkurs za bardzo nic nie wspominałem o nagrodach. Nie wiedziałem jak to do końca wyjdzie, czy w ogóle coś wypali – nie chciałem dawać nadziei. Choć był to mały błąd – może nawet najmniejsza nagroda bardziej motywowałaby niektórych uczestników. 😉

W czasie trwania konkursu stwierdziłem, że powinienem nagrodzić najbardziej zaangażowane osoby. Może taka mała nagroda jeszcze bardziej ich zmotywuje do nauki programowania.

Tą małą nagrodą będzie książka – oczywiście programistyczna. Do rozdania mam trzy książki dla uczestników z podium rankingu.

  • Clean Code – Robert C. Martin
  • 2x Effective Java – Joshua Bloch

Nie chcę sam decydować, kto którą książkę powinien otrzymać – może komuś się jedna bardziej przyda niż druga. Daję możliwość wyboru – pierwszeństwo wyboru oczywiście ma zwycięzca. Skontaktuję się z Wami osobiście na e-maila, książki będą wysłane po majówce. 😉

Refleksja

Chcę również zostawić tutaj swoje krótkie przemyślenia na temat samego konkursu, abym mógł za jakiś czas tutaj zajrzeć i uniknąć błędów, które teraz popełniłem.

System rankingu i rejestracji

Jeśli będę kiedykolwiek organizował kolejny konkurs to najpierw pomyślę o systemie, który ogarnie mi wszystko co jest związane z uczestnikami. Zamiast przekopiowywania uczestników z systemu mailingowego, do excela, do tabeli w wordpressie chciałbym mieć wszystko w jednym panelu.

Ocenianie

Sprawdzanie wielu prac jest męczące – szczególnie, gdy niektóre osoby nie do końca wysyłały rozwiązania w odpowiedniej formie. Kilku minutowe zmieniane nazw klas, zmiennych itd. Nie ukrywam – było to trochę męczące i musiałem przepalać na to sporo czasu.

Fajnie byłoby mieć jakiś sposób, który pozwoliłby szybciej sprawdzać rozwiązania. Może musiałbym rygorystyczniej podchodzić do tego? Prosty skrypt uruchamiający wszystkie testy dla wszystkich rozwiązań byłby idealny. Może jakaś dedykowana platforma? To będzie trzeba jeszcze przemyśleć.

Komunikacja

Nie jestem do końca pewny czy każdy za każdym razem dowiadywał się o nowym zadaniu. Raz zostało mi to zarzucone – prawdopodobnie wtedy zapomniałem wysłać maila lub wiadomość wpadła do spamu. Sprawa do przemyślenia. Może z góry ustalony harmonogram zadań.

Zadania

Powinienem mieć przygotowany co najmniej 3 zadania do przodu. Czasami zdarzało się tak, że przez napięty grafik nie byłem w stanie wymyślić nowego zadania. Przez co liczba zadań w konkursie się zmniejszyła.

W przypadku, gdy chciałem na szybko wymyślić jakieś zadanie sprowadzało się to często do jakiś prostych, akademickich zadań. Przed organizacją konkursu moim celem było dawanie zadań trochę z bardziej realnego życia programisty – np. konsumowanie restowego API, parsowanie plików itd.

Rozwiązania

Rozwiązania zazwyczaj pisałem dopiero podczas sprawdzania waszych rozwiązań. Nie jest to jednak dobre podejście, lepiej zrobić to od razu, gdy się jest na świeżo z danym problemem.

Feedback

Na koniec bardzo proszę Was o umieszczeniu w komentarzu swojej opinii. Nawet jeśli nie braliście udziału w konkursie to i tak proszę Was o zabranie głosu – może macie w głowie jakiś super pomysł, który bardzo usprawniłby taki konkurs.

Od samych uczestników chciałbym usłyszeć opinie na temat:

  • Komunikacji między mną, a Wami (nowe zadania itd.),
  • Poziom zadań  – czy może za trudne, czy może za łatwe,
  • Zadania – czy zadania były zrozumiałe, czy nie były czasami zbyt abstrakcyjne
  • Historyjki – czy łatwiej jest Wam zrozumieć problem, gdy jest rozrysowana wokoło niego historia opisująca go
  • Uwagi – czy moje uwagi dotyczące Waszych rozwiązań były dla Was cenne? Czy były zrozumiałe?

Czekam na szczere opinię, nie rańcie mnie kłamstwami. Chcę poznać prawdziwe opinie, które pomogą mi zrobić w przyszłości to dużo lepiej. Z większym rozmachem. 😉

Podsumowanie

I to w sumie na tyle tego całego konkursu. Muszę przyznać, że dał mi trochę poglądu na to, że trzeba dużo bardziej zaplanować wiele rzeczy, a nie zawsze wszystko robić z marszu. Kwestia oceniania waszych rozwiązań była naprawdę nie przemyślana i bardzo mnie zniechęcała do dalszego prowadzenia konkursu.

Ale najważniejsze, że wyciągnałem jakąś lekcję i gdzieś w głębi czuję, że zrobię podobny konkurs w przyszłości jeszcze raz. Dużo lepiej niż teraz.

Może przełomem będzie wspólne napisanie platformy dedykowanej pod taki konkurs? Kto to wie… 😉

PS: drodzy zwycięzcy sprawdzajcie swoje skrzynki pocztowe!