Nauka

Przepis na mistrzostwo świata

Ostatnia aktualizacja: 20.06.2007 09:47
Marcin Pilipczuk, Marek Cygan i Filip Wolski zajęli I miejsce w Akademickich Mistrzostwach Świata w Programowaniu Zespołowym.

Mieli 5 godzin na rozwiązanie 10 zadań programistycznych. Rozwiązali 8, ale to wystarczyło, by zająć I miejsce w rozgrywanych w tym roku w Japonii Akademickich Mistrzostwach Świata w Programowaniu Zespołowym i pokonać 87 innych zespołów. Marcin Pilipczuk, Marek Cygan i Filip Wolski nie będą już mieli kłopotu ze znalezieniem pracy. W czasie rozmowy z Marcinem Pilipczukiem o przyszłości informatyki okazało się, że do finałów mistrzostw świata w programowaniu zespołowym wiodła droga długa i kręta.

Marcin Pilipczuk: Konkurs charakteryzuje bardzo ostra rywalizacja, ale jednym z najtrudniejszych elementów okazały się eliminacje na etapie uniwersyteckim. Żeby pojechać na finały trzeba było najpierw pokonać inne drużyny Uniwersytetu Warszawskiego, a u nas jest bardzo dużo dobrych informatyków. Równie dobrze ekipa z Uniwersytetu Warszawskiego, która była druga na mistrzostwach Europy Środkowej mogła pojechać na finały i zająć wysokie miejsce.

Jak wygląda trening przed zawodami?

Marcin Pilipczuk: Trwa zazwyczaj 5 godzin - tak jak w czasie finałów. Bierzemy zestaw zadań z jakiegoś konkursu, zazwyczaj rosyjskiego - Rosjanie mieli ostatnio dużo konkursów i bardzo dobre zadania. Ćwiczymy 1-2 razy w tygodniu. W tym roku Rosjanie zaprosili nas na swój dwutygodniowy obóz treningowy do Pietrozawdoska. Tam mogliśmy trenować codziennie.

Macie jakąś strategię? Dostajecie zadania, zaczynacie je rozwiązywać, ale trzeba przecież zdążyć je spisać… kto pierwszy zasiada do komputera?

Marcin Pilipczuk: Celem jest to, żeby nie zajmować komputera, czyli wcześniej rozpisać sobie na kartce szkic rozwiązania, dopiero wtedy zacząć je wstukiwać, a po wpisaniu zadań nie szukać błędów siedząc przed monitorem, tylko wydrukować wstępne rozwiązania zadań na kartce. Dlatego nasza strategia wygląda tak, że najpierw Marek Cygan przepisuje kilka gotowych szablonów - makra i makefile'a. Można powiedzieć, że przygotowuje środowisko.
W tym czasie losowo dzielimy się zadaniami - jesteśmy na dość równym poziomie. Na początku każdy rozwiązuje osobno. Po dwóch godzinach, gdy mamy już kilka zadań, a pozostały te trudniejsze, zaczynamy wymieniać się pomysłami i rozwiązywać wspólnie. W czasie tegorocznych finałów ósme zadanie spisywaliśmy już w trójkę - ja klikałem, Marek siedział mi na karku i sprawdzał to, co pisałem, a Filip zastanawiał się, czy wszystkie nasze koncepcje są ok. Pisał kontrprzykłady na nasze pomysły.

Jak wygląda takie zadanie? Czy może okazać się przydatne dla przeciętnego użytkownika sieci, a na ile jest zupełnie abstrakcyjne?

Marcin Pilipczuk: To trochę tak jak z zadaniem matematycznym w szkole. Jest wyabstrahowane i trochę nieżyciowe, ale z drugiej strony same algorytmy i pomysły wykorzystuje się w życiu. Układający muszą wysublimować zadania, żeby to nie był projekt, który piszą pracownicy firmy przez 3 miesiące, ale żeby było to zadanie, które da się napisać w ciągu pół godziny. My w czasie konkursu zrobiliśmy 8 i uważamy, że trudno byłoby nam zrobić dziewiąte. Dwa pozostałe były naprawdę skomplikowane.

Informatyka to bardzo młoda dziedzina. Załóżmy że urodziłbyś się jakieś 35 lat wcześniej. W momencie gdy kończyłbyś 20 lat, nie byłoby jeszcze na świecie mikroprocesorów - czym byś się wtedy zajmował?

Marcin Pilipczuk: Sama teoretyczna algorytmika powstała w tym samym czasie co mikroprocesory, więc w latach 70-tych w informatyce miałbym już się czym zajmować. Możliwe, że siedziałbym teraz nad tymi najbardziej popularnymi algorytmami - tymi, które są obecnie uznawane są za klasykę informatyki: algorytm na poszukiwanie wzorca w tekście czy zrównoważone drzewa binarne. A gdybym urodził się jeszcze wcześniej... zostałbym matematykiem. Zresztą w dużej mierze jestem matematykiem. Odnoszę w tej dziedzinie sukcesy i zastanawiam się, czy częściowo nie zajmować się tym w życiu. Przed świętami Wielkiej Nocy byłem na zawodach regionalnych organizowanych przez Uniwersytet w Ostrawie. Udało mi się zająć trzecie miejsce.

Informacja o Waszym sukcesie rozpętała dosyć burzliwą dyskusję na forach internetowych nad tym, na ile przeciętny użytkownik sieci może zostać programistą. Pojawia się wiele pytań, typu: "mam 25 lat czy wiecie może jak szybko mogę nauczyć się programować?"

Marcin Pilipczuk: Programowania można nauczyć się szybko. Myślę, że każdy może spróbować, jeśli czuje, że ma ścisły umysł i nie znienawidził przedmiotów ścisłych w szkole. Jest wiele szkół programowania w internecie. Moi koledzy mają serwer http://main.niedasie.mimuw.edu.pl/, który jest teoretyczną akademią do uczenia się programowania i algorytmiki. Informatyka jest bardzo ciekawa, na topie, no i moim zdaniem opłacalna.

Jaką widzisz przyszłość dla informatyki - co jesteśmy w stanie przy pomocy tego narzędzia zrobić, a czego jeszcze nie?

Marcin Pilipczuk: Jestem teraz na praktykach w Google w Zurychu i mam wrażenie, że  główną ścieżką rozwoju są społeczności internetowe. Także unifikacja informacji, żeby dało się wszystko znaleźć w sieci, umieć to udostępniać i pokazywać. Potrzebujesz informacji,  siadasz do komputera i po 5-ciu minutach już masz. Największy sukces odniosły proste rzeczy. Np. taki serwis jak Youtube. Możesz zrobić filmik, przesłać go i pokazać światu. Do tego stworzono swoistą sieć: filmy możesz polecać, komentować itp. Czyli jest to serwis nieskomplikowany koncepcyjnie, lecz trudny od strony technicznej - globalny serwis Youtube czy Google są przewidziane na olbrzymią ilość użytkowników. Mam wrażenie, że teraz jak ktoś chce coś sprawdzić w encyklopedii, to siada do komputera i zamiast zdejmować cegłę z półki szuka w Wikipedii - przynajmniej taką decyzję podejmuje większość moich znajomych.

Sprawy urzędnicze, banki internetowe… co jeszcze Twoim zdaniem w przyszłości będzie można zautomatyzować?

Marcin Pilipczuk: Oczywiście, nie da się wszystkiego zautomatyzować - nigdy nie obejmie się programem 1001 przypadków, ale na pewno będzie można dużo więcej zrobić w tej dziedzinie. Z bankowością międzynarodową jest trudniej, bo wiąże się z nią np. przepływ waluty z kraju do kraju. Prawo nie nadąża za informatyką - pomysły, co jeszcze można zrobić powstają dużo szybciej niż próby ich regulacji prawnej.
 
W tej chwili więc organizujemy informację, którą przez wieki gromadziliśmy… a  czy istnieje jakaś możliwość unicestwienia cyberprzestrzeni? Wiemy o tym, że w Chinach Żółty Cesarz rozkazał zniszczyć niemal wszystkie teksty powstałe przed jego panowaniem. Czy istnieje możliwość, że zniszczone zostanie to, w co człowiek pokłada tyle nadziei?

Marcin Pilipczuk: Istnieją oczywiście katastroficzne wizje, które ludzkość rozwijała w fantastyce naukowej – na przykład wojny jądrowe, które zaszkodziłyby wszystkiemu, włącznie z siecią internetową, ale w to nie wierzę. Może jestem zbytnim optymistą.
Teraz dużo większym problemem sieci jest przestępstwo - kiedyś pisało się wirusy dla szpanu, teraz rozsyła się je dla zysków. Konie trojańskie działają już nie po to, żeby zrobić dowcip. Przejęty komputer potrafi rozsyłać dalej spam. Kolejnym z zagrożeń jest problem kradzieży przez internet.

Obserwujemy stałe dążenie do zwiększania mocy sprzętu, żeby procesory były coraz lepsze... Czy to ma w ogóle jakieś granice? Czy ogranicza nas fizyka?

Marcin Pilipczuk: Gdy dochodzi się do ścieżek szerokości kilkudziesięciu nanometrów, czyli obecnych - są już problemy na poziomie fizyki kwantowej - nie da się ich już za bardzo zmniejszyć. Obserwujemy więc tendencję, by budować systemy rozproszone. Zamiast kupna jednego wielkiego komputera z super techniką chłodzącą, inwestuje się w tysiąc małych i łączy je w sieć. Tak działają wszystkie wielkie centra danych - zarządza nimi dużo mniejszych komputerów, które dzielą się między sobą pracą. Ten kierunek działań widać zresztą po sukcesie SETI - programu szukania kosmitów w świecie. Wystartował on pod koniec lat 50-tych XX wieku. Ściąga dane ze wszystkich radioteleskopów i próbuje znaleźć nienaturalne nadanie z kosmosu. Zadaniem SETI jest przetworzenie danych z różnych radioteleskopów, zrobić transformatę Fouriera tych danych i puszczenie ich przez heurystykę. Te dziwnie brzmiące procesy wymagają bardzo dużo mocy obliczeniowej, więc program SETI zaczął w pewnym momencie upadać. Wynajem wielkich hal i komputerów dużo kosztował, a szukanie kosmitów to nie jest specjalnie dochodowy interes - nikt przecież niczego jeszcze nie znalazł. Właśnie wtedy ktoś wpadł na genialny pomysł i umieścił na stronie internetowej aplikację, którą każdy mógł ściągnąć sobie z internetu. Pobierała ona małą paczkę danych z SETI, przetwarzałą ją na komputerze i co jakiś czas wysyłałą odpowiedź. Działała w tle, kiedy procesor nie pracuje na pełnej mocy, np. w trakcie pisania maila. Kiedy kilka milionów ludzi z całego świata ściągnęło ten program, cała akcja SETI nagle odżyła. Później wiele innych programów poszło w jej ślady, np. program poszukiwania liczb pierwszych. Dziś można ściągnąć sobie z sieci kilka aplikacji, korzystające z mocy obliczeniowej domowego peceta. To bardzo szybkie komputery, które zresztą zgodnie z prawem Moore'a podwajają swoją moc obliczeniową co 18 miesięcy. To widać - są dużo lepsze niż 10 lat temu.

Na razie informatycy mają wzięcie - czy to się zmieni?

Marcin Pilipczuk: Niezbyt szybko. W informatyce wysokiej klasy specjalistów potrzeba coraz więcej, bo dziedzina ta wciąż się rozwija. Nie da się oczywiście wszystkiego przewidzieć - wiadomo, że za 50 lat inaczej będzie wyglądał świat, dla kogoś, kto teraz jest w liceum, informatyka to jednak na pewno bardzo dobra ścieżka życiowa.

Twoje marzenia?

Marcin Pilipczuk: Mieć bardzo ciekawą rozwijającą pracę.

Czy to możliwe, żebyś znalazł pracę, która by Cię rozwijała?

Marcin Pilipczuk: Oczywiście. Na przykład praktyki w Google'u mnie satysfakcjonują, są półnaukowe i bardzo odkrywcze. To chyba kwestia pracy w każdej wiodącej firmie na rynku. Wszyscy pracownicy są bardzo dobrzy i dużą odpowiedzialność za projekt można zwalić na ich barki. Jak będę kończył studia, chciałbym zostać w Polsce i mieć tak satysfakcjonującą pracę.

Myślisz, że to możliwe, że w Polsce znajdziesz taką pracę?

Marcin Pilipczuk: Tak, u nas jest bardzo dobra szkoła informatyki i dużo zdolnych informatyków. Wiodące zachodnie firmy przestały już więc wyciągać ludzi z Polski. Mamy już kilka siedzib firm, w których można zająć się opracowaniem wysokiej techniki - ADB w Zielonej Górze, Motorolla, Google i IBM w Krakowie. W Polsce jest już ciekawa praca.

Czy informatyk może współpracować z firmą zagraniczną przez internet?

Marcin Pilipczuk: Polityka Google nie pozwala ludziom pracować zdalnie. Pracuje się w siedzibie firmy - wspólne omawianie zagadnień na korytarzu, brak sztywnych godzin czy przebywanie razem w jednym pokoju sprzyjają kreatywnej pracy. Jak nie będziesz w ogóle pracował i nie pojawisz się przez 2 tygodnie w firmie, to oczywiście będą problemy, ale jest dosyć luźno - nie musisz na wejściu przybijać kartki i wychodzić po ośmiu godzinach. Wolę jeździć do biura niż pracować w domu. Oddzielać miejsce do pracy od miejsca do życia domowego, a w sobotę móc zdecydować, czy leżę do góry brzuchem, czy idę na rower.

Rozmawiała Helena Gołdon.


Czytaj także

Muzyczny alfabet Braille'a

Ostatnia aktualizacja: 27.08.2009 18:11
Materiał Polskiego Radia Euro.
rozwiń zwiń
Czytaj także

Zmarł Jacek Karpiński

Ostatnia aktualizacja: 22.02.2010 12:32
Przerastał swoje czasy. Był geniuszem. Niepokornym i bohaterskim. Komuniści przez lata niszczyli i jego i jego konstrukcje.
rozwiń zwiń
Czytaj także

Technologia wpływa na życie

Ostatnia aktualizacja: 01.06.2010 17:32
Jak będą się zmieniały świat i gospodarka? II dzień Europejskiego Kongresu Gospodarczego w Katowicach.
rozwiń zwiń