Mi kell a programozáshoz?
A programozáshoz meglepő módon kell egy számítógép. Ha ezt a jegyzetet olvasod, akkor nagy valószínűséggel rendelkezel egyel. A számítógéped asztali gép vagy laptop legyen – az okostelefon és a tablet nem jó masina – bár az utóbbi időben rájuk is kezdtek megjelenni a fejlesztői eszközök.
Kell egy kis angol tudás is. Jó ha van alapfokú angol nyelvvizsgád, mert a programozás nyelve az angol, a parancsokat angolul írod le, így nem árt a nyelvismeret. Persze csak a szavakat kell ismerned – a nyelvtant egyáltalán nem. Helyette meg fogod ismerni a „programozás nyelvtanát”, az algoritmust.
A programozás egy úgynevezett fejlesztőkörnyezetben zajlik, ami lényegében egy program, különböző extra funkciókkal. Ilyen fejlesztőkörnyezet például a Code::Blocks, a Visual Studio vagy az Eclipse program, amelyek mind ingyenesen letölthetők az internetről.
Rejtelmes történelem?
Mielőtt elmerülnénk a programozás rejtelmeibe, hallgassunk egy kis történelmet. Bizonyára mindenki hallotta már a középiskolákban előszeretettel emlegetett mondatot, hogy:
"A számítógép a nullákat és az egyeseket érti meg, a számítógép működése a bináris számrendszeren alapul."
Ez a kijelentés teljesen megállja a helyét. A számítógép áramköreiben két fajta feszültségszint létezik, egy alacsonyabb szint, amit elneveztek 0-ás szintnek, és egy magasabb feszültségszint, amit elneveztek 1-esnek. A digitális áramkörökben ez a két szint van jelen, és ez működteti őket.
Már az első számítógépek is a kettes számrendszerre épültek. Ezeknek az eleinte még szoba méretű gépeknek is – csakúgy mint a mai számítógépeknek - volt központi feldolgozó egységük ami az utasításokat dolgozta fel, volt memóriájuk, amiben a futó program tárolódott, és voltak hozzá kötve perifériák, amiken az eredmények megjelentek. Az első számítógépek egyike volt például az ENIAC elnevezésű gép is, ami a képen látszik.
Az ENIAC programozása igen nehézkes volt. A futtatandó programot kapcsolókon keresztül kellett betáplálni a gépbe. Egy kapcsolónak két állapota volt: Az egyik amikor aktív volt, be volt kapcsolva, ez jelentette az 1-es szintet a másik amikor nem volt bekapcsolva, ez jelentette a 0-ás szintet. Különböző kapcsoló állásokkal különböző áramköröket lehetett összerakni és aktiválni, ezzel a számítógépet különböző feladatok megoldására késztetni azaz a számítógépet programozni.
Az eleinte mechanikus, kézzel állítható kapcsolókat később persze felváltották az elektromos kapcsolók és a mai nap is használt tranzisztorok. Lényegében ezen kapcsolók állása egy programot ír le, azt a programot, amit a számítógép futtat.
A 0-ák és 1-esek sorozatát, amit a számítógép bármiféle feldolgozás nélkül megért elnevezték gépi kódnak. Gépi kódot nem látunk gyakran leírva, mert ez az embernek semmit nem mond. Ha egyszerű digitális áramkörök esetén a tervezők vagy a programozók mégis leírják a gépi kódot, akkor azt nem feltétlenül kettes számrendszerben teszik, hanem inkább 16-os, más néven hexadecimális számrendszerben írják le, mert így sokkal rövidebb.
Valljuk be, a kezdeti számítógépek programozása nem volt egyszerű. Az akkori mérnökök inkább meghallgattak volna egy Justin Bieber számot, mintsem, hogy naphosszat kelljen bütykölniük és programozniuk gépi kódban.
A perifériák fejlődésével, a képernyő és a billentyűzet megjelenésével egyszerűsödött a programozás. Eddig a legnagyobb gondot a hosszú nullás és egyes sorozatok megjegyezhetetlensége okozta. Aki számítógép programozásra vetemedett annak eddig be kellett magolnia azt, hogy melyik 0-1 sorozat milyen funkciót vált ki a digitális áramkörből. Az újabb és újabb gépeket fejlesztő mérnökök kitalálták azt a megoldást, hogy a perifériákon keresztül nem 0-ákat és 1-eseket táplálnak a gépbe, hanem kulcsszavakat, úgynevezett mnemonikokat. A bináris sorozatokat ilyen kis szótöredékekkel helyettesítették, így máris emberibb lett a gépek irányítása.
A többnyire 3 betűs szavakból álló programozási nyelvet elnevezték assembly-nek.
A gépi kód és az assembly alacsony szintű programozási nyelvek erősen gépfüggőek. Az egyik számítógépen megírt programot nem vihetjük át csak úgy egy másik számítógépre, mert előfordulhat, hogy a másik számítógép más utasításokat fogad el és az új környezetben nem indulna el a program.
A számítógépek széleskörű elterjedése szükségessé tette a programok fejlesztési idejének csökkentését, azaz felmerült az igény, hogy a programokat minél gyorsabban írják meg a programozók. Az új nyelvek struktúrája már nem a számítógép sajátosságaihoz, hanem az emberhez igazodik. Megjelentek a magas szintű programozási nyelvek.
Erre látunk egy példát, itt már teljesen kiírt érthető parancsok kiadásával történik a számítógép irányítása. Minden egyes parancs leírható nullákkal és egyesekkel.
Ilyen magas szintű programozási nyelv a C nyelv is, amit meg fogunk tanulni. Láttuk, hogy a számítógépet parancsokkal működtethetjük. Egy hosszú parancssorozatot, ami leírja egy program működését forráskódnak nevezzük.