matematika i programiranje

  • Začetnik teme Začetnik teme dirg@
  • Datum pokretanja Datum pokretanja
stanje
Zatvorena za pisanje odgovora.
Incognito:
codemaker, ovog puta ipak moram da se slozim sa NULL-om, ali ne oko matematike... Priznajem da sam podosta slab matematicar (bar u poredjenju sa nekim kolegama koje znam) tako da bi bilo licemerno da pricam kako je matematika presudna...

Medjutim, ona jeste itekako korisna kad se dodje do optimizacije. Optimizacija je nesto sto zaista ide u rok sluzbe programera...

Nikako se ne slazem da programeri na razvojne alate trebaju da posmatraju kao na black-box, jer bez pravog poznavanja 'materije' ne mozes napisati kvalitetan program... Kako ces napisati OS ako ne znas kako radi kompjuter? Kako ces napraviti HDD Utility ako ne znas kako rade hard diskovi? ...

Kako ces uostalom napisati kvalitetan program ako ne poznajes registre u procesoru, nacin podele RAM memorije i sl.?

Zamisli samo da su kreatori Google-a razmisljali na tvoj nacin? Pa njima je SQL optimizacija 'Oce nas'... Imao sam prilike da radim na relativno malom projektu koji se zavrsio tako sto je search listao tricavih 5-6 miliona unosa... Pa ono sto je u pocetku nad 10-ak hiljada unosa izvrsavao za 100ms, na kraju je rezultovalo cekanjem od po 10-ak sekundi, te sam mesec dana proveo samo na SQL optimizaciji... E to je nad 'samo' 5-6 miliona, a zamisli tek kakav posao treba da se odradi da bi se pretrazilo 5-6 milijardi unosa za pola sekunde? (naravno, ovde i veliku ulogu igra hardver ali opet)...

Jednostavno, cilj programera treba da bude da napravi sto fukcionalniju i sto korisniju aplikaciju, a ne aplikaciju sa sto vise funkcija. Primer politike 'nabijanja funkcija' a zaboravljanja na stabilnost i upotrebljivost nam svakog dana pokazuje Microsoft... Zato njihovi programeri i vaze za 'crne ovce' u programerskom svetu...

No, da direktno odgovorim na postavljeno pitanje: Matematika je i vise nego korisna u programiranju, kao i u gotovo svim ostalim sferama zivota - visak znanja matematike ti u svakom slucaju nece skoditi... Ono sto mislim da svaki programer mora da drzi u malom prstu su algebra, trigonometrija, diferencijali/integrali, logaritmovanje, matrice i analiticka geometrija... Ne moras znati sve do detalja, ali nauci bar osnove, jer ce ti itekako koristiti...

APSOLUTNO se slazem, da je matematika vazna, kada govorimo o veoma slozenim stvarima, zapravo nezaobilazna, tu nemam nikakve dileme.
Posto nisam neki matematicar, zaobisao sam sistemsko programiranje , kompajlere itd.. jednostavno nisam taj tip programera.

Moj odgovor se odnosio na strah decka koji je pokrenuo temu. Plasi se da je matematika uslov svih uslova, dobro poznavanje matematike. Moj odgovor je bio da nije neophodno biti matematicki guru, da bi se upustio u programereske vode. To je sve.

Inace i ti i "NULL" ste u pravu. Matematika moze veoma da pomaze, slazem se.
Ono sto hocu da naglasim, da postoje odredjene oblasti programiranja, gde matematika nije toliko znacajna. Tu zato ubrajam baze podataka. Mozda se nismo razumeli sta mislim pod "baze podataka"
Evo sta hocu da kazem:

Ja sam progamer bas suprotno od M$ momaka, ne volim nagomilavanje funkcija. Koristim ono sto jezik nudi, trudeci se da sto optimalnije iskoristim znanje. Pravi primer je onaj deo koda koji je NULL pokazao. Zapravo BAS to i radim, celoga zivota. I znam kako se to radi naravno. Ali sve do sada nisam bio svestan da sam nesto matematicki razmisljao. Naravno da je drugi nacin njegovog primera mnogo brzi, ali sa moje tacke gledista, to bih i ja uradio, ali ne zbog znanja matematike, vec iskustvom, vidim da mi je tako brze i uradim query tako. To i slicne zahvate, zovem optimizaciom koda koji pristupa bazama. Tu se slazem sa NULL-om potpuno.
Ali to nije sve, samo optimalno koriscenje koda nije dovoljno, ako pogresno i nekonzistento slozis baze u pripremnom periodu, dzaba ti sva vestina optimizovanog koda (ne daj boze , nepotrebna redundanca na primer...ili relacije nelogicno rasporedjene, predvidjene) E, tu ne znam gde je bas nesto mesto matematici. Znaci govorimo o najmanje dva "stepa" u radu, a ima toga jos, gde i UI igra veliku ulogu itd... Moj odgovor se odnosio na ovo malocas navedeno.

Trenutno radim sa 4 strane kompanije, veoma slozene poslovne aplikacije, sa mnogo baza razlicitih namena.
Od samog pocetka (pre godinu i po), potrosili smo 2-3 meseca dizajnirajuci baze podataka, koje ce njihovi programi koristiti. (slogovi u bazama, relacije izmedju podataka, povezanost i nacini komunikacije itd). Kada smo se dogovorili i razresili pitanja o vrstama, kvalitetu i broju pootrebnih baza podataka, preslo se na izradu samog "engina" i UI.
Sve to sam odradio a nisam neki matematicar. Naravno da poznajem nesto matematike (na psihologiji sam dao 3 statistike plus matematiku u prvoj godini i to ne tako jednostavne), ali ono sto hocu da naglasim, recimo za izradu 4 kompleksne aplikacije, nisam ni u jednom momentu osetio nedostatak matematicke vestine, pogotovo "malo jace" matematike. Aplikacije su do sada skoro sve gotove sem jedne za USA koja ce biti zavrsena do kraja Juna.

To me je rukovodilo da kazem, da recimo postoje oblasti gde je matematika manje vazna, ali naravno postoje oblasti gde se bez jako dobrog poznavanja matematike jednostavno ne moze. Za programiranje nekog OS, bez toga i ne razmisljati o pocetku...

U mom slucaju, posao odradjen, sve fercera kao sat, a matematika mi nije bila primarna. A vrsio sam optimnizaciju baza, i nekokiko puta ubrzavao celu stvar u toku razvoja optimizaciom koda. O tome sam ja pricao.

Razmisljao sam o ovome o cemu diskutujemo, i nisam nasao neku tacku, gde bi mi bolje poznavanje matematike pomoglo, u mom konkretnom slucaju (slucajevima), naglasavam. Naravno, da sam morao raditi neki low-level programski zahtav, poceo bih da cupam kosu, ,jer nisam guru za matematiku.
Ali za baze sam eto podosta vest, za sve ove godine rada, a opet nisam matematicar...

Na pamet mi ne pada da tvrdim da za programere matematika nije vazna. Samo mislim da za odredjene oblasti je vise a za druge manje. To je sve. I tu se valjda slazemo. Nisam iskljciv, bar to sam naucio godinama u programerskom zivotu. Uvek zelim nesto novo da naucim, ali imam i svoje misljenje i iskustvo, koje uvek rado podelim sa drugima.

Da rezimiramo:
1. Za mnoge i mnoge poslove, bez matematike se jednostavno ne moze.
2. Postoje programska resenja, koja ne zahtevaju jako dobro poznavanje matematike. (u ovim vodama se ja krecem)

Jel' se slazemo sada? :)
Idemo u nove radne pobede, ako jedni drugima zatrebamo, tu smo uvek raspolozeni za razmenu misljenja, a pre svega pomoc, saveti. Ne bih nikada nista postigao, da me mnogi ljudi nisu poducili. A opet, mnogim sa pomogao da krenu. Tako to ide.
Pozdravljam obojicu.
 
dirg@:
za koji programski jezik je najmanje potrebna matematika :lol:

Upravo sve vreme pokusavam da kazem da nije u pitanju koji je programski jezik nego sta programiras, ako pravis recimo zip program onda ti je sve jedno u cemu ga programirao velika matematika ti ne gine.

U svakom slucaju mesto gde ti najmanje treba matematika jeste GUI programiranje, tj da lepis dugmice i ostale kontrole na forme. I da programiras njihovo ponasanje.
 
NULL:
Mala digresija na moje poslednje dve poruke ako neko ne zna sta mislim pod O(pa nesto unutra). U matematickom smislu kazemo da je f(x)=O(g(x)) ako je f(x)=a*g(x) gde je a neka konstanta.

Primer 1
f(x)=2x+5
f(x) priblizno jednako O(x)

Primer 2
f(x)= x^2+5*x-3
f(x) priblizno jednako O(x^2)

Ovo je tipican primer o cemu sam govorio.
Decko koji je pitao za programiranje i matematiku, kada ovo vidi, plasim se da ce pomisliti "*biga, ovo ne znam, dakle od programiranja nema nista :(" ....
NE mora ovo gore imati u malom prstu, da bi mogao poceti programiranje. Mada bi bilo dobro, i nije za bacanje, apsolutno ne.

Mozda smo malo presiroko zasli u temu, ali moram da dodam kako ja vidim stvari.
U nekom programskom jeziku imam X funkcija koje barataju samim bazama podataka, tabelama, ili kao to koji jezik naziva.
Ja stvarno ne znam kako su te funkcije napisane, dakle ne znam kod te funkcije, pa cak mogu da predpostavim, da neke od njih su mogle biti napisane i bolje, ili mozda ne.
Znam samo, sta koja funkcija moze da uradi.

Sad sledi ono u cemu je NULL u pravu. Moze se upotrebiti prvi ili drugi nacin iz njegovih primera. Oba daju istovetne rezultate. Drugi ce posao obaviti brze.
Sta mi to govori? Pa to znaci (sto i radim pola svog zivota) da treba POSTOJECE funkcije upotrebiti sto efikasnije, znajuci STA mogu da odrade, i naravno, sta zelim da postignem.
Poneki puta se i sam zacudim, sta se sve moze izvuci is POSTOJECIH funkcija, ako se upotrebe na sto efikasniji nacin (razlicite nacine). I to je dobro, tera coveka da optimizuje kod.
Moja dilema je ono sto NULL kaze, da je do optimalnog koriscenja funkcija moguce doci jedino poznavajuci matematiku, pa pokazuje i formulu zasto je drugi primer brzi od prvog. Tacno.
Ali, sa moje tacke gledista, mnogo sam puta tako i slicno (drugi primer) radio, ali nisam do tako napisanog koda dosao jer sam u glavi imao matematicku formulu, vec sam "zdravorazumski", iz "aviona" video da ce drugi nacin biti brzi, jer ima manje iteracija.
Zbog toga se pitam, koliki obim znanja matematike je zapravo poreban, u primeru rada sa bazama podataka?
Nisam ja nikakav genije, pa da umem "intuitivno" da nabodem pravu upotrebu komandi i fukcija, jednostavno proverim sta koja funkcija moze a onda razmislim i sklopim sto efikasniji izraz ili kombinaciju funkcija. To je sve sto ja mogu da uradim, ne bivajuci vrsni matematicar. To je sustina moje price. Mozda sam uskracen za neki mnogo bolji kod zbog toga, ali, zato i pominjem da mi veoma dobro ide, pa ne znam da treba da patim za viskom matematike.
To je sustina moje dileme, koliki obim matematicke vestine i znanja je u ODREDJENIM oblastima potreban. Pominjem oblast koja je meni bliska.

Naravno, bez matematike se u mnogim oblastima programiranje apsolutno ne moze. U takvim oblastima ja ne bih ni za kiflu zaradio. No, specijalizovao sam se za oblast rada sa bazama podataka, i to je to.

Eto, da se slozim jos malo sa NULL i Incognitom. Toliki sam duduk za specijalizovana programiranja, gde je matematika osnov svih osnova, da ne mogu ni da zamislim, kako se zapravo prave sve one "dumolike" igrice. Uvek se pominje neki "engine" ali i taj "engine" je neko napisao, pa se dalje koristi.
Ali, kako je "engine" napisan, mogu samo blago da zamislim, verovatno sa visokom matematickom primenom, koriscenje verovanto nista manje matematicki orijentisano. E, za to je STVARNO znanje matematike ne neophodno, vec IZUZETNO bitno.
To ne mogu uporediti sa onim sto ja radim.

Dakle, decku sam samo TO hteo reci, ako ce pisati programe za ZIP, OS, igre, kompresije, kriptivanje, balistiku, svemirske programe i proracune, itd, itd - matematika stvarno treba, neophodno je biti dobro matematicki potkovan.
Ako ce se orijentisati na baze podataka, bilo SQL, xBAse, Cobol ili neke druge, matematika moze samo pomoci, ali je potrebno poznavanje u MNOGO manjem obimu nego za gore navedene poslove.
Kada to kazem, ne mislim na DALJU obradu podataka, nakon sto su izvuceni iz baza. Ta dalje obrada podataka, moze naravno biti VEOMA podlozna matematickim obradama, pa tada jaka matematika opet mora biti implementirana...
Ali, ako opet pomenem sta ja radim, moje aplikacije su da kazem "poslovni softver" raznih namena. Sva matematika do koje stizem, se svodi na neka mnozenja, deljenja, sabiranja i oduzimanja. Pomalo procenutalnog racuna i slicno, ali daleko od soficticirane primene matematike. Obracun nekih zarada, proracun amortizacije, izracun kilometraza itd, itd. Za takve aplikacije ne visim da mi fali matematika. O tome pricam kada kazem da se za neke aplikacije moze i bez visoke matematike.

To je i poruka decku koji je postavio temu.

MAda, drago mi je sto smo se dotakli ove teme, jer uvek se moze ponesto nauciti, ma koliko vremena neko bio programer. Celoga zivota covek kao programer uci, nikad nema kraja. Ponekad, sagledati problem ocima nekog drugog, pomogne da se vlastiti problem vidi drugacije, pa i mozda efikasnije resi.
Eto na primer, kada sam rekao da bih i ja drugi NULL-ov primer uradio, nisam se ni pitao da to matematicki moduliram, ali je zanimljivo sto je to NULL uradio, i jeste logicki. NIkad tako nisam vide svoja programska resenja. Naucio sam i nesto novo.

Inace, nisam se NULL pitao za platu, samo sam se cudio, kada imas vremena da odradis nesto za pristojne pare, ako se udubljujes u strukturu koda funkcija koje koristis. Naravno da me ne zanima tvoja zarada. Pitanje je bilo vise "kolokvijalno", to ti je valjda jasno, imam dovoljno zivotne i poslovne kulture da mi na pamet ne pada takvo pitanje, i ne samo zbog rada za strane firme.

A za glasanje - bolje me ne pitaj, a i ti slicno osecas, siguran sam :)
 
Anonymous:
NULL, ajde iskreno ti mora da si studirao ili i dalje studiras matematicki fakultet. Mislim funkcije slozenosti????????? To te je malo odalo zar ne? Lepo izgleda za one koji ne barataju tim terminima? :D
POZDRAV
haha....to sto zna shta je slozenost kaze da je na matematici.....o boze, najosnovnija matematika na svim fakultetima mora da spominje malo o i veliko O....a tek u bilo kojoj knjizi sa algoritmima prvo sto se pricha je slozenost, i kako se meri.... naravno da je najlakse meriti tako nego da sad uzmesh izlupash neke metode.....zna se sta su lieanrni, kvadratni, eksponencijalni probelmi.......da iole znash nesto o algoritmima znaces i o tome
 
codemaker:
Incognito:
codemaker:
Najvaznije je logicko razmisljanje, poznavanje alata sa koim radis i ucenje,ucenje,ucenje,ucenje -sve dok ti zadnjica od sedenja na stolici ne postane potpuno pljosnata :) I mnogo rada.

Eto zasto programeri i programerke nemaju narocito atraktivne guze ;)

Ajd' za programere, ali me zabrinuse tvoje reci za programerke :)
O tome nisam ni razmisljao. Znaci - dobra guza - nije programerka, losa guza - garant programerka? :)

Evo dokaza da ni Incognito ne zna matematiku: Dobra guza=>nije programerka <=> programerka=>losa guza a nikako losa guza=>programerka. To je najobicnija kontrapozicija :lol: :shock: :lol: :shock: :lol: :shock:
 
:lol:

Izvini, ja sam svoju formulaciju tacno rekao - da programeri i programerke nemaju narocito atraktivne guze... Sto ne znaci da svi ostali imaju...

Samim tim, codemaker, kao slab matematicar, je napravio gresku u proracunu ;)

lose guze => [programeri, kamiondzije, daktilografi, ..., zanimanje[n-1]] gde je n n velicina niza zanimanja koja uslovljavaju losu guzu...

'el jasno?! ;)
 
Incognito:
:lol:

Izvini, ja sam svoju formulaciju tacno rekao - da programeri i programerke nemaju narocito atraktivne guze... Sto ne znaci da svi ostali imaju...

Samim tim, codemaker, kao slab matematicar, je napravio gresku u proracunu ;)

lose guze => [programeri, kamiondzije, daktilografi, ..., zanimanje[n-1]] gde je n n velicina niza zanimanja koja uslovljavaju losu guzu...

'el jasno?! ;)

Moja greska. Zaista je codemaker bio pogresio,izvinjavam se na prozivanju Incognito.
Ali sto ono (n-1) ? Jesi siguran da ne treba n ? :D :D :D
 
U svim programskim jezicima nastalim u proteklih 10 godina (a i mnogim pre toga), vazi prosto pravilo da se niz indeksira od nulte pozicije, a ne od 1... pa bi samim tim zanimanje[n] gde bi n bila duzina niza bila neidentifikovana vrednost ;)

Vidis kako biva kad u matematiku uvrstis programerski duh ;)
 
Incognito:
U svim programskim jezicima nastalim u proteklih 10 godina (a i mnogim pre toga), vazi prosto pravilo da se niz indeksira od nulte pozicije, a ne od 1... pa bi samim tim zanimanje[n] gde bi n bila duzina niza bila neidentifikovana vrednost ;)

Vidis kako biva kad u matematiku uvrstis programerski duh ;)

I pretpostavio sam da je to u pitanju,ali posto ovo nije program,to je dovelo do zabune,ali sto se tice programerskog duha :shock: PUN GAS !!!
 
Incognito:
:lol:

Izvini, ja sam svoju formulaciju tacno rekao - da programeri i programerke nemaju narocito atraktivne guze... Sto ne znaci da svi ostali imaju...

Samim tim, codemaker, kao slab matematicar, je napravio gresku u proracunu ;)

lose guze => [programeri, kamiondzije, daktilografi, ..., zanimanje[n-1]] gde je n n velicina niza zanimanja koja uslovljavaju losu guzu...

'el jasno?! ;)
E sad sam zbunjen!$$%#^!
Sta - zar i za pronalazak dobre guze treba matematika! :) Dakle, ova diskusija se izrodila u nesto katastrofalno po mene :(
Pa zar cu morati digitronom da razmeravam i dimezionisem, o tuge, o problema...
A tako sam lepo ziveo godinama bez neke posebne matematike, za guze nisam brinuo, gle sad uzasa!
Sto rece onaj grafit: "Incognito ...*te brbljiva.." Zar si bas MORAO da matematicki uoblicis gluteusni problem?
Ja nisam vest matematicar, i eto, olupa mi se o glavu..
 
codemaker:
Ovo je tipican primer o cemu sam govorio.
Decko koji je pitao za programiranje i matematiku, kada ovo vidi, plasim se da ce pomisliti "*biga, ovo ne znam, dakle od programiranja nema nista :(" ....
NE mora ovo gore imati u malom prstu, da bi mogao poceti programiranje. Mada bi bilo dobro, i nije za bacanje, apsolutno ne.
Pa pre svega slozenost algoritama je osnovna stvar koja treba da se radi sa osnovima programiranja. Bez toga to je kao da krenes da vozis auto a da ne znas koje gorivo treba da sipas u njega dilzel, super, bezolovni itd..., da ne znas kada treba ulje da menjas. Mozes ti da vozis tako neko vreme ali kada zariba motor sta ces onda da radis, generalka a ? :)

codemaker:
Mozda smo malo presiroko zasli u temu, ali moram da dodam kako ja vidim stvari.
U nekom programskom jeziku imam X funkcija koje barataju samim bazama podataka, tabelama, ili kao to koji jezik naziva.
Ja stvarno ne znam kako su te funkcije napisane, dakle ne znam kod te funkcije, pa cak mogu da predpostavim, da neke od njih su mogle biti napisane i bolje, ili mozda ne. Znam samo, sta koja funkcija moze da uradi.
Malo kontradiktornosti ovde vidim kako mozes da iskoristis dati set funkcija sto efikasnije ako ne znas sta koja funkcija radi i kako. Vezano za onaj moj primer ja nisam gledao ni jedan SQL code neke baze podataka da bi ono mogao da kazem. Ali znas kako funkcije rade tj znas sta trebas da dobijes kao rezultat, pa na osnovu toga mozes da racunas slozenost.


codemaker:
Moja dilema je ono sto NULL kaze, da je do optimalnog koriscenja funkcija moguce doci jedino poznavajuci matematiku, pa pokazuje i formulu zasto je drugi primer brzi od prvog. Tacno.
Ali, sa moje tacke gledista, mnogo sam puta tako i slicno (drugi primer) radio, ali nisam do tako napisanog koda dosao jer sam u glavi imao matematicku formulu, vec sam "zdravorazumski"
E vidis tu je problem nekome je zdravorazumski da spoji te dve tabele i onda sa WHERE da ih lepo iscisti. Zato je tu matematika da malo formalizuje stvari i da mozes lepo da dokazes da je jedno resenje bolje od drugog, da ne vrtim sada istoriju matematike ali nekada davno i matematika je bila tako arhaicna i "zdravorazumska" dok je nisu formalizovali.

codemaker:
Nisam ja nikakav genije, pa da umem "intuitivno" da nabodem pravu upotrebu komandi i fukcija, jednostavno proverim sta koja funkcija moze a onda razmislim i sklopim sto efikasniji izraz ili kombinaciju funkcija. To je sve sto ja mogu da uradim, ne bivajuci vrsni matematicar. To je sustina moje price. Mozda sam uskracen za neki mnogo bolji kod zbog toga, ali, zato i pominjem da mi veoma dobro ide, pa ne znam da treba da patim za viskom matematike.
Imao sam realan problem(kao jedan deo programa) za klijenta koji se svodio na racunanje broja kombinacija na koliko nacina moze da se postavi n-pari zagrada

Primer
1 ()
2 ()(),(())
itd

E sada kada pogledas to mozes da radis nekom rekurzijom eventualno da pamtis vredosti praveci neku hash tabelu itd. Ali kada krenu racunanja za preko broj zagrada preko 20 onda takvo racunanje traje po nekoliko minuta rekurzivnom metodom, i zbog takve stvari programer pre mene je pukao sa poslom pa sam program ja radio za te ljude. A onda uzmes matematiku pa izdumas formulu tj u ovom konretnom slucaju radi se o katalanovim brojevima tj treba 3 faktorijela da izracunas i to racunanje svedes na desetinu sekunde. Tj u vecini slucajeva neuki programeri krenu metodom grube sile sto bi rekli(brute force) a ovi iznad proseka analiziraju problem(a tu opet matematika uzima pozamasnu ulogu) , stave stvari na papir proracunaju malo nadju optimalno resenje iskodiraju i kao rezultat dobijes kvalitetan program.


codemaker:
To je sustina moje dileme, koliki obim matematicke vestine i znanja je u ODREDJENIM oblastima potreban. Pominjem oblast koja je meni bliska.

Naravno, bez matematike se u mnogim oblastima programiranje apsolutno ne moze. U takvim oblastima ja ne bih ni za kiflu zaradio. No, specijalizovao sam se za oblast rada sa bazama podataka, i to je to.
Ima tu problema takodje, evo krenimo recimo od indexa nad tabelama. Primera radi uzecu PostgreSQL bazu u dalje razmatranje. Pogledaj ovaj link
http://www.postgresql.org/docs/7.4/interactive/indexes-types.html

Vidis da ima nekoliko tipova indexa, e sada koji izabrati koji je najpogodniji ? koji je najoptimalniji za moju tabelu pa onda ukoliko si isao na fakultet pa ucio te algoritme medju osnovama programiranja znas prednosti i mane svakog od tih algoritama pa znas koji ce tvoju pretragu uciniti sto brzom. A dalje kada krenes da se spustas u izucavanje tih algoritama pa tu dolazis do matematike medju tim algoritmima, mislim mozes ti da svu tu pricu oko izucavanja tih algoritama da preskocis ali onda je to kao da ronis u mutnoj vodi, nadam se da razumes o cemu pricam to ne znaci da ti ne mozes tu da ronis/tj programiras ali nisi na sigurnom.

Opet bash kada smo kod baza podataka sta mislis koliko traje Oracle'ov kurs za DBA inzenjera, moja informacija je da je izmedju 6meseci do godinu dana. A pri tom cu ti reci da osnove SQL-a(primera radi ono sto se nalazi u knjizi naucite SQL za 21 dan) to oni predju za 7-14 dana dana, sta mislis cime se bave preostali period ? koliko znam od drugara koji je pohadjao taj kurs, rade mesec-dva oracleov PL/SQL a ostatak je optimizacija naravno da nisu gledali source code same baze ali predavaci imaju informacije od programera sta koja funkcija radi i kako.

codemaker:
Eto, da se slozim jos malo sa NULL i Incognitom. Toliki sam duduk za specijalizovana programiranja, gde je matematika osnov svih osnova, da ne mogu ni da zamislim, kako se zapravo prave sve one "dumolike" igrice. Uvek se pominje neki "engine" ali i taj "engine" je neko napisao, pa se dalje koristi.
Ali, kako je "engine" napisan, mogu samo blago da zamislim, verovatno sa visokom matematickom primenom, koriscenje verovanto nista manje matematicki orijentisano. E, za to je STVARNO znanje matematike ne neophodno, vec IZUZETNO bitno.
To ne mogu uporediti sa onim sto ja radim.
Potrazi ovaj PDF preko googla naci ces u njemu neke osnovne stvari kako se sta radi.
plg-final-pdf-no-really-i-mean-it-this-time.pdf

Opet i sam biblioteka za rad sa 3d grafikom moze da se koristi bez velikog znjanja matematike, za openGL pogledaj recimo ovaj sajt nehe.gamedev.net, i videces da u sustini bez velikog znjanja matematike nece biti optimizovano, u sustini matematika je u programiranju tu da vam pravi precice da vam skracuje vreme izvrsavanja programa.

codemaker:
To je i poruka decku koji je postavio temu.
A ja kazem moze da programira bez da zna matematiku mnogo, ali da sa matematikom ce biti u stanju da dobro optimizuje svoje programe.
 
NULL:
codemaker:
Mozda smo malo presiroko zasli u temu, ali moram da dodam kako ja vidim stvari.
U nekom programskom jeziku imam X funkcija koje barataju samim bazama podataka, tabelama, ili kao to koji jezik naziva.
Ja stvarno ne znam kako su te funkcije napisane, dakle ne znam kod te funkcije, pa cak mogu da predpostavim, da neke od njih su mogle biti napisane i bolje, ili mozda ne. Znam samo, sta koja funkcija moze da uradi.
Malo kontradiktornosti ovde vidim kako mozes da iskoristis dati set funkcija sto efikasnije ako ne znas sta koja funkcija radi i kako. Vezano za onaj moj primer ja nisam gledao ni jedan SQL code neke baze podataka da bi ono mogao da kazem. Ali znas kako funkcije rade tj znas sta trebas da dobijes kao rezultat, pa na osnovu toga mozes da racunas slozenost.

Daj NULL mnogo brate smaras sa visokoparnim objasnjenjima.
Kakvu ti vidis kontradiktornost, ako ne znam kako je neka funkcija napisana? VEOMA dobro znam sta radi i kako radi, pa bez toga ne bih ni mogao raditi. A kako je kod te funkcije optimizovan, sta kompajler vidi kroz nju i slicno.... Pa naravno da ne koristim funkciju na slepo, trek nabadajuci pa sta ispadne!

A primer sa nalazenjem broja zagrada, ti je bas primer, ne govori mi bas nista, kada mislim na podatke u bazama podataka.Kakav je to program koji racuna zagrade? Uostalom ako mu treba...

I jos nesto, ne radim ja zdravorazumski programe, nisam ja motkom iz sume isteran. Veoma dobro znam sta fumkcije znace, kako komande uticu na rezultate, kako ih najbolje kombinovati i slicno. Nemoj preterivati.
Ispade, da kogod ne zna sta je neki matematicki izraz (miclim na rec), ne moze biti dobar proramer.

Po tebi ispade samo super matematicar je vrsni programer, a ostali su "amateri"? Sta pricas ovde? Ne mozes ti sebe i sebi slicne, postavljati za mesije programerstva, ostali su samo tu jer su nesto "naculi" o programiranju. Svi programi koje sam napisao, rade sa vlikim brojem baza/tabela. Mnogi od njih sa desetinama osnovnih itd. Obradjujem podatke iz baza sa od kojih mnoge imaju preko milion slogova, i niko se nije pozalio na brzinu, neoptimizovanost...
A sada treba ti da mi objasnjavas da ili sam to zdravorazumski pogodio, ili nije dobro napisan program, ili moze 10 puta bolje i brze... Ajde molim te, stvarno preterujes u svojoj samozagledanosti u matematiku.

Tvrdim da nikada neces napisati bolji program za baze podataka od mene, ma kako dobar bio u matematici, a ja nisam matematicki potkovan kao ti. Zasto? Pa zato brate sto nije sve u poznavanju matematicke teorije i prakse, ima tu nesto i vestine rada, a za to ipak trebaju godine da se stekne.

Kakve su to pa sad tako visoko sofisticirane price o matematici? Svaki programski jezik ima N funkcija i N komandi na raspolaganu. Onoliko vesto koliko ih bude koristio, toliko ce ti program biti dobar ili optimizovan. Nemojmo filozoforati previse. Ne mozes od nicega napraviti nesto. Mozes samo od necega napraviti bolje ili jos bolje, ili standardno.
Ja svakako pre svakog zahvata u bazu podataka, ne sendem i pravim algoritme, pa onda programiram. jednostavno znam koje su mi za odredjen posao funkcije na raspolaganju. Uporedim sintaksu i semantiku, proverim prema parametrima sta koja moze uopste da rezultira i upotrebim. Ne racunam i preracunavam u nedogled. Nije bas sve tako kako ti tvrdis.

I ne vidim zasto objasnjavas objasnjeno.
NIJE tacno da bez odlicnog poznavanja matematike ne moze da se napravi dobar program, moze se mozda lakse, ili efikasnije, ali i to je diskutabilno. Sa datim skupom funkcija, poznajuci sta koja i kako radi (u smilsu baratanja podacima) ne mozes izmisliti bas mnogo tople vode.

I ja sam bio na vise kurseva u vezi baza podataka. Jos dok sam na WAX-u radio baze, bio sam u dva navrata po 6 meseci na kursu u Sloveniji, znam jako dobro kako to ide. A ako te nisu obavestili, matematickih modela sto se tice baza podataka nije bilo, barem ne onako kako ti vidis pristup bazama.
Mnogo smo se vise bavili konkretnom primenom - cega? Pa raspolozivih funkcija i komandi! Niko od nas nije trazio da matematicki dokazujemo zasto je ova funkcija ilimkomanda bolja od druge.
radilo se o tome, da se za razlicite uslove, nadje najpogodnija funkcija ili komanda, koja ce optimalno zavrsiti posao, ali to nismo dobijali komplikovanom matematickom analizom.

Shvatam ja vrednost matematike jako dobro. Uvek sam cenio ljhude kojima je matematika "maternji jezik", ali ti bas preterujes.
Po tvom pisanju najbolje bi bilo da sto pre shvatimo da ne znamo matematiku pa da batalimo programiranje, i predjemo u lozace. Vi ostali kojima je matematika u malom prstu cete uzatim preuzeti i odraditi posao kako valja a ne kao mi "prosecni" "zdravorazumski" progameri.

E vala, pretera ga.
 
A ja kazem moze da programira bez da zna matematiku mnogo, ali da sa matematikom ce biti u stanju da dobro optimizuje svoje programe.

Nisam siguran, sta zapravo ti podrazumevas pod "dobro optimizuje svoje programe"
Program je onoliko dobar, koliko dobro i brzo odradjuje posao za koji je napisan. Ne mozes program nikada napiati da bude savrseno optimizovan. Stepen optimizacije se cesto podize na previsok nivo. nema savrsene optimozovanosti, nista nije savrseno. Uvek moze bolje.
Ako program odradjuje posao u realnom vremenu dovoljno brzo i tacno, da se postigne sve sto je planirano, nije lose napisan.
Ti bi nesto poput perfekcije? Osim toga i optimizacija ima svoju "optimizaciju". CIm u programskom jeziku ugrade neki novi set funkcija/ komandi, prethodni kod postaje odjednom rogobatan.
To zapravo i govori sta mislim. Onoliko koliko dobre funkcije/komande jezik nudi, ako ih sve poznajem i znam sta rade, toliko dobro cu ih i koristiti.

Matematika vredi mnogo, ali nije krucijalna za mnoga progamska resenja. Mozda decko hoce da napravi jednostavan telefonski imenik sa pozivom na telefon i konekcijom na internet? Kakvu tu ptimizaciju vidis?

Ja kada sam uradio FTP prenos/dovlacenje podataka iz mog programa, nisam mogao mnogo da optimizujem. Funkcije koje to mogu da odrade su kreiraj/otvori/konektuj/dovlaci/zatvor konekciju. Trebao sam da sednem i proracunavam brzeine, na koje ionako nemam uticaja. Funkcije to rade za mene, znam da postoje i upotrebim ih.
 
Ma daj codemaker zasto se raspravljas sa njima. Evo jedan vrlo efikasan primer. U 8 godina rada u Hermes Softlabu u Sloveniji retko koji programer da je ikada upotrebio znanje iz matematike, a Hermes Softlab je vrlo jaka i poznata firma ovde. Cinjenice su cinjenice.
 
milos12345:
Anonymous:
NULL, ajde iskreno ti mora da si studirao ili i dalje studiras matematicki fakultet. Mislim funkcije slozenosti????????? To te je malo odalo zar ne? Lepo izgleda za one koji ne barataju tim terminima? :D
POZDRAV
haha....to sto zna shta je slozenost kaze da je na matematici.....o boze, najosnovnija matematika na svim fakultetima mora da spominje malo o i veliko O....a tek u bilo kojoj knjizi sa algoritmima prvo sto se pricha je slozenost, i kako se meri.... naravno da je najlakse meriti tako nego da sad uzmesh izlupash neke metode.....zna se sta su lieanrni, kvadratni, eksponencijalni probelmi.......da iole znash nesto o algoritmima znaces i o tome

:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
Nisi ni svestan koliko neznam :cry: stvarno ima u tim knjigama o algoritmima :cry: pa ja nisam znao :cry: pa evo stidim se sto sam pitao tako nesto :oops: pa da li ces mi ikad oprostiti :cry: , ali oprosti :cry: .NEEEEEEEEEEEEEEEEEEEEEEE.
Kuda ide ovaj zivot :cry: , gde je smisao :cry:
sta cu sad da radim :cry: kako si rekao da su oni pravougaoni bese ili kvadratni da procitam to.
Skocicu sad...............Skocio sam i nista :cry:
ni to mi ne ide :cry: . Da li ce mi iko ikad oprostiti :cry: a da li mozda ti koji si sa PMF-a. Pa ne to nije to :cry: znam da neces. NEEEEEEEEEE.
Vise nikad necu imati hrabrosti da se pojavim na ovom forumu i da se potpisem kao Gost ponovo :cry: , moracu da promenim potpis :cry: .
 
Nina2:
Ma daj codemaker zasto se raspravljas sa njima. Evo jedan vrlo efikasan primer. U 8 godina rada u Hermes Softlabu u Sloveniji retko koji programer da je ikada upotrebio znanje iz matematike, a Hermes Softlab je vrlo jaka i poznata firma ovde. Cinjenice su cinjenice.
Znam, radio sam za neke kompanije u Sloveniji, koje su i poslovni partneri Hermes Softlaba iz Ljubljane.
Znam da goidinama veoma uspesno rade u inostranstvu takodje , pa tako i:
- Finansije (Banke)
- Telekomunikacije i mediji (Telekomunikacije)
- Državna uprava / lokalna uprava, Pošta
- Isporuka energije (Elektricna energija)
- Osiguravajuci zavodi
- Industrija prerade (Farmaceutska industrija, Hemiska industrija, Metalopreradjivacka, Tekstilna industrija)
- Naftna industrija
- Turizam (Putnicke agencije agencije)

Sve to bez matematickih gurua.
I znam i kako i cime rade, sigurno nemaju nijednog matematickog gurua tamo. Zato ce verovatno propasti :) Salim se naravno, ali znam da nikada nisu vrsili matricne proracune (ili kako se to vec kaze), za nijednu svoju aplikaciju. Koriste brate alat najefikasnije sto moze, tacka.
Da rade neki OS, verovatno bi se potrudili i nasli nekog jakog matematicara.

Ma sve je ok, matematika je ipak vazna nauka, ali ne treba preterivati i proglasavati je za uslov svih uslova. Treba je znati. Mnogo puta sam resavajuci neki problem, pozeleo da sam bolji u matematici. Srecom, programi koje pisem dugi niz godina, ne traze bas previse.
 
Anonymous:
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
Nisi ni svestan koliko neznam :cry: stvarno ima u tim knjigama o algoritmima :cry: pa ja nisam znao :cry: pa evo stidim se sto sam pitao tako nesto :oops: pa da li ces mi ikad oprostiti :cry: , ali oprosti :cry: .NEEEEEEEEEEEEEEEEEEEEEEE.
Kuda ide ovaj zivot :cry: , gde je smisao :cry:
sta cu sad da radim :cry: kako si rekao da su oni pravougaoni bese ili kvadratni da procitam to.
Skocicu sad...............Skocio sam i nista :cry:
ni to mi ne ide :cry: . Da li ce mi iko ikad oprostiti :cry: a da li mozda ti koji si sa PMF-a. Pa ne to nije to :cry: znam da neces. NEEEEEEEEEE.
Vise nikad necu imati hrabrosti da se pojavim na ovom forumu i da se potpisem kao Gost ponovo :cry: , moracu da promenim potpis :cry: .

pa jesam i ne stidim se toga sto sam sa pmf-a.... ne znam koj ti je ****, sta si ti ovde pa izigravash... ja sam samo rekao da svi znaju sta je slozenost algoritama, a naravno da moras da znash to kad se bavish programiranjem..... a o asimptotskim f-jama se radi svuda koliko ja znam.... a narocito bi trebalo da se radi na predmetima koji nose ime osnovi programiranja......tako da je zakljucak, ne seri previshe po forumu
 
codemaker:
I jos nesto, ne radim ja zdravorazumski programe, nisam ja motkom iz sume isteran. Veoma dobro znam sta fumkcije znace, kako komande uticu na rezultate, kako ih najbolje kombinovati i slicno. Nemoj preterivati.
Ispade, da kogod ne zna sta je neki matematicki izraz (miclim na rec), ne moze biti dobar proramer.
Veruj mi i ja sam slican stav imao dok nisam se dobro upetljao sa matematikom pa znam o cemu pricam "Sit gladnom ne veruje" sto bi nas narod rekao. Isto tako sam sam napravio par ozbiljnih programa za vreme srednje skole i mislio sam da je eto fakultet samo "pro-forme", pa sam tamo svoje ranije steceno znanje samo dobro izoblikovao.

codemaker:
Tvrdim da nikada neces napisati bolji program za baze podataka od mene, ma kako dobar bio u matematici, a ja nisam matematicki potkovan kao ti. Zasto? Pa zato brate sto nije sve u poznavanju matematicke teorije i prakse, ima tu nesto i vestine rada, a za to ipak trebaju godine da se stekne.
Uh sto volim ljude poput tebe koji misle da su najbolji, najveci i sa najvecim. Ja sam ti dao konktretan primer kada je indeksiranje u pitanju i da mnoge baze podataka nude vise nacina da se uradi indexiranje. Ti ako ne znas nista o algoritmima izabraces neki pa ces sa njim dobiti bolje rezultate a pitanje je da li bi sa drugim nacinom indexiranja dobio jos bolje rezultate. Pa da bi to razumeo treba da se upustas u algorimte za sortiranje. Pa kada krenes da izucavas svaki od tih algoritama tu onda potajno lezi matematika u celoj prici oko odredjivanja kompleksnosti algoritama itd...
Ja na pominjem po vec 10 put da mozes ti da budes programer i bez velikog znjanaj matematike i da napises cas i operativni sistem samo kada dolazi pitanje optimizacije koda ti sve na sta mozes da se oslonis je zdravorazumski rezon dok meni pored toga stoji na raspolaganju ceo matematicki aparat.

codemaker:
Kakve su to pa sad tako visoko sofisticirane price o matematici? Svaki programski jezik ima N funkcija i N komandi na raspolaganu. Onoliko vesto koliko ih bude koristio, toliko ce ti program biti dobar ili optimizovan. Nemojmo filozoforati previse.
Ma nije to bre filozofija, primera radi pomenuo si bouble sort algoritam, i on koristi isti skup funkcija kao i quicksort algoritam(funkcije poredjenja i indeksiranje elementa u nizu i operaciju dodele, plus jednu for petlju), pa se tvoj bouble sort izvrsava u slozenosti O(n*n) a quick sort radi brzinom O(n*logn) e sada ako ne znas sta je to ti uzmi digitron pa izracunaj koliko je za npr n = 100 000 vreme izvrsavanja jednog ili drugog algoritma.( Mada posto verujem da si windows programer i da baratas sa C/C++ uzmi borland c++ builder tamo imas cini mi se primer koji je radio sa threadovima i koji je demonstritao 3 razlicita algoritma za sortiranje pa ces videti slikovno o cemu ja ovde pricam)

Hoces recimo da mnozimo 2 polinoma velikih stepenova pa da vidimo ko ce brzi algoritam da napravi. Ili hoces recimo da vidimo ko moze brze da podeli ceo niz sa jednom konstantom, ili ko moze brze da izracuna sve kvadrate od 1 pa do nekog n ? To su sve proste stvari koje eto kada se matematikom zabavis a relativno cesto mogu da se iskoriste, ili mozda da mozda vidimo ko moze brze sinuse i kosinuse da izracuna za sve stepene od 0 do 90 stepeni, za svaki stepen ili recimo pola stepena.

codemaker:
Ne mozes od nicega napraviti nesto. Mozes samo od necega napraviti bolje ili jos bolje, ili standardno.
Ja svakako pre svakog zahvata u bazu podataka, ne sendem i pravim algoritme, pa onda programiram. jednostavno znam koje su mi za odredjen posao funkcije na raspolaganju. Uporedim sintaksu i semantiku, proverim prema parametrima sta koja moze uopste da rezultira i upotrebim. Ne racunam i preracunavam u nedogled. Nije bas sve tako kako ti tvrdis.
A sta mislis da ja radim sedim i racunam jedan problem po hiljadu puta pa sve do uzaludnosti.

codemaker:
I ne vidim zasto objasnjavas objasnjeno.
NIJE tacno da bez odlicnog poznavanja matematike ne moze da se napravi dobar program, moze se mozda lakse, ili efikasnije, ali i to je diskutabilno. Sa datim skupom funkcija, poznajuci sta koja i kako radi (u smilsu baratanja podacima) ne mozes izmisliti bas mnogo tople vode.
Vec sam ti pomenuo malo ranije da pogledas algoritme za sortiranje, iako recimo "zdravorazumski" quickqost izgleda komplikovanije i duzi je po broju linija koda, a opet je drasticno brzi. Ako ne znas o cemu pricam pogledaj primer u builderu ili na googlu a ako bash ne uspes da nadjes nije problem poslacu ti par algoritama za sortiranje pa ces moci da vidis uzivo sta matematika radi na zivom primeru. A od algorimata za sortiranje svaka baza podataka mnogo zavisi jer se time skracuje vreme pretrage mnogo.

codemaker:
Shvatam ja vrednost matematike jako dobro. Uvek sam cenio ljhude kojima je matematika "maternji jezik", ali ti bas preterujes.
Po tvom pisanju najbolje bi bilo da sto pre shvatimo da ne znamo matematiku pa da batalimo programiranje, i predjemo u lozace. Vi ostali kojima je matematika u malom prstu cete uzatim preuzeti i odraditi posao kako valja a ne kao mi "prosecni" "zdravorazumski" progameri.
E vala, pretera ga.
Nope :lol: vama prosecnim programerima ostavimo da pisete gui, a mi uglavnom odradimo ono iznutra i uzmemo 10 puta vise para od vas :lol:. Uostalom pogledaj samo ko je sve izumeo vaznije algoritme u istoriji prorgamiranja. Videces da su tu 80% matematicari, brojke sve govore.[/b]
 
milos12345:
Anonymous:
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
Nisi ni svestan koliko neznam :cry: stvarno ima u tim knjigama o algoritmima :cry: pa ja nisam znao :cry: pa evo stidim se sto sam pitao tako nesto :oops: pa da li ces mi ikad oprostiti :cry: , ali oprosti :cry: .NEEEEEEEEEEEEEEEEEEEEEEE.
Kuda ide ovaj zivot :cry: , gde je smisao :cry:
sta cu sad da radim :cry: kako si rekao da su oni pravougaoni bese ili kvadratni da procitam to.
Skocicu sad...............Skocio sam i nista :cry:
ni to mi ne ide :cry: . Da li ce mi iko ikad oprostiti :cry: a da li mozda ti koji si sa PMF-a. Pa ne to nije to :cry: znam da neces. NEEEEEEEEEE.
Vise nikad necu imati hrabrosti da se pojavim na ovom forumu i da se potpisem kao Gost ponovo :cry: , moracu da promenim potpis :cry: .

pa jesam i ne stidim se toga sto sam sa pmf-a.... ne znam koj ti je ****, sta si ti ovde pa izigravash... ja sam samo rekao da svi znaju sta je slozenost algoritama, a naravno da moras da znash to kad se bavish programiranjem..... a o asimptotskim f-jama se radi svuda koliko ja znam.... a narocito bi trebalo da se radi na predmetima koji nose ime osnovi programiranja......tako da je zakljucak, ne seri previshe po forumu

Sta je sada vama dvojici??????????
Nema potrebe da se ganjate ovde.
Valjda primecujete da su NULL i Codemaker dovoljno popunili ovu temu.
 
stanje
Zatvorena za pisanje odgovora.

Back
Top