[ Stefan Markic @ 19.09.2006. 01:10 ] @
Citiracu jednog lika koji je na jednom forumu prokomentarisao nesto u vezi programiranja. Postavio sam mu pitanja omdah posle njegovog odgovora, ali nema ga. :( Tema je bila u vezi programiranja i pocetnika, al' to sad i nije toliko bitno...

Citat:
ako znas principe programiranja onda ti je sve jedno dali radis adu, c++, asmbler, perl..ili nesto sasvim deseto, (izuzetci su ovi sto pohadaju razne kurseve programiranja).


Sto?

[Ovu poruku je menjao BrokeBody dana 23.09.2006. u 04:31 GMT+1]
[ dimitar 16 @ 19.09.2006. 01:30 ] @
Ne znam zasto bi bile izuzetci oni koji pohadaju razne kurseve programiranja.

Najbolje sacekaj ga da ti odgovore :)
[ ntojzan @ 19.09.2006. 06:24 ] @
Zato sto ti ljudi nisu programeri, nego samo priuceni vodoinstalateri.
[ dimitar 16 @ 19.09.2006. 10:22 ] @
Ha, zato sto je neko zapoceo sa programiranje na neki kurs - to znaci da on ne moze biti dobar programer?
[ ntojzan @ 19.09.2006. 12:35 ] @
Da upravo tako. Ako je neko zapoceo programiranje tako sto je otisao na neki kurs, to znaci da je on to uradio za vreme ili posle srednje skole, znaci prekasno...

To ti je isto kao kad neko hoce da se bavi fudbalom i krene da trenira sa 18... Prosto... Prekasno.

A i inace na tim kursevima se ne moze nauciti nista zaista korisno. Moze sintaksa, resavanje nekih jako jednostavnih problema, ali nacin razmisljanja potreban da bi zaista bio dobar programer... Ne ide.
[ mmwlada @ 19.09.2006. 15:50 ] @
Citat:
ntojzan: Da upravo tako. Ako je neko zapoceo programiranje tako sto je otisao na neki kurs, to znaci da je on to uradio za vreme ili posle srednje skole, znaci prekasno...

To ti je isto kao kad neko hoce da se bavi fudbalom i krene da trenira sa 18... Prosto... Prekasno.

A i inace na tim kursevima se ne moze nauciti nista zaista korisno. Moze sintaksa, resavanje nekih jako jednostavnih problema, ali nacin razmisljanja potreban da bi zaista bio dobar programer... Ne ide.


Onda bi sa programiranjem trebalo da se počne u pelenama, da bi neko bio dobar programer. A ajde molim te definiši mi šta je dobar programer. Način ramišljanja je nešto što se razvija i to naravno da ne može da se stekne za mesec-dva, ali ako se neko zaista posveti tome, posle nekog vremena, sve dolazi na svoje mesto.
[ dimitar 16 @ 19.09.2006. 19:35 ] @
Citat:
mmwlada: Onda bi sa programiranjem trebalo da se počne u pelenama, da bi neko bio dobar programer. A ajde molim te definiši mi šta je dobar programer. Način ramišljanja je nešto što se razvija i to naravno da ne može da se stekne za mesec-dva, ali ako se neko zaista posveti tome, posle nekog vremena, sve dolazi na svoje mesto.

Potpuno si u pravo!
[ jablan @ 19.09.2006. 19:54 ] @
Citat:
mmwlada: ali ako se neko zaista posveti tome, posle nekog vremena, sve dolazi na svoje mesto.

Da, ali mu kursevi neće puno pomoći u svemu tome...
[ ntojzan @ 20.09.2006. 01:51 ] @
Pazi ljudski um se formira dok si mlad. Pokusaj nekoga sa 40+ godina da nateras da promeni nacin razmisljanja... Nemoguce. Ja ti kazem, mozes postati "programer" i ako pocnes sa 18, ali programer neces postati.
[ Stefan Markic @ 20.09.2006. 02:16 ] @
Pa sa 18 godina kreces na fakultet. :roll:
[ dimitar 16 @ 20.09.2006. 10:58 ] @
Citat:
Pazi ljudski um se formira dok si mlad. Pokusaj nekoga sa 40+ godina da nateras da promeni nacin razmisljanja... Nemoguce. Ja ti kazem, mozes postati "programer" i ako pocnes sa 18, ali programer neces postati.

Kako nemoguce? Pa eto ja sam zapoceo na 16 godina sa Pascal u srednju skolu (to u skolo ti je isto ko kurs - samo sto je free), pa sam za 1-2 godine stigao da naucim i po nesto C++ i neki ostali jezici, da otidem na balkansku i svetsku olimpijadu po informatici...

Najtezi je pocetak - ucenje osnovi, algoritmi.. i za to treba negde oko 1 godinu. Kad neko pomine sve to, on je vec programer... Posle je mnogo lakse da se premine na programiranje za pare.
[ Stefan Markic @ 20.09.2006. 11:20 ] @
.. hmmm ..sta da se kaze ... programiranje je umetnost ..i nema veze sa ovim ili onim ...
to je proizvod duha ... glupo je reci : e ti nisi zavrsio faks ... nikad neces biti programer , samo dzabe gubis vreme .. ovo je glupost !!! To je kao da kazes Kit Richardsu iz Stonsa ... nisi posao na muzicku akademiju sa
18 godina .. dzabe nikad neces biti gitarista? ha ha ha ha

A moze i ovako Programiranje = Zanat

Ne postoji suštinska razlika između programera i obućara.

Da bi postao dobar programer ne moraš ići na faks, jer ima mnogo ljudi koji nisu imali para da odu na faks a dobri su programeri.

Kursevi su bacanje para, to svako može i kod kuće da vežba bez vremenskog ograničenja. Ne kažem da su predavači na kursevima glupi pa ne umeju da objasne. Uostalom kako se može porediti tromesečni ili šestomesečni kurs 2x nedeljno naspram 4 semestra programiranja 4+4 nedeljno...

Jednostavno, ili si stvoren za to ili nisi, dzaba ti fakultet ako pojma nemas.
Ni Nikola Tesla nije zavrsio fakultet pa zbog njega danas imamo i robotiku
i racunare i naizmenicnu struju. Svako danas ko ume da koristi racunare
malo bolje moze da nauci da programira ako se potrudi. Postoje tone
dokumentacije koja moze da se procita.
[ dragancesu @ 20.09.2006. 17:57 ] @
Citam ovakve rasprave pa da dodam

Citat:

A moze i ovako Programiranje = Zanat
Ne postoji suštinska razlika između programera i obućara.


Sa ovim ipak ne mogu da se slozim potpuno. Programiranje = Zanat moze reci onaj ko se godinama bavi s tim, i verovatno jednom vrstom aplikacija. Posle mnogo vremena zaista mu ne treba mnogo da napise neki program ili ispravi/doradi nesto pa se svodi na to.

Ko radi sve i svasta, reci se vam da je nauka. Niste uvek u mogucnosti da radite sta volite nego sta morate. Onda se ne spava, lupa glava kako uraditi i tako to.

Programer = Obucar ? Pa zaista sustera medju programerima. (mala sala) Inace, obucar tokom celog veka koristi isti alat i to se ne menja, cekic ostaje cekic, lepak je lepak, sivaca masina sije bilo da je na neki rucni/nozni pogon ili je elektricna. Ali ako ste programer tu se menja alat, ko da menjate zanat.

Fakultet nije nepohodan nego znanje. Programiranje je ipak primenjena nauka (ili multidisciplinarna kako se kaze) pa nema nekog fundamentalnog nego primenjenog. Mozda bi to fundamentalno bilo izrada OS ali nije bitno. Kad programer radi resava zadatak iz neke oblasti. Uglavnom, obicno nema pomoc sa strane pa mora da zna sve i svasta, nije retko da neki programeri bolje znaju knjigovodstvo od knjigovodja.

Kursevi ili skola. Zaista je tesko porediti. A i predavace. Negde ucenici, a negde predavaci nisu zainteresovani, pa mu dodje na isto. A po novim planovima svi predmeti treba da su jednosemestralni sto se svodi na vrlo malo casova, sa recimo 2+2 casa nedeljno nije mnogo vise od nekih kurseva. A koliko traje semestar? A i pitanje koliko se nauci u skoli ili kursu, nauce se osnovne stvari, a ostalo je na uceniku.

Tesla je zavrsio neku politehnicku skolu, ali se trudio da napravi bolje nego drugi. Da, danas postoji literatura pa ce onaj ko hoce moze da nauci, a ko nece dzaba mu to.

I programeri su valjda jedini koji bi da ostanu bez posla, gledajuci kakvih sve alata danas ima pa moze svako da programira. Kompjuteri pisu programe. Ha, ha. Lepo zvuci, ali i dalje treba zavrnuti rukave pa cukati po tastaturi... Nece nista samo da se napravi.
[ ntojzan @ 21.09.2006. 01:03 ] @
Citat:

dimitar 16

Kako nemoguce? Pa eto ja sam zapoceo na 16 godina sa Pascal u srednju skolu (to u skolo ti je isto ko kurs - samo sto je free), pa sam za 1-2 godine stigao da naucim i po nesto C++ i neki ostali jezici, da otidem na balkansku i svetsku olimpijadu po informatici...


Kao prvo, ta balkanska i svetska olimpijada u informatici veze nema sa zivotom.

Kao drugo, ako si ti na osnovu toga sto si naucio u skoli pa posle na faxu postao programer, onda ce ti to svakako biti dovoljno za takmicenja, ali ne i za neko ozbiljnije programiranje. A inace i ti profesori koji uce ucenike programiranje po srednjim skolama takodje nisu sposobni da napisu bilo kakav program koji radi nesto korisno (da ne pricam o optimizaciji, itd), znaci znanje steceno od njih mora biti veoma "dragoceno". A o profesorima na faxu ja opet imam svoje misljenje. Ako je covek uspeo da nastreba sve predmete da ima dobar prosek, i posle jos napravio magistraturu, pa doktorirao - taj bas nije puno vremena proveo programirajuci... A da zna teoriju, to zna...

Citat:

Terry Prattchet (knjiga Mort)

- Vi izgleda nemate nikakvih upotrebljivih kvaliteta. Jeste li razmisljali o prosveti?


A ako si sa 16 godina malo ozbiljnije poceo sa time da se bakces -- non-stop visio na kompjuteru i programirao u slobodnom vremenu (nevezano za skolu), to je vec druga prica - i onda automatski ne spadas u kategoriju priucenih...

Inace radim tu sa ljudima raznih rasa koji su pozavrsavali razne fakultete bas svuda po svetu, i kao njihov sef ti mogu reci da pojma nemaju.
[ milika @ 21.09.2006. 01:51 ] @
Eh narode :D

Ja vec 12 godina zaradjujem programirajuci i niko ovde nije kompletno u pravu...

Ako imas volje i snage sve je moguce, ali takodje su potrebne odredjene predispozicije.

Video sam svakakve programere i priucene i fakultetlije i wunderkinde, da bi neko postao zaista dobar mora imati kombinaciju predispozicija i truda tj volje.

Ali evo dacu vam lepu podelu pa da skontate kako se to razgranicava.
Zapravo uopste ne postoje programeri. Postoje koderi i software inzenjeri. Koderi pisu ono sto software inzenjeri smisle. Ista osoba moze biti oboje. Ono o cemu vi raspravljate ovde je malo promaseno. Pricate o poslovima inzenjera kao da su koderi i obrnuto. Osvestite se.

Ko zeli da se bavi tim poslom samo hrabro i uporno a ko zeli da se zove programerom nek zavrsi neki kurs ili fakultet...

Poz
[ NikolaVeber @ 21.09.2006. 02:02 ] @
Citat:
dragancesu:
Fakultet nije nepohodan nego znanje. Programiranje je ipak primenjena nauka (ili multidisciplinarna kako se kaze) pa nema nekog fundamentalnog nego primenjenog. Mozda bi to fundamentalno bilo izrada OS ali nije bitno. Kad programer radi resava zadatak iz neke oblasti. Uglavnom, obicno nema pomoc sa strane pa mora da zna sve i svasta, nije retko da neki programeri bolje znaju knjigovodstvo od knjigovodja.


Programiranje nije nauka, informatika jeste. Sto se informatike tice postoje fundamentalna znanja koja su univerzalna i ne menjaju se promenom programerskih alata. Takodje ne zavise od namene.
(u ta znanja spada recimo poznavanje struktura podataka, poznavanje teorije informacija, osnovnih algoritama, tehnika izrade algoritama i tako dalje)

[ FuzzyCreation @ 21.09.2006. 09:07 ] @
Cini mi se da je ntojzan malo inkonzistentan. Prvo insistira na algoritamskom nacinu razmisljanja
a onda kaze da nauceni algoritamski nacin razmisljanja (koji se najbolje stice upravo na tim
takmicenjima iz informatike) nije dovoljan za ozbiljnije programiranje. Kao da se dobar programer
meri time koliko tehnologija baca iz rukava. Upravo sa onime sto naucis na faksu ne mozes ici
na takmicenje iz programiranja, pogotovo na takmicenje iz programiranja ne mozes ici sa 12 godina
radnog iskustva kao developer komercijalnih aplikacija.

I racunarsto i informatika su nauke. Programiranje jeste metod nauke koja se zove racunarstvo.

Ucenjem algoritamskog nacina razmisljanja ne menja se nikakav drugi nacin razmisljanja. Za ucenje
algoritamskog nacina razmisljanja ne trebaju specijalne predispozicije, nego metafizicki prelaz
cija je posledica jednako tretiranje glupavog formalnog opisa sa kreativnom strukturom.

Podelu na kodere i software injzinjere su smislili oni koji su unistili programiranje kao
umetnost i od nje napravili zanat (a i dalje prave). Formalizovati proces, u 99% slucajeva
znaci ubiti kreativnost, a povecati produktivnost.



[ dimitar 16 @ 21.09.2006. 10:09 ] @
Citat:
ntojzan: A ako si sa 16 godina malo ozbiljnije poceo sa time da se bakces -- non-stop visio na kompjuteru i programirao u slobodnom vremenu (nevezano za skolu), to je vec druga prica - i onda automatski ne spadas u kategoriju priucenih...

Pa to hocu da kazem celo vreme, da ne znaci da je neko izuzetak ako je poceo u skolo ili na kurs. Naravno da nece postati programer ako samo ceka da mu neki profesor tamo kazuje sta da radi. U moj klas u srednju, 95% ucenika nije interesiralo programiranje - ucili su, dobivali su odlicne oceni, ali sad nemaju pojma, ne znaju ni sta je to programski jezik..
Ako neko stvarno interesuje programiranje, moze da postane dobar programer, bez razliku dali je poceo sam da uci, u skolo, ili na kurs.


[Ovu poruku je menjao dimitar 16 dana 21.09.2006. u 11:38 GMT+1]
[ jablan @ 21.09.2006. 10:16 ] @
Citat:
FuzzyCreation: Za ucenje
algoritamskog nacina razmisljanja ne trebaju specijalne predispozicije, nego metafizicki prelaz
cija je posledica jednako tretiranje glupavog formalnog opisa sa kreativnom strukturom.

Al' je tebi dobro...
[ FuzzyCreation @ 21.09.2006. 10:51 ] @
Smatrati da postoje fundamentalni principi i univerzalna znanja je ZABLUDA istog reda velicine kao i ona koja kaze sa koliko godina se moze krenuti sa ucenjem programiranja da bi se ono stvarno naucilo. Stavljati programski alat i model u istu dimenziju i time opravdavati, pokazivati univerzalnost znanja koje je inkorporirano u model je besmislica.

[Ovu poruku je menjao FuzzyCreation dana 21.09.2006. u 12:24 GMT+1]
[ dragancesu @ 21.09.2006. 16:33 ] @
@NikolaVeber hvala na ispravci. Ovde se gadjamo terminima pa sam i ja upao u gresku.

I ovde se pise programiranje, a misli na informatiku. Programiranje ili kodiranje je samo jedan korak u izradi aplikacija, pre toga idu raznorazne analize, izrada algortama i slicno.

I da se korigujem. Programiranje = Zanat ako se zivi od toga.

Programer = Zmaj covek. Bar u nasim uslovima, jer se ocekuje da poznaje sve i da odradi sve u vezi izrade neke aplikacije.

Poslovi analize, projektovanja, programiranja se najcesce mogu odvojiti na celine. E, toga nema kad sve mora da uradi jedan covek.

[ ntojzan @ 21.09.2006. 16:46 ] @
@dimitar 16:

To sto si rekao stoji, ali ja i dalje nisam jos sreo osobu koja je zavrsila kurs i potom postao/la dobar programer. Ako ti poznajes nekog takvog, upoznaj me, bice mi drago. ;-)

@FuzzyCreation:

Moguce je da su se ta takmicenja -drasticno- promenila otkako sam video zadatke sa istih, ali ono sto sam ja vidjao je imalo vise veze sa matematikom nego sa programiranjem ili bilo kakvim nacinom razmisljanja.

Inace nagomilavanje reci u izuzetno dugacke recenice sumnjivog smisla radi kvazi prikazivanja argumenata cija egzistencija se lako moze dovesti u pitanje jeste inkonzistentan sa nacinom programerskog razmisljanja, koje samo po sebi podrazumeva ne samo sagledanje problema kao i celinu, nego pre svega svodjenje istog na njene sastavne delove koji potom sami po sebi postaju resenje prvobitnog problema, vec je vise izraz previse vremena provedenog na filozofskom fakultetu.
[ FuzzyCreation @ 21.09.2006. 17:10 ] @

Ne misli se na informatiku nego na racunarstvo, razlika je velika...

Nesto nisam primetio da si egzistenciju argumenata doveo u pitanje. Slobodano uradi to, ja nemam problema sa tim.

Ja kada pisem post pisem tekst, ne pisem program, razlika je velika. Kada pisem post ja problem ne sagledavam i interpretiram u kompoziciji iteracija, petlja, uslov struktura nego u malo sirem neizracunljivom kontekstu. Te postovi nisu prosli kroz nacin razmisljanja
koji je algoritamski nego filozofski, to se slazem, te nema nikakve potrebe da budem konsistentan sa algoritamskim nacinom razmisljanja. Sa druge strane to me ne sprecava da pisem programe i da zivim od programiranja.
No vidim da ti algoritamski nacin razmisljanja uzimas kao UNIVERZALNI KONCEPT
razmisljanja i smatras taj koncept apsolutnim, te ce mi biti drago ako u pitanje dovedes moje argumente. Bice to prvi korak ka vestackoj inteligenciji. Samo molim te budi do kraja formalan i izracunljiv.

Ja nigde u svom pisanju ne vidim redukcionisticko rezovanje, niti je redukcionisticko rezonovanje jedino koje se kao heuristika nauci na filozofskom fakultetu. Te bih molio ako mozes da mi kazes sta je to kod mene CELINA i kako sam ja to DEKOMPONOVAO celinu da delove te kada sam IZJEDNACIO KAKO GOD celinu i delove. Bio bih ti jako zahvalan.

Ah ta matematika, sta je algoritam negoli izraunljiv matematicki model, sta je program negoli implementacija konkretnog matematickog modela. Sta rade programeri nego pisu programe. Gde se tu krije kreativnost negoli u procesu pravljenja matematickog modela. A kako do modela negoli algoritamskim nacinom razmisljanja. Svako ko misli da mu za OZBILJNO programiranje NE TREBA OZIBILJNO ZNANJE MATEMATIKE (pre svega algebre, teorije algoritama, formalnih jezika i automata, matematickog modeliranja) u vecoj je zabludi nego oni sto misle da je posle neke godine kasno krenuti sa ucenjem i nauciti programirati ili oni koji smatraju da postoji UNIVERZALNO znanje.
[ FuzzyCreation @ 21.09.2006. 17:27 ] @
A nismo se razumeli... Ja se nisam sluzio redukcionistickom heuristikom, ali sam trebao... I da sam se sluzio tom heuristikom moji argumenti bi bili nesto drugaciji. Ne bih rekao :) No bas me interesuje koji bi ti od ovde postavljenih problema DEKOMPONOVAO i na STA?
[ milika @ 21.09.2006. 20:36 ] @
e zamislite na sta bi ovaj post licio i koliko bi tek onda bio kad bi vi zaista i znali o cemu pricate... ccc
[ NikolaVeber @ 21.09.2006. 21:04 ] @
Citat:
Svako ko misli da mu za OZBILJNO programiranje NE TREBA OZIBILJNO ZNANJE MATEMATIKE (pre svega algebre, teorije algoritama, formalnih jezika i automata, matematickog modeliranja) u vecoj je zabludi nego oni sto misle da je posle neke godine kasno krenuti sa ucenjem i nauciti programirati ili oni koji smatraju da postoji UNIVERZALNO znanje.


Ovo mi bas nije jasno:

-ko misli da mu za OZBILJNO programiranje NE TREBA OZIBILJNO ZNANJE MATEMATIKE (pre svega algebre, teorije algoritama, formalnih jezika i automata, matematickog modeliranja) u vecoj je zabludi nego

-oni koji smatraju da postoji UNIVERZALNO znanje.


Znaci svi su u zabludi, samo se ne zna ko je od koga u vecoj? :)
[ jablan @ 21.09.2006. 21:56 ] @
Citat:
Svako ko misli da mu za OZBILJNO programiranje NE TREBA OZIBILJNO ZNANJE MATEMATIKE

@NikolaVeber: Varaš, nema šanse da si čak dotle uspeo da pročitaš njegovu poruku.
[ NikolaVeber @ 21.09.2006. 22:11 ] @
Ne bi bilo sanse, imas pravo, ali sam preskocio prvi deo kao totalno offtopic - pa sam ipak nekako uspeo :)
[ FuzzyCreation @ 22.09.2006. 22:37 ] @

Nije mi jasno kako si zakljucio da su SVI u zabludi.... Kako su neki iskazi malo apstraktniji od nekih drugih (stmt1: postoji univerzalno znanje je apstraktiniji od stmt2: Za ozibljno programiranje ne treba ozbiljno znanje matematike), to je onaj koji kaze vrednost stmt1 = true u manjoj zabludi od onoga koji kaze stmt2 = true, tj sto si dalje otisao u apstrakciju to si u manjoj zabludi, sto si dalje otisao u apstrakciju manje opravdanja imas u statistici, te je manja verovatnoca da ti neko obori statement ako nisi u pravu :)

[Ovu poruku je menjao FuzzyCreation dana 22.09.2006. u 23:49 GMT+1]
[ FuzzyCreation @ 22.09.2006. 22:39 ] @

Ne znam na sta bi licio, ali bih te molio ako bi mogao da nam kazes gde to gresimo... To bi nam svima (posebno meni) otvorilo oci, ne bi gresili vise a i naucili bi nesto, sto je mislim i cilj postojanja foruma. Stoga ako mislis da ti znas nesto sto mi ne znamo, budi ljubazan pa podeli svoje znanje sa nama. Mi smo svoje neznanje rado podelili sa tobom :)
[ NikolaVeber @ 23.09.2006. 02:45 ] @
Ljudi obicno ne koriste formalne jezike u svakodnevnoj komunikaciji jer su isuvise kruti. Prema tome :
pod univerzalnim znanjima se upravo mislilo na matematiku i ostale UNIVERZALNE stvari, koje se, kao sto napisah negde gore, ne menjaju u zavisnosti od koriscenih alata.

Tako da se ceo tvoj nazovi formalizam, prenesen u jezik nas ljudskih (wannabe programera u zabludi) bica svodi na sledece:

Imamo 2 grupe ljudi (obe grupe zajedno cine sve posmatrane ljude):
- jedni misle da je matematika (i slicno) vazno
- drugi misle da nije vazno



Drugi su u zabludi, jer jeste vazno,
a svi oni koji misle da takva znanja uopste postoje (a prvi to misle, cim smatraju da su vazna) su u zabludi,

tako da su i prvi u zabludi.

Iz cinjenice da su i prvi i drugi u zabludi, a da na gomili cine ceo skup posmatranih osoba, proizilazi da su svi u zabludi.

Uz napomenu da su oni koji misle da takva znanja postoje, a nisu vazna, duplo u zabludi.



Izvinjavam se na nastavljanju teme u pogresnom pravcu i iskreno se nadam da ce cela ova gomila gluposti biti obrisana.

[ FuzzyCreation @ 25.09.2006. 08:48 ] @

Ha, ha :) Smisao formalnih jezika nije da ih covek koristi u komunikaciji sa covekom nego sa racunarom. Svaki programski jezik po svojoj definiciji jeste jedan formalan jezik. Svaki program jeste jedna recenica u tom formalnom jeziku.
A zatim zadivljujuca kolicina gluposti, ako smem tako reci...

Takva znanja itekako postoje, vise od 85 godina, od kako je napravljen i prvi matematicki model racunara. Ta znanja jesu univerzalna ali u odnosu na trenutni matematicki model racunara, na novom matematickom modelu ona nece biti funkcionalna. Ocigledno nisi slusao kompajlere na faksu ili tako nesto, ako vec predmet Formalni jezici ne postoji.

Da nije bilo tih po tebi nevaznih znanja, danas ne bi imali racunar (jer je prvo nastao model a tek onda fizicka implementacija), ne bi imali ni jedan programski jezik, ne bi znali rekurzivno da razmisljamo....

Stoga i dalje mislim da si u velikoj zabludi, sto opet ne znaci da sa svojim znanjem programiranja bez poznavanja koncepata (koji nisu univerzalni nego se vezuju za jedan formalan model) ne mozes da mlatis pare po belome svetu :)

Svako voli da se brisu njegove gluposti :)
[ anon75319 @ 30.09.2006. 09:21 ] @
Ja sam sad u drugom razredu upisao "kurs" tj. fakultativnu nastavu informatike i izabrao sam Napredno programiranje i algoritmi koji se koriste na natjecanjima...

Mislim da mojoj skoli nije cilj nas nauciti nesto o algoritmima nego da nas nauce kako da pobjedimo na natjecanjima da bi oni dobili nekakav status u Hrvatskoj kao skola koja ima dobre programere ( i naravno dobili nekakve donacije)

Ali ipak sam upisao jer dobro dođu neki algoritmi za rjesavanje problema.(a i ocjena raste )
[ genuine @ 05.10.2006. 03:42 ] @
Pa ovako.. i svi ste u pravu i niko nije.. prvo programiranje je veoma siroka disciplina i kada o njemu pricate morate da kazete tacno o kojim oblastima pricate...
koncept je isti kao i u hirurgiji ( u njoj se nesto sece, usiva , usisava i sl.. ) ali velika je razlika izmedju neurohirurgije i estetske hirurgije... matematika je potrebna za posebne discipline tipa ekspertski sistemi, numericka izracunavanja, racunarska grafika i sl.. ali nije potrebna za programiranje operativnih sistema(toliko nije potrebna da cak upotreba float tipa nema smisla :) ), drajvera , kompajlera,poslovnih aplikacija ( barem vecine ), web aplikacija, ugradnih sistema i sl...
takmicenja iz informatika obuhvataju elementarne strukture podataka tipa niz,liste , stabla i grafove, i algoritme nad istim ukljucujuci dinamicko programiranje kao princip i sl. i predstavljaju veoma mali deo u velikoj slici programiranja... Programiranje svakako zahteva fakultetsko znanje i nije naivna stvar... osnovni princip programiranja je da je software podlozan promenama a da nije podlozan izmenama je princip koji ne postuje barem 60% programera a da ne govorim o ostalim principima tipa konkurentnost ili standardni projetni uzorci... cinjenica je da priuceni ljudi mogu da napisu program kao sto ja mogu nozem da isecem coveka ali to ipak nece biti uspesna hiruska intervencija :). ako sam nesto zaboravio napisacu :)
[ FuzzyCreation @ 05.10.2006. 16:30 ] @

Neupotreba float tipa podataka ne znaci da napisani program nije implementacija nekog matematickog modela. Pored toga postoji nesto
sto se zove diskretna matematika gde varijable nisu float tipa. Kada se kaze matematika ne misli se na analizu i numericku matematiku,
u racunarstvu je mnogo zanimljivija ta diskretna matematika.

Kada pises kompajler moras biti debelo debelo potkovan matematikom (i to onom diskretnom, teorijom formalnih jezika, automata),
tako da kada kazes da pises kompajler i da ti ne treba ni malo matematike znaci da u zivotu nikada nisi pisao kompajler stoga
nemoj da pricas o stvarima o kojima blago receno nemas pojma. Uostalom uzmi bilo kakvu knjigu iz kompajlera (recimo onu Compilers
principles, techniques and tools pa ces se nagledati grafova, formalnih izraza, matematickih dokaza...)
Za programiranje operativnih sistema takodje treba znati matematiku ako zelis pisati ozbiljan operativni sistem, modeli koji
sa nekim verovatnocama predvidjaju kako ce se alocirati resursi te stoga rade razne marifetluke (citaj optimizacije) su jako komplikovani i zahtevaju izvrsno poznavanje verovatnoce. Problem raspodele resursa je veoma zahtevan matematicki problem. Pisanje WEB aplikacija ne smatram programiranjem (moje misljenje na koje imam pravo a sa kojim ne mora niko da se slozi).

Elementarne strukture podataka (sasvim dovoljne za razvoj algoritamskog nacina razmisljanja) i VRLO KOMPLIKOVANE algoritme
koje koriste te strukture, a ti algoritmi nisu algoritmi iz ADTa te strukture. Kompleksnost same strukture podataka ne odredjuje
kompleksnost zadatka. Mozes imati jako kompleksne algoritme koji koriste PRIMITIVNE strukture podataka. Licno pitanje: DA LI SI IKADA URADIO
I JEDAN ZADATAK KOJI SE POJAVLJUJE NA TAKMICENJU KOJE IMA VISOK RANG (tipa olimpijada, mala, savezno)? Da jesi ili da si pokusao pa nisi uspeo ne bi tako govorio. Slazem se stvari koje se rade na takmicenjima su samo jedan mali deo, ali krucijalan, koji kada se nauci znaci da si naucio da algoritamski razmisljas i da posle toga ni jedan problem ne pada tako tesko. To znaci da ti znas STA MOZE, a STA NE MOZE da se uradi i kada znas STA MOZE da se uradi to mozes da implementiras veoma lako uz citanje dokumentacije. Uostalom, nije takmicenje iz informatike jedino, rad na samostalnom istrazivackom projektu je jos bolja fora. Tu ako prodjes od problema, ideje, implementacije, analize rezultata i pisanja nekog dokumenta kojim opisujes ceo postupak, znaci da sebe mozes da nazoves PROGAMEROM (ozbiljnim) a da je problem dovoljno kompleksan (biti trivijalan problem znaci da neko ko se time bavi moze da prodje kroz ceo proces u par dana, sati...)

Osnovni princip jeste napraviti program koji modeluje dati fenomen, koji resava dati problem dajuci korisne predikcije sa stanovista pojma informacije. Reci recenicu "biti podlozan promenama a da nije podlozan
izmenama jeste kontradikcija". Jer biti podlozan promenama znaci biti podlozan izmenama. Da li je brojka od 60% koju si
naveo neki empirijski podatak ili ti je onako doslo?

Racunarsto je pozitivisticka nauka dok je hirurgija deskriptivna. Ne mogu se porediti uopste. Ako se nauke nemaju nikakvih
medjusobnih dodira nemaju ni njihove metode. To sto je racunarstvo nauka sa mnogo podoblasti ne znaci da se o racunarstvu ne moze raspravljati, to ne znaci da se o njenom metodu (programiranju) ne mozes raspravljati uopsteno bez toga da se navede o kojoj oblasti se prica. Koncepti su koncepti (ali nisu univerzalni :))

[ genuine @ 05.10.2006. 22:26 ] @
Evo ovako.. postoji velika razlika izmedju programera o kome ti pricas i onog o kome ja pricam.. ti govoris o coveku koji je zavrsio matematicki fakultet, koji razmislja o teoremama i dokazima, kome su ljudi na koje se ugleda tipa dikstra, floyd,ford, fulkerson i ostali matematicari ..koji resava veoma teske zadatke na matematickim olimpijadama i razmislja na taj nacin...sto je oko 0.2% ukupne populacije onog sto ja naziva programerom..
naravno da sam radio zadatke sa takmicenja iz informatike i naravno da nisam bio uspesan koliko su moji prijatelji koji su nekad osvajali zlata i srebra na olimpijadama ali sada kada pricam sa njima i oni su svesni koliko je to znanje slabo primenljivo u danasnjim prilikama.. programeri sa matematickog fakulteta se bas i bave algoritmima, strukturama podataka ,kompajlerima .. jer to ima dosta veze sa matematikom. ali ajde recimo kod tih kompajlera... koliko je potrebna matematika ( koja za to moze da se nauci za dva meseca sva teorija oko automata i gramatika i sl.) toliko ti je potreban i princip rada hardware-a da bi to radilo a da ne govorim o optimizacijama za procesore sa dubokim pajplajnom ili multiprocesore... Slazem se da se bez matematike ne moze ali kog nivoa matematike... mislim da je znanje koje se stice na tehnickim fakultetima sasvim dovoljno da bude dobra osnova za bilo koju disciplinu...
operativni sistemi i verovatnoca... pa ne trebaju ti povrsinski integrali da bi video koji ces resurs kome da dodelis.... \

inace kompajler jesam napisao i to za uJavu u JLex-u i ByaccJ-u za 7 data. takodje i operativni sistem ali za AVR kontrolere(128k flesha 32k rama). WEB aplikacije su i tekako programiranje koje zahteva poznavanje puuuno standarda i principa programiranja.. da pocnem samo OOP,obrazce, mrezu, protokole, kombinovanje vise programskih jezika, tesku konkurentnost na multiprocesorskim serverima, otpornost na otkaze koriscenjem najrazlicitijih tehnologija, baze podataka( relacione -> ima veze sa matematikom :) ) i sl.. a to sto ti smatras WEB programiranjem se odnosi na pravljenje html stranica u front page-u...


ok.. u pravu si lose sam se izrazio .. sa biti podlozan promenama mislio sam na biti podlozan novim zahtevima i izmenama zahteva a biti zatvoren za izmene programa... to znaci da prvo sve sto program radi radice i dalje .. sve novo sto se doda u program sto se tice novih zahteva nece smeti da promeni postojeci kod vec samo sme da bude dodato kao novi kod... znaci ako hocu da mi program pored toga sto radi pod windows-om i linux-om radi i pod osX-om necu menjati kod koji je do tada napisan vec cu samo dodati kod koji se odnosi na osX naravno koriscenjem odgovarajucih apstrakcija.... valjda se razumememo....

inace daleko od toga da matematika ne treba... matematika jeste najbitniji alat programera ali samo matematika ne znaci nista.. barem ne preterano prakticno.... sami algoritmi i strukture podataka takodje... eto kod mene konkretno najgore sto sam radio sa strukturama podataka je hes tabela sa razresavanjem kolizija koriscenjem crveno-crnih stabala... a danas je to najcesce niz(zbog efikasnosti) i ponekad koja lista ili stablo... sa druge strane nesto cime se bavim ali opet sa strane hardware-a su multiprocesori koji izvrsavaju bas programe sa teskim matematisanjem tipa barns algoritam, ocean, fft, polimeri i sl... sto veoma cenim :)

[Ovu poruku je menjao genuine dana 06.10.2006. u 00:14 GMT+1]
[ FuzzyCreation @ 06.10.2006. 08:45 ] @

Ok postujem tvoje misljenje, moje je sledece:

dikstra, floyd,ford, fulkerson i kompanija nisu resavali zadatke na matematickim/racunarskim olimpijadama. Oni su se bavili NAUCNO-ISTRAZIVACKIM radom, pisali radove i objavljivali ih. Takodje Ritchie i kompanija iz bell labsa, kao uostalom sve grupacije koje rade po raznim institutima su se bavili NAUCNO-ISTRAZIVACKIM radom. To su pravi programeri, ljudi koji se bave RACUNARSTVOM na TOP nivou (sto podrazumeva nove ideje, njihove implementacije, pisanje radova i reportova) svi ostali su PROGRAMERI BANDERASI. Slazem se sa tobom da su ovi drugi daleko mnogobrojniji ali su UPRAVO TI ONI KOJI PRAVE SUNOVRAT U RACUNARSTVU praveci od toga teski zanat. Stoga uopste nije bitno koji si FAKULTET zavrsio nego sta radis (evo nabrojao sam dve grupacije ljudi jedni jesu matematicari koji su se bavili teorijom algoritama, drugi su inzinjeri).

Da se zadrzimo kod kompajlera: pravljenje kompajlera koristeci iskljucivo alate za generisanje leksickog i sintaksnog analizatora bez znanja kako oni rade prakticno i nije pravljenje kompajlera.

Opet treba razgraniciti dve stvari: umetnost i zanat(tehniku). Smatram (opet moje misljenje sa kojim ne mora niko da se slozi) da nazovi programeri koji razvijaju samo svoju tehniku i nisu programeri. Super je sto oni znaju sve RFC-ove napamet, sto znaju da koriste razne biblioteke i razne alate, ali bez razvijanja algoritamskog nacina razmisljanja *umetnost* oni nikada nece postati programeri koji ce moci u zivotu da urade nesto ozbiljno. Osim doga ako si dobro umetnicki potkovan lako ces se snaci u zanatskim vodama. Ako ti znas da razmisljas kako treba, ako znas sta se moze izracunljivo formalizovati (modelovati), a sta ne nece ti biti problem da procitas po koji tehnicki dokument i da stvar zavrsis do kraja. Obrnut slucaj je NEMOGUC. Zato ne treba insistirati na tehnici nego na umetnosti. Kada tek pocinjes da programiras, dobro je sto ides na takmicenja, jer tako ucis da razmisljas. Kada zavrsis srednju skolu na ta takmicenja gledas totalno drugacije jer si vec naucio da razmisljas i cini ti se da je to mala stvar. Evo na primer google: google ne bi bio to sto jeste da je insistirano na raznim tehnickim optimizacijama, nego je google to sto jeste zahvaljujuci matematickom modelu za rangiranje stranica. Ako hoces da vidis kako to zaista radi google i nadjes nekoliko radova o page rank algoritmu videces da u tim radovima ima gomila teske linearne algebre. Ili recimo moj primer: trenutno u firmi se bavim podesavanjem edit cost parametara za string distancu koju koristi fuzzy dictionary/spell checker. Skinuo sam par radova da vidim kako se to moze automatizovati, da ti vidis burazeru kolika je tu kolicina matematike, dokaza zasto taj algoritam radi, dokaza za koliko ce vremena nabosti parametre, pored toga i sami algoritmi nisu napisani u nekom pseudo kodu nego se podrazumeva da se oni mogu napraviti iscitavanjem i razumevanjem matematickog modela. STOGA opet ponavljam, ZA OZBILJNO PROGRAMIRANJE TREBA OZBILJNO ZNANJE MATEMATIKE, i to me ne moze niko razuveriti. Insistirati na suprotnome znaci OSTATI OSREDNJI SLJAKER. Stoga opet ponavljam za one koji bi zeleli da se bave programiranjem: Ako zelite da se bavite programiranje razvijajte do krajnjih granica svoj ALGORITAMSKI NACIN RAZMISLJANJA *umetnost*, tehnika ce doci vec praksom.


I na kraju mislim da se ovaj forum zove ART OF PROGRAMING, a vecina posterasa ovde razmislja kao PROGRAMERI BANDERASI...
[ FuzzyCreation @ 06.10.2006. 11:20 ] @

I da, a to sto ti podrazumevas pod WEB programiranjem jeste realizacija citavog informacionog sistema koji ima web interfejs, sto nije WEB programiranje...
[ genuine @ 06.10.2006. 13:56 ] @
razumem sta zelis da mi kazes... jedan moj drug koji je trebao da radi mozda za bas tu firmu u kojoj ti radis je dobio je test da na prozivoljnim slikama odredi da li imaju nebo ili ne, da recenice kojih ima 8 GB stavi u neku strukturu koja ima max 2GB kojoj se pristupa sa dva upita od kojoh je jedan dodaj a drugi ispitaj da li postoji u strukturi recenica i sl. treceg pitanja se ne secam.. i slazem se da jeste drugaciji pristup od pristupa kojim se ja bavim ali ako pogledas sa druge strane svi programeri ili bilo koji inzinjeri polaze od jedne osnove ispod koje ih ne zanima sta se nalazi... recimo kada ti napises neki algoritam tebe ne zanima kakav je on sto se tice cold,capacity,conflict i coherence miseva kod kesa multiprocesora , kada napravis stablo tebe ne zanima da li pri prelazu sa cvora na cvor generises veliki saobracaj na magistrali smp-a ili ne i sl.. recimo tu bi bio posao nekog drugog da tvoj algoritam prilagodi zeljenoj platformi i taj posao itekako nije naivan.
naravno da ces ti uticati na red slozenosti izvrsavanja algoritma tipa umesto n^2 -> nlogn ( npr. fft ) ali zahvaljujuci drugim inzinjerima taj nlog(n) ima mnogo manji konstantni deo kada se ukljuci i poznavanje hardware-a..isto tako da li poznavanje rada mikroprocesora, deljenog bus-a i sl. gluposti utice na kvalitet tvog programa...odgovor je da za konstantni deo u slozenosti ali globalno ne.. isto tako ja mogu da napravim kompajler i ako ne poznajem potpuno rad leksickih analizatora i parser-a i da to bude solidan kompajler ...( ne kazem da ne znam kako rade samo navodim kao primer ).. za google znam koliko je slozen, na primer samo problem nalazenja slicnih reci moze da bude veoma zeznut ( tipa. windop -> window i sl.) ali google ne bi ni postojao da radi samo jedan racunar sa jednim procesorom i matematickim modelom bez operativnog sistema tako da ipak treba da se ceni i to sto su drugi omogucili tebi api i platformu da bi napravio to sto jesi ( bez obzira koliko se tebi to cini za beznacajno)
[ FuzzyCreation @ 06.10.2006. 16:02 ] @

Takodje mislim da pravi ozbiljni programeri vise vremena provode brckajuci i menjajuci tudje biblioteke, jer im ili biblioteke ne daju onakvu funkcionalnost kakvu zele ili ako su dovoljno opste onda u vecini slucajeva nisu dovoljno efikasne u kontekstu koji im je unapred zadat. Tako da hteo ne hteo moras zavireti pod haubu ukoliko zelis ozbiljan proizvod. (opet primer kod mene u firmi za nase potrebe promenili smo pola lucene biblioteke, menjali monq biblioteku, menjali lingpipe, utilitije iz Nutch koda i jos dosta stvari...).

Eto lepo si se setio: problem nalazenja slicnih reci je veoma zajeban MATEMATICKI problem. I takvih problema imas na svakom koraku, a upravo resenje tih problema cini da tvoj softwer bude top. Jer resiti tehnicki problem manje je zajebano nego resiti idejni. Zato opet kazem ne insistirati na tehnici, nego na idejama, algoritamskom nacinu razmisljanja do krajnjih limita.

Ja nikada nisam rekao da ne cenim to sto je neko napravio biblioteku i dao nam api. Ali se mora znati sta su prioriteti, posebno u topicu gde raspravljamo o tome kako nauciti programirati i sta je to programiranje zapravo. Nije nikakva mudrost za potrebe svog projekta iskoristiti neku biblioteku ako ti odgovara niti se u razvoj projekta krece tako sto ce neko sesti pa reci: ja zelim da napravim ovo, kada zavrsimo to ce biti najbolje resenje, ajde da vidimo koje cemo sve biblioteke da koristimo. To nije dobar princip, mislim da je bolji ovaj,
ja zelim da napravim ovo, kada zavrsimo to ce biti najbolje resenje, ajmo prvo da vidimo kako cemo da resimo problem i da osmislimo matematicki model resenja. U fazi implementacije ce doci trenutak kada ce trebati da se odradi neka minorna stvar u projektu, a gotovo resenje za to postoji pa cemo uzeti to resenje. No resenje problema nije resenje minornih stvari, nego resenje centralne stvari za koju ne postoji drugo resenje sem naseg.

Ali, GOOGLE ne bi bio ni u NAJAVI da nije bilo matematickog modela za rangiranje stranica. Naci operativni sistem na kome ce se on izvrsavati, tu nije bio nikakav problem jer je bilo moguce birati izmedju nekoliko solucija. Medjutim kada se trebao birati model za rangiranje stranica nije bilo nikakvih solucija. Tako da to zaista jesu beznacajne stvari.



[ Marko_R @ 07.10.2006. 23:42 ] @
Citat:
BrokeBody:
ako znas principe programiranja onda ti je sve jedno dali radis adu, c++, asmbler, perl..ili nesto sasvim deseto, (izuzetci su ovi sto pohadaju razne kurseve programiranja).


Sto?

To ti je kao ona izreka "naučio si Slack, naučio si linux)". Taj koji ode na kurs za C#, naučiće C#, ali će mu to manje pomoći da nauči neki drugi jezik. Ko nauči principe programiranja, on onda samo posle treba da vidi kako se ti principi ostvaruju u konkretnom jeziku. Ja sam npr. samostalno u firmi naučio jezik koji koristimo, bez veće muke, jer imamo dosta dobar Reference Manual, dok su programerke koje su radile pre mene išle na obuku, a neke i pored toga nisu ništa naučile.

Osim toga, bitno je da naučiš da razmišljaš, jer samo tako možeš da se snađeš u novim situacijama. Takođe, vrlo je bitna i kreativnost. Programer u kreativnom procesu će stvoriti kvalitetniji program, a sam rad će mu pružiti više zadovoljstva.

Programiranje može biti zanat, i za mnoge to jeste, ali čisto sumnjam da oni mogu na pravi način taj posao da zavole, i da u njemu uživaju. A takmičenja su vrlo bitna, jer se na taj način vežba sposobnost mišljenja koje je vrlo bitno.

Da se razumemo, kad kežem da je bitno teoretsko znanje, ne mislim nabubati ispit koji se zove "Principi programiranja", jer takvo znanje nije pravo znanje, ono ne proizvodi sposobnost mišljenja, a još manje kreativnog mišljenja. Osim toga, bitno je naravno i naučiti i konkretan jezik i steći neko iskustvo.

Citat:
Podelu na kodere i software injzinjere su smislili oni koji su unistili programiranje kao
umetnost i od nje napravili zanat (a i dalje prave). Formalizovati proces, u 99% slucajeva
znaci ubiti kreativnost, a povecati produktivnost.

E ovo je vrlo bitna rečenica i zaslužuje posebnu pažnju. Potpuno je tačno da savremena organizacija rada uništava kreativnost, ali treba imati u vidu da nije svako kreativan. A takvih je 90%. I da bi iskoristili tih 90%, oni su smislili sistem koji njima odgovara. I eto problema za onih najkvalitetnijih 10%. To je veliki problem, ali se može rešiti, ali je potrebno da mu rukovodioci pridaju dovoljan značaj.
[ genuine @ 08.10.2006. 12:21 ] @
prvo ne znam sta vi smatrate pod kreativno.. na takmicenjima iz informatika ne izmisljate nove algoritme nego uvezbavate one koje ste naucili iz struktura podataka i algoritama, dinamickog programiranja i sl.. ako ste kreativan programer koji izmislja algoritme objavite rad u IEEE . poznavanje algoritama jeste potreban uslov kao i poznavanje hardware-a, objektno orijentisan principa , projektnih uzoraka, matematike i sl. i to sto kazete zanat, pa tako bi neko rekao i za vas i vas posao, ko je bolji od vas a uvek ima i dobrih i losih
[ DjoleReject @ 11.10.2006. 16:12 ] @
Kreativnost moze da se rodi iz ogromnog iskustva i rada s jedne, ili nepoznavanja materije s druge strane. Nekako mi se uvek desavalo da naidjem na "kreativce" koji su kreativni zato sto jednostavno nisu svesni da je neko vec resio problem koji oni "kreativno" resavaju. Iako sam ja poslednji koji ce osporiti potrebu za inteligencijom i dobrom resavanju neocekivanih situacija, praksa kaze da je ipak 90% problema vezanih za matematiku o kojoj mi ovde pricamo vec neko odlicno optimizovao. Ako ti znas da sortiras niz na 10 najpoznatijih nacina i znas zasto jedan ima prednost nad drugim, tesko da ti treba kreativnost sa kojom ces naci jos neki nacin da sortiras intidzere. Ako to radis - uglavnom spadas u glupane, a ne kreativce.
Postoji prostor u kome je kreativnost potrebna, ali on zauzima jako mali procenat ukupnog posla. Pogledajte primer nekoga ko pise doktorat iz matematike na temu teorije algoritama. Zar mislite da ce vase resenje biti bolje od njegovog ako vam ta teorija algoritama zauzima 20% posla kojim se bavite (dok je njemu 100% koncentracije otpada na to). Najvece dostignuce nauke je u tome sto ljudi koriste znanja drugih u svom radu, inace bi stalno imali novu generaciju koja izmislja tocak!
Naravno, da biste uspesno koristili tudja postignuca potrebno je da budete jako inteligentni, potkovani i kreativni, samo to nije kreativnost o kojoj vecina razmislja kad kaze "kreativno".

P.S. - Vecina "gurua programiranja" cije reci se uzimaju kao biblija, se sa programiranjem srela na fakultetu (oko 18 god.), ne zato sto nisu hteli ranije, nego zato sto je bilo drukcije vreme. Mada je sada situacija takva da mozda ima vise stvari za nauciti, izuzetno je plitko i bezobrazno reci da neko od 18+ godina nema sta da trazi u svetu programiranja.
[ FuzzyCreation @ 11.10.2006. 17:21 ] @

Pa nije bas u svim slucajevima glupost kada pravis svoj algoritam za sortiranje. Recimo da imas neki problem u kome treba da sortiras integere i znas da ti ti integeri zadovoljavaju neke zakonitosti koje se ne pretpostavljaju u fundamentalnim sort algoritmima a da se ta zakonitost moze iskoristiti u procesu sortiranja za ubrzanje.

O kojoj kreativnosti vecina misli i sta pod time podrazumeva? (objasni se)

Brojka od 90% je neka empirijska?

Matematicar koji pise disertaciju iz teorije algoritame jeste jako pametan i inteligentan covek, no on pred sobom vidi samo matematicki problem koji je dovoljno opst da se da resavati kroz formalizme koje on poznaje. Pored toga on se jako trudi da taj problem zakomplikuje time sto ce ga jos poopstiti. Sa druge strane programer ima isti takav problem, medjutim njegov problem je vezan za specifican kontekst. On ce naravno da procita rad matematicara, razumece ga i potrosice svoje mozdane celije da ga prilagodi svom kontekstu, sto u velikoj meri podrazumeva menjanje nekih delova modela, sto je isti izliv kreativnosti samo u suprotnom smeru.

Najvece dostignuce nauke nije u tome sto naucnici prave bolje i bolje modele od vec postojecih (sto si ti rekao), nego se trude da naprave model koji ce modelovati veci broj fenomena (skupa svih mogucih slucajeva u prostoru problema) od postojeceg najboljeg modela. Istorija je pokazala da top modeli najcesce u osnovi nemaju nista zajednicko sa prethodnim modelima koji su modelovali istu stvar (samo malo losije). Argument "inace bi imali stalno novu generaciju koja izmislja tocak" je bio validan do pojave Karla Popera. On je oborio tu argumentaciju. Stoga i treba non stop da izmisljamo tocak, jer nije stvar u tocku, nego u podlozi, nije stvar u modelu nego u skupu fenomena koji se modelira, koliko god taj model bio uspesan i estetski lep. Inace da se ne razumemo pogresno, nemam nista protiv toga da neko koristi necije tudje znanje, ali to ne treba da radi apriori. Opet jedno je koristiti, a drugo razumeti i prilagoditi svom kontekstu.

Inace kreativnost se ne meri KVANTITATIVNO, nego KVALITATIVNO. Stoga krajnje nije bitno koliko si ti vremena potrosio na kreativan rad u celom projektu, nego je bitno kakav model na kraju IMAS. Ako se OZBILJNO bavis nekim problemom kao programer, najvesce neces imati vec GOTOV model koji ces samo implementirati ili je vec implementiran a ti samo iskoristis biblioteku (mislim da sam o tome govorio u nekom od prethodnih postova)
[ Marko_R @ 12.10.2006. 22:51 ] @
Citat:
Kreativnost moze da se rodi iz ogromnog iskustva i rada s jedne, ili nepoznavanja materije s druge strane. Nekako mi se uvek desavalo da naidjem na "kreativce" koji su kreativni zato sto jednostavno nisu svesni da je neko vec resio problem koji oni "kreativno" resavaju. Iako sam ja poslednji koji ce osporiti potrebu za inteligencijom i dobrom resavanju neocekivanih situacija, praksa kaze da je ipak 90% problema vezanih za matematiku o kojoj mi ovde pricamo vec neko odlicno optimizovao. Ako ti znas da sortiras niz na 10 najpoznatijih nacina i znas zasto jedan ima prednost nad drugim, tesko da ti treba kreativnost sa kojom ces naci jos neki nacin da sortiras intidzere. Ako to radis - uglavnom spadas u glupane, a ne kreativce.

Nekad je bolje smisliti samostalno rešenje nego prevrtati u literaturi u nadi da je neko to već rešio. To se isplati samo ako ti za rešavanje tog problema treba suviše vremena.
[ ntojzan @ 13.10.2006. 05:31 ] @
Citat:
P.S. - Vecina "gurua programiranja" cije reci se uzimaju kao biblija, se sa programiranjem srela na fakultetu (oko 18 god.), ne zato sto nisu hteli ranije, nego zato sto je bilo drukcije vreme. Mada je sada situacija takva da mozda ima vise stvari za nauciti, izuzetno je plitko i bezobrazno reci da neko od 18+ godina nema sta da trazi u svetu programiranja.


Nije plitko niti bezobrazno, nego prosto ako pocnes da ucis sa 18, a krenes da radis sa 25 imas samo 7 godina da naucis sve sto je potrebno (zapravo ne da naucis, nego vise da steknes nacin razmisljanja), a neko ko je poceo sa 11 je imao duplo vise vremena za tebe (i verovatno je i mnogo veci zaludjenik od tebe). Njima je bilo lakse da pocnu sa 18 god posto nije bilo freakova koji su poceli da programiraju u pelenama.
[ genuine @ 14.10.2006. 13:19 ] @
za sve postoji svoje vreme pa i za programiranje... potrebno je samo malo raditi u srednjoj skoli i dovoljno je.... to sto su neki po ceo dan programirali umesto da rade nesto korisno u zivotu kao na primer da sazrevaju je njihov problem :)
[ FuzzyCreation @ 14.10.2006. 14:33 ] @

for (ntojzan)

Mislim da je pogresno programiranje dozivljavati kao takmicarsku disciplinu, znaci kada se razvijas kao programer razvijas sebe u odnosu na sebe ne u
odnosu na druge. Tvoja prica je jako generalizovana, i generalno optimizovana sa stanovista vremena, a parametara tu jos ima, a ceo sistem svakako nije linearan.

for (Marko_R)

Svaki programer treba da se skoluje tako da ima sposobnost da kada mu se da problem u vremenu od odmah treba da kaze: da, to moze da se implementira ili ne to ne moze da se implementira a potom jako brzo da nadje resenje tog problema ukoliko slican vec postoji. A i literatura se ne pretrazuje sekvencijalno To se isplati jedino ako ne postoji zadovoljavajuce resenje, ne ako ti treba suvise vremena. Ako je obrnuto ti onda nisi ozbiljan programer nego najobicniji sarlatan koji se samo trudi da sklepa nesto i sto brze isporuci ne bi li zadovoljio rokove kapitalizma.
[ Relaja @ 14.10.2006. 15:36 ] @
Citat:
FuzzyCreation: for (ntojzan)

Mislim da je pogresno programiranje dozivljavati kao takmicarsku disciplinu, znaci kada se razvijas kao programer razvijas sebe u odnosu na sebe ne u
odnosu na druge. Tvoja prica je jako generalizovana, i generalno optimizovana sa stanovista vremena, a parametara tu jos ima, a ceo sistem svakako nije linearan.


cinjenica je da programiranje postoji kao takmicarska disciplina i mi to tesko mozemo da promenimo.
A ne znam zasto ljudi imaju nesto protiv ovakve vrste takmicenja.
Zar se treba gledati samo materijalna strana!?

Ako je to tacno, zasto onda ne treba gledati programiranja malo i sa takmicarske strane..
To je svakako najbolji nacin za razvijanje programerske logike.

p.s. nisam procitao sve postove , ali se generalo obracam svima koji "napadaju" ovu "takmicarsku" stranu programiranja.
[ Marko_R @ 14.10.2006. 16:24 ] @
@Fuzzy: Kad bi ti uvek znao unapred da li neki problem možeš da rešiš to bi bilo mnogo dobro, ali ne verujem da je to uvek moguće. Nekad treba pokušati, pa ako ne ide, onda na druga sredstva. Ja sam išao na takmičenja i mislim da to nije uvek moguće. Onda ti se nikad ne bi desilo da potrošiš vreme na bezuspešno rešavanje nekog zadatka, a mislim da se to može svakom desiti.

Citat:
A i literatura se ne pretrazuje sekvencijalno

Nisam nikad tražio. Može li da se nađu takva rešenja na internetu?

Citat:
To se isplati jedino ako ne postoji zadovoljavajuce resenje, ne ako ti treba suvise vremena. Ako je obrnuto ti onda nisi ozbiljan programer nego najobicniji sarlatan koji se samo trudi da sklepa nesto i sto brze isporuci ne bi li zadovoljio rokove kapitalizma.

Gledaj, ti si potpuno u pravu, ali gorka činjenica je da kapitalizam traži upravo takve koji će da sklepaju što pre, jer vreme je novac, a ako to radi, mušterija nema pojma da li je to rešeno lepim ili ružnim algoritmom.

Citat:
Relaja: A ne znam zasto ljudi imaju nesto protiv ovakve vrste takmicenja.
Zar se treba gledati samo materijalna strana!?

Ja mislim da generalno takmičenje je dobra stvar za đake, ali da je posle bitan realan uspeh.
[ ntojzan @ 15.10.2006. 08:45 ] @
@FuzzyCreation:

Zapravo sta god ti radio u zivotu, ti se takmicis. Pa tako i programiranje jeste takmicarska disciplina, gde se takmicis za bolji posao, vecu platu, itd.
[ genuine @ 15.10.2006. 21:43 ] @
ja se ne takmicim.. cilj mi je da ispunim svoje kriterijume sto se tice kvaliteta software-a i hardware-a koji zelim da napravim ..... konkurencije uvek ima ali svaka krpa uvek nadje svoju zakrpu pa tako i ovde
[ FuzzyCreation @ 16.10.2006. 17:32 ] @
for (ntojzan): Da takmicis se ali sam sa sobom, ne u odnosu na druge... Stoga buducnost planiras u odnosu na sebe, a ne u odnosu na druge, a to sam hteo da kazem.

for (geniunie): Slazem se u potpunosti. Racunarstvo se toliko razgranalo i tesko da mozes naci vise od par ljudi koji se ozbiljno bave jednom tematikom. Stoga prioritet jeste kvalitet a ne vreme. Mozes sklepati jednom, drugi put vec nece proci.

for (marko_r): ja unapred za svaki problem znam da li moze da se resi ili ne. To ne znaci da ja znam kako se on resava istog trenutka. To je posledica velikog velikog treniranja algoritamskog nacina razmisljanja, do na krajnje granice izracunljivosti.
Sta nisi nikada trazio? (nisam te razumeo)

for (relaja): ipak bolje procitaj prethodne postove. Materijalne dobiti su uglavnom posledica takmicenja, jer neko organizuje takmicenje i placa pobednike (kada ovo kazem mislim u najsirem smislu te reci, ne odnosi se samo na informaticka takmicenja srednjoskolaca). Ja sam upravo sve vreme govorio u drugom pravcu. A takmicenje koje sam pomenuo je u skroz drugom kontekstu.
[ cynique @ 18.10.2006. 01:37 ] @
Sept. 2003, Communications of the ACM, special section on "Why Universities Require Computer Science Students to Take Math."

10 stranica, izgleda kao shit jer je PDF printan iz DjVu-a :/

http://www.megaupload.com/?d=PE2RBES1

I još jedan friško osvanuo tekstić na redditu (kao da mi autor čita misli :D):

Jaap Suter - Claiming back the meaning of Computer Science

[Ovu poruku je menjao cynique dana 18.10.2006. u 14:24 GMT+1]
[ Marko_R @ 19.10.2006. 00:09 ] @
Citat:
FuzzyCreation: for (marko_r): Sta nisi nikada trazio? (nisam te razumeo)

Nisam nikada tražio tako neku naučnu literaturu preko interneta.
[ BGoran @ 23.10.2006. 00:43 ] @
Citat:
ntojzan: Nije plitko niti bezobrazno, nego prosto ako pocnes da ucis sa 18, a krenes da radis sa 25 imas samo 7 godina da naucis sve sto je potrebno (zapravo ne da naucis, nego vise da steknes nacin razmisljanja), a neko ko je poceo sa 11 je imao duplo vise vremena za tebe (i verovatno je i mnogo veci zaludjenik od tebe). Njima je bilo lakse da pocnu sa 18 god posto nije bilo freakova koji su poceli da programiraju u pelenama.


Halo, pametnjakovic jesi svjestan sta izvaljivas? Ne mogu vjerovat da su te pustili da ovako baljezgas bez veze, suteci i citajuci tvoje traljave komentare. Po tvojim komentarima u ovoj temi covjek bi pomislio da si osmislio sve vezano za informatiku, a ne da imas vishe postova u MadZone-u nego svi ostali zajedno sa ovog foruma. O kakvih 7 godina pricas? Jel uopste znas sta neko ko je sposoban, za razliku od tebe, moze da uradi za 7 godina? I kakve veze ovo sto ti pricas ima sa kursevima? Naravno da su kursevi odlicni za nekoga ko hoce da polozi neki sertifikat i zaradjuje normalno od toga. Mozda se iz iskustva da zakljucit da takvi ljudi nece postat experti, i radit u velikim kompanijama, ali koga zaboli za to? I onako nebi radili i da znaju puno vise od toga. Ovo je gore od rasprave VB vs. C++, (C++ je samo primjer..postoji jos tona toga) kada se nadje neki C++ ekspert i pametuje kako on ne moze uskladit svoje potrebe sa VB-om, mada nikad nije napiso program slozeniji od digitrona. I kao mrzi VB, ubijedljivo najbolji programski jezik za pravljenje windows aplikacija, zato jer je prelagan?! Naravno da C++ nudi neuporedivo vise mogucnosti nego VB, ali kakve koristi kad realno, niko od windows programera to nece iskoristiti, niti mu treba.
Naravno da je onda za njega VB puno bolja stvar. Isto kao sto je za Microsoftovog programera neuporedivo bolji C, kojeg je smijesno poredit sa VB-om. Otisao sam malo OT, ali samo malo, pa moze da prodje. Pozz, Goran.



[Ovu poruku je menjao BGoran dana 17.11.2006. u 16:19 GMT+1]
[ genuine @ 25.10.2006. 01:58 ] @
bolje je poceti kasnije na sistematican i "ispravan" nacin , nego ranije na pogresan... kao i sve druge stvari u zivotu i ovde postoji i pozitivno i negativno iskustvo... negativno iskustvo ne sluzi ni za sta ....
[ negyxo @ 25.10.2006. 10:09 ] @
Citat:
BGoran: Halo, pametnjakovic jesi svjestan sta izvaljivas? Ne mogu vjerovat da su te pustili da ovako baljezgas bez veze, suteci i citajuci tvoje traljave komentare. Po tvojim komentarima u ovoj temi covjek bi pomislio da si osmislio sve vezano za informatiku, a ne da imas vishe postova u MadZone-u nego svi ostali zajedno sa ovog foruma. O kakvih 7 godina pricas? Jel uopste znas sta neko ko je sposoban, za razliku od tebe, moze da uradi za 7 godina? I kakve veze ovo sto ti pricas ima sa kursevima? Naravno da su kursevi odlicni za nekoga ko hoce da polozi neki sertifikat i zaradjuje normalno od toga. Mozda se iz iskustva da zakljucit da takvi ljudi nece postat experti, i radit u velikim kompanijama, ali koga zaboli za to? I onako nebi radili i da znaju puno vise od toga. Ovo je gore od rasprave VB vs. C++, (C++ je samo primjer..postoji jos tona toga) kada se nadje neki C++ ekspert i pametuje kako on ne moze uskladit svoje potrebe sa VB-om, mada nikad nije napiso program slozeniji od digitrona. I kao mrzi VB, ubijedljivo najbolji programski jezik za pravljenje windows aplikacija, zato jer je prelagan?! Naravno da C++ nudi neuporedivo vise mogucnosti nego VB, ali kakve koristi kad realno, niko od windows programera to nece iskoristiti, niti mu treba.
Naravno da je onda za njega VB puno bolja stvar. Isto kao sto je za Microsoftovog programera neuporedivo bolji C++, kojeg je smijesno poredit sa VB-om. Otisao sam malo OT, ali samo malo, pa moze da prodje. Pozz, Goran.


Nema potrebe za ovakvim prozivanjem, samo ce te prosiriti temu na medjusobno prepucavanje.

4 BGoran
Niko ovde ne spori da onaj ko je sposoban nece uspeti da savlada materiju, tj. programiranje. Ali ostaje fakat da onaj ko pocne ranije ima prednost, jer 7 godina nije mala stvar, pogotovo ne u programiranju. Ustvari ja bi rekao da mu to dodje kao prirodni filter, jos sa nekih 10, 11, 12 godina se iskristalise koga zanima a koga ne, drugim recima oni klinci kojima se svidja programiranje se, jednostavno, pronadju u toj oblasti.

A sto se tice poredjenja VB i C++, bolje odustani u startu. Tu se samo odajes da nisi uopste programirao u C++, pa zato nema ni svrhe da uporedjujes ta dva jezika.
[ BGoran @ 25.10.2006. 10:31 ] @
4 negyxo
Ja nemam pojma zasto si stavio "4 goran" i citiro moju poruku, kad tvoj odgovor nema nikakve veze sa onim sto sam ja napis'o?!
Procitaj i moj i svoj post opet, pa ces vidjet sta si napis'o. I da, u pravu si, nisam nikad radio u C++, al' sam onako u prolazu procito nesto o njemu, i to mi je dovoljno da donesem zakljucak kakav je i za koga je. Al' posto vidim da si ti jedan C++ expert, necu da se gonim sa tobom. Ako si ti reko da je bolje odustati, onda cu tako i da uradim.
[ Marko_R @ 25.10.2006. 13:21 ] @
Neke stvari se lakše uče kad si mlad, to je činjenica, posle se čovek teže navikava na nov način razmišljanja. Ali ipak mislim da 19-20 godina nikako nije kasno.
[ DjoleReject @ 28.10.2006. 13:51 ] @
Tacno tako - neke stvari se lakse uce kad si mlad. S tim sto mladost za ovakav tip ucenja nije 5 nego 20 godina. Jeste li videli kako deca uce strani jezik? Ostavis ga mesec dana u Nemackoj i prica k`o Svaba. Ali isto tako, mozes ga ostaviti sa knjigama vise matematike i on nema sanse da shvati o cemu se tu radi. Nivo apstrakcije je mnogo veci, pa se moze reci da takve nauke zahtevaju odredjenu zrelost mozga koja se stice samo godinama zivota.

Citat:
ntojzan: @FuzzyCreation:

Zapravo sta god ti radio u zivotu, ti se takmicis. Pa tako i programiranje jeste takmicarska disciplina, gde se takmicis za bolji posao, vecu platu, itd.


Ako si mentalno, emotivno i intelektualno sazreo, sigurno se ne takmicis ni sa kim. Jedini oblik takmicenja koji ce te unaprediti (a ne napraviti iskompleksiranu, preambicioznu spodobu) je unapredjivanje samog sebe, uporedjujuci svoje sposobnosti sa zeljama.
Primer: Ako pozelis da naucis C++ zato sto ti smetaju neka ogranicenja VB-a koji vec znas, ti uzmes, naucis i shvatis da si nakon ovog poduhvata postao bolji programer i pametniji covek (ubedjen sam da nas svako saznanje cini i globalno pametnijima). Bolji posao, veca plata i slicne stvari dolaze same po sebi.
Kontra-primer: Gledas Java programera koji ima vecu platu od tebe i pokusavas da dokazes kako si bolji od njega. Napusavas ga po forumima jer zna nesto sto ti ne znas i naucis tek toliko jezika da bi mu rekao - garbidz kolektor u Javi je s*****, s**** ti se na taj jezik. Ovime postajes losiji covek i veci glupan, ali te mnogi smatraju pametnim, dok u realnosti nemas ni teoretsku sansu da smanjis svoj koeficijent gluposti.
[ genuine @ 30.10.2006. 22:32 ] @
Slazem se....
[ Minote @ 05.02.2007. 01:24 ] @
uzivao sam citajuci ovu kvalitetnu raspravu, mada se na kraju malo uzburkalo -:) , no dobro...

Glasam ipak za temeljno informaticko obrazovanje. Upoznavanje sa principima i tehnika. Osim toga ja ne znam sta bi drugo i moglo da se predaje na visokim naucnim ustanovama jer ima toliko toga da covek na I. godini faxa nema zapravo blage veze cime ce se baviti i sta ce biti jel trend za 5, 6 godina.

Kasnije, nekom ce teorija trebati vise i nece mu biti dovoljno ni to sto je naucio, a neko ce raditi posao za koji bi mu i osnovna skola dovoljna.

Sto se tice kurseva, naravno to je danas imperativ, ali najbolje ako te firma posalje. Mislim, mnogi ljudi idu na kurseve da bi popunili CV, a firme svejedno vise vole skolovanog strucnjaka da prime pa ako i zatreba da ga posalju na kurs, ne znam: Cisko, MSCE, Java...




[ cynique @ 05.02.2007. 22:10 ] @
Još malo konkretnijeg ranta na JavaSchools (skrolajte malo, tko ne poznaje Scheme):

http://lists.gnu.org/archive/h...ile-user/2007-02/msg00000.html