Scroll to top

Hogyan kezdj el programozni?

Az előző bejegyzésben remélem meggyőztelek, hogy miért érdemes megtanulnod programozni, most jöjjön a hogyan. Nagyon fontos, hogy jó forrásból tanulj, mert rengeteg az unalmas, elavult, bonyolult anyag (főleg a könyvek), amitől csak megutálja az ember az egészet. Szerencsére az internet korában élünk, úgyhogy sok izgalmas, interaktív oktatóanyagot lehet találni, nagy részük ráadásul ingyenes. Előtte viszont tisztázni kell az alapokat, és programnyelvet kell választani.

image

Azmiaz?

A programnyelv ugyan olyan, mint egy hagyományos, emberi nyelv. Mindegyik különbözik egy kicsit a többitől, lehet őket kategóriákba sorolni, de a céljuk ugyan az: kommunikáció. A programnyelvek célja, hogy kommunikálni tudjunk a számítógépekkel. Minden célra más programnyelv a megfelelő, vannak egyszerűek és nehezek, népszerűek és kevésbé ismertek, de mindegyiket meg lehet tanulni. Sőt, az első nyelv után egy újabbat megtanulni már sokkal egyszerűbb, ezért nem is annyira fontos, hogy milyen nyelvvel kezded, de erről majd később részletesebben. És ha már a nyelveknél tartunk: feltételezem, hogy tudsz angolul, mert nélküle elég nehezen fogsz boldogulni a programozással. Én is csak angol anyagokat fogok linkelni.

A programozáshoz nem kell semmilyen bonyolult program használatát megtanulni. A programkód sima, olvasható szöveg, amit aztán egy program lefordít, vagy futtat, a nyelvtől függően. Tehát neked csak egy szövegszerkesztőre van szükséged (jó akár a Windows Jegyzettömb is), de általában a programnyelvekhez kínálnak fejlesztőkörnyezetet (IDE), ami egy nagyobb tudású szövegszerkesztő és a fordító/futtató környezet egyben.

image

Milyen nyelvet válasszak?

Mindenképp valami egyszerűt, könnyen megtanulhatót. Nem baj, ha nem lehet az adott nyelvvel látványos dolgokat készíteni, úgysem fogod pár hét tanulás után leprogramozni az új CryEngine-t. Ráadásul nagyon könnyű az első után egy újabb programnyelvet megtanulni, mert az alapokat már elsajátítottad az első megtanulásakor, és nagyon sok a hasonlóság a programnyelvek között.

A következő lépés szerintem az, hogy eldöntsd, mihez fogsz kezdeni az új tudásoddal. Webfejlesztés? Mobilalkalmazások? PC? Vagy csak emelt infó érettségit akarsz tenni, és láttad, hogy ott lesz programozás?

Web

Ha érdekel a webfejlesztés, szerintem a Javascript nyelvvel kezdd. A Javascriptben megírt kód fut a böngészőkben, ettől lehet kattintani a lapon összevissza anélkül, hogy mindig egy új lap töltődne be, mint a hagyományos linkeknél. Fontos megemlíteni, hogy a Javascripttel önmagában még nem tudsz honlapokat készíteni, csak dinamikussá tenni őket. A honlapok megtervezéhez a HTML-t, és a CSS-t is ismerni kell. Ezek nem programnyelvek, hanem leíró nyelvek, a HTML írja le az oldal tartalmát (ez egy bekezdés, ez egy kép, ez egy cím), a CSS pedig az egyes elemek stílusát (az a bekezdés piros, az a kép 300 pixel széles, az a cím vastag). Ha nem vagy biztos benne, hogy a programozás neked való, kezdj el HTML-t és CSS-t tanulni. Sokkal egyszerűbbek, mint a programnyelvek, és hamar rájössz, ha nem tetszik neked ez az egész.

Minden másra ott a…

…Python, nem a Mastercard :) Szerintem ez a másik legjobb választás a Javascript mellett. Egy nagyon egyszerű programnyelv a Python, logikus felépítésű, és nagyon sok olyan dolog alapból bele van építve, amit más nyelvben neked kéne leprogramoznod. A kódod futni fog Windowson, Linuxon, MacOS-en, még böngészőben is gyakorolhatsz, ráadásul infó érettségin is tudod használni (a legjobb opció a megengedett nyelvek közül). Ne számíts arra, hogy látványos programokat fogsz készíteni, alapból csak parancssorba tudsz vele írni, de sok grafikus könyvtár van hozzá, készülnek komoly alkalmazások is Pythonban…mindegy, az a lényeg, hogy tanuláshoz ez a nyelv tökéletes.

Ha még többet akarsz olvasni a nyelv választásról, ajánlom ezt a Lifehacker cikket.

Most hogy jól összezavartalak…

Akkor rá is térhetünk az oktató anyagokra. Gyorsan megjegyzem, hogy én soha nem vettem egy programozásos könyvet sem, mindig a csodálatos és nagyszerű internetről tanultam, ezért csak weboldalakat fogok linkelni. A könyveket mindig fenntartásokkal kell kezelni, nagyon sok az elavult, az informatika sajnos gyorsan fejlődik…és soha nem olyan izgalmas egy könyvet lapozgatni, mint egy videót nézni, vagy egy honlapon gyakorolni pontokért és achievementekért :)

  • Codecademy: Ez az én kedvencem, a honlapon gépelve lehet nagyon sok programnyelvet tanulni, mint például Javascript, Python, Ruby, de HTML és CSS anyagok is vannak. Nagyon játék jellegű az egész (achievementek, pontok), de közben jól megtanítja az alapokat.
  • Lifehacker - Learn to Code: Javascript tutorial, nem túl hosszú, de a végén ad pár tippet, hogy merre tovább.
  • LearnStreet: Ez is olyan, mint a Codecademy, Javascriptet, Pythont, Ruby-t lehet tanulni.
  • Mozilla Developer Network: HTML, CSS, Javascript linkgyűjtemény, de van pár saját anyaguk is. Mindenképp érdemes átnézni, ha az említett nyelvek érdekelnek, hátha találsz valami neked tetsző anyagot.
  • iTunes U: Az iTunes Store-on belül van ez a rész az oktató videóknak, nagyon sok amerikai egyetem felrakja az előadásait ingyenesen. Itt egy Lifehacker cikk a jó tanfolyamokról (nem csak informatika témában).

Még pár hasznos tipp

Akármilyen nyelvet kezdesz el tanulni, biztos, hogy nagyon sokszor el fogsz akadni, valami miatt nem fog működni, amit írtál. Ilyenkor természetesen először próbáld értelmezni a hibaüzenetet, de ha nem jössz rá, akkor sincs gond, a Google a barátod.

De van egy még jobb barátod, a Stack Overflow. Ez egy kérdezz-felelek oldal programozással kapcsolatban (Gyakorikérdések programozóknak :)). Itt mindenki nagyon segítőkész, hiszen pontokat lehet gyűjteni a megoldott problémákért, és szavazni lehet a megoldásokra, ezért mindig a legjobbat látod felül. Annyi információ van az oldalon, hogy én még soha nem tettem fel kérdést, mindig elég volt a keresőt használni, hogy választ kapjak a problémámra. Néha kicsit nehéz megfogalmazni a gondod, de egy hibaüzenet bemásolásával is remekül működik. Csak az a fontos, hogy mindig írd be a te programnyelved a keresésbe, hogy releváns találatokat kapj.

Minden programnyelvnek van egy hivatalos dokumentációja, ezt sem szabad elfelejteni (kivétel a Javascript, ott az MDN-t használd, és a W3Schoolst felejtsd el azonnal). A dokumentáció természetesen csak akkor használható jól, ha tudod mit keresel, de mindig ez legyen az első, amit megnézel, ne a Google.

Aztán az sem árt, ha van egy programozó ismerősöd, főleg ha a te programnyelvedhez is ért.

Nagyjából ennyi, ha még van valami kérdésed, írd meg nyugodtan kommentben. Jó tanulást :)

Miért tanulj meg programozni?

Mindenki úgy tekint a programozásra, hogy az valami fekete mágia, amihez csak az ért, aki jó matekból, meg az a kockáknak való, meg én amúgy is hülye vagyok hozzá, stb. Szerintem viszont mindenkinek jót tesz, ha az alapokat megtanulja, egy sor előnnyel jár, és még érdekes is.

Az alkotás öröme

A legfontosabbal kezdem, programozni poén. Jó érzés alkotni valamit, akármennyire egyszerű is az a program. Tudod, hogy a te műved, és azért működik magától, mert te úgy csináltad meg. Emlékszem a legelső programomra (a kötelező Hello World után): feljött egy ablak, ahova beírtad a neved, és ha nyomtál egy entert, kiírt egy személyre szóló üdvözlést. Percekig szórakoztam vele.

Megtanít gondolkodni, problémákat megoldani

A programozás nem más, mint problémák megoldása egymás után. Ehhez viszont tudni kell logikusan végiggondolni a problémát, ha szükséges, lebontani kisebb problémákra (absztrakt gondolkodás), és meg kell tanulni a gép agyával gondolkodni. Aztán ha nem jó a megoldás, amit kitaláltál, akkor meg kell próbálni máshonnan megközelíteni a problémát. Kreatívnak kell lenni. És persze kitartónak.

Ezek mind olyan képességek, amik máshol is jól jönnek az életben. Én például érzem magamon, hogy mióta elkezdtem programozni, jobban értem a matekot és a fizikát (és nem fordítva, ahogy azt mindenki gondolná). Az meg egy nagy tévedés, hogy jónak kell lenni matekból a programozáshoz. Az elején biztosan nem. Csak azok a képességek kellenek, amiket fent leírtam, de menet közben is ki lehet ezeket fejleszteni.

Lustaság, automatizálás

Minek kézzel átnevezni 1500 fájlt, ha írhatsz rá egy programot, ami elvégzi helyetted? Nem bűn a lustaság, nagyon sok olyan helyzet van, amikor valami lélekölő, ismétlődő feladatot kell elvégeznünk, mennyivel egyszerűbb lenne, ha a gép csinálná helyettünk. Csak meg kéne mondani valahogy a gépnek, hogy mit csináljon. Itt nem arra kell gondolni, hogy a semmiből írni kéne egy programot, épp ellenkezőleg, nagyon sok program engedi, hogy kiegészítőket, makrókat, szkripteket írjunk hozzá. Photoshop, Word, Excel, csak hogy párat említsek. A lehetőségek határtalanok.

Vagy amikor nem találunk elég jó programot a mi problémánkra, sokszor egyszerűbb írni egy sajátot. Én ezért csináltam képregény letöltőt, todo lista kezelőt, órarend tervezőt, és még sok egyéb dolgot. Ja, és egy webes zenelejátszót is.

Ha még ezek után sem jött meg a kedved a programozáshoz, akkor itt egy nagyszerű videó a témáról:

Viszont egy dolog miatt ne akarj megtanulni programozni: Hackernek lenni sajnos nem olyan király dolog, mint a filmekben.

Oké, de hogy kezdjek neki?

Erről is fogok hamarosan írni, mert ezt a kérdést nagyon sokszor hallom, és tényleg nehéz jó oktató anyagot találni. Ha meg valaki száraz könyvekből próbál megtanulni programozni, az biztos, hogy egy életre elveszi a kedvét az egésztől.

Szerk: Itt van a második rész.

Megszűnik a Google Reader

A Google bejelentette, hogy július 1-én kinyírja a Readert. Az utóbb időben nagyon elhanyagolták már, szóval várható volt ez a döntés, mégis nagyon meglepett engem (és elég sok Reader felhasználót, ahogy látom).

Tudom én, hogy kihalóban van az RSS, és mindenki Facebookon meg Twitteren értesül mindenről, de nekem mindig is az RSS tűnt a legjobb megoldásnak. Lehet, hogy azért, mert imádok a neten olvasni, és ebből következik, hogy az átlagosnál több blogot és újságot olvasok. És ha már egyszer olvasom őket, akkor nem akarok egyetlen postról sem lemaradni. A közösségi oldalakon ezek a linkek elvegyülnek a többi kiírás között, és nem mindig van időm végiggörgetni minden új dolgot Twitteren és Facebookon, ezért mindig megvan az az érzés, hogy lemaradtam valami fontos postról. És ami még ennél is nagyobb probléma, hogy nincs egyetlen szolgáltatásban sem read later funkció, amivel el tudnám a postot menteni, hogy később elolvashassam. Legtöbbször unalomból megyek fel ezekre az oldalakra, nem azért, hogy éppen akkor elolvassak egy hosszú cikket.

Ezzel szemben a Google Readerben mindig csak azt látom, amit én akarok olvasni (mert én állítottam össze a feed listámat), és egy inboxban gyűlik minden olvasatlan post, amit meg is tudok csillagozni, ha éppen nincs időm elolvasni. Aztán van még egy nagy előnye, ami lehet, hogy csak nekem fontos: nem kell linkekre kattintani, és az oldal betöltésére várni, ahhoz, hogy elolvass egy cikket. Egyből ott van előtted az írás, gyorsan át is tudod görgetni, hogy eldöntsd érdekel-e.

Megpróbáltam én már áttérni Twitterre, hogy ott kövessem a blogokat, de ez sem valami kényelmes megoldás az említett kattintás és töltési idő miatt. Főleg mobilon. Aztán nekem van még egy eléggé személyes problémám az emberek, és főleg hírességek követésével (akár Twitteren, akár Facebookon): rengeteg hülyeséget írnak, amire nem vagyok kíváncsi. Olyanokra gondolok, mint amikor egy banda kiírja, hogy milyen jó volt a tegnap esti koncertjük, vagy retweetelnek pár rajongói üzenetet. Facebookon pont ezért van nekem elrejtve minden zenész és film a news feedből, egyszerűen nem vagyok kíváncsi erre a sok hülyeségre. Nem akarom unlike-olni ezeket az oldalakat, mert szeretném ha látszódna, hogy miket kedvelek. Na mindegy, elkalandoztam. Lényeg, hogy nem szeretem Twitteren és Facebookon követni a blogokat meg az embereket, akiknek amúgy a blogját olvasom.

Azért remélem, hogy a Reader megszűnése beindít valami versenyt az RSS appok között, és elkezdenek megjelenni a jó alternatívák. Van még idő júliusig.

Én most meg teszek egy kísérletet a Flipboard appal, mert érdekesnek tűnik. Hátha beválik.

List’n Roll

Végül ez lett a neve a múltkor már említett zenelejátszós projectemnek. Most csak azért írok róla, mert elkészültem mindennel, ami akkor még hiányzott, a domaint is megvettem, úgyhogy tegnap feltöltöttem élesbe, lehet próbálgatni (és népszerűsíteni :P)

List'n ROll

A List’n Roll név mellett döntöttem, ennek legalább tudtam .com-os domaint venni, nem volt foglalt. Megcsináltam a logót, a főoldalt, a lapozható top dalokkal és előadókkal, és javítottam még egy csomó bugot, ami közben előjött. Ja, és csináltam Twitter és Facebook fiókot is neki, lehet követni ;)

Mondjuk úgy, hogy ez az 1.0-s verzió. Sok ötletem van még, biztosan fogok is rajta még dolgozni, de most tartok egy kis pihenőt. Májusban érettségizem angolból és infóból, nem tudom mennyi szabadidőm lesz addig, úgyhogy lassan nekiállok ezekre készülni (főleg az infóra, szerintem az angolra készülés ki fog merülni annyiban, hogy Doctor Who-t nézek).

Osztálytársaimmal csináltuk ezt a kis filmet médiaórára. Több stílus közül választhattunk, mi végül a francia avantgárd mellett döntöttünk, mert valami ilyen random hülyeséget akartunk készíteni a kezdetektől :P

A zene adta magát, hogy Caravan Palace legyen, nagyon szeretem ezt az egész electroswing műfajt, és jól illik az ilyen jelenetekhez. A vágást én csináltam Premiere Pro-ban (és Photoshopban a fotók szerkesztését a stop motion jelenetekhez), elég sok munkám benne van. Nem gondoltam előre, hogy ilyen nagy munka lesz, egész héten ezen dolgoztam, hogy a pénteki határidőre kész legyen. Közben sajnos rájöttem, hogy mennyire lassú a gépem a film vágáshoz, ezért is ment olyan lassan.

Ja igen, a film címe is teljesen random, utolsó nap este találtuk ki, az egyik jelenet alapján (aminek az alapja meg ez a paródia :D)

Next Page →