Hogyan tanuljak meg programozni, ha? (lent (
Tudom, sok ilyen kérdés volt már, olvasgattam is belőlük de ha őszinte akarok lenni akkor nem igazán merültem el bennük.
Letöltöttem a Python és a Pascalt, mert ez a 2 volt a legajánlottabb. Full kezdő, buta vagyok szóval először lehet inkább amolyan "mi is a programozás" meg 'alapfogalmak" nevű dolgokkal kéne foglalkoznom.
Nagyszerű, ha vonz a technológia és az öröm, hogy alkoss valamit, amit használnak is az emberek, az egy jó motivációt ad majd.
Megmutatom neked, mi ebben a szakmában a feketeleves, amibe sokan belefutnak. Képzeld el, hogy egy automatából akarsz egy palackos italt vásárolni. Kérlek írd le nekem, hogy hogyan működik a vásárlás:
- a te szemszögedből nézve
- és a gép szemszögéből nézve. Jó lesz így szép magyar mondatokkal, hogy "Először is bedobom a pénzt...".
- Bedobom a pénzt. A gép alján pedig kigurul a palazkocott ital.
- A felhasználó bedobja a pénzt és kiválasztja a rendelést. A gép (ha minden megfelel) kigurítja az italt. Ha a pénz összege nem megfelelő (amit ugye fel kell valahogy ismernie) akkor visszadja
Te mint hétköznapi ember eddig mindig a "vevő" voltál a történetben. A dolog egyszerű része, vagyis aki a kész dolgot igénybe veszi. De a programozónak a másik oldalról kell látnia a világot. Bizonyára érezted, hogy az automata szemszögéből elég sok felmerülő kérdésre nem adtál választ. Nézzünk csak egy párat:
- Hogyan lehet az egyes érméket, papírpénzeket felismerni?
- Milyen érméket, papírpénzeket fogadhat el a gép?
- Mit csináljon a gép, ha a bedobott pénzt nem ismeri fel?
- Mit csináljon a gép, ha a bedobott pénzt bár felismeri, de érvénytelen (pl. bedobott egy 1000 Ft-ost, de a régi fajtát, amin nincs az a hologramos csík)?
- Mit csináljon a gép, ha a vásárló bedobta a pénzt, meg is nyomta, melyik italt szeretné, de kevés pénzt dobott be?
- Mit csináljon a gép, ha a vásárló bedobta a pénzt, megnyomta, melyik italt szeretné, de az az ital elfogyott?
- Mit csináljon a gép, ha a vásárló bedobta a pénzt, megnyomta az italt, de az ital kiadása közben a robotkar beragad?
- Mit csináljon a gép, ha sikerült kiadni az italt és a vásárló pontosan annyi pénzt dobott be, amennyibe a termék került?
- Mit csináljon a gép, ha sikerült kiadni az italt, de a vásárló több pénz dobott be?
- Ha többet dobott be, hogyan számítsa ki, hogy milyen érmékből mennyit kell visszaadnia a vásárlónak?
- Mi van, ha a gép nem tud visszaadni?
Ugye, milyen egyszerű feladat, és mennyi mindenre oda kell figyelned, ha ezt az italautomatát neked kellene felprogramoznod? Ha ilyen fontos kérdések kimaradnak, a szoftver hibákba futhat, sebezhető lesz. Ez a programozók és szoftvertesztelők felelőssége egyaránt. Ha szoftvert akarsz feltörni, akkor nemes egyszerűséggel annyi a dolgod, hogy megnézed, a szoftver milyen kérdésekre lett felkészítve, és olyan kérdéseket teszel fel neki, amire nem lett felkészítve (vagyis olyan módon kell használni a szoftvert, amilyen használatra azt nem tervezték).
Amikor programozol, először mindig emberi (magyar) nyelven kell megfogalmazni, hogy te pontosan mit akarsz csinálni. Ha ez megvan, utána lehet csak arról beszélni, hogy ezt a magyar szöveget hogyan írhatom le egy gép számára érthető nyelven.
Rájössz majd idővel, hogy a programozásban a nyelv a legutolsó dolog, amire gondolni kell. Sokkal fontosabb az, hogy megértsd a problémát, tudj megoldást adni a problémára. Nem az számít, hogy C++-ban hogyan írsz meg egy programot. Az számít, hogy az adott feladat szempontjából milyen programozási módszerekhez érdemes nyúlni. Ha tudom, mi az objektumorientált szemlélet, nem fogok meglepődni, ha C++ helyett C# vagy Java nyelvhez kell nyúlnom, mert azokon a nyelveken is ugyanazzal a szemlélettel dolgozhatok. Oké, egy kicsit eltér a szintaktika, eltérőek lehetnek a kulcsszavak.
Szóval a helyedben valami ilyesmi irányvonalon mozdulnék meg.
"C++ helyett C# vagy Java nyelvhez kell nyúlnom, mert azokon a nyelveken is ugyanazzal a szemlélettel dolgozhatok. Oké, egy kicsit eltér a szintaktika, eltérőek lehetnek a kulcsszavak."
Ez azért csak részben igaz, mert az eltérésen kívül rengeteg nyelvspecifikus dolog van, illetve van ami mindkettőben van de máshogy működik. Ezek elsajátítása pedig nem fog egyik-napról a másikra menni.
webötlet.hu egy informatikatanár naplója.
keress rá a googlin.
A mi tanárunk honlapja. MI is arról tanulunk, mert nagyon jól le van írva. Nem sok, de neked az bőven elég lenne.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!