Fejlesztőként szükséges-e a matematika a programozáshoz
A matematika és a programozás kapcsolat az egyik legnépszerűbb kérdés a programozásban. Ezért döntöttem úgy, hogy írok egy cikket, amely leírja a köztük lévő kapcsolatot. Ha még mindig kíváncsi, hogy mire van szüksége egy programozónak matematikára, akkor ebben a cikkben megtudhatja a témával kapcsolatos álláspontomat.
A matematika és a számítástechnika kapcsolata
Először is meg kell említenem, hogy a számítástechnika mint tudományterület közvetlenül a matematikából származik. Korábban a része volt, de nagy sebességű és messzemenő fejlődése miatt külön tudományterületként ismerték el. Az információs technológia évről évre fejlődik, és ennek a folyamatnak az a célja, hogy az általa nyújtott eszközökkel gyorsabban érjen el eredményeket.
Ha rajzolnánk egy számítástechnikai piramist, a matematika lenne az alapja. Definíció szerint ez egy nagyon elvont tudományterület, amely a digitális világra támaszkodik.
A program megtanulása olyan, mint a matematika tanulása.
Megfigyeléseim és tapasztalataim azt mutatják, hogy a programozás megtanulása nem különbözik a matematika tanulásától. Mindkét tudomány, amelyek szorosan kapcsolódnak egymáshoz, megfoghatatlanok.
Amikor matematikát tanulunk, végigmegyünk az általános, középfokú és felsőfokú oktatás minden évfolyamán. Bár, azt hiszem, mindannyian megismerték ezt az érzést, amikor megtanulták a matematika alapjait az általános iskolában. Az volt a benyomásunk, hogy soha nem leszünk jobbak és nehezebb feladatokat oldhatunk meg. A tanulmányokból származó feladatok akkor varázslatnak tűnnek, és a hallgató úgy érzi, hogy elárasztja az anyag nagysága.
E kényelmetlen benyomás ellenére az oktatás évei elmúlnak, és az emberek, anélkül, hogy tudnák, mikor javulnak. Először is eljutunk a polinomokhoz, funkciókhoz, sorozatokhoz, korlátokhoz, integrálokhoz, differenciálművekhez stb. Ezután kis lépésekkel minden a helyére kerül.
Csakúgy, mint elsöprő a programozás megtanulása, amikor elkezdi tanulni a semmiből, azaz az alapvető programozási konstrukciók, az egész dolog értelmetlennek tűnik. Például szükségtelennek tűnnek azok a programok, amelyek fekete konzolon töltik le és jelenítik meg az adatokat. Egy személynek az a benyomása, hogy soha nem lesz képes bonyolult rendszert írni. De, mint a matematika, ez egy megtévesztő benyomást, mert meg kell menni ezeket a kezdeti szakaszban.
Ezért érdemes tanulni a matematikát.
A matematika és a számítástechnika tanulmányozásának hasonlósága a számítástechnikai tanulmányok egyik érve. A tanulmányok során az anyag megfelelően elrendezett részeit kapja, a megfelelő sorrendben adva.
5 év tanulás és sok látszólag haszontalan téma után a számítástechnika területén a horizontunk jelentősen kiszélesedik. Nem csak a programozás, az informatikai hálózatok, a mérnöki grafika, hanem a tudomány, a számítástechnika teljes alapjai.
A program megtanulása elsöprő és nehéz lehet anélkül, hogy főiskolára menne. Nem azt mondom, hogy nem lehet megtanulni magad, de ez olyan, mint egy olyan helyzet, amikor matematikát akarsz tanulni az egyetemről anélkül, hogy ismerné a szorzótáblát vagy a frakciókat.
A saját maga által hagyott személynek problémái lehetnek a megfelelő áthaladással a tanulás minden szakaszában, a legprimitívebbtől (azaz hurkoktól és számok megjelenítésétől a fekete konzolban) a bonyolultabbakig (színes ablakok, felhasználói felületek, tervezési minták, módszerek).
Ezért a programozás nehéz.
Végül érdekes megemlíteni azt az érdekes tényt, hogy a programozás miért tűnik látszólag olyan nehéznek? A válasz nyilvánvaló.
A programozás olyan, mint a matematika tanulása.
A programozók magas jövedelmét, a globális digitalizálást és a munkaerőpiac nagy hiányát tekintve nyilvánvalónak tűnik, hogy a programozásnak legalább minimális óra alatt iskolai tantárgynak kell lennie az alapok csepegtetéséhez.
Egész életünkben matematikát tanulunk, valószínűleg körülbelül 15 évig. Nem tanulunk meg sehova programozni. Ezért hirtelen szembesülve a döntéssel" Kezdem megtanulni programozni , "egy személy hatalmas kihívással néz szembe, hogy elsajátítson egy hatalmas tudományterületet tudás nélkül. Akkor nem tudod, mit kell elkapni, és az alapok megtanulása értelmetlennek tűnik.
Hol van a matematika a számítástechnikában?
Az a tény, hogy a számítástechnika a matematikához kapcsolódik, hosszú ideig megvitatható. Vannak, akik egyetértenek, mások határozottan tagadják. Programozóként természetesen a matematikára fogok összpontosítani a programozásban.
A legelején fontos megérteni, hogy a matematika nem csak algebrai műveletek, nem csak matematikai elemzés. Sokan azt hiszik, hogy nincs matematika a programozásban, és akkor kíváncsi vagyok, hogy szeretnének-e kódot írni integrálokkal, hogy lássák ezt a matematikát?
Számomra a számítástechnika lenyűgöző témái diszkrét matematika és optimalizálási módszerek voltak. Ha azonban meghatároznám a diszkrét matematikát, hídnak nevezném a matematika és a programozás világa között.
A két tárgy annyira szorosan kapcsolódik egymáshoz, hogy az akadémiai tanár specializációjától függően inkább programozási vagy matematikai osztályok lehetnek. A diszkrét matematika a diszkrét (nem folytonos) készletek tudománya. Minta alosztályai a következők:
-
Matematikai logika - nagyon jó és hasznos. Megtanultuk a logikai logikát és törvényeit, de Morgan törvényeit, a mondatok, axiómák, tautológiák, kvantálók, következmények, matematikai indukció, a halmazelmélet alapjai, kiegészítő készletek stb. A tesztek során például Bool logikájának törvényeivel kellett egyszerűsítenünk az összetett mondatokat. Minden villamosmérnöki alapja ezeknek. Ezeket többek között az elektronikus áramkörök egyszerűsítésére használják, és természetesen a programozás feltételes utasításainak kialakításában használják.
-
Kriptográfia - így működik a titkosítás, hogyan működnek az egyoldalú vagy kétoldalas rejtjelezések. Hogyan lehet, hogy az aszimmetrikus RSA algoritmust nem lehet megtörni, és miért védi például az MMORPG játékok kommunikációját az ügyfél és a szerver között? Mennyire fontos az aszimmetrikus algoritmusok prímszám-képletének hiánya, és miért fogja az összes kriptográfia ma összeomlani a kvantumszámítógépek létrehozásával.
-
Játékelmélet - hogyan kell a programnak helyes döntéseket hoznia, miért a tic-tac-toe játék állandó összegjáték, és miért használhatja a minimax algoritmust egy számítógépes robot írására, amely soha nem fog kudarcot vallani. Miért nem olyan könnyű a sakkban? A fogoly dilemmája és a választás problémája veszteséggel vagy nyereséggel.
-
Gráfelmélet – egyszerűen varázslat a számítástechnikában. Gyakran használják ott, ahol soha nem várnád el. Beleértve a játékok legrövidebb útjának megtalálásának problémáját, a hidak, fák problémáját, a grafikonokkal kapcsolatos problémákat, a legjobb szomszéd problémáját.
A fenti pontok olvasásakor van-e értelme azon tűnődni, hogy a matematika kapcsolódik-e a programozáshoz? Nagyon általában csak egy témát írtam le, ami a diszkrét matematika.
Talán valaki, aki ezt a cikket olvassa, szeretne többet megtudni a matematika és a programozás kapcsolatáról. Próbáljuk meg felsorolni a matematikai szakaszokhoz rendelt programozási problémákat:
-
Algebrai műveletek / matematikai elemzés - mindenféle algoritmus írása, figyelmet fordítva a számítási komplexitásra, meglehetősen dedikált és speciális asztali alkalmazások.
-
Statisztika - meglehetősen kevés a programozásban, valószínűleg nagy adatokkal foglalkozik.
-
A genetikai algoritmusokat - viszonylag újakat - olyan széles körben használják, hogy nehéz mindent felsorolni. Mesterséges intelligencia programozására, az időjárás előrejelzésére, a forex tőzsdén való játékra használják.
-
Lineáris algebra - ennek nagy része a számítógépes játékprogramozásban van (nem használ magas szintű grafikus motorokat). Képesnek kell lennie arra, hogy az objektumokat az űrben forgassa. Minden mátrixokon és trigonometrikus transzformációkon alapul. A legfontosabb, hogy optimálisan kell csinálni, nem pedig próba és hiba. Mindenféle grafikus feldolgozásban is használják (szűrők, alakfelismerés, képak elemzése, sebességmérő kamera szoftver).
Végül nem kell azzal érvelni, hogy a számítástechnika matematika, és elég sokat találhat a programozásban. Ha valaki azt hiszi, hogy nincs matematika a programozásban, gondoljon arra, hogy mit várna? Írsz egy programot törtekkel? Végül is nem csak a "számokkal" végződik a matematika. De nézzük tovább, lehet-e programozni anélkül, hogy ismerné a matematikát?