- Poruka
- 6.510
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.