Hogyan érdemes programozni?
Ahány ember, annyiféle szokás. Nincs általános recept arra, hogyan kell programozni, de kezdőként érdemes megfogadni minden tanácsot, főleg ha azt tapasztaltabb programozók adják. Megpróbálom összefoglalni, mik az én bevált szokásaim, és mik a legelterjedtebb programozási technikák.
Minden kezdet nehéz
Magántanárként több száz diákkal foglalkoztam már, és szinte mindig gond van az első házi feladatok ellenőrzésekor. Gyakran jönnek olyan kifogások, hogy az illető nem tudta, hogyan kezdje el a programot, elakadt a feladat közepén, nem tudta értelmezni a feladatot, stb. A tanórán minden világos, nincs kérdés, akkor miért van ez? Azért, mert ha valaki magyarázza az algoritmust, akkor minden egyértelműnek tűnik, elhiszi a hallgató, amit hall, könnyebb befogadni a tananyagot. Önálló munka esetén nincs, aki segítsen, máris nem olyan egyértelműek a dolgok, hiszen rá kell jönni a program elemi részleteire, és önállóan kell felépíteni a teljes programot.
Néhány hasznos tanács a kezdetekhez:
- Az órán bemutatott példaprogramokat újra készítsd el. Ha elakadsz, akkor nézd meg a megoldást. Addig ismételd a folyamatot, amíg önállóan is meg tudod oldani a példákat. Mindenképpen csak ezek után állj neki a házi feladatoknak, hiszen nagyon sok esetben az órai algoritmusok, trükkök szükségesek a programok elkészítéséhez.
- Egy feladat elkezdése előtt (amennyiben lehetséges) készíts ábrát, rajzot, matematikai feladat esetén oldd meg, hogy könnyebb legyen az algoritmus lépéseinek meghatározása.
- Sok esetben érdemes szövegesen is leírni az általad kitalált algoritmust. Amint leírtad, olvasd vissza, ha kell, többször is, és próbáld meg leírni programkóddal is az egyes lépéseket.
- Ha ezek után nem működik a program, akkor menj vissza a kezdetekhez, és nézd át a jegyzeteidet, ábrákat, és keresd meg a hibát. Nem lesz könnyű, de ilyenkor nem lehet mást tenni.
- Ha már feladtad, kérj segítséget az oktatódtól, vagy olyan programozótól, akiben megbízhatsz. Semmiképp ne az interneten keress. A kezdő programozók nem tudják eldönteni, melyik kód jó és melyik nem. Attól, hogy egy kód működik, még nem jelenti azt, hogy az jó is. Az interneten nagyon sok rossz kód és programozási technika kering, amiket nem érdemes felhasználni, amíg valakinek nincs meg a kellő programozási rutinja ahhoz, hogy el tudja dönteni a kód helyességét.
Nem kell elkeseredni, ha az első feladatok önálló megoldása több órát, esetleg több napot vesz igénybe. Ez természetes, hiszen nem mehet minden elsőre. Ahogy egyre több gyakorlás és a megoldott feladat lesz a hátad mögött, ez az idő jelentősen csökkenni fog. Azokat az algoritmusokat, amelyeket önállóan alkotsz meg, nem fogod elfelejteni, hiszen megizzadtál érte, az már a tied marad. Ezekből a későbbiekben tudsz építkezni, és meglesz a saját eszköztárad a feladatok elkészítéséhez.
Néhány programozási tévhit
Az alábbi tévhitek részben a saját tapasztalataim, részben pedig kollégáim és programozó barátaim véleményét tükrözik. Nem kell mindenkinek egyetértenie vele, hiszen minden ember más, van, akinek ez, van, akinek az a jó módszer.
- A hajnalban megírt kód tökéletes.
Mikor még ifjú padavan voltam, hajnalig fent kellett maradnom, és programoznom kellett, hogy tartani tudjam a határidőket. Természetesen majdnem leragadt a szemem, de azért még megállás nélkül kódoltam. Másnap reggel, mikor felébredtem, megnéztem, amit írtam, és rájöttem, hogy elég fegyelmezetlen kódot szültem az éjjel. Nem működött minden tesztesetre, és még elvi problémák is voltak benne. Természetesen újra kellett írnom, mert vállalhatatlan volt. Sok tanítványom is ezzel mentegetőzik, amikor ellenőrizzük a feladatokat, hogy nézzem el neki, mert éjjel írta. Valóban megéri? Szerintem nem. Programozni fáradtan nem ajánlatos, nem úgy járnak az agyunk fogaskerekei, és a rossz kód csak nyűg. Pofozgatni kell, javítgatni kell, esetleg teljesen újraírni, ezáltal extra munkát termelve magunknak. Én reggel vagyok termelékenyebb, frissen minden jobban megy. Délután három után már nem állok neki komolyabb algoritmusok tervezésének, hiszen a nap nagyobb részét már átdolgoztam, és fáradtan vagy gondterhelten nehezebb összpontosítani. - Zenehallgatás közben jobb a kódolás
Erről nagyon megoszlanak a vélemények, de tapasztaltabb programozók határozottan állítják, hogy a zene nem segít a kódolásban. A zene abban segít, hogy a programozó belépjen az áramlási zónába. Ebben az állapotban a programozó azt hiszi, hogy tévedhetetlen, és magabiztosnak érzi magát. Mindeközben pedig sokkal sebezhetőbb és pontatlanabb kódot készít, hiszen nemcsak a kódra figyel, hanem a zenére is, ezáltal könnyebben előfordulhat, hogy hibázik. Sokan esküsznek ennek az ellenkezőjére. Ebből is látszik, hogy minden ember más, de engem személy szerint kifejezetten zavar a zene, vagy bármilyen hangos zaj komolyabb programozás közben. - A programkód időre kikényszeríthető
Sokan azt hiszik, hogy egy program megírása pontos időhöz köthető, értem ezalatt a főnököket, vagy néha a tanárokat is. A rutin feladatok elvégzése lehet, de új rendszerek és algoritmusok tervezése nem minden esetben. Nem lehet azt mondani, hogy itt van 8 óra, és legyen kész a nap végére az algoritmus vagy éppen a házi feladat. Létezik olyan, hogy a programozónak nem jön az ihlet, és nem tud kódolni. Ez sok mindentől is függhet. Többek között a lelki állapottól, az alvás mennyiségétől, a környezeti hatásoktól és a koncentráció mértékétől. Ezek együttesen kellenek ahhoz, hogy a programozó jó kódot tudjon írni. Tehát ha úgy érzed, nem akarsz programozni, mert nem vagy ráhangolódva, akkor ne is programozz, hagy ezt egy másik napra. - Ha nem megy, ne erőltesd!
Ha már egy ideje a számítógép mellett görnyedsz, és nem születik meg a várt programkód, akkor iktass be egy kis szünetet. Nagyon jót fog tenni, ha mással is foglalkozol, nem csak azon az egy problémán kattogtatod az agyad. Felesleges ezért bent maradni az irodában túlórázni, vagy éppen hajnalig fent maradni egy házi feladat megírása miatt (természetesen a határidő kényszeríthet ilyenre). Oszd be az idődet, és adj esélyt magadnak arra, hogy a kreatív tudatalattid megoldja a problémát. Akkor fog beugrani, amikor nem is számítasz majd rá (hazafelé, zuhany alatt, vezetés közben, másnap reggel).
Velem már volt olyan, hogy egész nap egy feladaton agyaltam, és nem lett meg. Természetesen tiszta ideg voltam és majd szétcsaptam volna a monitort velem szemben. Letelt a nyolc óra. Felkeltem és rohantam a kijárat felé. Amint az egyik lában az utcára ért, bevillant a megoldás. Szükségem volt pár percre, szünetet kellett tartanom, hogy a megoldás megszülessen. Nem mentem vissza, és nem fejeztem be az algoritmust (pedig nagy késztetésem volt rá), de másnap reggel könnyűszerrel befejeztem és hibátlanul működött.
További hasznos tanácsokat Robert C. Martin: Túlélőkönyv programozóknak című könyvének 4. fejezetében olvashatsz.
Remélem, segíthettem neked a saját programozási szokásaid javításában.
Jó programozást!