Programozás vs. Sakk? Figurák ismerete vagy Algoritmusok készítése?

Amikor valaki elkezd megismerkedni a programozással, akkor az első kihívás mindig az adott programozási nyelv megismerése. Minden programozási nyelvnek megvannak a maga kulcsszavai és szabályai, melyek többségével tisztában kell lennünk ahhoz, hogy programokat tudjunk készíteni. De ez már elég, hogy valaki programozó legyen és jelentkezhessen egy Junior pozícióra?

 

 

A programozás hasonló a sakkhoz

Az előbb azt írtam, hogy az adott programozási nyelv kulcsszavainak és szabályainak többségével érdemes tisztában lennünk. De mit jelent ez?

Ha te már sakkoztál, akkor biztosan feltűnt, hogy anélkül is el tudod kezdeni a játékot, hogy az összes lépésedet előre elterveznéd. Sőt, igazából elég csak a figurákat ismerned és, hogy milyen alakzatban tudsz velük lépni. Az alapszabályokkal muszáj tisztában lenned, de minél kevésbé tervezed a játékod annál előbb ütik le a figuráidat és kerülsz egyre távolabb a győzelemtől.

Anélkül is tudunk programokat készíteni, hogy minden, a programozási nyelvben lévő kulcsszót és technikai lehetőséget pontosan ismernénk. Viszont minél több dolgot ismerünk, annál komplexebb, annál összetettebb programokat fogunk tudni készíteni. Pontosan ez lesz az a tanulási folyamat, amin neked is végig kell menned, ha el akarod sajátítani ezt az ismeretet.

 

Mik azok az Algoritmusok?

Elsőre talán valamilyen matematikai kifejezésre asszociálhatsz az Algoritmusok szó hallatán, de nem kell bonyolult dolgokra gondolni.

A programozásban ez a kifejezés azt jelenti, hogy készítünk egy megoldási tervet a programunkhoz. Egy folyamatot kell megterveznünk és a programunk célja, hogy a folyamat minden egyes lépését végrehajtsa. Amikor algoritmust tervezünk, akkor nem foglalkozunk a programozási kulcsszavakkal vagy megvalósítással. Egy magas szintű leírást készítünk, egy tervrajzot, ami emberi nyelven van megfogalmazva. Lépéseket definiálunk és a lépések sorrendjét: Mi után, mit kell csinálni.

 

Nézzünk egy példát:

A feladat, hogy kérjünk be a felhasználótól egy számot 1 és 10 között, majd jelenítsük meg neki a képernyőn. A számot addig kell újra és újra bekérnünk, amíg nem 1 és 10 közötti számot ad meg a felhasználó.

Mit jelent a programozás?

Algoritmusok készítését és a programozási nyelv ismeretét, melynek segítségével le tudjuk programozni az algoritmusban definiált lépéseket.

Egy programozó fő feladatai a napi munkája során:

  1. Algoritmus készítése
  2. Algoritmus lépéseinek leprogramozása

 

A programozást mindenki a 2. lépésnél kezdi el tanulni, vagyis a programozási nyelv ismeretével. De egy jó tanulási folyamatban a tanuló előbb vagy utóbb rá lesz kényszerítve, hogy az első lépést is megismerje (és persze kap hozzá támogatást is).

Maradva az asszociációnál, hiába ismered a figurákat ha nincs egy terved, ami alapján játszol. A programozás is ilyen: Hiába ismered a programozási nyelvben lévő utasításokat, kifejezéseket, ha nem tudod, hogy mit kell leprogramoznod. Amíg egyszerű programokról beszélünk, addig természetesen lehet intuitíven írni a programot, de minél bonyolultabb feladatról van szó, annál fájóbb az Algoritmus hiánya.

 

Ezt mindig elmesélem annak, aki először tanul programozni

A programozásban nem az a nehézség, hogy hova írod a zárójeleket, vagy milyen utasítások működnek. Persze kezdetben ez tűnik a legnagyobb kihívásnak, de a nehéz rész egy „jó” algoritmus, egy jó terv elkészítése. Ha az már megvan, akkor maga a programozás már nem nagy kihívás.

Ezt persze soha senki nem szokta nekem elhinni. Nem csodálom, én sem hittem el amikor nekem mondták. Körülbelül 3-4 hónap intenzív tanulás, mire elkezdi megérteni valaki a programozásban rejlő tényleges nehézségeket.

 

 

Végszó

Ha szeretnél megtanulni programozni, akkor az nem elég, hogy ismered a programozási nyelv kulcsszavainak és kifejezéseinek a többségét. Algoritmusokat is kell tudnod készíteni, méghozzá olyanokat, amiket aztán le is tudsz programozni. Ahogyan a sakkban is tervet kell készítened, amit aztán véghez is tudsz vinni.

Ez a két folyamat kéz a kézben jár és erősítik egymást. Minél jobban ismered a programozási nyelvet, annál jobb algoritmusokat fogsz tudni készíteni, amiket aztán egyre könnyebb lesz leprogramoznod. Ennek az ökoszisztémának az elsajátítása egy iteratív folyamat és állandó gyakorlást igényel. Egyre nehezebb feladatokat kell megoldanod, hogy mind a két készség párhuzamosan fejlődjön.

Bajor Tamás - Programozz Te Is!

Szia, Bajor Tamás vagyok, a Programozz Te Is oldal alapítója és oktatója. Köszi, hogy itt vagy és éppen az én cikkem olvasására fordítod a drága idődet! Azért dolgozom minden nap, hogy neked segítsek a programozás világában minél profibban elmélyülni. A cikkek egyetlen írójaként rengeteg munkát és energiát fektetek mind az oldalba, mind pedig az oktatásba!

Arra kérlek, ha tetszett cikk amit olvastál vagy szívesen veszed az ingyenes anyagokat akkor dobj egy Like-ot a Facebook-on, ezzel is támogatva a munkámat. Neked ez egy apró kattintás, nekem pedig hatalmas segítség!