48 órás programozóverseny 2011-ben Debrecenben. Ebben nagyon jók vagyunk. MTI Fotó: Czeglédi Zsolt |
Vajon melyik országnak vannak a legjobb programozói a világon? A tippek között biztos ott lenne az Egyesült Államok (a zsenik közül mindenki hallott már Bill Gatesről, de sokan talán Ken Thompsonról, Dennis Ritchie-ről vagy épp Donald Knuthról is). Vagy esetleg India, ahol az egész világon a leggyorsabban nő a programozói közösség? Netán Oroszország, amelynek hackerjei folyamatosan bebizonyítják, mennyire hatékonyan dolgoznak? Nem könnyű megmondani, attól is függ, mi alapján rangsoroljuk a teljesítményt - a HackerRank most kidolgozott egy jó módszert - és Magyarország igencsak előkelő helyen végzett a listán.
A programozó a szabadidejében is programoz
A HackerRank ugyanis időről időre meghirdet különböző kódolási feladványokat - a programozók ezek megfejtésével csiszolhatják tudásukat. A világ minden tájáról több százezer (!) fejlesztő vesz részt ezeken, akik számos programnyelven és programozási területen mérik össze ismereteiket. A közösség már több mint 1,5 millió rangsorolt fejlesztőből áll.
A HackerRank adatai alapján Kína és Oroszország adja a legtehetségesebb fejlesztőket. A kínai programozók teljesítenek a legjobban matematikában, funkcionális programozásban és az adatstruktúrákkal kapcsolatos kihívásokban, míg az oroszok a legjobbak az algoritmusok területén. Miközben létszám szerint az Egyesült Államok és India adja a résztvevők legnagyobb tömegét, az eredmények alapján csak a 28. illetve 31. helyre kerültek.
Az algoritmusokon törik a legtöbbet a fejüket a programozók
A programozók körében egyébként az algoritmusokkal kapcsolatos kihívások a legnépszerűbbek, a fejlesztők 40 százaléka vett részt ezekben. Ide tartozik az adatok csoportosítása, dinamikus programozás, kulcsszó-keresés és más logikai feladatok is. Az algoritmusok teszteléséhez a fejlesztők bármilyen programnyelvet használhatnak - ez lehet az egyik magyarázata a népszerűségnek. A programozói (állás)interjúkon egyébként is szinte mindig előkerülnek az algoritmusok, nem csoda, hogy a fejlesztők folyamatosan csiszolják tudásukat ezen a téren.
Az algoritmusok mögött jócskán lemaradva a Java feladatok és az adatstruktúrák következnek a népszerűségi listán. A legkevesebb programozó az osztott rendszerekkel és a biztonsággal kapcsolatos kihívásokon vesz részt, bár még ezeken a területeken is több ezer megoldott feladatot tart nyilván a HackerRank.
Előkelő helyen a magyar programozók
A kihívásokon elért eredmények alapján készítette el az országok rangsorát a HackerRank. Kiszámolták minden ország átlagos elért pontszámát az összes területen, ezeket az átlagokat standardizálták (leegyszerűsítve: az átlagtól való eltérés vizsgálata segítségével összehasonlíthatóvá tették az eredményeket). Az eredményeket egy 1-től 100-ig terjedő skálán jelölték, ahol a az első helyezett Kína eredménye 100 pont, a többiek eredményét hozzájuk mérték.
Jól látszik, hogy csak egy hajszállal előzték meg Oroszországot (99,9 pont). A harmadik helyezett 98 ponttal Lengyelország, a negyedik pedig Svájc lett. Szenzációs eredmény, hogy az ötödik helyen Magyarország futott be: programozóink eredményei alapján 93,9 pontot kaptunk.
Van, amiben az egész világot megverjük
Az egyes területek közül a top 5-ben végeztünk Javában (3.), C++-ban (3.), shellben (a Unix alapú rendszerek fontos komponense, magyarul héjnak is mondják, 3. helyet értünk el), adatbázisokban (5. hely). Az egyik területen pedig a magyar programozók a legjobbak az egész világon: ezek az úgynevezett Tutorial típusú feladványok, magyarán a tanulásban élenjárók vagyunk a világon.
A magyarokról az is kiderült, hogy a legkitartóbbak közé tartoznak, szinte soha nem adják fel a kihívást, ha egyszer elkezdik: a svájciak után a második helyre kerültünk ezen a listán. Az elkezdett feladatok mindössze 2,7 százalékát adják fel a magyarok azelőtt, hogy elérnének valami érdemi eredményt.
A cikk szerkesztésében közreműködött Szabados Kristóf, az Ericsson szoftverfejlesztője.