A programozáshoz mennyire kell a matek?
Lehet, hogy a kezdet kezdetén, jobb híján a matematikába sorolták be, de a klasszikus értelemben véve nincs sok köze hozzá. Persze, kell a matek... négy alapművelet, logika, meg józan ész. Magához a programozói munkához ennyi matek kell, és nem több. Nem kell több matek, mint mondjuk egy genetikusnak vagy egy biológusnak, utóbbit mégsem soroljuk a matematikába.
Persze, logikus gondolkodás meg algoritmizáló képesség az kell hozzá. De ezt azonosítani a matematikával elég nagy ideológiai csúsztatás.
Az előzőekben leírtam milyen matematikai tudás kell egy programozónak, Étrisyon megnézném, hogy milyen programot írsz matematika nélkül, és hogy melyik leírásban találtad, hogy a négy alapművelet elég. Persze részben igaza van az összes nagyszabású kitkatuser "programozónak" akik lepontoztak, mert a feldobok egy button-t, és kiírja nevemet programokhoz tényleg nem kell matematika, csak el kell keserítenem mindenkit, ezek az egyének nem programozók. Anyucinak mutogatni lehet, lehet kaptok puszit is, de másra nem nagyon lesz jó.
Megjegyzem azon webprogramozók, akik nem csak photoshopban generálnak weblapot (mint a többség), azoknál előfordul pl sql, jstl, jquerry ... ezek mind algebrai realizációk (projekcióra, szelekcióra, agregációra ...) És sorolhatnám, hogy minden programozási struktúra matematika, csak a tudatlanok állítják, hogy nem. Logikai hálók, keresőfák, ciklus, maga a változó is egyszerű matematika!
A program hivatalos definíciója:
Az S részhalmaza AXA** relációt programnak nevezzük, ha
1: Ds = A
2: Bármely a eleme A: bármely alfa eleme S(a) : alfa1 = a
3: Bármely eleme Rs : alfa = red(a)
Ez a program! Hogy lehet valaki programozó, ha nem tudja mi az a program? Valaki szerint nem matematika? Csak és kizárólag számítások mennek végbe a számítógépen. Az csak egy dolog, hogy a modern programozási nyelvek, és környezetek elrejtik a mély matematikát, de más nincs is benne!
Megjegyzem ez a def. az általam linkelt egyetemi jegyzetben is benne van.
@Étrisyon: Bizony ez még ma is matematika.
Persze egy HTML oldalhoz nem kell rögtön tudni integrálni és deriválni, de bármilyen komolyabb programozási feladathoz bizony kell a matek.
Ha másért nem is legalább azért, hogy ne írj folyton végtelen ciklusokat.
Igen, ugyanúgy, ahogy matematika mondjuk amikor egy geológus a kőzetrétegek keletkezési hőmérsékletét számolja, egy genetikus egy kodomináns allél átöröklésének a valószínűségét számolja, vagy amikor egy nyelvész egy nyelv fonémakészletét statisztikailag elemzi. Akkor most csapjuk hozzá a matematikához a földtant, biológiát, genetikát, fizikát, archeológiát, nyelvészetet, meg egyáltalán mindent? Kb. hasonló arányban kell hozzá a matek (sőt...), mint mondjuk egy készletnyilvántartó alkalmazás megírásához. Attól az a tudományág nem lesz a matematika része.
De ennyi erővel a nyelvtanhoz is sorolhatnánk a programozást, hiszen ha nem tudsz egy specifikációt értelmesen, a programozó által ismert nyelven leírni, akkor ő nem fogja tudni, hogy mit kell leprogramoznod. Akkor most a nyelvtan része a programozás?
#12: ez az ideológiai maszlag. Azért, mert valaki megfogalmazott egy amúgy hétköznapi dologhoz egy mnatematikai definíciót, attól az még nem lesz a matematika része. Persze, a matekfanatikusok szeretnék, de attól, hogy valamihez létezik matematikai definíció, attól az még nem fog a matematika alá tartozni. Ha mégis ezt gondolod, akkor belefutottál pár nagy logikai buktatóba. (Szóval a gondolatmenetedhez igazodva: nem megy a matek?)
"Hogy lehet valaki programozó, ha nem tudja mi az a program?" -- De, tudja. Az általános iskolás kisgyerekek nagy része is tudja, hogy mi az a program. Az, hogy nem a te jelölésrendszereddel fogalmazza meg, még nem jelenti azt, hogy ne tudná. (Újabb nagy logikai hiba.)
Igen természetesen általános iskolában az operációs rendszer is az ami kapcsolatot teremt a felhasználóval bla bla bla, meg általános iskolában a párhuzamosak sose metszik egymást bla bla bla ... Azért vedd észre, hogy az eredeti program definíció valószínűleg az ami teljesen lefedi a program lényegét, és ez csak matematikusan lehet leírni.
Amúgy hiszed vagy sem, a nyelvtan igenis matematika. A formális nyelvek írják le, és bár igen csekély részhalmaza a generatív nyelvtanoknak a beszélt nyelvek halmaza, mégiscsak halmaza, és innen indul a programozás, nélküle nem lenne turing gép, ram gép, és a fordítóprogram sem értenék mi az a for vagy if.
És igen mikor biológus, vagy grafológus vagy nem tudom micsoda számol, akkor alkalmazott matematikát használ! De a programozás minden egyes pontja matematika, mivel minden az 1 és 0 jelek közötti műveletekkel jön létre, amit pedig a processzor számol. Hidd el nekem a processzor matematikai műveleteket végez! Hihetetlen ugye? Mást nem is tud, és a programozó feladata a processzor programozása. Nem földben turkálni, vagy angolt fordítani, hanem a SZÁMÍTÓgép (érzed a lényeget? SZÁMÍTÓ) működését befolyásolni. Veszekedhetsz velem, elmehetsz a világ bármely pontjára, az összes programozó aki ért egy kicsit a számítógéphez, az tudja, hogy a programozás matematika.
Nyugi, ismerem ezt a "minden matek" ideológiát. Hát nem. Ismét egy logikai hiba. Attól, mert valamire létezhet matematikai definíció, az még nem lesz matematika.
"a programozás minden egyes pontja matematika, mivel minden az 1 és 0 jelek közötti műveletekkel jön létre" ... igen, egy atomokból álló gépen, amiben elektronok futkároznak. Szóval akkor a programozás végső soron nem is matematika, hanem részecskefizika. Akkor a gondolatmenetedet továbbvezetve aki nem ért a részecskefizikához, az nem lehet programozó. (Megnézném, hogy hány programozó tudna válaszolni mondjuk arra a kérdésre, hogy a neutron és a proton milyen kvarkokból áll?) Pedig részecskékből áll, szóval részecskefizika. Hogy dolgozhat valaki egy részecskékből álló géppel, ha nem is tudja a részecskefizikát?
A matematika egy segédtudomány. Persze, sokan nagyon megideologizálják, és mindenféle torz, hibás érveléssel bizonygatják, hogy minden matematika. Nem. A világban nem lehet semmit sem egyetlen tudománnyal leírni. (Persze ezt a legtöbb tudományban el is fogadják, csak a matematikusoknak van istenkomplexusuk, és mindent kizárólagosan a saját szakterületük alá akarnak vonni.) Csak attól, mert egy tudpmányágat, szakmát, szakterületet vagy jelenséget egy tudomány eszközeivel lehet jellemezni, attól az még nem fog az adott tudományág része lenni. Főleg nem egy olyan tudomány alá vonni, aminek nagy része mesterséges agyszülemény, és az évszázadok során célirányosan alakították úgy, hogy azt mindenre rá tudják húzni.
Összefoglalva (mert látom, muszáj a lényeget kiemelni, különben nem értik meg): minden szakma, jelenség, akármi több tudomány szempontjából is leírható, jellemezhető, de ettől még nem szükségszerű, hogy annak a résztudományává váljon. (Egyébként úgy gondolom, hogy ezt egy programozó intellingenciájával ez felfogható, de lehet, hogy tévedtem...)
Értem én, hogy kell hozzá. Nem én hoztam fel olyan érveket, hogy "mivel definiálható matematikailag a program fogalma, ezért a programozás az a matematika része". Érvelésem erre volt válasz.
Egy szóval nem mondtam, hogy nem kell hozzá. Csak nem kell túlmisztifikálni...
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!