Tanácsok a tanuláshoz

Czirkos Zoltán · 2019.02.27.

Hogyan kell tanulni a prog ZH-kra? Ne kövesd el azt a hibát, hogy csak a megoldott feladatokat nézegeted!

tl;dr

Hogyan kell tanulni a prog ZH-kra? „Sehogyan.” Ez nem bemagolható, csak gyakorolható tárgy.

Minden tárgy számonkéréseire más módon kell tanulni. Máshogyan egy történelem tesztre, máshogyan egy KRESZ vizsgára, és máshogyan a programozásra.

A programozás inkább a KRESZ-re hasonlít. Töriből megtanulhatsz két dolgot, mondjuk azt, hogy 1222 és hogy 1848: a többit attól még nem fogod tudni. Viszont ha a KRESZ-hez megtanulod ezt a két dolgot: aki szemből jön, azt elengeded, és aki jobbról jön, azt is elengeded – akkor szinte mindent tudsz. A képes kérdések 98%-ára ebből a két szabályból ki tudod következtetni a választ. Ha még egy kis gyakorlatod is van, akkor kérdésenként semmivel nem több, mint két másodperc alatt.

Tipikus hibák a prog ZH-kra készülés és a ZH írás alatt

Ha rossz módszerrel ugrasz neki, abból nem sok jó fog kisülni.

  • Hiba a ZH előtti este vagy éjjel nekiállni megtanulni programozni. Nem fog menni.
  • Nagy hiba a honlapon lévő anyagokat, vagy más forrásokat csak olvasgatni. Nem jó ötlet a feladatok mintamegoldásait nézegetni! Nem vezet sehova, nem ad semennyi programozási tapasztalatot! Nem tanít meg gondolkozni, nem tanít meg fölfedezni, megérteni a tananyagot.
  • Attól még, hogy egy megoldást láttál már leírva, nem biztos, hogy tudod reprodukálni is. Sőt akár ha értetted is, akkor sem biztos, hogy egyből – a ZH stressze alatt – le tudod írni újra egy tök üres lapra. A programozás kreatív tevékenység, ha mindig megnézed a megoldásokat, éppen a lényegét nem gyakorolod.
  • Nagy hiba a tavalyi, tavalyelőtti, n évvel ezelőtti kzh/nzh feladatsorokra építeni. Lehet, hogy hasonló lesz, ez tény. De ez nem jelenti sem azt, hogy biztos olyan lesz, és azt sem, hogy biztos ugyanaz lesz.
  • Hiba megpróbálni egy egész nagyfeladat megoldását egyetlen hatalmas függvénybe sűríteni.
  • Hiba kritika nélkül mindenféle dolgokat összeszedni a netről. Azért, mert valaki szeret fórumozni, nem biztos, hogy tud programozni is. Példa: szörnyű római szám program (C nyelven).

Jó szokások és módszerek a programozás tanulásához

  • Admin portál, „személyes” menüpont, beállítások, „megoldás nyitva”. Azt kapcsold ki! Ne a megoldásokat olvasd, hanem a feladatokat!
  • Igenis próbáld megoldani a feladatokat! Ha tudod, mi a megfelelő eszköz (pl. pointer), de nem jól használod, keresd meg magad a hibát! Az előadásanyagot nézd, ne a megoldást! Ha úgy sem megy, nézd meg a megoldás magyarázatát, ha van – ott le van írva az alapgondolat vagy a trükk, ha épp valami trükk kell. Ha úgy sem, nézd meg a megoldás releváns részét – és továbbra is, próbáld meg magad befejezni a kódot!
  • Mindezt csakis gép mellett tedd. Ott a fordítóprogram, nem lehet kérdés, hogy működik-e a programod vagy nem. Próbáld ki! Használd a nyomkövetőt! Rakd tele a programjaidat print()-ekkel, hogy lásd, mit történik a változókkal, merre megy a végrehajtás, egyáltalán mit csinál a program, amit beírtál!

Jó tanácsok az algoritmizáláshoz

  • Van 3-as ebben a számsorban: 20275922897613291947845061062615547? Hány mássalhangzó van a webböngésző-kiterjesztés szóban? Amiket most csináltál, azt kell megfogalmazni programkódban. Az algoritmus úgy működik, mint ahogy papíron is elvégeznéd a feladatot. A számítógépet azért találták ki, hogy a mechanikus munkát elvégezze.
  • Ha egyszercsak copy-pastelni támadna kedved, hessegesd is el ugyanazzal a lendülettel a gondolatot. Ciklust kellene írnod vagy függvényt. Lesz időd a ZH-n leírni kétszer vagy netán tízszer ugyanazt?
  • Gondolkodj egyszerre csak egy dolgon! Ha valami túl bonyolultnak tűnik, akkor azt nem egy nagy, ömlesztett kódrészletben kell megírni. Használj top-down tervezést és függvényeket!
  • Ha nem írtad meg a programot, ami a fenti számsorban megszámolja a hármasokat, és ami megmondja a mássalhangzók számát, tedd meg! Akár ZH feladat is lehetne.