Association for Computing Machinery – International Collegiate Programming Contest (ACM-ICPC) to wielopoziomowy, zespołowy, programistyczny konkurs organizowany na Baylor University. To jeden z popularnych turniejów w świecie IT. Dlaczego warto brać udział w tego typu inicjatywach?
ACM-ICPC – zasady
ACM-ICPC polega na globalnej sieci uniwersytetów organizujących regionalne zawody, które awansują zespoły do finału światowego. Udział bierze kilkadziesiąt tysięcy studentów i wykładowców z dziedzin informatyki z ponad dwóch tysięcy uniwersytetów. Konkurs rozwija kreatywność, pracę zespołową i innowacyjność w tworzeniu nowych programów, a także umożliwia studentom sprawdzenie swojej umiejętności pracy pod presją. Jest to po prostu najstarszy, największy i najbardziej prestiżowy konkurs programistyczny na świecie.
Turniej ten składa się z kilku etapów: kwalifikacji, półfinałów i finału. W każdym z nich trzyosobowe zespoły mają za zadanie rozwiązać jak najwięcej problemów programistycznych w ograniczonym czasie (zwykle 5 godzin) przy użyciu jednego komputera. Zadania są oceniane automatycznie przez system testujący, który sprawdza poprawność i wydajność rozwiązań. Zespoły są klasyfikowane według liczby rozwiązanych problemów i sumy czasu zużytego na każdy problem (liczonego od początku konkursu do momentu zgłoszenia poprawnego rozwiązania). W przypadku remisu decyduje liczba nieudanych prób zgłoszenia rozwiązania.
Regionalne zawody ACM-ICPC realizowane są w ramach Central European Regional Contest (CERC), który obejmuje również Czechy, Słowację, Węgry, Austrię i Szwajcarię. W 2021 roku CERC został odwołany z powodu pandemii COVID-19. Dawniej konkursy programistyczne – także na polskim rynku – cieszyły się sporym zainteresowaniem. Niestety zmieniło się to, co nie do końca mogę zrozumieć.
Wszystko, o czym za mało mówi się w branży IT.
Prosto na Twoją skrzynkę.
Czy konkursy programistyczne są przereklamowane?
Uważam, iż nie. Dzięki tego typu inicjatywom sprawiamy, iż o polskich programistach dowiaduje się cały świat. A takie sukcesy mają znaczenie szczególnie dla firm, które zastanawiają się nad wyborem kraju, w którym otworzą swój dział R&D. Dodatkowym plusem jest to, iż uczestnicy poszerzają swoją sieć kontaktów i mogą zostać wyłowieni przez największe firmy na świecie. Dlatego powinniśmy doceniać programistów, którzy dbają o promocję Polski.
Czy konkursy wewnętrzne w firmach mają znaczenie?
Tak, chociażby z jednego powodu: daje on możliwość porównania naszego produktu z innymi produktami tworzonymi przez inne działy. Taka inicjatywa daje także możliwość zmierzenia się w międzynarodowym wewnętrznym konkursie (jeżeli firma jest międzynarodowym gigantem). Samo zwycięstwo albo nominacja do nagrody to wyróżnienie dla pracownika. Każdy z nas poświęca wiele czasu dla firmy, w której pracuje, dlatego moim zdaniem takie wyróżnienie to wyjątkowa sprawa. Sam w tym roku otrzymałem nagrodę za innowację w Hitachi.
Niestety nie wszystkie firmy nagradzają pracowników. Część z nich co najwyżej zaprasza na wspólny obiad po zakończonym projekcie. Jest to o tyle przykre, iż poświęciłeś wiele czasu w zrobienie projektu a masz poczucie, iż nikt Twojej pracy nie docenił. Moim zdaniem w takiej sytuacji dużo trudniej o wykrzesanie motywacji. Wysoka premia to jedno, ale brak docenienia oddziałuje mocniej.
Mimo wszystko zachęcam Was do udziału w konkursach programistycznych, zarówno tych organizowanych wewnętrznie, jak i przez pozostałe organizacje. Trzymam kciuki za wygraną, ale i za czerpanie euforii z samego udziału w wyzwaniu!
Zdjęcie główne artykułu pochodzi z unsplash.com.