Mi is a programozás? Erről írtam a blogban részletesen. A lényeg abban áll, hogy a problémát először gondolatban elemezni kell úgy, hogy milyen bemenő adatok állnak rendelkezésre, azokon milyen műveletek kell végrehajtanunk hogy produkálni tudjuk a várt kimenetet. Röviden ez a lényeg.
- Fogalmazzuk meg szavakkal, hogy milyen adataink vannak és azok milyen jellegűek (input, output, munkaközi adat)
- Gondolkodjunk el a feladaton, figyelembe véve azt hogy milyen adatokat határoztunk meg az előzőekben.
- Fogalmazzuk meg szóban, hogy az első pontban meghatározott adatok felhasználásával milyen műveleti lépéseket kell végrehajtanunk egészen addig, míg elő nem áll a kimeneti adat.
A fenti három pont a lényeges. Ha azokat megoldod, akkor már a kódolás egy mechanikus átírás. Alapvetően az a probléma hogy egyből nekiugranak az emberek a kódolásnak. Egy idő után természetesen így fog történni, reflexszerűen menni fog a kódírás, de amíg azt érzed hogy ezt te nem érted, addig az első 3 lépéssel van a baj. A későbbiekben rájössz majd, hogy teljesen mindegy hogy BASIC, Pascal vagy C a programnyelv amit használsz. Az algoritmus megalkotása (azaz a lépések amiket végre kell hajtani) nem a programnyelven múlik. Nem a programnyelv az oka hogy mennyire nehéz vagy könnyű a segítségével összerakni egy adott programot.
Sokat hallani hogy "Pascalban simán megírom, de a C annyira bonyolult hogy nem lehet ezt megírni". Ez kb olyan állítás, mintha azt mondaná valaki, hogy magyarul sokkal könnyebb beszélni mint angolul. Persze a magyar anyanyelvűnek igen, de az angolnak nem. Aztán ha a magyar anyanyelvű kimegy külföldre és kénytelen angolul beszélni, néhány hét múlva nem lesz bonyolult angolul sem megfogalmazni dolgokat.
Ebből azt akarom kihozni, hogyha megvan a készség (fentebbi 3 pont), akkor jöhet a gyakorlás. Ugyanis az hogy mennyire bonyolult vagy egyszerű egy adott programnyelven megfogalmazni valamit, az csak azon múlik hogy mennyit gyakorlod. C vizsgára úgy kell elmenni hogy előtte 2 hétig legalább (de minél hosszabb ideig annál jobb) írogatod az egyszerű programokat.
Korábban bevált gyakorlat volt az egyetemeken/főiskolákon, hogy féléves feladatot kellet készíteni. Ez egy nagyon jó dolog volt, kár hogy manapság nem adnak féléves feladatokat (legalábbis a SZE-n). Ugyanis az ilyen nagyobb volumenű munka segített abban hogy belemerüljön a diák az adott nyelvbe és gyakorolja. Persze voltak olyanok is akik bérbe adták a feladatot és megíratták valamelyik hozzáértővel.
Egy régi FORTRAN könyvben találtam egy nagyon jó gondolatot az alapvető szemlélettel kapcsolatban:
"... kifejleszti a hallgatóban az 'algoritmus teremtés' készségét, amelyre egy holt képletnek élő programmá való 'átvarázsolásához' van szükség. Tulajdonképpen ez az amit programozásnak nevezünk."
[Lőcs-Vigassy: FORTRAN programozási nyelv]