HTML

Kérdezzünk bátran! A nem tudással nincs gond, ha merünk tenni ellene.

Amikor elzsibbad az agyad a programozástól

2017.05.21. 18:59 Steve123

A programozás annak kitalálása, hogyan kell egy feladatot lebontani elemi lépésekre és ezeknek a lépéseknek a leírása egy adott programozási nyelven. Az utóbbi sem egyszerű, mert az embernek mindig új és új nyelvet kell megtanulnia, de az igazi nehézség a program tervezése.

Meg kell valósítani egy feladatot, de túl nagy, hogy csak úgy belevágj, ezért elkezdesz tervezni. Közben rájössz, hogy bizonyos problémákba fogsz ütközni és azokat is elkezded megtervezni. A feladat azonban nem hagyja magát. Minél többet tervezel, annál inkább látod, a nehézségeket. Az idő megy, de úgy érzed, hogy nem kerültél közelebb a megoldáshoz. Egyre mérgesebb leszel, de nem adod fel, elvégre téged nem olyan fából faragtak. Viszont egy idő után el kell ismerned, hogy nem haladsz és érzed nem is fogsz. Ekkor mondod, hogy elzsibbadt az agyam. Mi lehetett a gond?

Tervezés fejben

Az informatikusokat arra tanították, hogy alaposan gondolják át a feladatot, amit meg kell valósítani. Kis feladatnál elegendő fejben tervezni, de nagyobb feladatnál bizony kellenek jegyzetek. Ezt könnyű mondani, de az informatikus kódot szeret írni nem terveket. A tervek leírása lassú és sokszor kell változtatni őket. Egy idő után könnyen átláthatatlan lesz a terv is. 

Szétágazó tervek

Amikor egy feladatot kétféleképpen lehet megvalósítani, akkor még nincs gond. Viszont, ha az első lehetőséget választva hamarosan megint elágazáshoz érünk, és ugyanez vár minket a másik úton is, akkor a lehetőségek száma exponenciálisan nő. Az informatikusoknak nincs végtelen memóriájuk, ők is csak néhány dolgot tudnak fejben tartani. Mondhatnánk, hogyha két lehetőség van, akkor rögtön döntsünk, hogy melyiket választjuk és dobjuk el a másikat. Ekkor nem nő az utak száma exponenciálisan. Viszont sokszor nem tudjuk, hogy melyik választás lenne a helyes. Nagyon elkeserítő tud lenne, amikor csak gyűlnek és gyűlnek a megoldandó feladatok.

Megvalósítás csak ha nagy a bizonyosság

Feleslegesen senki sem szeret dolgozni. A programozók sem kivételek. Egy bonyolult feladatnál sokféle terv lehet, de mindegyik bizonytalan. Lehet, hogyha az A tervet követem, akkor később olyan problémába futok, amit csak keservesen tudok kezelni. Az informatikus ezért nem kezdi el megvalósítani az A tervet, inkább tovább tervez. Viszont ugyanez igaz a B tervre és a C tervre is. Csak tervez és tervez az ember, de még egy sor kódot sem írt. 

Out of memory error

Amikor harmadszor vagy negyedszer mondod magadnak, hogy ez fontos, erre emlékezni kell, akkor biztos lehetsz abban, hogy az első fontos dolgot lassan elfelejted. Még ha nincs is sok dolog amire emlékezni kell, akkor sem tudod felidézni másnap, hogy mi is volt az a fontos dolog. Tudod, hogy valami volt, de hogy mi, az már nem rémlik. Ezen segíthet, ha leírod a fontos dolgokat, de ezeket a jegyzeteket sokszor sosem olvassa el az ember, vagy olyan rendezetlen, hogy nem sok segítséget jelent. Ha mindent precízen leírsz, akkor meg azt veszed észre, hogy lassú vagy, mint a csiga.

Túl bonyolult feladat

Egy feladat sok minden miatt lehet túl bonyolult. Elég csak egy, és nem tud megtervezni a programot. Hiába ismered egy speciális terület szavait, az ismeret és a magabiztos használat nem ugyanaz. Nehéz úgy programot tervezni, hogy az alapokkal nem vagy tisztában. Lehet egy feladat túl bonyolult. Például, ha van sok eset, amire mind figyelni kell. Az is lehet, hogy a követelmény nem egyértelmű. Ki kell találnod, hogy a megrendelő ezt mondta, de valójában arra gondolhatott, hogy.

Nem hatékony eszközök

Ha nem hatékony eszközöket használsz, akkor a munkád sem lesz hatékony. Lehet, hogy a tervezésre választottál rossz módszert, lehet, hogy a programnyelv nem ideális, vagy a fejlesztő környezet buta. Például, ha csak ctrl+h -al tudsz változó nevet cserélni, akkor sokkal kevesebbszer fogod ezt megtenni, mint amikor van egy refaktor funkciód változó név átnevezésre. Ráadásul nem mindig ugyanaz az eszköz a hatékony. Lehet, hogy sokszor papír és toll elég a tervhez, de van amikor külön eszköz kell.

Apró sikerek hiánya

Ha az ember az egész programot át akarja látni, akkor a siker csak a legvégén jelentkezik. Siker nélkül könnyebben feladja az informatikus is. Minden fél órában kérdezzük meg magunkat, hogy van tényleges eredmény. Azon kívül, hogy sokat terveztem fejben. Legyen, akármilyen kicsi is az eredmény, ha legközelebb nem az elejéről kell kezdeni a gondolkodást, akkor már félig győztem.

Verziókövetés hiánya

Sokszor félünk változtatni, mert mi van, ha az eredmény rosszabb, mint ami most van. Egy biztonsági másolat vagy verziókövető rendszer használata rengeteget segít ezen a félelmen. Persze ehhez megfelelően kell kezelni ezeket az eszközöket. Van, amikor ez sem egyszerű. Például amikor az ember excel-ben fejleszt és az adatokat meg, az alkalmazást is egyszerre kell változtatni, akkor hiába állítom vissza biztonsági másolatot, az nem fogja tartalmazni a legújabb adatokat, azokat újból be kell vinni.

Felsoroltam néhány problémát, de nincsenek egyszerű válaszok. A lényeg, hogy egyensúlyozni kell, mert hűbelebalázsokra sincs szükség, de az okoskodás (tervezés) sokszor a tett (programkód) halála. Mielőtt azt mondanád, hogy ezzel szenvedjenek csak a kockafejűek, jó tudnod, hogy ezekkel a problémákkal mindenki szembesül. Tervezz egy nyaralást, vigyél fel bútorokat egy szűk lépcsőházban. Látni fogod, hogy nem csak a tervtelenség, hanem a túltervezés is probléma.

Szólj hozzá!

A bejegyzés trackback címe:

https://kerdezzbatran.blog.hu/api/trackback/id/tr1212528079

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása