Hogyan jelentkezik a matematika a programozásban?
#14
"A matematika egy olyan tudomány, ami azért jött létre, hogy a dolgok egyszerűbbek legyenek, mert az ember szereti a munkát kikerülni és az egyszerűsítés lényege is pontosan ez."
Hát ha számodra ez a matematika, akkor nem sokat konyíthatsz hozzá. Ha számodra a matematika a munka elkerülését jelenti, akkor nem tudom, te hol és mit tanultál. Talán iratkozz be az ELTE-re matematikus szakra, esetleg fizikus szakra, és majd megtanulod, hogy mit jelent vért hugyozni.
"A jó programozó, az jó matekból is. Olyan nincs, amit te erőltetsz, hogy matekhoz hülye, de amúgy nagyon jó. Ez a kategória nem létezik."
De, kis túlzással azért létezik, kedves barátom. Egyszerűen azért, mert a programozói munka sem egyforma. Vannak olyan kockák, akik gépi kódban is tudnak programozni, mert olyanokkal álmodnak, és még a háziállatukat is hexadecimális kóddal illetik. Mások csak magas szintű programnyelveken programoznak felhasználói felületeket, jó adag előre definiált sémákkal, amiket már be sem kell pötyörészniük, mert készen kapják őket. És mivel a feladat a logikus gondolkodáson kívül nem követel meg tőlük egyebet, nem is elvárás feléjük az, hogy tudományos adatok elemzésével foglalkozó szoftverket is tudjanak írni. Ahány feladat, annyi programozó. Vannak, akik hardverközeli kódolást végeznek, mások nem. Mások meg nem becsült földrajztanárból képzik át magukat programozóvá kényszerűségből. Ettől még kellő gyakorlattal és kitartással mindketten lehetnek jó programozók a maguk területén. És egyiküktől sem elvárás az, hogy akárcsak differenciálegyenleteket tudjanak megoldani vagy értsék a bonyolult statisztikai számításokat, nemhogy numerikusan oldják meg a magnetohidrodinamika egyenleteit a napszél mozgására a Neptunusz körül, vagy esetleg egy MRI készülék működésének kvantumfizikai vonatkozásait is átlássák a releváns képalkotó eljárásban.
Természetesen a mélyebb matematikai érdeklődés és tudás segít a jó programozóvá válásban, de ez utóbbihoz messze nem kell ennyi, mint ahhoz, hogy jó matematikus legyél. Ez utóbbihoz SOKKAL többet kell tanulni. És legfőképpen mást, és máshogyan.
#33 Veletek ellentétben itt 1000x hoztak fel normális érveket azok, akik szerint nem feltétlenül szükséges egy programozóknak matematikai ismeret...
Valahogy észre sem veszitek, direkt (vagy nem) félreértitek.
Tényleg azt a benyomást kelti az egész, hogy ti kicsit értetek a matekhoz és ezért az már a szemetekben semmit nem ér, aki nem.
Azt viszont nem értitek meg, hogy a programozás már egy kicsit komplexebb terület annál, minthogy "az egész számítógép matek, ezért kell".
#32
Rekurziók, szita. Gráfok: fák, színezések, síkbarajzolhatóság, párosítások. NP-teljesség, NP-teljes problémák. Absztrakt adatszerkezetek. Kiválasztási és rendezési algoritmusok. Keresési módszerek. Kódolás és tömörítés. Gráfalgoritmusok.
Vektortér, függetlenség, dimenzió. Lineáris leképezések és mátrixaik.
Euklideszi algoritmus, irreducibilitás, prímtulajdonság, számelméleti alaptételek egészekre és polinomokra. Geometriai vektorfogalom, skaláris szorzat, vegyes szorzat, vektorazonosságok. Koordinátageometria, térelemek egyenletei.
Gömbi geometria: trigonometria, gömbháromszög felszíne.
Sorozatok határértéke, folytonosság, végtelen sorok. Elemi függvények. Differenciálhatóság, szélsőértékfeladatok. Riemann-integrál. Taylor-sorok, függvénysorozatok és függvénysorok.
Vonalintegrál, felületi integrál. Szélsőértékszámítás. Inverz- és implicitfüggvény-tétel. Divergencia és rotáció.
Lineáris algebrai egyenletrendszerek direkt és iterációs módszerei.
Hahn–Banach- és Banach–Steinhaus-tétel. Riesz reprezentációs tétele, Fourier-sorok.
A lineáris programozás alaptételei. Hálózati optimalizálás. TU mátrixok és alkalmazásaik. A nemlineáris programozás alaptételei. A játékelmélet alaptétele.
Konvergenciafajták. Karakterisztikus függvény. Centrális határeloszlás-tétel.
Válaszolj, mire nincs szüksége ebből a halmazból egy programozónak? Nem neked, hanem egy programozónak.
#33
Te csak másokat minősítgetsz, és ezáltal magadat is, érdemben nem szólsz hozzá.
"Az algoritmizáló képesség, ha már előhozakodtál vele, nagyon nagy részben alkalmazott matematika."
És ha neked van ilyen képességed, abból következik hogy értesz a magas szintű matekhoz is? Akkor meg tudsz tanulni bármit a matematikn belül? Akkor érteni fogod az absztrakt algebrát és topológiát is? Nézz már körül a jó programozók között, hogy hány köztük az ilyen!
Mi a f@szról beszélsz, te szerencsétlen?
#36
Ahogy az angol mondja: "You are barking up the wrong tree"
Attól függ, hogy milyen területen programozó. Lehetsz te anélkül is jó programozó, hogy tisztában lennél a gömbi geometriával.
Aranyom, te nem veszed észre, hogy elment melletted a világ. Ma már egy jó programozónak nem kell tudnia, mi az, hogy NP-teljes probléma, ha a feladata nem kötődik ehhez. Arra egy nagyvállalatnál, pl. egy banknál is ott vannak a matematikusok. Ma a programozást egyetemen kívül, külön kurzusokban is megtanulhatod, és el tudsz utána helyezkedni programozóként, az évek alatt pedig elég nagy tudásra tudsz szert tenni. Nem kell hozzá egyetemi diploma.
Lehet, hogy ez csak számodra új. Tudod, nekem vagy egy BME-n végzett erősáramú villamosmérnök barátom, aki már azt sem tudja, mi fán teremnek a Maxwell-egyenletek, mivel a munkaköre ezt nem követelte meg. De ettől még jó volt a szakmájában és szépen is keresett vele az MVM-nél. Valahol persze szégyen, de ez van. A világ a specializációk felé halad, és lehetsz te szakértő egy kis területen anélkül, hogy az egészet átlátnád.
Örülök, hogy te képzettebb vagy a matekban, de ne hidd azt, hogy az nem lehet jó programozó, aki nem tudja, mi az a Bolzano-Weierstrass-tétel, vagy a Laurent-sorfejtés, esetleg a feltételes variációszámítás.
"Ha számodra a matematika a munka elkerülését jelenti, akkor nem tudom, te hol és mit tanultál."
Eddig csak csendben figyeltem ezt a diskurzust, de ezen a ponton túl nem tudom megállni, hogy megkérdezzem, dilettánsok miért vakkantanak bele olyasmibe, amihez totál fogalmatlanok?
Igen, az ember jól mondja. A matek is, fizika is és más tudományok is azért vannak, hogy az emberek életét jobbá, kényelmesebbé tegyék. Betonkeverőt sem azért csinál az ember, hogy legyen az is, hanem azért, hogy ne kelljen a fáradságos munkát neki elvégeznie. Hasonló okból van teherautó is, de te attól bátran hordhatod a téglát gyalog, a gyártól a felhasználás helyéig. Senki nem fog túl hangosan kiröhögni miatta.
Jó programmer, aki silány matekos, mondod. Edés f@szom, még mit nem találtok ki, a féleszű akadémikust, vagy a vak színkép elemzőt?
Akknek ebben a szakmában nincs megfelelő matematikai felkészültségük, azokról előbb, vagy utóbb, de mindig kiderül, hogy nem programozók, hanem csak korlátolt képességű sz.póautomaták. Akikről ti nyomjátok itt a falsot, azok csak kolbásztöltő kisiparosok, véglegények, Hurka Gyurkák. Egy sekélyes, nívótlan szegmens, a web megélhetési napszámosai.
Egyáltalán, mi az, hogy "attól függ milyen területen programozó"? A képesítést bizonyító okiratot a munkábaállás előtt szerzik meg a hallgatók, nem utána. A silány példád a Maxwell egyenletekkel, még ott is az szerepel, hogy MÁR EL IS FELEJTETTE és nem az, hogy meg sem tanulta. Az ilyen válaszaitokon látszik, hogy mennyire sz.rt sem értek ti. Csak egymást hülyítitek. Itt bezzeg nyomjátok orrvérzésig, 40-50 vagy esetenként 100 hozzászólás is születik, de a szakmaibb kérdéseknél valahogy nem álltok sorba a válaszaitokkal. Miért van ez?
Én főállásban webfejlesztő vagyok, hobbi szinten játékfejlesztéssel foglalkozom.
Webnél a matek nem annyira gyakori, inkább akkor jelentkezik, ha specifikusan az a feladat, valamit számoltatni kell, akár pénzügyes, könyvelő programok stb.
Játékfejlesztésnél NAGYON sok a matek, de ezzel nem feltétlen a játékfejlesztőnek kell foglalkoznia, hanem sokszor a játékmotor fejlesztők, vagy az adott libet megírók foglalkoznak, a játékfejlesztőnek csak használnia kell ezeket az előre kezébe adott eszközöket.
Viszont sokszor van olyan játékötlet ami egyedi (lásd pl Portal volt anno), amikor fontos ismerni a matekot, mert bár a kezed alá van adva a megoldás, de nincs a szádba rágva, dokumentációban leírva az amit te szeretnél megvalósítani.
Ha te össze akarsz kötni egy pontot, a lib ad lehetőséget rá, sőt még görbét is tudsz vele rajzolni, de ha mondjuk te X pont összekötésével szeretnél elérni egy adott helyre, lehet a lib alapból nem támogatja, de a pontokon végigiterálva az 1-1 pont összekötés funkcióval megvalósíthatod.
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!