matematika i programiranje

stanje
Zatvorena za pisanje odgovora.
dirg@:
kazite mi koliko je potrebno znati matematiku da bi mogao da naucim programiranje ( u VISUAL BASIC-u)posto ja nisam neki matematicar.
Ne uglavnom, osim ako ne proracunavas neke trajektroije, ili radis neke specificne programe, mada i tu psotoje resenja u obliku funkcija u DLL ili LIB.
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.
 
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? :)
 
Pa iskreno ako si slab sa matematikom ni programiranje ti nece ici najbolje od ruke. A ako hoces da crtkas forme u Visual basicu i radis jednostavne programcice onda se mozda i provuces sa slabim znanjem. Ali za bilo sta komplikovanije dobro znanje matematike je neophodno. Primera radi ako krenes da radis sa SQL-om bilo sta to su relacije i rad sa skupovima(matematicki receno ALGEBRA) i ko sa algebrom ne stoji poprilicno dobro optimizovane querije tesko da ce raditi.

Koces da se bavis 3d programiranjem tu je neophodno poznavanje Linearne algebre, analiticke geometrije i nacrtne geometrije.

Opet primera radi zip je cista matematika.
 
Lepo ti je rekao covek, mozes da se provlacis kao prosecan ali nista vise.
Nije to sad izrecito da ti moras da znas matematiku fenomenalno, ali barem da imas sklonosti ka njoj, mislim da ti ide. Inace sumnjam da ce ti ici programiranje. Jer obicno ljudi koji imaju sklonosti ka logickom razmisljanju nemaju problema sa matematikom.
Mozda se desi da si ti samo umislio da ti to ne ide pa se sad dvoumis za programiranje.
Nemoj da te moj komentar obeshrabri vec se bori za ono sto zelis i nikad nemoj da sumnjas u sebe.
(Osecam se kao Yoda sad, ali ne zbog komentara vec zbog velikih usiju i zelene boje :lol: :lol: :lol: ).
 
NULL:
Pa iskreno ako si slab sa matematikom ni programiranje ti nece ici najbolje od ruke. A ako hoces da crtkas forme u Visual basicu i radis jednostavne programcice onda se mozda i provuces sa slabim znanjem. Ali za bilo sta komplikovanije dobro znanje matematike je neophodno. Primera radi ako krenes da radis sa SQL-om bilo sta to su relacije i rad sa skupovima(matematicki receno ALGEBRA) i ko sa algebrom ne stoji poprilicno dobro optimizovane querije tesko da ce raditi.

Koces da se bavis 3d programiranjem tu je neophodno poznavanje Linearne algebre, analiticke geometrije i nacrtne geometrije.

Opet primera radi zip je cista matematika.
Ne slazem se potpuno sa tobom.
Matematika jeste stvarno apsolutno neophodna ako se bavis nekim programiranjem igara na primer, ili preracuna balistickih projektila, 3D grafickim elementima i slicno.
Za SQL, to vec nine tacno. Optimizacija querija nema mknogo veza sa matematikom (vazi ne samo za SQL, vec i za druge vrste baza xBase podaci na primer). Ima veze sa poznavanjem logicke strukture podataka, poznavanjem specificnih zahteva aplikaciej, kao i opste strukture programa i njegovih zahteva.
Isto vazi i za normalizaciju baza podataka i ostale stvari kao sto su relacije i sl. Tu nema matematike, ima logickog razmisljanja i planiranja.
Relacija u bazama podataka, nemaju nikakve veze sa matematikom, to je logicka povezanost izmedju podataka u bazama (one to menu, menu to menu, menu to one itd)
Ali je tacno sto kazes, da ako si dobar u matematici, dobar bi trebao da budes i u logikom razmisljanju, logiocno zar ne ?
Inace, generalno gledajuci, potreban nivo znanja matematike zavisi od toga kakve programe zelis da radis.
Mene uvek izneviraju klijenti koji me radoznalo pitaju, "vi mora da ste zavrsili neki matematicki fakultet, ili FON barem?" Odogovaram (nikada ne uspem da se ne iznerviram), da sam zavrsio pekearsku skolu i pitam ih da li imaju problem sa time :)
Najvaznije je da se covek sam edukuje dalje, nakon bilo koje skole, bez toga nema nista. Samo naporan dalji rad (koji zapravo tek pocinje nakon skole) Zato pominjem guze :)
Inace ja sam na primer zavrsio psihologiju, od matematike znam ono iz gimnazije, a ne smatram se bas losim programerom, a i lepo zivim od toga.
Zato, svima savetujem sto vise knjiga, ucenja i - pazite na guze :)
 
codemaker:
Za SQL, to vec nine tacno. Optimizacija querija nema mknogo veza sa matematikom (vazi ne samo za SQL, vec i za druge vrste baza xBase podaci na primer). Ima veze sa poznavanjem logicke strukture podataka, poznavanjem specificnih zahteva aplikaciej, kao i opste strukture programa i njegovih zahteva.
Isto vazi i za normalizaciju baza podataka i ostale stvari kao sto su relacije i sl. Tu nema matematike, ima logickog razmisljanja i planiranja.
Relacija u bazama podataka, nemaju nikakve veze sa matematikom, to je logicka povezanost izmedju podataka u bazama (one to menu, menu to menu, menu to one itd)
Ali je tacno sto kazes, da ako si dobar u matematici, dobar bi trebao da budes i u logikom razmisljanju, logiocno zar ne ?
Inace, generalno gledajuci, potreban nivo znanja matematike zavisi od toga kakve programe zelis da radis.
Mene uvek izneviraju klijenti koji me radoznalo pitaju, "vi mora da ste zavrsili neki matematicki fakultet, ili FON barem?" Odogovaram (nikada ne uspem da se ne iznerviram), da sam zavrsio pekearsku skolu i pitam ih da li imaju problem sa time :)
Najvaznije je da se covek sam edukuje dalje, nakon bilo koje skole, bez toga nema nista. Samo naporan dalji rad (koji zapravo tek pocinje nakon skole) Zato pominjem guze :)
Inace ja sam na primer zavrsio psihologiju, od matematike znam ono iz gimnazije, a ne smatram se bas losim programerom, a i lepo zivim od toga.
Zato, svima savetujem sto vise knjiga, ucenja i - pazite na guze :)

Hmmm, pa kako da ti kazem vidi algebra se bavi SKUPOVIMA i RELACIJAMA nad skupovima dali ti to mozda deluje nekako poznato u sql-u ?

Ne kazem sada da bez poznavanja algebre nije moguce postaviti query itd... ali da bi znao kako izvuci maksimum iz baze mislim da je ipak neophodno dobro poznavanje matematike. Primera radi jel mozes da mi kazes koji od ovih queryja radi brze i zasto ?

SELECT b.price FROM items a, prices b WHERE a.id=b.id AND a.name='bike';

ili

SELECT price FROM prices WHERE id=(SELECT id FROM items WHERE name='bike');
 
NULL:
codemaker:
Za SQL, to vec nine tacno. Optimizacija querija nema mknogo veza sa matematikom (vazi ne samo za SQL, vec i za druge vrste baza xBase podaci na primer). Ima veze sa poznavanjem logicke strukture podataka, poznavanjem specificnih zahteva aplikaciej, kao i opste strukture programa i njegovih zahteva.
Isto vazi i za normalizaciju baza podataka i ostale stvari kao sto su relacije i sl. Tu nema matematike, ima logickog razmisljanja i planiranja.
Relacija u bazama podataka, nemaju nikakve veze sa matematikom, to je logicka povezanost izmedju podataka u bazama (one to menu, menu to menu, menu to one itd)
Ali je tacno sto kazes, da ako si dobar u matematici, dobar bi trebao da budes i u logikom razmisljanju, logiocno zar ne ?
Inace, generalno gledajuci, potreban nivo znanja matematike zavisi od toga kakve programe zelis da radis.
Mene uvek izneviraju klijenti koji me radoznalo pitaju, "vi mora da ste zavrsili neki matematicki fakultet, ili FON barem?" Odogovaram (nikada ne uspem da se ne iznerviram), da sam zavrsio pekearsku skolu i pitam ih da li imaju problem sa time :)
Najvaznije je da se covek sam edukuje dalje, nakon bilo koje skole, bez toga nema nista. Samo naporan dalji rad (koji zapravo tek pocinje nakon skole) Zato pominjem guze :)
Inace ja sam na primer zavrsio psihologiju, od matematike znam ono iz gimnazije, a ne smatram se bas losim programerom, a i lepo zivim od toga.
Zato, svima savetujem sto vise knjiga, ucenja i - pazite na guze :)

Hmmm, pa kako da ti kazem vidi algebra se bavi SKUPOVIMA i RELACIJAMA nad skupovima dali ti to mozda deluje nekako poznato u sql-u ?

Ne kazem sada da bez poznavanja algebre nije moguce postaviti query itd... ali da bi znao kako izvuci maksimum iz baze mislim da je ipak neophodno dobro poznavanje matematike. Primera radi jel mozes da mi kazes koji od ovih queryja radi brze i zasto ?

SELECT b.price FROM items a, prices b WHERE a.id=b.id AND a.name='bike';

ili

SELECT price FROM prices WHERE id=(SELECT id FROM items WHERE name='bike');
To sto pitas, ima veze sa algebrom, koliko i moja baba sa raketnim gorivom.
Jedino sto je potrebno za "trkeljisanje" po bazama je logika. Jste da generalno izvlacenje dela baze iz jedne baze ili baza, znaci kao da trazis "podskup/presek itd.."(znaci deo baze), nekog skupa (cela baza) ali tu se slicnost i zavrsava, kada pominjes algebru i kada govoris samo o tom delu posla.

Drugar stvar je STA ces ciniti sa elementima iz tako izvucenog "podskupa podataka"
Osim toga, ne postoji samo SQL koji se koristi za rad sa bazama podataka. Tu nema uopstavanja te vrste. U xBase jezicima, ovo gore se resava mnogo puta efikasnije. U Cobolu se tako ne radi. Fortran ima svoju logiku upotrebe baza podataka, i da ne nebrajam.
Mnogo je siroko polje diskusija o bazama podataka, nema ovde mesta za to. Ali ponavljam, za samo izdvajanje ili slicno manipulisanje bazama podataka, matematika uopste nije primarna. Druga je stvar dalji rad sa elementima (upotreba svakog od elemenata u odredjene svrhe) Ako si izvlacio podatke, da bi obracunavao neke komplenske proracune, naravno da ti treba matematika.

Kada sam rekao da jeste potrebna matematika, mislio sam na raznovrsne proracune (od struje, preko trajektorija, do grafickih elemenata pa na kraju krajeva i do obracuna plata i doprinosa (donekle)...)

Kada kazem da matematika nije bitna toliko, mislio sam na programiranje nekih "poslovnih" aplikacija (prodaja, nekretnine, skladista itd...) A nazalost od takvih se jedino i programa ovde moze ponesto zaraditi. Tesko da ces naci nekoga da te angazuje za proracune koji se bave kompleksnim sistemima proracuna :(

A za efikasno izvlacenje, sortiranje i upotrebu podataka iz SQL baza, (samo za taj proces), matematika nije krucijalno znanje koje ti treba) Veruj mi, to bar znam, ceo zivot se bavim bazama podataka, zivim od toga.
Kod baza podataka, pa i SQL-a, mnoooogo je vazniji inzenjering koji se odnosi na konstrukciju baza, uspoistavljanje LOGICKIH relacija, predvidjanje mogucih medjuodonosa, pravilna upotreba elemenata, optimizacija, normalizacije itd. Tu ti matematika nece mnogo pomoci, ako baze ne dizajniras kako valja.
 
NULL:
sve je to lepo sto pricas, i ja sam imao prilike da se sretnem sa malo drugacijim bazama nego sto je SQL.

Ali nikako da mi odgovoris koji od ona dva upita je efikasniji i zasto ?
:) :)
Eeeee.. )
To ces morati sam da proburazis. Ne drzim casove :)
A i rekoh i priznadoh, nisam bas nesto jak u matisu..

Samo sam zeleo decku da pomognem da odluci.

Da ne sirim diskusiju o bazama. Samo da te podsetim, efikasnost izraza u SVIM bazama, veoma zavisi od TIPA podataka, strukture baze i nacina pristupa. Dakle onaj tvoj izraz, moze raditi razlicitom brzinom, svaki od njih, zavisi od toga koji su tipovi podataka u tabelama pitanju.
Ali, to je vec za mnogo siroku diskusiju, ovo nije mesto. Poznavanje matematike sa time nema veze, pitanje je samo koliko dobro poznajes SQL i upotrebljavas sintaksu prema potrebi, zelji i znanju naravno. Matematika tu ne pomaze.
Nemoj mi reci da si "matematickim" putem dosao unapred do zakljucka koja od dve linije koda ce brze raditi? Pa onda odlucio?
Upotrebio si kod, koji efikasnije ili manje efikasno nesto radi - u datim uslovima i vrstama polja. Metamatika ? Ali to je stvar SQL naredbi (funkcija) a ne izracunavanja...

Inace, ti upotrebljavaj tesku matematiku za baze, a ja odoh da radim "real life apps", od necega moram ziveti. Nema ove mesta nadmudrivanju. Ja tebi takodje mogu postaviti nekoliko pitanja i u drugim bazama, pa da se natezemo oko toga, ali nemam vremena. Radim.
Zdrav mi bio :)
 
codemaker:
Za SQL, to vec nine tacno. Optimizacija querija nema mknogo veza sa matematikom (vazi ne samo za SQL, vec i za druge vrste baza xBase podaci na primer). Ima veze sa poznavanjem logicke strukture podataka, poznavanjem specificnih zahteva aplikaciej, kao i opste strukture programa i njegovih zahteva.
Isto vazi i za normalizaciju baza podataka i ostale stvari kao sto su relacije i sl. Tu nema matematike, ima logickog razmisljanja i planiranja.
Relacija u bazama podataka, nemaju nikakve veze sa matematikom, to je logicka povezanost izmedju podataka u bazama (one to menu, menu to menu, menu to one itd)
nije shija nego vrat....sve ovo sto si pomenuo je nesto sto se u matematici zove ALGEBRA, ali to nije ono sto se u srednjoj skoli zove algebra. I ZIP i kriptovanje i mnoge stvare su usko povezani sa algebrom (rad sa velikim celim brojevima, rad sa modulima)...ali posto ti ne znash sta je, a idu ti dobro baze onda ni ne morash da znash :o)
 
milos12345:
codemaker:
Za SQL, to vec nine tacno. Optimizacija querija nema mknogo veza sa matematikom (vazi ne samo za SQL, vec i za druge vrste baza xBase podaci na primer). Ima veze sa poznavanjem logicke strukture podataka, poznavanjem specificnih zahteva aplikaciej, kao i opste strukture programa i njegovih zahteva.
Isto vazi i za normalizaciju baza podataka i ostale stvari kao sto su relacije i sl. Tu nema matematike, ima logickog razmisljanja i planiranja.
Relacija u bazama podataka, nemaju nikakve veze sa matematikom, to je logicka povezanost izmedju podataka u bazama (one to menu, menu to menu, menu to one itd)
nije shija nego vrat....sve ovo sto si pomenuo je nesto sto se u matematici zove ALGEBRA, ali to nije ono sto se u srednjoj skoli zove algebra. I ZIP i kriptovanje i mnoge stvare su usko povezani sa algebrom (rad sa velikim celim brojevima, rad sa modulima)...ali posto ti ne znash sta je, a idu ti dobro baze onda ni ne morash da znash :o)

Pa to i tvrdim sve vreme. Matematika JESTE bitna za mnoge programske zahvate, naravno. I to ponekad matematika veoma visokog nivoa, tu nema dileme.
Zbog toga sam i napomenuo decku koji je postavio temu, da sve zavisi od toga, kakve ce programe da pise. U zavisnosti od toga, trebace mu vise ili manje matematike, ili, hajde da kazem, visi ili nizi nivo matematickog znanja.
Sto se tice baza podataka, i pripreme, upotrebe i optimizacija (query, relacije itd..), tu stvarno nema mesta tvom izrazu "nije sija nego vrat...", jer ne vidim gde je tu teska upotreba matematike. Logicko razmisljanje da. Druga je stvar, kako ces PODATKE iz tih baza upotrebljavati, pa mozda i vrsiti neke kompleksne proracune, tada stvarno treba matematika, debelo znanje. A pogotovo, u istoj recenici u vezi toga, pominjati ZIP ili kriptovanje, to nema veze jedno sa drugim.
Za ZIP ili kriptovanje i druge slicne stvari, naravno da je matematika veoma vazna i ptpuno se slazem, ali ja nisam o tome govorio, govorim kreiranju baza, osmisljavanju njihovih medjuodnosa, efikasno koriscenje (Da li QUERY, ili SEEK() ili RELATION() funkcije, svejedno), sto ni u kom slucaju ne moze da bude vezano za veoma dobro poznavanje matematike.

I ne radi se ovde o tome da li ja poznajem matematiku savrseno ili ne. Hteo sam da pomognem decku da sagleda situaciju. Njegova glavna dilema je bila, koliko sam ga razumeo, da bi se upustio u vode programiranja, mora se znati dobro matematika. Kazem, zavisi od toga kakve programe ce da pise, ili namerava da pise. Negde je matematika potrebna mnogo, negde manje. To je sve.

Uostalom, predaleko smo otisli sa diskusijom, a decko samo zeli da zna, da li da se uopste upusta u prigramerske vode, ako nije jak u matematici. Moj odgovor je, moze pod uslovom da ne pokusava da pise 3D ige, vrsi balisticke proracune, pise programe za kriptovanje, ili resava neke visoko tehnoloske probleme.
Ne zelim decka obeshrabriti, treba nam informaticara svake vrste, mala smo zemlja i siromasni kadrovima. Svaki novi programer nam je zlata vredan.
 
ama ja sam na brzinu odgovorio pa sam nabacao sve.......ali cinjenica je da to sto si sve pomenuo jeste algebra(raznorazne strukture, njihovo formiranje, zatim razne relacije izmedju i sl), problem je u tome sto ljudi ne vide da to jeste algebra i algebra se bavim takvim stvarima, ona je nesto najapstraktnije u matematici...ljudi misle da je algebra ono sto se radi u srednjoj skoli, izracunavanje raznih izraza pomocu nekih promenljivih, ali grese(u stvari to je jako blizu ako gledash sa jedne strane ali je razlika jako bitna)....ali ti se zaleteo, ja sam ti rekao u poslednjoj recenici da ako tebi idu baze i onda te briga sta je tu ispod i sta je to u stvari
 
codemaker:
:) :)
Eeeee.. )
To ces morati sam da proburazis. Ne drzim casove :)
A i rekoh i priznadoh, nisam bas nesto jak u matisu..

Nemoj da skreces temu tipovi podataka ovo ono, nije tu potrebno merenje da bi se doslo do takvih stavri. Iz poruke se lepo vidi da ni sam ne znas da das ogovor. Ali evo ja ako sam te pitao da vidim koliko si potkovan dacu ti odgovor.

Kao sto sam znas kada selektujes dve tabele dobices dekartovski proizvod(uparen svaki element iz prve tabele sa svakim iz druge) te dve tabele. i onda nad takvim skupom podataka prodje where kriterijum. sto ce reci where treba da prodje kroz m*n(m broj slogova prve tabele i n je borj slogova druge tabele) slogova sto ce reci da je vreme izvrsavanja takvog upita O(m*n)

Dok na drugom primeru se izvrasavaju dva selecta jedan nad tabelom dozine n a drugi nad tabelom duzine m. sto ce reci da je vreme izvrsavanja O(m+n) sto je neuporedivo manje od O(m*n).

Sve te stvari indirektno skapiras i razumes ako si dobro matematicki potkovan. Tako da jednostavno kazem ako zelis da ne budes samo prosecan programer koji ne razume kako stvari funkcionisu onda mozes bez matematike. A ako zelis da uvek izvuces maksimum onda ti znanje matematike NEOPHODNO.
 
NULL:
codemaker:
:) :)
Eeeee.. )
To ces morati sam da proburazis. Ne drzim casove :)
A i rekoh i priznadoh, nisam bas nesto jak u matisu..

Nemoj da skreces temu tipovi podataka ovo ono, nije tu potrebno merenje da bi se doslo do takvih stavri. Iz poruke se lepo vidi da ni sam ne znas da das ogovor. Ali evo ja ako sam te pitao da vidim koliko si potkovan dacu ti odgovor.

Kao sto sam znas kada selektujes dve tabele dobices dekartovski proizvod(uparen svaki element iz prve tabele sa svakim iz druge) te dve tabele. i onda nad takvim skupom podataka prodje where kriterijum. sto ce reci where treba da prodje kroz m*n(m broj slogova prve tabele i n je borj slogova druge tabele) slogova sto ce reci da je vreme izvrsavanja takvog upita O(m*n)

Dok na drugom primeru se izvrasavaju dva selecta jedan nad tabelom dozine n a drugi nad tabelom duzine m. sto ce reci da je vreme izvrsavanja O(m+n) sto je neuporedivo manje od O(m*n).

Sve te stvari indirektno skapiras i razumes ako si dobro matematicki potkovan. Tako da jednostavno kazem ako zelis da ne budes samo prosecan programer koji ne razume kako stvari funkcionisu onda mozes bez matematike. A ako zelis da uvek izvuces maksimum onda ti znanje matematike NEOPHODNO.

Verovatno si potkovan sto se tice matematike, to je za svaku pohvalu, ali izgleda da ti fali vise logickog razmisljanja decko.
Nije ti palo na pamet, da ako sam zeleo da se nadmudrujem sa tobom, da bih (ako kojim cudom ne bih znao odgovor na tvoje "propitivanje"), pitao brate nekoga pa ti odgovorio, opet tacno, zar ne? :) Dakle ne skrecem temu, ti je skreces, decko pita da li mu treba jaka matematika za programiranje. Moj odgovor je bio - zavisi.

Ja stvari vidim drugacije:
Ako je za rad sa bazama podataka neophodno toliko znanje matematike, mnogi od nas bi vec bili pokojni, jer ni za 'leba ne bi zaradili.
To sto pominjes da je potrebno potpuno razumevanje kako sta radi, je cista fraza. Uzmi na primer, ajde da predjemo na xBase, SEEK komandu ili funkciju. Ona koristi neke veoma kompleksne algoritme u svom RDD, (pocev od nekog "buble-sortinga", sto sam radio u C-u nekada), pa sve do neceg za mene dosta komplikovanog.. Da li mislis da je meni nesto posebno zanimljivo kako ta komanda radi, ako ja, zadavsi uslov, nadjem potreban podatak u stotinki sekunde?
I to nije jedina takva zackoljica. Mislis da bih, znajuci kako SEEK ili SCOPE() ili neke druge funkcije rade, bolje obavljao posao? Varas se. Dovoljno je da umem parametre da poslazem kao valja i da znam sta zelim dobiti. I naravno da pravu komandu izaberem u kombinaciji sa drugima. Isto vazi i za SQL

Razumem i slazem se da je dobro znati sto vise o alatu kojim radis, pa i kako to iznutra funkcionise. Ali ja nemam nameru da pisem kompajlere. Meni treba komanda ili funkcija koja radi sta treba. To, kako je koncipirana - to je stvar koja programere ne zanima. Nas "prosecne programere", zanima, kako da tu komandu i ostale upotrebimo sto efikasnije, vec prema tome kakve podatke i za sta upotrebljavamo...

Mislis da kada kupim kola, i vozim godinama, bez problema, moram da znam kada menjam brzine, ceo sklop menjaca, materijale, proracunate stepene, naprezanje materijala, nacin ugradnje...
A jos bih verovatno trebao znati i sve o motoru, pocev od konstrukcije, preko proizvodnje pa sve do resultata testova na sofisticiranim masinama.
A da ne pominjem na primer sedista, treba li da znam da tkam i da lijem ili svajsujem, ako zelim da umem da pomerim sediste levo desno, napdred nazad?
Tockovi (proizvodnja guma do detalja), znam brate da je tu i da ga zamenim, tako stignem bezbedno na odrediste i uzmem pare za obavljeni posao....

Ako se to po tvom saznanju zove prosecni programer, opet dobro sto se mene tice :)
BTW - koliko zaradjujes takvim visokospecijalizovanim znanjem sto se baza poodataka tice i unutrasnjih procesa svake komande/funkcije? Meni to ne treba, volim da sam prosecan progamer, radim za strane firme godinama i mlatim lovu, ali eto - ne znam detalje kako ce to interpreter/kompajler stvarno iznutra uraditi. A ljudi blesavi pa me za to dobro placaju :)

Pa ti si puko covece, ako slucajno radis u C++ ili slicno, ne znam kako mislis da saznas sve do detalja sta se tamo u "black boxu" desava :) Potrosices pola zivota da to sve sukuzis, a kad ces nesto korisno napraviti?

Ajde, ziv mi ti bio i uspesan... Idem da dovrsavam posao vredan X nula, nemam vremena za smaranja i jalove diskusije.
Smatraj da si pobedio u znanju, ubedio me i da si mi nabio kompleks "prosecnog programera". Nadam se da cu nakon dobre kafe da se oporavim :)
 
:lol: :lol: :lol: :lol: :lol:
Daj pa ovo je tek sad pocelo da biva zanimljivo a ti tek tako odustajes i priznajes mu da je bolji.
Moracu da se slozim i sa tobom Codemaker i sa Null-om da mora da postoji jedna crta izmedju prosecnih i onih koji nisu prosecni :D . A to je znanje.
Pozdrav
 
codemaker:
Verovatno si potkovan sto se tice matematike, to je za svaku pohvalu, ali izgleda da ti fali vise logickog razmisljanja decko.
Nije ti palo na pamet, da ako sam zeleo da se nadmudrujem sa tobom, da bih (ako kojim cudom ne bih znao odgovor na tvoje "propitivanje"), pitao brate nekoga pa ti odgovorio, opet tacno, zar ne? :)
Pa meni nije bila namera da se nadmudrujem nego sam samo na prostom primeru pokazao kako znanje matematike pomaze u programiranju, ako ti svoj program optimizujes da brze radi tako sto ces kupiti brzi racunar onda i nisi bash neki programer zar ne ?! :)

codemaker:
Ja stvari vidim drugacije:
Ako je za rad sa bazama podataka neophodno toliko znanje matematike, mnogi od nas bi vec bili pokojni, jer ni za 'leba ne bi zaradili.
Ja nisam to rekao ali primer koji sam dao daje isti rezultat a do resenja se doslo na vise nacina i naravno da neko ko ne gleda/ne zna kako da pise optimizovne upite napisace taj jedan nacin na koji ce dobiti rezultat i on je posao izvrsio samo.


codemaker:
xBase, SEEK komandu ili funkciju. Ona koristi neke veoma kompleksne algoritme u svom RDD, (pocev od nekog "buble-sortinga", sto sam radio u C-u nekada),
Uh gde nadje buble-sort njegova duzina izvrsavanja je O(n*n) gde je n broj elemenata u nizu, mnogo je bolji quick sort koji ima O(n*logn), mada najbolji rezultati se dobije ako mozes nekako da napravis hash tabelu. E sada ako je bibliteka koju koristis lose optimizovana onda tu obicno nema spasa osim ako nije rec o open source stvari

codemaker:
pa sve do neceg za mene dosta komplikovanog.. Da li mislis da je meni nesto posebno zanimljivo kako ta komanda radi, ako ja, zadavsi uslov, nadjem potreban podatak u stotinki sekunde?
Pa ima itekako veze ako se taj posao resava u jedenoj ili deset stotinki ili jednoj sekundi jer ako imam 100-200 upita u sekundi tada performanse mnogo znace.

codemaker:
I to nije jedina takva zackoljica. Mislis da bih, znajuci kako SEEK ili SCOPE() ili neke druge funkcije rade, bolje obavljao posao? Varas se. Dovoljno je da umem parametre da poslazem kao valja i da znam sta zelim dobiti. I naravno da pravu komandu izaberem u kombinaciji sa drugima. Isto vazi i za SQL
Pa nije isto jer je SQL programski jezik. Vec sam pokazao na primeru da isti podatak je moguce dobiti na dva ili vise razlicitih nacina i naravno da se tu postavlja pitanje koji je bolji algoritam ili ukoliko i jedan i drugi imaju prednosti i mane onda treba izabrati onaj koji je optimalniji za nase potrebe.

codemaker:
Nas "prosecne programere", zanima, kako da tu komandu i ostale upotrebimo sto efikasnije, vec prema tome kakve podatke i za sta upotrebljavamo...
Pa ako nisi primetio ja o efikasnosti pricam sve vreme a i moje pitanje je bilo vezano za efikasnost i ono sto sve vreme forsiram jeste da se spoznavanje toga sta je efikasnije i zasto stice uz matematiku kao temelj svega toga, ne kazem da onaj ko lose stoji sa matematikom ne moze da bude programer i ne moze da napise program ali postavlja se pitanje koliko moze da napise efikasan program.


codemaker:
BTW - koliko zaradjujes takvim visokospecijalizovanim znanjem sto se baza poodataka tice i unutrasnjih procesa svake komande/funkcije? Meni to ne treba, volim da sam prosecan progamer, radim za strane firme godinama i mlatim lovu,
Pa ja zaradjujem dovoljno, a valjda su te zapadne kompanije naucile da dve stvari koje je nekulturno pitati "Kolika ti je plata?" i "Za koga si glasao?"

codemaker:
ali eto - ne znam detalje kako ce to interpreter/kompajler stvarno iznutra uraditi. A ljudi blesavi pa me za to dobro placaju
Ako te bash zanima kako se pise i pravi kompajler pogledaj na netu lex i yacc alate. A jedan brzi tutorial mozes ovde da pogledas
http://www.tldp.org/HOWTO/Lex-YACC-HOWTO.html

codemaker:
Pa ti si puko covece, ako slucajno radis u C++ ili slicno, ne znam kako mislis da saznas sve do detalja sta se tamo u "black boxu" desava :) Potrosices pola zivota da to sve sukuzis, a kad ces nesto korisno napraviti?
Pa ne idem ja po svakom kodu da ga proveravam kako radi i sta radi, ali neki teoriski principi su poznati, i onaj drugi primer ce na svakoj bazi da radi brze ili u najgorem slucaju podjednako brzo kao prvi primer

codemaker:
Ajde, ziv mi ti bio i uspesan... Idem da dovrsavam posao vredan X nula, nemam vremena za smaranja i jalove diskusije.
Smatraj da si pobedio u znanju, ubedio me i da si mi nabio kompleks "prosecnog programera". Nadam se da cu nakon dobre kafe da se oporavim :)

Ma nemam ja nikome zelju da nabijam komplekse, decko je pitao koliko vazno znati matematiku i ja kazem da jeste mnogo ako imas zelju da tvoj program bude optimizovan. A ako ces da optimizujes svoj program tako sto ces staviti brzi procesor onda to i nije neko pravo programiranje vec susteraj.
 
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)
 
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...
 
stanje
Zatvorena za pisanje odgovora.

Back
Top