Idealny programista znad Wisły

Czy polscy programiści wyróżniają się na arenie międzynarodowej? Czy ich wysokie umiejętności przekładają się na kariery zawodowe?

Opinia o wysokich umiejętnościach polskich programistów nie została wymyślona przez lokalną społeczność deweloperską w celu poprawienia sobie zbiorowego samopoczucia. Zbyt wiele jest dowodów świadczących o wysokiej jakości kodu tworzonego nad Wisłą lub przez ludzi pochodzących z Polski.

Polska na mapie świata

Międzynarodowym, mierzalnym wskaźnikiem pozycji polskich twórców kodu mogą być rankingi organizowanego od 2001 r. światowego konkursu programistycznego TopCoder. W zawodach uczestniczą programiści z całego świata, a będące efektem ich rywalizacji rozwiązania są potem licencjonowane i sprzedawane. W konkursach z zadań algorytmicznych Polska zajmuje trzecie miejsce, ustępując Rosji i Chinom.

W rankingu uczelni drugie miejsce zajmuje Uniwersytet Warszawski i nie wiem, czy nie byłby pierwszy, gdyby nie nadreprezentacja koderów z pierwszego na liście Uniwersytetu w Tokio. Na pozycję danej uczelni ma jednak wpływ liczba jej studentów uczestniczących w rywalizacji. Podobnie jest z krajami. W czołówce są jeszcze Uniwersytet Jagielloński (16) i Uniwersytet Wrocławski (21). Gdy porównać uznane rankingi akademickie, w których polskie uczelnie zajmują najczęściej miejsca trzycyfrowe, widać, że nasi młodzi programiści coś w świecie znaczą.

Wśród krajów o podobnym potencjale ludnościowym w świecie nie mamy sobie równych. Wysoko jest także Ukraina; z biznesowego punktu widzenia Polska jest dla firm zachodnich wymarzonym zagłębiem programistów.

Konkursy, olimpiady, mistrzostwa...

TopCoder dostarcza systematycznych i mierzalnych danych, jak polscy programiści wypadają na tle innych nacji. Mniej systematycznym, ale regularnym wskaźnikiem wyjątkowości polskiej szkoły programowania są konkursy organizowane przez duże firmy IT lub międzynarodowe olimpiady. Google Code Jam: w 2011 r. 3 miejsce Polaka, w 2010 r. Polacy na 5, 6, 12, 13 i 16 miejscu. Akademickie Mistrzostwa Świata w Programowaniu Zespołowym: 1 miejsce Uniwersytetu Warszawskiego w 2003 i 2007 roku, 2 miejsce Uniwersytetu Jagiellońskiego w 2006 r., 3 miejsce w 2011 roku.

Dalej Microsoft Imagine Cup - Polacy prawie co roku na podium. Międzynarodowa Olimpiada Informatyczna - w dotychczasowych 19 edycjach dziesiątki medali Polaków (w tym 21 medali złotych). Virtual Source Programming Contest: na 1 miejscu Polak. Przykłady można mnożyć. Rok 2012 pewnie przyniesie kolejne informacje o sukcesach polskich programistów.

Źródło polskich sukcesów programistycznych

Dlaczego w światowych rankingach programistycznych wyróżnia się kraj, który nie wyróżnia się pod wieloma innymi względami? Gdzie szukać przyczyn sukcesów polskich koderów w międzynarodowych potyczkach? Wydaje się, że można doszukiwać się pozytywnego wpływu polskiego kształcenia technicznego.

Miejsca polskich uczelni w rankingu TopCoder

2. miejsce Uniwersytet Warszawski i nie wiadomo, czy nie byłby pierwszy, gdyby nie nadreprezentacja koderów z pierwszego na liście Uniwersytetu w Tokio. Na pozycję danej uczelni ma jednak wpływ liczba jej studentów uczestniczących w rywalizacji.

16. miejsce ma Uniwersytet Jagielloński

21. miejsce ma Uniwersytet Wrocławski

Jakość kształcenia zawsze jest pochodną tradycji, jakie w danej dziedzinie wiedzy posiada dana uczelnia czy kraj. A tę, jeśli chodzi o nauki ścisłe, mamy w naszym kraju chlubną. Myślę tu o Szkole Lwowsko-Warszawskiej, czyli grupie akademików, związanych głównie z Lwowem i Warszawą, którzy przed wojną tworzyli jeden z najbardziej wpływowych w świecie ośrodków myśli matematyczno-logicznej. Przykładem wkładu szkoły w światową matematykę jest stworzona przez jednego z jej członków, prof. Jana Łukasiewicza, notacja polska - beznawiasowy sposób zapisu wyrażeń logicznych, której wersja (odwrócona notacja polska) wykorzystywana jest do dziś w niektórych językach programowania.

O umiejętnościach polskich matematyków i logików przed wojną świadczyć może udział polskich matematyków w złamaniu szyfru Enigmy, choć zaangażowani w przedsięwzięcie Polacy związani byli akurat z Uniwersytetem Poznańskim. Polskie przedwojenne tradycje matematyczno-logiczne nie pozostały bez kontynuacji. Polscy naukowcy kontynuowali tradycje Szkoły Lwowsko-Warszawskiej, wychowując kolejne pokolenia wysokiej klasy akademików. W połączeniu z nie najgorszą jakością kształcenia uniwersyteckiego w dekadach powojennych, polskie tradycje matematyczne zachowały wpływ, przekładając się na wysoki poziom dzisiejszych absolwentów kierunków matematyczno-informatycznych w Polsce.

3 miejsce za Rosją i Chinami - to pozycja Polski w organizowanych w różnych formach i z różną częstotliwością od 2001 roku zawodach TopCoder.

Inna istotna rzecz mogąca mieć wpływ na umiejętności polskich programistów to kształt programów studiów informatycznych w Polsce. Wprawdzie uczelnie europejskie, implementując Europejski System Transferu Punktów (ECTS), pod względem programów coraz bardziej upodabniają się do siebie, to do niedawna można było zauważać wyraźne krajowe specyfiki w programach studiów. Polskie kształcenie informatyczne jest wszechstronne. Absolwent informatyki w Polsce, w porównaniu z jego kolegą w Europie Zachodniej, wynosi gruntowną wiedzę w szerokim obszarze technologii informatycznych. Mój kolega, architekt aplikacji pracujący w Luksemburgu z informatykami wielu nacji, wspominał, że porównując programy studiów w Polsce i na Zachodzie, jego znajomi z branży twierdzili, że jego studia co do zakresu odpowiadały może i dwóm kierunkom IT w ich macierzystych krajach.

Sukcesy studentów, i co dalej?

Mamy zdolnych, dobrze wykształconych i osiągających sukcesy na arenie międzynarodowej programistów. Ale co z tego wynika? Jak to się przekłada na późniejszą pracę i sukcesy zawodowe zwycięzców konkursów, olimpiad i rankingów? Mało na ten temat wiadomo. Czy są w dorosłym świecie IT jacyś naprawdę znani polscy deweloperzy? Czy w światowej informatyce w ostatnich 20 latach coś znaczącego - język programowania, wzorzec, koncepcja, standard, produkt, firma - powstało w Polsce?

Brak sukcesów w tych obszarach nie jest zależny tylko od polskich programistów. Przyszło im programować w kraju, który wciąż jest cywilizacyjną drugą ligą, a jeśli chodzi o podejście do biznesu i przyjazność biznesowi, nawet daleką drugą ligą (62 miejsce Polski na 183 kraje w ostatnim rankingu Banku Światowego "Doing Business"). Trudno oczekiwać spektakularnych sukcesów biznesowych w kraju o słabej infrastrukturze komunikacyjnej, rozrośniętej biurokracji, ponadprzeciętnej korupcji, małej otwartości i małych budżetach na innowacje, zhierarchizowanych strukturach organizacyjnych w firmach i dworskich relacjach w nich panujących.

Czynniki te długo będą wstrzymywać przekuwanie pomysłów programistycznych na inicjatywy biznesowe. Można powiedzieć: wystarczy, że będę dobrym programistą, nie potrzebuję tworzyć w Polsce Google’a czy Facebooka. Można tak myśleć i w pełni rozumiem programistów chcących skupiać się na umiejętnościach deweloperskich, być dobrymi w tym, co lubią robić. Można przyjąć taką filozofię, ale grozi ona mało ciekawymi konsekwencjami. Czy wystarczy dziś być dobrym programistą, aby odnieść zawodowy sukces? I przez sukces rozumiem tu nie stworzenie start-upu, czy produktu, który zwojuje świat. Za zawodowy sukces uznaję tylko ciekawą, satysfakcjonującą, rozwojową i dobrze wynagradzaną pracę. Zatem, czy bycie dobrym programistą wystarczy, aby taką pracę mieć? Na dłuższą metę - nie!

Jest tak dlatego, że o sukcesie zawodowym decydują nie tylko wiedza i umiejętności, ale szerzej pojęte kompetencje. Czym są kompetencje? Obejmują wiedzę i umiejętności, ale dodatkowo składają się na nie też postawy, czyli wyuczone sposoby myślenia, odczuwania i działania w otaczającym świecie. Świetne posługiwanie się językiem programowania będzie umiejętnością. Natomiast opór przed poznawaniem nowych technologii będzie już brakiem kompetencji. Komunikacja z bazą danych za pomocą PL/SQL będzie ważną umiejętnością. Ale niechęć do nauki rzeczy niezwiązanych bezpośrednio z pracą będzie niekompetencją.

Polskie braki w wykształceniu

Przy świetnych umiejętnościach i bogatej wiedzy to właśnie braki w kompetencjach nie pozwalają wykorzystać ogromnego potencjału polskich programistów. Nie każdy programista powinien marzyć o karierze Gatesa, Zuckerberga czy Jobsa. Nie rozwijając jednak kompetencji w dłuższej perspektywie, skaże się na zawodową stagnację, poprzez pozbawienie się szans, o których może nie będzie wiedział. Zatem, co warto zrobić, aby w swojej karierze nie musieć być zależnym od przypadku? Aby mieć pomysły na dalszy rozwój i wiedzieć, jak je zrealizować? Oto sześć podstawowych rad.

1. Naucz się współpracować. Rzadko kiedy będziesz programować coś sam, a polski system kształcenia nie uczy kooperacji. Większość firm coraz większy nacisk kładzie na tzw. umiejętności miękkie. Niekiedy są one cenione wyżej niż umiejętności techniczne.

2. Zaakceptuj biznes. Zarabiając na życie programowaniem, będziesz musiał zaakceptować reguły rządzące twoją pracą.

3. Otwórz się. Otwartość i szerokie horyzonty są kompetencją przydatną w życiu, w zawodowym także. Czy nie daje do myślenia fakt, że najlepsza techniczna uczelnia świata, MIT, umożliwia włączenie do programu studiów kursy z czytania poezji czy historii wczesnego chrześcijaństwa?

4. Poznawaj świat. Mało rzeczy tak bardzo otwiera umysł, jak kontakt z odmiennymi sposobami życia i myślenia. Nowe idee rzadko powstają bez twórczej inspiracji z zewnątrz. Dłuższe zetknięcie się z odmienną kulturą, doświadczenie innych sposobów myślenia o pracy, różnych podejść do kariery jest niebagatelnym kapitałem życiowym i zawodowym.

5. Ucz się. Nie ma drogi na skróty, nie wierz w kursy programowania w weekend. I pamiętaj, że edukacja nie kończy się wraz z uzyskaniem dyplomu.

6. Poznawaj języki. Przynajmniej angielski, i to dobrze. Dobra znajomość języka to nie tylko większe szanse zawodowe. Jej brak to często eliminacja z puli kandydatów do pracy w firmach międzynarodowych.

Jeśli chcesz drogę zawodową związać z programowaniem, najważniejszą rzeczą jest, abyś tworzył dobry kod. Twój sukces zawodowy zależeć jednak będzie od czegoś więcej niż tylko tworzenia dobrego kodu. Warto o tym pamiętać.

Paweł Zdziech pracuje na stanowisku Recruitment Manager w firmie 7N, jest autorem bloga rekrutacyjny.blogspot.com. Współpraca: Aleksandra Budzyńska.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200