Programozói elvárások avagy mit vár tőlünk a munkahelyünk
Konstantinusz Kft. © 2010
1. Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7. 8.
Tartalomjegyzék ...................................................................................................................... 2 Bevezetés ................................................................................................................................ 2 Programozással kapcsolatos elvárások ................................................................................... 3 Kommunikációs elvárások ....................................................................................................... 4 Kitartás .................................................................................................................................... 5 Igényes legyen a munkájára .................................................................................................... 6 Nélkülözhetetlenség vagy mégsem? ........................................................................................ 8 Összefoglalás .......................................................................................................................... 9
2. Bevezetés Az esettanulmány célja az, hogy segítsen a programozóknak elérni, hogy jobb programozók legyenek. Ezáltal könnyebben elhelyezkedjenek, és előre léphessenek a ranglétrán. Vagy csak könnyebben vehessék a munkahelyen jelentkező akadályokat.
Tényleg azoknak szól, akik programozók szeretnének lenni, és nem fix összegért gép előtt ülni és úgy tenni mintha programozók lennének. Ez a felfogás sokáig működött, mára azonban egyre nehezebb lesz ilyen munkát találni.
A piacon egyre több a dobozos szoftver (itt főként az ügyviteli, és vállalati irányítási rendszerre gondolok), kevesebb cég fog egyedi szoftver fejlesztésébe.
Főként azokra az elvárásokra koncentráltam, amik eltérnek a többi munkakörtől, ezért azt hogy pontosan kell bejárni nem fejtem ki, hiszen az minden munkahelyen alapvető elvárás.
2/9
3. Programozással kapcsolatos elvárások A szakmai elvárásokat minden cég saját maga alakítja ki. Attól függően, hogy ők mit használnak a fejlesztéshez, lehet ez JAVA, C, PHP, PERL, MySQL, Oracle, stb.
Ahhoz, hogy egy cég szakmai elvárásainak megfeleljünk, célszerű már a tanulmányok során ismerkedni a trendekkel, mely nyelvek a népszerűek. És azokkal megismerkedni. Egy állás interjún sokat számíthat, hogyha több programozási nyelvet is ismerünk.
A kis cégek általában az ingyenes fordítóval rendelkező nyelveket használják, hiszen az esetek többségében nem tudnak több százezer forintot fizetni egy fordító programért.
Itt az alapvető elvárás az szokott lenni, hogy ismerje a cégben használt nyelv szintaxisát, és könnyen elsajátítsa a cégben használt módszerek (modulok, keretrendszerek) használatát. Az, hogy mások kódját minél hamarabb át tudjuk látni nagy előny lehet, főként, ha sokan dolgoznak egy projekten.
3/9
4. Kommunikációs elvárások Tipikus hiba a programozóknál, hogy nem tudnak és nem is szeretnek beszélni. A cégek nem sok hasznát veszik egy programozónak, ha nem képes beszélni a csapat többi tagjával.
Beszéljünk idegen nyelven!
Legalább egy idegen nyelv nélkül nem lehet munkahelyet találni. Egy programozó beszéljen angolul! A magas szintű programozási nyelvek általában angol kulcs szavakat használnak, sokkal könnyebb elsajátítani ezeket, ha értjük a szavak jelentését.
Ezen kívül, ha valaminek utána kell nézni, akkor angolul több dologról lehet leírást találni, és általában angol leírás az alap, és azt fordítják le több nyelvre. Valamint a fórum bejegyzések többsége is angol nyelvű lesz.
Ha mindig a legújabb programozási nyelveket akarjuk megtanulni, akkor azok leírása nagy valószínűséggel angol lesz.
A multinacionális cégeknél, abból lehet vezető, aki tud kommunikálni a külföldi főnökkel. Aki nem tud, azt egyszerűen nem teszik vezetővé akármilyen jó is, mert akkor külön tolmácsot kell hozzá alkalmazni.
A csapatban dolgozáshoz is elengedhetetlen a kommunikáció. Ha egy rendszer egyik modulját mi írjuk, akkor valahogyan tudni kell a többiekkel kommunikálni, hogy hogyan fognak hozzá csatlakozni.
4/9
5. Kitartás A jó programozó ismérve az, hogy kitartó, nagy rendszert is végig lehet csinálni vele, nem adja fel az első problémánál.
Ez sajnos visszafelé is elsülhet. Találkoztam olyan programozó csapattal, akik tervezés nélkül végig csináltak nagy rendszereket és a közepén vagy a végén rájöttek, hogy rossz az egésznek a koncepciója, de kitartóan addig alakítgatták, míg jó nem lett a rendszer.
Ezzel az a gond, hogy be kellet volna látniuk, hogy nem jó amit csináltak és más szemlélet szerint újra kezdeni. A végén amennyi idő elment a foltozgatásra, annyiból más szemlélet szerint újra lehetett volna gyártani, az egész rendszert. Vagy eleve nem kellet volna sajnálni az időt a specifikáció írásra és a tervezésre.
Olyan esettekkel is találkoztam, amikor programozótól kérdeztünk, hogy hogyan oldana meg egy adott problémát. Elmondta a felét méghozzá kiválóan ekkor belezavarodott, és közölte, hogy akkor inkább hagyjuk. Ilyen hozzáállással nem lehet nagy rendszert tervezni, vagy programozni.
Ha nagy rendszert tervezünk, biztos lesznek olyan esetek, amikor összezavarodunk, vagy elveszünk a folyamatok között. Ilyenkor sem szabad feladni, hanem újra neki kell állni, amíg tiszta és világos nem lesz, hogy mit és hogyan kell megvalósítania a rendszernek.
A programozói állás ajánlatok között gyakran lehet olvasni olyan elvárásokat, hogy „önálló munkavégzés”. Ez azt jelenti, hogy megkapjuk a feladatot és el kell végezni, nincs csapat, vagy bármi ahova fordulhatunk, hanem magunknak kell kitalálni mindent, és végig kell csinálni.
Itt jegyezném meg, hogy a jó programozónak legtöbbször órákig kell egy helyben ülnie és programozni. Valamint gyakran számíthat túlórára valamilyen rendszerhiba esetén, amikor meg kell csinálni az adott feladatot, még aznap. És nincs kibúvási lehetőség, ha meg akarja tartani az állását.
5/9
6. Igényes legyen a munkájára Minden dolgozótól elvárás, hogy igényes legyen a munkájára.
Ez Programozó esetében a következőket jelenti: A kód tagolt és átlátható legyen A kódban használt változónevek beszédesek legyenek, valamint megfeleljenek a cégben szokásos gyakorlatnak. Rövidítések használatának kerülése Commentek használat
Számtalan egyetemen frissen végzett programozóval találkoztunk, akik lusták gépelni és mindent lerövidítettek. A változónevek semmitmondó rövidítések voltak. Az amúgy jól felépített SQL táblában lévő tábla és mezőneveket is egybetűsre rövidítették, még segíteni sem tudtunk, hogy miért nem megy az egyik lekérdezés. pl.:
10000 Ft feletti tételt vásárló vevők nevének meghatározása (MySQL): „SELECT * FROM `Vasarlo` as v, `Vasarlas` as vs ,`Vasarlas_tetelek` as vt WHERE vs.vasarlo_id=v.id AND vs.id=vt.vasarlas_id AND vt.ar >10000”
A fenti kód nem csak azért szörnyű, mert minden tábla át van nevezve, hanem azért is, mert tagolva sincs. E mellett a fenti lekérdezés írója nyilván valóan nem ismeri a JOIN kulcsszót. Valamint csak a névre volt szüksége, de csillagot használt, gondolom így kevesebbet kell gépelni, cserébe jobban terheli az SQL szervert minden egyes lekérdezésnél.
6/9
A rend kedvéért egy átláthatóbb formában is legyen itt a fenti lekérdezés: „ SELECT `Vasarlo`.`nev` FROM `Vasarlo` INNER JOIN `Vasarlas` ON `Vasarlo`.`id`=`Vasarlas`.`vasarlo_id` INNER JOIN `Vasarlas_tetelek` ON `Vasarlas`.`id` = `Vasarlas`.`Vasarlas_tetelek`.`vasarlas_id` WHERE `Vasarlas_tetelek`.`ar` >10000 ”
És máris átlátható, hogy mely táblákkal dolgozik, és mi az, ami tényleg feltétel.
A nem szigorúan típusos nyelvek esetén (pl.: PHP ) tipikus figyelmetlenség, hogy elírja egy változó nevét, és mivel nem kell a változókat definiálni ezért nincs hiba, a program fut, csak nem azt csinálja, amit kellene.
PHP-s példa: for ($i=0;$i<25$i++){ ...$ertek meghatarozasa... $osszeg=$oszeg+$ertek; } echo $osszeg; Ekkor a helyett, hogy hozzáadná minden iterációban az értéket asz összeghez mindig egy új értéket ad neki.
Mielőtt hazamegyünk, legalább szintaktikailag teszteljük le a kódot, amivel az nap dolgoztunk, hogy lefordul-e. Kellemetlen, ha mások emiatt nem tudnak haladni a saját részükkel. Vagy ha az élő rendszer nem működik addig, mert az egyik programozó még arra sem vette a fáradságot, hogy lefordítsa a kódját.
7/9
7. Nélkülözhetetlenség vagy mégsem?
Át kell tudni adni rendszert, úgy hogy azt más tudja tovább fejleszteni. Ebbe beleszámít a kód átláthatóság érthetősége és a programhoz tartozó fejlesztői dokumentációk megírása vagy bővítése.
Sok programozó, és informatikus úgy gondolkozik, hogy a többieknek nem is mutatja meg azt, amin dolgozik, mert ha csak ő ért a rendszerhez akkor nélkülözhetetlen, és nem lehet elbocsájtani.
Ez több szempontból is rossz hozzáállás, cég szempontjából biztosan, hiszen van egy ember, akitől nem lehet megválni és akármennyit kér az meg kell neki adni.
A programozónak se jó ez, hiszen ezzel „bebetonozza” magát egy helyzetbe.
A helyzet előnyei: Sokáig tartó munkaviszony. Magasabb fizetés, hiszen csak ő ért a rendszerhez.
A helyzet hátrányai: Nincs előléptetés, ha előléptetik, akkor ki végzi el a munkát? Nincs több hetes szabadság, hiszen csak ő ért a rendszerhez, ami nem állhat. Ha bármi baj van, a rendszerrel neki kell megcsinálni, akár éjszaka is. Nincs segítség bármi baj van egyedül kell tudni megoldani. Ha kiderül, hogy mégis nélkülözhető azonnal megválnak tőle.
8/9
8. Összefoglalás Az egyik legfontosabb dolog az informatika bármely ágát választjuk is, hogy folyamatosan fejlesszük magunkat a szakterületünkön, vagy ismerkedjünk más szakterületekkel, de ebben a szakmában, aki nem fejleszti magát folyamatosan az lemarad, és így kimarad.
Önmagában a munkavégzése nem adja meg ezt a fejlesztést, hiszen jön egy új programozási nyelv, ami népszerűbb lesz, a cég átállhat rá. Ekkor hiába vagyunk jók egy olyan programozási nyelvben, amit már senki sem használ nagyon valószínű, hogy elbocsájtanak, ha nem tanuljuk meg az új programozási nyelvet rövid idő alatt.
Az, hogy melyik cég milyen idegen nyelvet követel meg az változó. Mivel az informatika nyelve jelenleg az angol ezért azt mindenkinek ajánlom, hogy angolul minimum tudjon beszélni, és írni olvasni.
9/9