Kezdőoldal » Számítástechnika » Programozás » Tanulnek valamit munka mellett...

Tanulnek valamit munka mellett, teljesen programozas-szuz vagyok, hol kezdjem?

Figyelt kérdés
Melyik nyelvnel, milyen konyveket ajanlotok? Talan kesobb(28 eves vagyok :)) ebbol szeretnek elni. Van ket 'kamu' szakmam erettsegi utan, de igazabol egyiket sem hasznalom, a jelenlegi munkahelyem meg ugy erzem nem fenntarthato eveken at.

2015. júl. 26. 21:53
 1/2 anonim ***** válasza:
A másik fontos szempont a válaszhoz, mennyire >>beszélsz<< jól angolul?
2015. júl. 26. 22:00
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:
100%

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.

2015. júl. 26. 22:34
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!