14 éves fiú vagyok, és nagyon érdekel ez a programozás téma. Hogyan lehetek programozó?
Olvasgattam már pár helyen, hogy nem attól lesz valaki jó programozó, ha jó egyetemet választ, hanem otthon kell sokat tanulni a netről stb...
Tudom hogy kell hozzá angol és matek.Az utóbbi nem az erősségem, ezért kérdezném, hogy a programozásnak nincsen olyan ága amihez annyira nem kell vágni a matekot? Egyébként négyes vagyok.
Másik kérdés, hogy a tovább tanulást valami infó szakra tervezem, és ha sikeres lett a bejutás, mit kezdjek el tanulni? Esetleg pár linket tudnátok küldeni? Pythonról hallottam, csak nem akarok valami hülyeséget találni.:)
Attól lesz valaki jó programozó, hogy tud programozni. (Mily meglepő. :))
Attól, mert átbújsz pár tucat netes tutorialt, még nem leszel programozó. Sőt, első körben nem mások példakódjaival kéne játszadozni, hanem fogni egy alapfokú programozáskönyvet, lehetőleg jó szájbarágósat, és elkezdeni megtanulni a programozás alapjait.
A matekot meg erőltetik ezerrel, de igazából nem az a mérvadó. Azt, hogy "kell hozzá a matek", ne úgy képzeld el, hogy a programozó a munkája felében másodfokú egyenleteket oldogat meg, meg felszínt-térfogatot számol. A logikus gondolkodás, az az, ami kell.
Ha pedig már felvettek infó szakra, ott úgyis a tananyag meghatározza, hogy mit tanulj. ;-)
Már nem azért, de ezt próbáltad már?
Ajj, na jó, bemásolom neked is (gondolom a többiek már halálra unják...)
Szerintem sokkal eredményesebben tudsz fejlődni, ha nem belekényszeríted magad olyan dolgokba, amit nem szeretsz (pl. matek), hanem olyan érdekes feladatok elé állítod magad, amire mindig is vágytál. Például volt egy ötleted, de azt nem tudtad megcsinálni, mert nem tudtál programozni. Ahogy ilyen feladatokat oldasz meg, ha szükség lesz matektudásra, majd ott átnézed. Nem tudom, mik a terveid, hogy csak hobbi szinten érdekel-e, vagy később ezzel akarod a kenyered keresni. Utóbbi esetben egy egyetemre érdemes elmenned, mert az alapokat ott jól megtanítják (de sajnos mást nem).
Bemásolok neked egy korábbi hozzászólásomat, hátha hasznos lesz:
Először szerintem ne magába a programozásba merülj bele, hanem próbáld átgondolni részletesen a mindennapi életedet. Olyan egyszerűnek tűnő cselekvésekre gondolok, hogy például hogyan ejtesz meg egy bevásárlást. Próbáld meg egyszerű, elemi lépésekre felbontani, majd ha a sorrend nem jó, tegyél benne rendet. Ezt a példát kifejtem neked.
Először is össze kell írni egy bevásárlólistát. Ehhez kelleni fog egy tároló, amin el tudom tárolni ezeket az információkat. Így hát előveszek egy papírlapot. Valamivel tudnom is kell rá írni, így egy jól fogó tollat vagy ceruzát is előkészítek. Na igen, de honnan fogom tudni, hogy mit kell vennem? Vannak olyan termékek, amikre mindig szükség van, pl. kenyér, üdítő, stb. Ellenőrzöm, hogy ezek vannak-e, és ha valami nincs, azt felírom a papírra. Ezt követően (vagy már korábban) kitalálom, hogy mit akarok ma enni. Ha szendvicset, akkor a kenyér mellett szükségem lesz felvágottra, sajtra, uborkára, így ezeket is felveszem a listára. Ha kész a lista, akkor ellenőrzöm, hogy van-e a tárcámban pénz, ha nincs, teszek bele, hogy legyen. Elmegyek a boltba. Kell valami, amibe a boltban lévő termékeket ideiglenesen beletehetem, így veszek egy új tárolót, egy bevásárlókocsit vagy kosarat. A bevásárlólista elemeit sorra veszem, megkeresem és bepakolom őket a kosárba. Ha megvan minden, elmegyek a pénztárhoz. A fizetendő összeget kiveszem a pénztárcámból és átadom a pénztárosnak. Az esetleges visszajárót elveszem és berakom a pénztárcámba. A bevásárlókosárból/kocsiból átrakom a termékeket az én kosaramba, és hazamegyek.
Hoppá, juthat az eszedbe, hogy a végén hogyan kerül hozzám egy saját kosár? Eddig szó nem volt róla. Az ilyen figyelmetlenségek miatt a számítógép nem fogja tudni, hogy te mit is akarsz, így ha eszedbe jut ilyen, azonnal javítsd ki! Na és hogyan jutottam el a boltba? Biciklivel/kocsival? Akkor azt is fejtsd ki.
Ezen próbáljunk meg úgy alakítani, hogy a helyére kerüljön minden, és próbáljuk meg elnevezni azokat a dolgokat, amiket használok, valamint írjunk indoklást, hogy miért is kell nekem. Próbáljuk meg felírni benne a matematikai műveleteket is. Esetleg jól elkülöníthető részekre is megpróbálhatjuk felbontani:
Kell egy papírlap, nevezzük bevásárlólistának, hogy tudjam a boltban, mit kell vennem. Kell egy toll vagy ceruza, nevezzük íróeszköznek, amivel írhatok a bevásárlólistára.
Ha nincs kenyér, felírom az íróeszközzel a bevásárlólistára.
Ha nincs üdítő, felírom az íróeszközzel a bevásárlólistára.
Ha nincs felvágott, felírom az íróeszközzel a bevásárlólistára.
Ha nincs sajt, felírom az íróeszközzel a bevásárlólistára.
Ha nincs uborka, felírom az íróeszközzel a bevásárlólistára.
Legyen X, ami a pénztárcámban lévő pénzösszeget jelenti.
Ha X < 5000 Ft, akkor X = X + 5000 Ft.
Fogom a kosaramat, amiben haza tudom hozni az árut, nevezzük saját kosárnak.
Elmegyek a boltba.
Fogok egy bevásárlókosarat, nevezzük kosárnak.
Legyen Aktuális a bevásárlólista éppen kiválasztott eleme. Megkeresem Aktuálist a boltban. Berakom a kosárba.
Ha már nincs több elem a bevásárlókosárban, akkor a pénztárhoz megyek.
X = X - [A pénztáros által kért pénz, vagy több]
X = X + [A pénztáros által adott visszajáró]
Legyen Aktuális a kosár eleme. Aktuálist a kosárból a saját kosárba rakom.
Ha már nincs több elem, hazamegyek.
Ehhez hasonló a programozás is. Érdemes szerintem először egy eljárásorientált nyelvvel kezdeni, pl. Pascal vagy C. Utána jöhet egy objektumorientált nyelv (pl. C# vagy Java), mivel akkor érted meg, hogy az objektumorientációra miért van szükség illetve melyiket mikor érdemes használni, ha érted az eljárásorientáció hiányosságait. Bemásolok egy korábbi választ, ami arra ad útmutatást, hogy milyen ismeretek elsajátításával hogyan fejlődsz, ha pl. játékot akarsz csinálni:
Szépen sorjában így lenne illő haladnod:
- Mi az a programozás, mire jó, miért jöttek létre a számítógépek?
- Tanulsz egy kis algoritmizálást, hogy pszeudokódban hogyan lehet megírni egyszerűbb programokat, megtanulsz egy-két vezérlési szerkezetet (ez ahhoz kell, hogy segítse a programozói gondolkodás kialakulását)
- Elsajátítod az egyszerűbb adatszerkezetek elvi működését (tömb, láncolt lista, verem, sor, hash tábla stb.)
- Választasz egy programozási nyelvet, mondjuk kezdésnek a Pythont szokták ajánlani a leggyakrabban. No, én azért ajánlom ezt a nyelvet neked, mert rákényszerít, hogy olvasható, jól tagolt kódot írj.
- Hello World
- Kifejezések, utasítások
- Változók
- Egyszerű beolvasás konzolról
- Vezérlési szerkezetek
- Előre megírt függvények használata
Most tartunk ott, hogy meg tudsz írni egy "gondoltam egy számot, találd ki" játékot
- Függvények, eljárások írása
- Karakter/stringkezelés
- Fájlkezelés (szöveges és bináris)
Már meg tudsz írni egy Legyen Ön is Milliomost konzolosan
- Új programnyelv választása, ha olyat választottál először, ami nem tud OOP-t. Itt már erősen ajánlom a C#-pot, mert kezdők könnyen tudnak vele ablakos progikat készíteni mindenféle segédeszköz (pl. Qt) nélkül. [Java téren a Swing-et próbáltam eddig, és hát meg is van a véleményem róla...]
- OOP alapelvek megismerése
- Eseményvezérelt programozás, egyszerű ablakos szoftverek készítése
- XML, JSON állományok létrehozása és feldolgozása
- Egy RDBMS rendszer megismerése (pl. MySQL, Microsoft SQL Server, Oracle...)
- Több szálon futó programok, párhuzamosítás
- Hálózati alapismeretek elsajátítása, főleg TCP és UDP
- Hálózaton kommunikáló programok írása
Már mehet a felhasználóbarát ablakos kvízjáték hálózaton multiplayerben
- Matematikai ismeretek elsajátítása, vektorok, mátrixok, koordinátageometria, koordinátatranszformációk mátrixokkal
- Számítógépi grafikai ismeretek, hogyan rajzol ki a gép egy pontot, vonalat, görbét, Window to Viewport transzformáció, 3D-s objektum leképezése 2D síkra, stb.
- DirectX vagy OpenGL közül választasz egyet
- Megpróbálod alkalmazni a grafikai ismereteidet
- Felhasználói interakció kezelése
- Textúrázás
És, már mehet a már immáron grafikus kártyát kihasználó multiplayer Pong vagy valami platformjáték
- Egyszerűbb 3D-s objektumok rajzolása, animálása
- Összetettebb 3D-s világ létrehozása
- Megpróbálsz megírni egy egyszerűbb grafikus motort (hogy lásd a lelki világát mondjuk a CryEngine-nek)
És már meg tudsz írni elméletben egy WoW-ot (csak épp egyedül kevés vagy hozzá).
Ha a játékban ellenséget is akarsz magadnak, akkor ismerkedj meg a mesterséges intelligencia alapjaival, hogy hogyan írunk le egy problémát (állapottér-reprezentáció), hogy milyen algoritmusok segítségével lehet utat találni a kezdetektől a célállapotig (erre jók a megoldáskeresők, pl. próba-hiba, hegymászó algoritmus, backtrack algoritmusok, ág és korlát, A, stb.), és ismerkedj meg a lépésajánló algoritmusokkal (minimax, negamax), amik egy adott állapotra meghatározzák a létező legjobb lépést.
1.: legyen valami ötleted, amit meg akarsz valósítani számítógéppel. Ahogy előttem is írta valaki, elsőbb csak kis dolgokra gondoljál, aztán később majd adja magát, vagy nem...
2.: az első lépést eljátszod egy pár programozási nyelven, nem sorolom fel az összesset, de első körben tuti nem Python-nal kezdeném a helyedben, hanem valami normálisabb és a kezdők számára sokkal érthetőbbel. Mondjuk a BASIC lenne a legjobb, abból is az a fajta, amely még sorszámozott és nem strukturált, hogy megértsd az alapokat. De a sulikban is vagy Pascalt vagy C#-használnak, amelyek közül is a Pascal érthetőbb egy kezdő számára. Persze általános iskolában még szokták használni az Imagine (Logo) is.
3.: vegyél a kiválasztott, neked tetsző nyelv megtanulását segítő könyvet, olyat érdemes venned, amiben vannak gép előtt kipróbálható példaprogramok, amelyeket bepötyögsz, értelmezel, átírsz benne dolgokat, megfigyeled hogy működik...
4.: aztán ahogy érzed magadban az erőt, hogy képes lennél nagyobb programokat is csinálni, akkor léphetsz tovább.
#2-esnek: Attól hogy Te tudod, hogy a "Hide" elrejtést jelent, attól még az ablak "bezáródik" (eltűnik)... ...és egy látszatvilágban ez pont elegendő! :-) Pl. van pár ember, aki beláthatatlan kanyarban előz, mert nem lát szembejövő autót... :-)
A következő dolgokra lesz szükséged:
Google kereső használata
Angol!!!! Különben hiába tudod használni a googlet.
Matek - ha tovább akarsz tanulni akkor érdemes rágyúrnod a matekta, mert elég komolyan veszik a felsőoktatásban, és ha jól felkèszülsz belőle akkor fényévekkel megkönnyítheted a dolgodat. :)
Én most egyébként egy játékptogramo dolgozok, ahol olyan apróságoknak kellett utánanéznem már az elején hogy newtoni fizika, irányvektorok, trigonomegria, és a villamosságtan még csak most jön! :)
Sok sikert!
Általában szokták tanítani, bár az megint más, hogy hol mennyire ért hozzá a tanár, és mennyire tudja átadni a tudást.
Simon és Lilla által adott válaszokon kívül a többit pedig ignoráld.
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!