A programozáshoz mennyire kell matek?
Egy komoly megközelítés a probléma eldöntéséhez:
Élvezem, hogy minden hasonló kérdésnél páran leírjuk ugyanazt, de a lényeg nem megy át.
Még egyszer talán felfogják az okoskodók. Nem (elsősorban) a lexikális matek tudás kell. Hanem ugyanaz a gondolkodás mód (mintázat) ami a matek feladat megoldásokhoz is kellenek. Ezeket (jelenleg csak) a matek feladatok megoldásán keresztül lehet megtanulni, azokat az agyi területeket amik ehhez kellenek leginkább a matek feladatok fejlesztik a megfelelő életkorokban. Illetve később is megtanulható de nehezebben. Ennek biológiai(!) alapjai vannak, így van felépítve az emberi agy.
Pl. a matekhoz kell egy magas absztarkciós képesség. Ez igazán komolyan először a paraméteres egyenleteknél jön elő. Tehát amikor először jön elő az, hogy az egyenlet nem úgy néz ki, hogy 3x+12=9 hanem úgy, hogy a*x+b=c (illetve általánosítva, rendezés után a*x+b=0) és látni kell, hogy a két /három/ egyenlet egy és ugyanaz. Ez a képesség elengedhetetlen a programozás során. És nem úgy hangzik el a kérdés, hogy old meg az a*x+b=c alakú elsőfokú egyenletet, hanem erre kell függvényt írjál. És ez hogy fog gyakorlatban pl. egy webprogramozásnál (amihez szerintetek semmi matek nem kell) kinézni: adott egy webshop ahol adva van egy termék ára (esetleg a súlya), van egy táblázat, hogy x súlyig y összeghatárig a kiszállítás díja Z Ft pl. 1kg-ig és 10 000 Ft-ig a kiszállítás 1000 Ft, 10kg és 50 000 Ft-ig 2000 Ft, 100 000 Ft fölött a kiszállítás ingyenes. És ki kell írni a képernyőre, hogy ha még rendelsz az X termékből n darabot akkor ingyenes lesz a kiszállítás...
Szintén a függvény fogalmával azért valahol tisztában kell lenni, bár a C style "function" fogalom nem egészen azonos a matekban megtanult függvény fogalmával de van némi köze hozzá.
Ha valaki tök h*e a matekhoz és elvérzett a paraméteres egyenleteknél (általában ott szokott bekövetkezni az első elvérzés azoknak akiknek más irányű képességei vannak) azoknál a programozás sem fog menni, mert ugyanaz az agyterület kell mindkettőhöz, ugyanazok a képességek kellenek mindkettőhöz. És ez nem azért van mert kell a matek hanem azért mint már írtam ilyen az agyunk.
Szintén vannak alapvető matek módszerek amelyeknél megint az "agyunk programozása" zajlik, pl. a bizonyítás teljes indukcióval. Itt megint "mintázatban" működik az agyunk ami a programozáshoz kell.
Utána csak az elmúlt napok kérdéseit nézzétek vissza, hány esetben derül ki, hogy a probléma abból adodóik, hogy alapvető matek ismeretek nincsenek meg. Pl. (igaz az nem most volt hanem kb. 1,5 - 2 éve) hogy valaki írt valami C programot és nem értette, hogy ha egy "jónagy" számhoz hozzá ad 1-et miért lett negatív az eredmény. Vagy most pár napja talán C#-ban a billentyűzetről kért be számokat, és néha elcsattant a programja, aztán kiderült, hogy akkora számot írt be ami nem fért el annyi biten amennyi az általa használt long int.
Adatbázis: az adatbázis tervezéséhez is kellenek minimális matek ismeretek. Legalább a logikai függvények ismerete kell (AND, OR, XOR, NOT és társai). Illetve pont adatbázisnál szoktak elszállni mint a győzelmi zászló amikor rosszul választ adattípust (pl. egész típusoknál). Amikor fejleszt a "gyerek" 10-12 rekorddal tesztel (esetleg később ráenged 100-at is), aztán élesbe amikor találkozik azzal, hogy van 10 000 000 rekord hanyatt esik az egész. És miért mert pl. egy 0-80 közti értéket pl. long int-ben tárol, és nem használ indexet sem, és erre az értékre keres egy csomót. Vagy a másik szépség amikor a fogyasztói árakat double real-ben tárol, az helyett, hogy akár numeric vagy esetleg int. típusban tárolná. Egyrészt kevesebb bit kell (kisebb a rekord) másrészt az eredmény pontosabb lesz (ld. pl. pár napja a gyökvonós kérdező). Azért megérteni, hogy miért jó az egyik vagy a másik ahhoz kell (ha nem is sok) matek ismeret az biztos.
De ugyanez az analízis (integrálás, deriválás) megint ritka az, hogy valakinek ilyen problémákat kell géppel megoldania. Viszont az a gondolkodás minta ami ehhez kell nem egyszer elő fog jönni. Szintén nem az kell, hogy lexikálisan tudja, hogy mi a sin x/x fv. derivált függvénye, de egyrészt a módszert nem árt ismerni (legalább fogalom szinten) másrészt kell ismerni azt a gondolkodás módot ami a derivált függvényhez vezet. Pl. szintén webshop rendszer nem árt jelezni, hogy ha X termékből az elmúlt időszakban naponta Z db. fogyott akkor kb. meddig lesz elég a készlet. És ez egy elég alapvető elvárás, hogy egy webshop rendszer szóljon időben! hogy fogytán a készlet Józsika rendelj be belőle mert hiány lesz.
aki mást állít arra igaz amit a korábbi hozzászóló írt, hogy majd megmagyarázza, hogy "hát kérem nem én vagyok a hibás, az úgy volt, hogy..." (különösen nagy vagyoni kárt okozó hivatáskörben elkövetett súlyos gondatlanság) "hát igen, én írtam a programot de nem gondoltam, hogy..." (hivatáskörben súlyos gondatlanságból elkövetett 20 rendbeli halált okozó testi sértés, 50 rendbeli maradó fogyatékosságot okozó súlyos testi sértés).
Szerintem nem azt írtuk, hogy "egyáltalán" semmi matematika nem kell és a fentebbi, magyar oldalról belinkelt írás sem erről szólt.
Az ilyen kérdéseknél megjelennek a túlzó állítások is, mint pl. olyan hatalmas szintű magas matematikai tudás szükséges, hogy a programozó ne használja a rendelkezésére álló, már megírt, sokak által biztonságilag és egyéb módokon is kitesztelt kriptográfiai algoritmusokat, hanem kell tudnia kisujjból, azonnal, álmából felverve írni egyet.
Nagyon jó videó a gráfelmélet alkalmazásához a gyakorlatban:
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!