Početak›Forumi›Linuks›Programiranje›Kursevi i fakulteti
- This topic has 42 odgovora, 16 glasova, and was last updated 17 years ranije by BrokeBody.
-
AutorČlanci
-
22. septembar 2006. u 12:55 am #48070BrokeBodyUčesnik
Pa mlad je faks. 🙂 Postoji od 2003. Do ovog leta je bio samo koledz (visa skola) i trajao je samo 2 godine, a od ovog leta je visokoskolska ustanova, pa ima status univerziteta, tako da po Bolonjskoj i Lisabonskoj Deklaraciji faks traje 3 godine. Imas 4 smera tamo: Aplikatvino Programiranje, Internet Programiranje, Informacione Sisteme i IT Menadzment. 😉
Ja sam na Aplikativnom Programiranju.
23. septembar 2006. u 5:56 pm #48071civanUčesnikRadio isto i gotovo nikad primenio. Ja, pošto sam u ovome još od AT286-12 (ovo 12 je megaherca) računara, i jesam malo radio asembler, mnogo C i učio asistenta istom, ali *NIX sistemsko programiranje nikad, Javu malo, a Prolog, Lisp, Lex i Yacc samo na papiru, za ispit.
I ja sam od tada u ovim vodama… cak i malo ranije (Commodore). Prolog ne ocekujem da ce mi ikada zatrebati tako da o njemu necu ni govoriti. Lisp mozda – koristi se u razvoju mnogih programa danasnjice.
Lex i Yacc su jedne od najkorisnijih stvari koje sam do sada dotakao – uzmi da napises XML parser bez njih i sa njima pa ces videti na sta mislim. (radio sam i jedno i drugo jer mi je bilo potrebno da imam lightweight parser u nekim slucajevima)
Samo da napomenem i to da sam kad sam radio parser bez Lex-a i Yacc-a, znao dosta teorije/principa parsiranja. Kako bi to izgledalo nekome ko je naucio da programira zanatski?Asemblerova poenta i nije da u njemu znas da ispises svoje ime (mada nije problem uraditi), poenta je u optimizaciji nekih izracunavanja i slicnog – verovatno nikad neces ceo program raditi u asembleru.
Od ostalih stvari, mislim da nema potrebe objasnjavati svrhu C-a, C++-a, Jave i sistemskog i mreznog programiranja.
Apsolutno [b]netačno[/b]! Iz obe pomenute oblasti imam konkretne programske probleme i ako ima zainteresovanih, “fakultetskih” programera (ne “zanatlija”), neka se jave. Ja, kao manje-više “zanatlija” se prilično teško, ali dosta dobro nosim sa pomenutim problemima.
Nije mi bila poenta da kazem da se tu moze biti “zanatlija”, nego da ako igde moze, da moze jedino u takvim stvarima.
Upravo ovo je suština [b]neuspeha domaćih fakulteta[/b]! Svi su orjentisani pravljenju svemirskih brodova, a ne stvari iz okruženja! “search engines”? Da li će to neki naš “fakultetski” programer da napravi novi i bolji Google?
Stvari iz okruzenja!? Razmili koliki deo svetskog programiranja i vremena/para ode na “stvari iz okruzenja” koje ti spominjes. Prakticno nista.
Masine za pretrazivanje nisu samo internet pretrage i slicno. Za razne tipove i organizacije podataka su potrebna razlicita resenja sto se nacina pretrage tice. I tek da ti dam mali kontraprimer, kolega sa faksa (ista generacija kao ja – postaje apsolvent) je radio za stranu firmu na sistemu za pretragu.
Sto se tice ETF-a i slicnih fakulteta, oni su uvek i bili vise okrenuti hardveru nego pravom programiranju. To bi bilo kao da se neko buni sto na psihologiji nije ucio vise o tome kako se operise srce. (preterujem, ali mislim da je poenta jasna)
23. septembar 2006. u 9:05 pm #48072jbobanUčesnikI ja sam od tada u ovim vodama… cak i malo ranije (Commodore).
Davne 1986. godine sam kupio ZX Spectrum 48k O0. Za one malo mladje, 48k znači 48 kB memorije u koju je bilo smešteno: ROM, video memorija, BASIC interpreter, a ostatak na raspolaganju. Uglavnom sam pisao asembler programe i prvi put napisao liniju C koda. Inače, da bi se izvršio neki od #include trebalo je startovati kasetofon :-
Lex i Yacc su jedne od najkorisnijih stvari koje sam do sada dotakao – uzmi da napises XML parser bez njih i sa njima pa ces videti na sta mislim.
Nisam probao. XML parsovanje često i intenzivno koristim, a sa SAX (event handled) prešao sam na DOM (objektni) model i biblioteku XERCES.
Kako bi to izgledalo nekome ko je naucio da programira zanatski?
Nisam protiv teorije i poznavanja principa onoga što koristiš, ali je praktično moguće koristiti biblioteku za parsovanje XML ili bilo kojeg drugog formata, a da ne znaš ni šta je token.
Asemblerova poenta i nije da u njemu znas da ispises svoje ime (mada nije problem uraditi), poenta je u optimizaciji nekih izracunavanja i slicnog – verovatno nikad neces ceo program raditi u asembleru.
Vidiš, to je zanimljivo i sam sam dosta dugo razmišljao na takav način. Asembler sam najviše koristio za programiranje mikrokontrolera. Onda sam počeo da koristim C kompajer i uvek pratio paralelno generisani asemblerski kod i došao do zaključka da su optimizacije koje kompajler u današnje vreme radi tolike da je kod optimalniji od pisanog u asembleru. On globalno posmatra korišćenje registara, ograničenog prostora memorije, radi reorganizaciju petlji, blokova programa i sl. Gledano u vrlo malom delu programa, moguće je da bi čovek u asembleru izveo neku majstoriju i uštedeo neki mikrosekundu, ali to je zanemarljivo, a treba sagledati i malo šire šta to povlači.
Stvari iz okruzenja!? Razmili koliki deo svetskog programiranja i vremena/para ode na “stvari iz okruzenja” koje ti spominjes. Prakticno nista.
Ne bih se složio. Sigurno 90% programera kod nas i programa koji se pišu kod nas su knjigovodstveni programi. Ja sam nekoliko godina radio CAD specific programe za velike svetske firme tipa Boeing, GM, Dell, Bosch, Renault i sl. pa znam da je programera za takvo nešto bilo nemoguće naći ni pomoću trikova.
Masine za pretrazivanje nisu samo internet pretrage i slicno. Za razne tipove i organizacije podataka su potrebna razlicita resenja sto se nacina pretrage tice.
Navedeno je kao primer, ali i dalje mislim da je programiranje pretrage na najnižem nivou iluzorno kod postojećih baza podataka, biblioteka za B stabla, pomenuto XML parsovanje i sl. Ne treba uvek iznova izmišljati toplu vodu. Treba je koristiti.
I tek da ti dam mali kontraprimer, kolega sa faksa (ista generacija kao ja – postaje apsolvent) je radio za stranu firmu na sistemu za pretragu.
Verujem da ima pojedinačnih primera, ali koliko još takvih znaš, a ja ću ti nabrojati programere knjigovodstvenih programa.
24. septembar 2006. u 8:30 am #48073civanUčesnikNisam probao. XML parsovanje često i intenzivno koristim, a sa SAX (event handled) prešao sam na DOM (objektni) model i biblioteku XERCES.
Sta ako nam je potreban samo neki sitni podskup XML standarda – da nam je samo XML organizacija fajla vazna, da nam nije bitno da li podrzava, na primer, cdata blokove ili nesto slicno. Vuci ceo XERCES ili QtXml je u tom slucaju iluzorno.
Nisam protiv teorije i poznavanja principa onoga što koristiš, ali je praktično moguće koristiti biblioteku za parsovanje XML ili bilo kojeg drugog formata, a da ne znaš ni šta je token.
E, to je ono gde smatram da prestaje programer i pocinje “programer”. Malo veca apstrakcija bi bila da neko ko zna da radi u Access-slicnim programima, da tvrdi da je programer.
današnje vreme radi tolike da je kod optimalniji od pisanog u asembleru. On globalno posmatra
Vecinom se slazem. Ali se ne sme zaboraviti da ljudi koji rade kompajlere znaju savrseno sve osobine preocesora za koji rade. Kad bi oni uzeli da pisu taj asemblerski kod, mislim da bi bio efikasniji.
Ne bih se složio. Sigurno 90% programera kod nas i programa koji se pišu kod nas su knjigovodstveni programi. Ja sam nekoliko godina radio CAD specific programe za velike svetske
Kljucna rec (dve reci) je “kod nas”.
Navedeno je kao primer, ali i dalje mislim da je programiranje pretrage na najnižem nivou iluzorno kod postojećih baza podataka, biblioteka za B stabla, pomenuto XML parsovanje i sl. Ne treba uvek iznova izmišljati toplu vodu. Treba je koristiti.
Da je iluzorno, to ne bi (u raznim vidovima) bilo jedna od najaktivnije razvijanih grana racunarstva danasnjice. Naravno, kad je moguce koristiti efikasno neku biblioteku, najbolje resenje je koristiti je (ako biblioteka valja).
Sto se tice preteranog koriscenja tudjeg koda, sta mislite koliko je ljudi iskoristilo
http://windowssdk.msdn.microsoft.com/en-us/library/ms686866.aspx
u svom programu? Ako je neko pravi programer, ovakvo nesto u zivotu ne bi napisao – obratiti paznju na poziv strncpy funkcije.24. septembar 2006. u 5:11 pm #48074jbobanUčesnikSta ako nam je potreban samo neki sitni podskup XML standarda – da nam je samo XML organizacija fajla vazna, da nam nije bitno da li podrzava, na primer, cdata blokove ili nesto slicno. Vuci ceo XERCES ili QtXml je u tom slucaju iluzorno.
XML je uvek XML sa i bez korišćenja naprednih tehnika i pomenutih tag-ova. Razumem da nekad treba nešto i “ručno” parsovati i za tako nešto treba to i znati uraditi.
E, to je ono gde smatram da prestaje programer i pocinje “programer”. Malo veca apstrakcija bi bila da neko ko zna da radi u Access-slicnim programima, da tvrdi da je programer.
Kad pišeš naučni rad, na kraju pišeš reference, tj. literaturu koju si koristio. Smatraće te neozbiljnim ako nisi koristio do tad pronadjene metode, već ih otkrivao od nule. Dokle bismo stigli kad bi svi u svakom poslu kretali od nule? Code reusability je bitan element savremenog programiranja i ideja vodilja objektnog programiranja. Pisanje klase koja se može upotrebiti samo jednom je veliko gubljenje vremena.
Izraziti sam protivnik Microsoft razvojnih alata i jezika tipa Visual Basic, MS Access, ali ih ne bih potcenjivao. Nisu ni oni samo redjanje elemenata korisničkog interfejsa, koje je tu pojednostavljeno do savršenstva, već treba nešto uraditi i ispod da bi se dobila funkcionalnost.Ali se ne sme zaboraviti da ljudi koji rade kompajlere znaju savrseno sve osobine preocesora za koji rade. Kad bi oni uzeli da pisu taj asemblerski kod, mislim da bi bio efikasniji.
Ja ne mislim tako. Da li pisci programa za šah igraju bolje od svojih programa? ::) Ne treba posmatrati sitne elemente programa već globalnu organizaciju i raspodelu resursa, koju će za programe srednje složenosti teško neko sagledati i držati u glavi.
Kljucna rec (dve reci) je “kod nas”.
Da, ja živim i radim “kod nas”, većina članova ove liste živi i radi “kod nas”, dok će svaki pojedinac koji puca malo dalje, sam naći sebi put i bez čitanja redova ovog foruma i naših “bisera mudrosti” 🙂
Sto se tice preteranog koriscenja tudjeg koda, sta mislite koliko je ljudi iskoristilo
http://windowssdk.msdn.microsoft.com/en-us/library/ms686866.aspx
u svom programu?Ipak mislim da Microsoft u ovom primeru nije dao sve od sebe. Ovo je ipak samo primer koji objašnjava korišćenje API funkcija FindFirstFile, FindNextFile i FindClose, a nikako ne nešto što kao celinu treba koristiti. Iako sam protiv njih, odlično znam da oni mogu i bolje… O0
24. septembar 2006. u 7:02 pm #48075civanUčesnikXML je uvek XML sa i bez korišćenja naprednih tehnika i pomenutih tag-ova. Razumem da nekad treba nešto i “ručno” parsovati i za tako nešto treba to i znati uraditi.
Emo malo konkretniji primer – zamislimo da DTD za odredjen tip XML fajla propisuje da ni jedan tag nema atribute i da postoji samo jedan jedini tag koji se zove “cvor” – pamtimo na primer drvo celih brojeva u tom fajlu. Parser za taj tip XML fajla bi bio izuzetno kratak i efikasan. Koristiti biblioteku bi u tom slucaju bilo bacanje i vremenskih i memorijskih resursa. (ovakvi slucajeni uopste nisu retki)
Kad pišeš naučni rad, na kraju pišeš reference, tj. literaturu koju si koristio. Smatraće te neozbiljnim ako nisi koristio do tad pronadjene metode, već ih otkrivao od nule. Dokle bismo stigli kad bi svi u svakom poslu kretali od nule? Code reusability je bitan element savremenog
Opet izvrces moje reci. Ni u jednom trenutku nisam rekao “u svakom poslu”, ali dobar programer mora da bude u stanju da u poslu u kome mora da napise nesto od nule, da to uradi. Inace se ne moze nazvati dobrim programerom.
Ja ne mislim tako. Da li pisci programa za šah igraju bolje od svojih programa? ::) Ne treba
Razmisli malo. Ako programer doticnog programa moze da predstavi racunaru uputstvo kako da uradi nesto, mocice i sam da sledi to uputstvo. Jedina razlika je u vremenu potrebnom da se odigra jedan potez kod racunara i kod coveka. Ta stvar je i kod kompajlera – mnogo ce brze kompajler napraviti asemblerski (ili masinski) kod, ali ce i programer koji ga je napravio biti u stanju da napravi ne gori kod od toga.
Primer (malo vestacki, ali opet ima smisla):
Funkcija dobija 2 broja od 0-10. Zadatak je oba pomnoziti sa dva, inkrementirati i opet pomnoziti sa dva. C kod je
a *= 2; b *= 2; a++; b++; a *= 2; b*=2;
Kompajler ce ukapirati da mnozenje moze da uradi sa shlift left, ali posto ne zna da ce brojevi biti od 1-10 nece moci da koristi primitivnu obradu pakovanih podataka i da smisli da ‘a’ moze da smesti u al, a ‘b’ u ah i da uradi
shl ax, 2
inc al
inc ah
shl ax, 2Da, ja živim i radim “kod nas”, većina članova ove liste živi i radi “kod nas”, dok će svaki
Tema rasprave nije bila “da li bez obrazovanja covek moze kod nas da bude programer”. Ako se kod nas grade samo jednospratne kuce od blata, da li bi nazvao nekog ko ume da napravi takvu kucu dobrim gradjevincem!?
A sto se tice MS Access-a, da li bi nekog ko stavlja javor i ruzino drvo u masinu za pravljenje gitara i pritiska dugme “napravi”, nazvao graditeljem gitara? (ipak on zna gde tacno i kako da stavi sirovine…)
Ipak mislim da Microsoft u ovom primeru nije dao sve od sebe. Ovo je ipak samo primer koji objašnjava korišćenje API funkcija FindFirstFile, FindNextFile i FindClose, a nikako ne nešto što kao celinu treba koristiti. Iako sam protiv njih, odlično znam da oni mogu i bolje… O0
Nije mi cilj bio (bar ne mnogo 🙂 ) pljuvanje po M$-u, cilj je bio to da je takav kod sad ugradjen u mnogo programa zahvaljujuci “programerima”.
24. septembar 2006. u 7:33 pm #48076BrokeBodyUčesnikUh, prateci ovu vasu diskusiju, ponekad se vracam na ranije postove iz ovog topica da vidim sta je bese programer, a sta “programer”. 🙂 :p
24. septembar 2006. u 11:23 pm #48077jbobanUčesnik@BrokeBody
Moraš pažljivije da pratiš i obnavljaš gradivo 😎Emo malo konkretniji primer…
Da ne idemo predaleko, ako već nismo… Ovo su zaista krajnje specifični problemi i zahtevaju specifična znanja. Navedni XML primer je bolje rešiti specifično, ko ume, ali će ga nešto manje efikasno rešiti i onaj ko ne ume tako, korišćenjem odgovarajuće biblioteke uz gubitak nekoliko mikrosekundi i prednost eventualnog budućeg proširenja formata. Inače, kad god pišem programe, uvek planiram mogućnost proširenja, ponovnog korišćenja delova koda.
Jedina razlika je u vremenu potrebnom da se odigra jedan potez kod racunara i kod coveka.
Da, samo to. Opet suštinska stvar: vreme! Davno je prošlo vreme kada sam pisao programe za pomenuti ZX Spectrum i znao svaku asemblersku instrukciju, njenu dužinu u bajtovima i vreme izvršenja u mikrosekundama. Posle toga sam pisao program za evidenciju upisa učenika u srednje škole u C-u korišćenjem biblioteke za rad sa nekim oblikom baze podataka i nikad više! U medjuvremenu su ljudi radili Clipper i prodavali aplikacije. Vreme je, i u programiranju, novac.
Primer (malo vestacki, ali opet ima smisla):
Funkcija dobija 2 broja od 0-10. Zadatak je oba pomnoziti sa dva, inkrementirati i opet pomnoziti sa dva.Napiši isti za slučaj da su brojevi u formatu pokretnog zareza, što je generalizovan slučaj navedenog. C kod ne moraš. Isti je.
A sto se tice MS Access-a, da li bi nekog ko stavlja javor i ruzino drvo u masinu za pravljenje gitara i pritiska dugme “napravi”, nazvao graditeljem gitara? (ipak on zna gde tacno i kako da stavi sirovine…)
Pitanje je granice i dozvoljenih sredstava. Na sličan način ne bih ni C programera koji napiše [code]printf(“Hello, world!”);[/code] nazvao tako dok mi to ne izvede sa prekidačima u binarnoj logici 0 i 5V.
25. septembar 2006. u 8:20 am #48078civanUčesnikOdgovor na prve dve stvari. Ponekad nije zahtev “bilo bi lepo da se to brze izvrsava” ili “bilo bi lepo da je program mali”, ponekad su zahtevi “Program mora brze da se izvrsava” i “Program mora da bude manji od n kb” jer, na primer, mora da obradjuje signale koji mu stizu u onom navedenom formatu u realnom vremenu. Ako je XML parser 10 puta sporiji i 50 puta duzi od onoga sta nam je potrebno, onda ga ne mozemo koristiti. Ne kazem da se ovo cesto desava, ali programer mora da bude spreman da mu se nesto tako desi.
Isto je i za vreme potrebno za kompajliranje – ako je nesto kriticno (na primer racunanje FFT-a pri obradi signala koji smo ucitali iz onog gore XML fajla) i mora da se radi savrseno brzo, programerovo vreme ce biti zrtvovano da bi napisao optimalan asemblerski kod.
“Napiši isti za slučaj da su brojevi u formatu pokretnog zareza, što je generalizovan slučaj navedenog. C kod ne moraš. Isti je.”
Ne moras da mi objasnjavas prednosti viseg programskog jezika, ali nekad ih ne smes koristiti. Postoje slucajevi kada generalizovanost nije prioritet. Sto se tice onog koda samo sa pokretnim zarezom, znao bih kako da optimizujem koristeci SSE instrukcije, sto kompajler, opet, ne bi uradio.“Pitanje je granice i dozvoljenih sredstava. Na sličan način ne bih ni C programera koji napiše
printf(“Hello, world!”);
nazvao tako dok mi to ne izvede sa prekidačima u binarnoj logici 0 i 5V.”
Ovde se slazemo, samo je pitanje gde postaviti granicu. Da li nekog ko ume da koristi samo Access (paralela script-kiddie) nazvati programerom (paralela zli haker/kreker)? Moj odgovor je “ne”.14. decembar 2006. u 9:17 pm #48079zeenmcUčesnikPOzz
fax nije bitan za programiranje.sto neko rece odavde programiranje je umetnost,i zanat,diploma ti netreba da bi bio odlican programer,slazem se s tim da je ona samo ulaznica za neku kompaniju,al da li ces ostati u njoj ili ne,znanje se pita,sto naravno znaci da treba imati fax,ako bog da,nadam se da cu zavrsiti jos jedan fax i to neki koji ima veze s racunarskim naukama.
-
AutorČlanci
Moraš biti prijavljen da bi postavio komentar u ovoj temi.