Idén is megrendezésre kerül az IBM 48 órás programozói verseny melynek célja, hogy a hazai felsőoktatásban résztvevő tehetséges hallgatók - csapatmunka keretében - összemérjék Java EE szoftverfejlesztői tudásukat, IBM-es technológiák felhasználásával. A jól teljesítő diákok álláslehetőséggel és értékes nyereményekkel lehetnek gazdagabbak, melyet az IBM Magyarország és partnerei biztosítanak. A versennyel kapcsolatos további információk megtalálhatók hivatalos honlapon.
Mielőtt megosztanék pár hasznos tanácsot a versennyel kapcsolatosan, következzen egy személyes vonatkozású áttekintés a 2007-es és 2009-es IBM 48 versenyről.
Először 2007. novemberében vettem részt az IBM 48 versenyen. Akkoriban kezdtem el ismerkedni a Java Enterprise világgal, az Imre Gábor által tartott Szoftverfejlesztés J2EE platformon választható tárgy keretében. Úgy emlékszem valamelyik óra végén szólt, hogy van ez a jó kis verseny és szívesen venné ha indulnánk rajta. Bár a csapatot (BBS) csak a verseny előtti napokban sikerült összeállítanunk és túl sokat nem is tudtunk rá készülni, különdíjasok lettünk.
A 2009. novemberi versenyre - a már meglévő tapasztalatokra építve - egy hétvégét készültünk, ahol is egy korábbi feladatot oldottunk meg, átnéztük az IBM technológiák használatát és megbeszéltük hogy ki mivel fog foglalkozni. A JBoss Seam keretrendszert választottuk a fejlesztéshez, melynek a WebSphere AS 6.1-el való integrációjáért én voltam a felelős. Bár a bekonfigurálás igénybe vett egy kis időt, végül mindannyian úgy láttuk hogy megérte a JBoss Seam-et választani, ugyanis nagyban felgyorsította a fejlesztés menetét és a további JBoss-os technológiák használatát (JBoss RichFaces, JBoss Rules) is megkönnyítette. A 2009-es csapatommal (SeamTeam) második helyezést értünk el, aminek nagyon örültünk! Az előző bajnoksághoz hasonlóan a verseny és a díjkiosztó is nagyon jó hangulatban telt el, ezúton is köszönet a szervezőknek!
Végül következzenek a beígért tippek, melyeket érdemes megfogadni a csapatoknak:
- Készítsetek el legalább egy, de inkább két régebbi verseny feladatot, így még a verseny előtt kibuknak a nehézségek és a csapat is jól összeszokik!
- Ismerjétek meg az IBM-es technológiák alapszintű használatát, mert a versenyen erre biztos nem lesz idő!
- Olyan webes keretrendszert használjatok, amit már jól ismertek. Nem szerencsés amikor a versenyen derülnek ki a keretrendszer rejtett hibái.
- A fejlesztéssel párhuzamosan, folyamatosan dokumentáljatok. Nem kell túlzásba vinni, de a fontosabb döntésekhez legyenek ábrák, diagramok és egy pár soros magyarázó szöveg.
- Az értékelés során az én meglátásom szerint, fontosabb szempont volt az hogy ki meddig jutott el, mint a kód minősége vagy éppen a felhasznált technológiák sokrétűsége. Továbbá nem javaslom, hogy tesztek készítésével töltsétek az időt, - annak ellenére hogy a csapból is a TDD folyik - mert a feladatot nem fogjátok tudni befejezni.
- Nem érdemes apróbb dolgokon szöszölni, ha problémába futottatok inkább hagyjátok ki, majd a verseny vége fele vegyétek elő újra.
- A feladat bemutatása előtt mindenféleképpen klikkeljétek végig a művet, mert elég rosszul néz ki ilyenkor egy nemvárt kivétel.
- Java EE alapú webalkalmazást készítsetek, AJAX-os keretrendszer felhasználásával, mert a zsűri nem desktop Java alkalmazásokat vár.
- Használjátok ki, hogy a versenyre bármilyen saját kódot bevihettek. Érdemes előre elkészíteni egy alap projektet ami tartalmaz egy bejelentkeztető oldalt és egy felhasználó management modult, mert ezek szinte minden versenyen előfordulnak!
- Nem mindig volt előre telepített SCM, így készüljetek arra, hogy lehet nektek kell majd összerakni és beállítani egy CVS vagy SVN szervert.
- Ha van rá lehetőségetek, vigyetek saját laptopot amin már be vannak állítva a fejlesztéshez szükséges eszközök!
- A verseny előtti napon aludjátok ki magatokat, de a verseny alatt is legalább 4-5 óra alvást iktassatok be mindkét napon! :)