Profilo di ducaduca's spaceBlogElenchi Strumenti Guida

Blog


Matematika za programere

Ovo je jedno od "onih" pitanja. Koliko znanje matematike može da Vam pomogne da bolje razumete računare ili poboljšate svoje programerske veštine? Verovano ste već stotinu puta čuli kako je računarska nauka u suštini samo drugi naziv za matematiku. Kako je matematika u osnovi svega. Kako kada učite matematiku oštrite svoj um, i način razmišljanja. Kako će to znanje jako da Vam koristi…

Reći ću Vam iskreno. Sve su to laži. MATEMATIKA VAM NE TREBA UOPŠTE! Barem ne ako čitate ovaj blog

O matematici sam imao prilike da učim na teži način. I to od ljudi koji pričaju izlizane fraze sa početka ovog teksta. No kako naš narod kaže(imamo mi i po koju dobru), o pokojniku sve najlepše. Tako cilj nije da pričam o PMF-u. Pričaću Vam malo o matematici i računarima.

Kako ne volim da generalizujem stvari, iskreno bi bilo da kažem da znanje matematike može da razjasni neke stvari. Daleko o toga da će te bilo šta od sledećeg moći da upotrebite u redovnim programerskim zadacima. Ali, ako volite da čitate, i onda kada ne morate, i ako volite da učite nove stvari, predložene teme mogu da budu dobar putokaz. Kako Vam to drugi neće reći, posebno ne oni sa početka teksta, bilo bi dobro da sada pažljivo slušate.

Preporuka za proučavanje

  • Formalne teorije
  • Aksiomatski sistemi, deduktivno zaključivanje, aksiome, teoreme, dokazi, izvođenje
  • Teorija skupova, relacije, funkcije
  • Brojevi: prirodni, celi, racionalni
  • Gedelova teorema
  • Elementarna algebra: matrice, sistemi jednačina...
  • Grafovi (Za ovo će Vam svi reći da je jako bitno. Ja se još nisam sreo ni sa jednim realnim problemom koji je rešenje imao u grfovima. Niti znam nekoga ko zna ikoga ko je ovo koristio u svakodnevnom radu. Naravno nisam projektovao niti jedan ruter.)
  • Kombinatorika: kardinalnost, permutacije, varijacije, kombinacije
  • Elementarna verovatnoća

Ono što bi moglo da Vam bude od koristi

  • Elementarna analitička geometrija 3-dimenzionalnog prostora: koordinatni sistem i njegove transformacije, jednačine prave, ravni i sfere, preseci, razdaljine, skalarni i vektorski proizvod...(Ukoliko se bavite 3D programiranjem)
  • Furijeove transformacije(Kompresija podataka sa gubitkom)

Ono što Vam nikada neće trebati

  • Kontinum hipoteza(majka svih sranja)
  • Neeuklidske geometrije, geometrija Lobačevskog
  • Limes
  • Nizovi, redovi
  • Infinitezimalni račun: diferencijali, integrali
  • Grupe, prsteni, polja
  • Metrički prostori
  • Analitička geometrija n-dimenzionog prostora
  • Funkcije više promenljivih, funkcije kompleksne promenljive
  • Finansijska matematika
  • Diferencijalne jednakosti i nejednakosti
  • Numerička analiza
  • Diferencijalna geometrija
  • Statistika

"Prokleti fon Nojman…"

Ima i drugih, sem mene, koji misle da bi najbolje bilo da zaboravite sve što ste znali o matematici. I to sa vrlo jakim argumentima. Karl Fant u svojoj knjizi, tako pokušava da razbije mit da je matematika osnova računarske nauke, a da je algoritam fundamentalni koncept.

Zar i nije tako? Zar svi mi nismo svedoci aktuelnog problema, kako nas algoritamski pristup sprečava da paralelizujemo naše programe?

Krivci za sve su, kako Fant sugeriše, Nojman i Tjuring. Ili malo preciznije, nesreća je da su pioniri računarske nauke bili matematičari. Tako, danas, uglavnom imamo pogled na stvar iz matematičkog ugla. Međutim, problem je što matematika postavlja potpuno pogrešna pitanja u ovom kontekstu. Što su nalazi matematike potpuno neprimenjivi za naše današnje probleme. Tako je i algoritam nepotrebno nametnut koncept, koji se retko gde uklapa kao prirodno rešenje.

Fant iznosi i sledeće činjenice koje će Vas naterati na razmišljanje: "Operativni sistem ne bi trebalo da okonča rad u konačnom vremenu. Niti će OS kao rezultat rada dati jedinstveno rešenje. Rad OS-a ne može da bude određen(determinisan), obzirom da je uslovljen nizom nepovezanih ulaza iz spoljašnjeg sveta, koji su potpuno slučajni. Bilo koji program koji rad zasniva na slučajnim ulaznim vrednostima nije algoritam."

Sreća je samo što većina potpuno zanemaruje ovaj matematički pristup. Ne zato što neka teorija tako kaže, već zato što u praksi nema nikakve veze između teorije i prakse…

Commenti (3)

Attendere...
Il commento immesso è troppo lungo. Immetti un commento più breve.
Immissione non effettuata. Riprova.
Impossibile aggiungere il commento al momento. Riprova più tardi.
Per aggiungere un commento è necessaria l'autorizzazione di un genitore. Chiedi autorizzazione
I tuoi genitori hanno disattivato i commenti.
Impossibile eliminare il commento al momento. Riprova più tardi.
Hai raggiunto il numero massimo di commenti pubblicabili giornalmente. Riprova tra 24 ore.
Impossibile lasciare commenti. La funzionalità è stata disattivata perché i sistemi hanno rilevato una possibile attività di spamming dal tuo account. Se ritieni che il tuo account è stato disattivato per errore, contatta il supporto tecnico di Windows Live.
Esegui il seguente controllo di protezione per completare la pubblicazione del commento.
I caratteri digitati nel controllo di protezione devono corrispondere ai caratteri dell'immagine o della riproduzione audio.

Per aggiungere un commento, accedi con il tuo Windows Live ID (se utilizzi Hotmail, Messenger o Xbox LIVE possiedi già un Windows Live ID). Accedi


Non hai ancora un Windows Live ID? Registrati

ducaha scritto:
lol:)
Druže naučniče,
 
Na ovakvo frenetično lupetanje ne odgovaram:) Mada možda bih i ja u tim godinama dozvoli sebi drskost da pričam o nečemu što ne znam. Razmisli šta si hteo dakažeš, onda to lepo oblikuj pa na kraju i reci. 
 
PS: Za one koji ne znaju Nojman i Tjuring nemaju nikakve veze sa prenosom podataka. To je bio Šenon... Možda nešto i naučiš čitajući moje tekstove.
30 Lug.
Simeunha scritto:
i josh neshto... zashto su programske jezike razvili matematicari a ne debili poput tebe? zato shto matematicari imaju znanje a vi imate GLUPOST!
29 Lug.
Simeunha scritto:
e, tebra, ovo shto si rekao za matematiku : Reći ću Vam iskreno. Sve su to laži. MATEMATIKA VAM NE TREBA UOPŠTE! Barem ne ako čitate ovaj blog, mnogo me razocaralo sto cujem to od jednog "software engineer-a". ili je to samo zato shto ucish stvari za djecu. recicu ja tebi iskreno: Da bi znao shta ustvari programirash treba ti matematiko itekako.... tj da bi znao koje radnje to procesor obavlja itd... a ako programirash pod windowsom onda je to i shvatljivo ali ti sigurno necesh daleko dogurati... i josh neshto... naveo si ovo:
Bilo koji program koji rad zasniva na slučajnim ulaznim vrednostima nije algoritam. naravno da program nemoze biti algoritam.... algoritam su koraci obrade tih podataka koje sam program dobije od nas ili nekog drugog... i josh mislish da matematika nije bitna.. za vistu i g.o. naravno da nije bitna za krajnjeg korisnika kao shto si ti i koji uci da pishe korektan kod a ne shvata sushtinu... ali shta mislish da microsoftovi inzinjeri neznaju matematiku?? pa shta mislish kako uopshte uspjevaju zatvoriti i zashtiti svoj kod... Mislim da bi tvoj odgovor bio: nekim kompajlerima visheg nivoa.. haha a shta mislish ko je napisao te kompajlere bez matisha? jedino shto mogu dakazem sza sve ovo... iliti zakljucak je sledeci:

Da nam matematika nije potrebna? To je samo ludost. To je ustvari Microsoftova propaganda, da svijet nebi dobijao kadrove iznad nivoa microsoftowvih inzinjera iz vremena kad su ustanovljene osnove Wina itd... jer bi se lako sve to ZA****LO! Samo pomisli kako je sad napraviti jednu LAN mrezu? sa nashe strane je lako. i svaki "klasican" programer moze napraviti engine i interface za slicne mreze itd... ali nece moci shvatiti sushtinu. na cemu se zasniva prenos podataka? pa naravno na matematici... da nije bilo Nojmana i Tjuringa to nebi postojalo sa "strucnjacima" poput tebe jer kao prvo nebi znali odakle da krenete!!!!!!!
29 Lug.

Riferimenti

L'URL di riferimento per questo intervento è:
http://microisv.spaces.live.com/blog/cns!1F4DC2F5DE97564B!218.trak
Blog che fanno riferimento a questo intervento
  • Nessuno