Siedząc w domu i samotnie zgłębiając tajniki programowania można nauczyć się bardzo dużo. Ale to nie wystarczy. Na szczęście bardzo wcześnie na swojej dev-ścieżce postanowiłem pójść o jeden, albo i dwa, kroki dalej.
Najwięcej – pod każdym względem – daje dopiero praca zespołowa. Kolejne levele w dev-skillu nabija się wtedy tak szybko, jak na pierwszych poziomach Diablo. A jeśli połączyć to z odważną decyzją “wyjścia na świat”: efektów nie da się oszacować.
Do tej pory w cyklu Procentografia ukazały się następujące odcinki:
- #1 Nieprogramistyczne Preludium
- #2 Narodziny programisty
- #3 Narodziny pasji
- #4 Wyjście z cienia
- #5 Na podbój świata
- (...)
Imagine Cup 2005 – projekt
Takim odważnym, wielkim krokiem, był dla mnie udział w konkursie Microsoft Imagine Cup. W 2005r odbywała się dopiero druga polska edycja tej inicjatywy. Jak można się domyślać, wyglądało to wtedy kompletnie inaczej niż teraz. Lepiej czy gorzej – nie mnie oceniać.
O konkursie dowiedziałem się oczywiście na uczelnianej grupie .NET. Okazało się, że zawiązała się ekipa planująca godnie reprezentować Białystok. Czteroosobowy zespół, a o trzech z nich pisałem w poprzednim odcinku: Robert, Karol, Łukasz i Andrzej. Pomysł na projekt mieli wypasiony (o ile się nie mylę, Robert to wymyślił, od zawsze miał tech-fantazję). Wtedy szczytem techniki było GaduGadu i ICQ… a co jeśli koncepcję komunikacji pociągnąć by dalej? Co gdyby udało się napisać program, do którego jeden użytkownik MÓWI po POLSKU, a na drugim końcu ktoś SŁYSZY to samo po ANGIELSKU? Real-time translator. Wow, czacha dymi. Teraz takie rozwiązania są już dostępne, ale pamiętajcie, że był to rok 2005.
Ale gdzie tam ja? W międzyczasie, przed startem prac, Robert zdecydował jednak trzepać kasę zamiast brać udział w konkursie, więc zwolniło się jedno miejsce. Wahałem się bardzo długo. No gdzie, no skąd, JA mam pisać takie coś, ze starszymi? A co jeśli nie wezmą mnie do zespołu? A co jeśli nie będę umiał? Po co mi to, żeby się zbłaźnić? Ale w końcu… zgłosiłem się do chłopaków. Chyba po raz pierwszy zmusiłem się do zrobienia czegoś bardzo wbrew sobie, przełamałem twardą, grubą, wewnętrzną barierę. I była to najlepsza decyzja w całym moim, kilkunastoletnim już, programistycznym życiu. Bo od tego wszystko się zaczęło.
Przyjęli mnie z otwartymi ramionami i otwartymi browarami. Tak zawiązał się uber-team “S3Tag.lib” (BTW, kto sprytny rozszyfruje zabawność tej nazwy?). A projekt nazwaliśmy: Pangea. Do boju!
Te burze mózgów, te szkice, diagramy i całe setki godzin spędzone na kodowaniu dały mi bardzo wiele. Pozwoliły jeszcze bardziej pokochać programowanie i wszystko, co z nim związane. Mogłem rozwinąć się bardziej niż kiedykolwiek wcześniej. Wtedy zobaczyłem co oznacza prawdziwa pasja, czym jest (uwaga!) gorące uczucie do kodu, do technologii. Wtedy doświadczyłem co to znaczy, gdy czwórka mega-napaleńców zostaje połączona przez jeden wspólny cel, a wszystko inne w ich życiach zostaje zepchnięte dalszy plan. Kolejne tygodnie i miesiące minęły pod jednym znakiem: PANGEA. To ona tętniła w naszych żyłach. Daliśmy z siebie wszystko. Nauczyliśmy się masę. I napisaliśmy.
Coś pięknego. Unosił się nad nami TEAM SPIRIT. Dostaliśmy w kość, przetrwaliśmy kilkumiesięczny tech-maraton, i efekt był piorunujący. Można było powiedzieć “ja lubię zielone lody“, a na drugim komputerze usłyszeć “I like green ice cream“.
A dlaczego akurat to? Nie używaliśmy gotowej biblioteki-tłumacza. Karol wniknął w maszyny stanów, mechanizm auto-tłumaczenia i napisał naszego polsko-angielskiego i angielsko-polskiego web-service-translatora.
Łukasz zajął się rozkminą rozpoznawania i syntezy mowy. 11 lat temu nie było to proste zadanie, tym bardziej, że w Windowsie wsparcia dla języka polskiego nie było zupełnie.
I problem z językiem polskim przypadł Andrzejowi: jak przekształcić polski tekst, aby angielski syntezator ładnie go wypowiedział? I odwrotnie.
Ja wykorzystałem swoje poprzednie doświadczenie z klientem do GaduGadu i napisałem własny komunikator, który dodatkowo potrafił się porozumieć z GG właśnie.
Dorzuciliśmy do aplikacji jeszcze sterowanie głosem. “new message, karol, ‘haj bejbe’, send” powodowało odnalezienie Karola na liście kontaktów i wysłanie mu przez GG wiadomości “Cześć bejbe“.
Szok. Kilka miesięcy po prawdziwym rozpoczęciu nauki programowania na własną rękę miałem zaszczyt stać się częścią świetnego zespołu budującego tak zaawansowany projekt. Doświadczyć na własnej skórze co znaczy poświęcenie, co znaczy wspólny cel i jak trudne może być dążenie do niego. Nauczyłem się kompromisów – bo trzeba było dochodzić do porozumienia w kwestiach związanych z projektem. Konflikty wszystko by zniszczyły. Po raz pierwszy uczestniczyłem w prawdziwie geekowskich, technicznych rozmowach – i z czystym sumieniem mogłem je prowadzić. Przekonałem się, że nie tylko we własnym pokoju jestem coś wart, ale i poza nim mogę się odnaleźć. MOC!
Cały VI semestr upłynął pod znakiem tego projektu. Nasza opiekunka, dr Jolanta Koszelew, moja późniejsza promotorka, zrobiła wokół startu w IC niezły szum na uczelni. Dzięki temu z części przedmiotów zostaliśmy zwolnieni, a na kilka kolejnych nie musieliśmy chodzić. Dostaliśmy nawet swój pokoik, w którym mogliśmy się spotykać i razem kodować. Co nie było takie proste, bo nie każdy (np. ja – nie) dysponował wówczas laptopem. Pisało się po prostu na jednej maszynie, na zmianę. Nie pair-, ale double-pair-programming.
W poprzednim odcinku wspominałem też o braku koncepcji kontroli wersji w tamtych czasach w naszych młodych umysłach, prawda? Oto co niedawno znalazłem:
100% focus na jeden cel: dostać się do ścisłych finałów. I największa możliwa satysfakcja: dostaliśmy się.
Imagine Cup 2005 – finały
Później okazało się, że to nie był taki straszny wyczyn. Do finału przechodziło 10 drużyn, a zgłoszeń z całej Polski było wtedy 13 albo 18, a nie milion jak teraz. W każdym razie: dostawała się ponad połowa.
Ale co to za różnica. Apetyt rośnie w miarę jedzenia, więc cel kolejny: wygrajmy to! Mamy świetną aplikację, która na dodatek całkiem nieźle działa. Mamy pasję, mamy zaangażowanie, mamy determinację. Mamy wszystko czego potrzeba. No i… nie mieliśmy wszystkiego, ale to nic.
Finały odbywały się wówczas w polskim biurze Microsoftu na Alejach Jerozolimskich – w tym samym miejscu, gdzie niedawno, po 11 latach, wróciłem z własnym eventem, Galą Finałową konkursu Daj Się Poznać. Wąż Uroboros wbił kły we własny ogon. Zasady były proste: każda z 10 drużyn po kolei wchodzi na scenę i prezentuje swój projekt przed jury (opiekunowie z uczelni) oraz innymi uczestnikami i zaproszonymi gośćmi. W sumie zebrało się tam z 70-80 osób.
Pojechaliśmy do Warszawy dzień wcześniej. Postanowiliśmy zindentyfikować się z naszą kochaną Pangeą także wizualnie, więc kupiliśmy sobie takie same granatowe koszule i takie same żółte krawaty. Świetny klimat, choć wyglądaliśmy dość śmiesznie:
Jest też wersja mniej oficjalna, z prywatnego archiwum:
Zameldowaliśmy się w hotelu napompowani energią, choć ledwo żywi. Od momentu wysłania projektu do oceny (pocztą, na CD) do ostatniej chwili dopracowywaliśmy jeszcze szczegóły. A to animacje w okienkach, a to dodanie kolejnych słów do tłumacza, a to jakaś półprzezroczystość, a to ikonka w trayu, a to zaokrąglone rogi, a to to, a to tamto…
Jedyne, na czym się NIE skupialiśmy, to przygotowanie prezentacji na scenę. Przecież znamy projekt na wylot, więc coś się wymyśli już w Wawie, co nie? No to po kolacji, w przeddzień finałów, odpaliliśmy w pokoju hotelowym we czwórkę PowerPointa, żeby przygotować jakieś slajdy. Ile to może zająć… max godzinka-dwie i zrobione!
Skończyliśmy przed samym śniadaniem. Gdzie “skończyliśmy” to złe słowo, bo wtedy po prostu musieliśmy przestać to robić – rozpoczynały się finały. Koniec końców – powędrowaliśmy na nie bez spania. Pamiętam piękną scenkę: Karol rozpakowuje Snickersa, po rozerwaniu papierka niesie go do japy… i zasypia w trakcie, przed wzięciem gryza. Jakież to było mega zabawne! Ta noc tak niesamowicie nas wyczerpała, że musieliśmy raz na jakiś czas całą gromadą wychodzić na spacery dookoła hotelu. Każdy z nas co jakiś czas przysypiał, ale na szczęście ani razu nie zasnęliśmy wszyscy, bo byłaby bieda i nic byśmy nie przygotowali.
Nad naszym wystąpieniem nie ma co się rozwodzić. Było ono po prostu smutne. A może tragikomiczne? Jednak trzeba było posiedzieć nad nim dłużej niż jedną noc. Zawaliliśmy, zepsuliśmy. Pangea zasługiwała na coś więcej.
Po całym dniu prezentacji impreza przeniosła się do jakiegoś pubu, gdzie wieczorem ogłoszono wyniki. Nie dostaliśmy się nawet do pierwszej trójki. Strasznie się zezłościliśmy, choć teraz, z perspektywy czasu: było to z naszej strony dość głupie. Projekt zaprezentowany w taki sposób nie miał żadnych szans na jakiekolwiek wyróżnienie. Doświadczenie na przyszłość: świetny pomysł i dobre wykonanie to nie wszystko, trzeba jeszcze całość odpowiednio sprzedać. Bardzo cenna lekcja i dobrze, że pozyskana na tak wczesnym etapie kariery.
Po powrocie na uczelnię zostaliśmy nawet uhonorowani przez władze wydziału. Na specjalnym spotkaniu wręczono nam dyplomy i pendrive’y w nagrodę (pisałem już, że wtedy to było coś). Potem w gajerach, z tymi dyplomami, sączyliśmy we czwórkę na uczelnianej ławeczce Okocim Palone (takie śliczne, z feniksem na butelce). Emocje związane z zawaleniem prezentacji już opadły i pozostały same świetne wspomnienia. A i szacun na dzielni uzyskaliśmy. Same plusy.
Polecam każdemu studentowi.
Microsoft Certified Professional
Dodatkowym benefitem startu w IC było otrzymanie voucherów na egzamin pozwalający uzyskać tytuł MCP – Microsoft Certified Professional. Podejście do takiego egzaminu kosztowało parę stówek, więc wtedy jako student nigdy nie mógłbym sobie sam na to pozwolić. Zarejestrowałem się w ośrodku certyfikującym i zabrałem się do nauki. To było dla mnie ważniejsze niż egzaminy na uczelni. Pochłonąłem wtedy całą masę artykułów, książek, poznałem .NET na naprawdę dobrym poziomie. Na finalne sprawdzenie się pojechałem w wielkim stresie i ze sporą dozą niepewności. Niby nic się nie stanie, jeśli nie zdam, ale z drugiej strony… jak fajnie byłoby zdać!
Zdałem. Ależ byłem wtedy szczęśliwy. Pamiętam, że po wyjściu z budynku usiadłem w samochodzie, puściłem “Break on through” Doorsów na cały regulator i po prostu delektowałem się chwilą. Ja, który raptem rok temu umiałem tylko pić szampany! Ja, który raptem rok temu malowałem balkony i nie miałem żadnych perspektyw! A teraz: finalista Imagine Cup i Certified Professional! To uczucie, te rysujące się perspektywy… coś wspaniałego.
(wtrącenie: certyfikat znaczył dla mnie wówczas bardzo wiele, ale teraz już tak nie jest, po więcej na ten temat zapraszam do tekstu z 2010r: “Kilka zdań o certyfikatach“)
Po III roku
Nie było łatwo. Ba, było bardzo ciężko. To był masakrycznie trudny rok. Ale… warto. Wiedziałem, że to dopiero pierwszy z wielu takich lat. I nie mogłem się doczekać co przyniesie przyszłość. Chciałem, aby duma, satysfakcja i powolny wzrost poczucia własnej wartości trwały wiecznie.
Postanowiłem więc nie czekać, tylko kuć żelazo póki gorące.
Był kiedyś taki portal: CodeGuru.pl. Spotykała się na nim cała polska społeczność związana z .NETem. A co ciekawe: przez dość długi czas portal ten powstawał studenckimi rękami. Kilkudziesięciu studentów zgłaszało się do pracy w wakacje i taki znaczny zespół, pod okiem Microsoftu, budował naprawdę duży projekt. Oczywiście również zgłosiłem się do prac nad nim. Można było poznać wielu aktywnych, zajaranych programowaniem napaleńców. Pokazać się w społeczności. Poduczyć internetów. No i… z innej perspektywy spojrzeć na swoje dotychczasowe osiągnięcia, bo Pangea przy CG to jak Saper przy Windowsie :).
Część wakacji spędziłem więc ucząc się ASP.NET i praktykując zdobytą wiedzę na żywym organizmie CodeGuru.
A druga część wakacji i cały IV rok to kolejne wyzwanie. Wielopłaszczyznowe.
C.D.N.
Do tej pory w cyklu Procentografia ukazały się następujące odcinki:
Fajny pomysł z koszulami:) btw: Bill Gates
Maciek,
Brawo z s3tag.lib ;)
Świetnie się czyta całą serię, ciekawie , uczy i bawi:D czekam niecierpliwie na kolejne:)
Jakub,
To gites, jeszcze sporo odcinków przed nami.
Niezła historia :-)
S3Tag.lib
Podasz rozwiązanie? :-)
Michał,
W pierwszym komentarzu padło rozwiązanie :)
A Pangea skąd się wzięła? Trochę zryta nazwa dla komunikatora. :P
Mała,
No jak to! Oczywistą nazwą byłoby “Babel”, ale poszliśmy o krok (lub skojarzenie) dalej. Pangea to dawny superkontynent, bez barier. Nasz projekt burzył bariery (komunikacji).
Aha, to zwracam honor, jestem niedokształcona… Mój zmysł do kojarzenia nazwy z funkcją woli jednak Gadu-Gadu i ICQ.
Etam zaraz niedokształcona – już wiesz :).