Šta je novo?

Interesantni linkovi ...

Na Stanfordu postoji i predmet CS107 - Programming Paradigms. Ima na iTunes U (kao i gore pomenuti CS106a), a i na YouTube-u: http://www.youtube.com/view_play_list?p=9D558D49CA734A02

Na 27 predavanja (legendarni :D) profesor Jerry Cain tu predaje C (razne mahinacije sa memorijom), malo C++, Assembly, konkurentno programiranje (multithread) u C-u, Scheme i Python. Znači čovek razbija. :p
 
Malo cu slobodnije da shvatim naslov teme i okacim ovaj odlican clanak na koji sam slucajno nabasao (John Carmack je tvitovao link): http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/

Nije upustvo ali mislim da vredi procitati. Na temu weba i performansi programskih jezika.

Odlican, ali odlican! Dugo nisam procitao toliko opsiran, a da nije dosadan, clanak.

Nadovezao bih se, u slucaju da neko se jos bavi JS programiranjem, i dodao ova dva linka(defakto kompletne e-knjige):
http://eloquentjavascript.net/contents.html - Elokventni i funkcionalni JavaScript.
http://addyosmani.com/resources/essentialjsdesignpatterns/book/ - JavaScript design patterns
 
Na Stanfordu postoji i predmet CS107 - Programming Paradigms. Ima na iTunes U (kao i gore pomenuti CS106a), a i na YouTube-u: http://www.youtube.com/view_play_list?p=9D558D49CA734A02

Na 27 predavanja (legendarni :D) profesor Jerry Cain tu predaje C (razne mahinacije sa memorijom), malo C++, Assembly, konkurentno programiranje (multithread) u C-u, Scheme i Python. Znači čovek razbija. :p
Pogledah sada malo ovoga... 10-15 min ukupno. Mozda nisam dobro ukopcao kog nivoa je njegov kurs i u kom je odnosu sa drugim kursevima, ali deluje mi da je jedan od pocetnih. U svakom slucaju, to sto sam video mi se ne dopada. Ove "does this make sense" fore ne funkcionisu, primeri i analogije su mu teske za pracenje, zbrzava bitne, pocetne stvari koje ako promasis ne vredi da slusas dalje i ne trudi se dovoljno da razotkrije da iza "misterije", "vudua" i ostale obsfukacije, koju ljudi vole da odrzavaju kada se prica o programiranju, zapravo ne stoji nista komplikovano. Sta vise, kada se celoj stvari pristupi na pravi nacin ljudi imaju problem da prihvate i shvate da je toliko jednostavno, da ne kazem glupo.

To je prvi utisak, a voleo bih da mi neko kaze po cemu je legendaran, pa da obratim paznju. Stvarno me zanima ta tema uvodnih programerskih kurseva, tj. kako napraviti programera.
 
Pa ako si odgledao samo 10-15 minuta, ja mogu samo da ti kažem da pogledaš minimum 3 cela predavana pa da napišeš utiske ponovo.
 
Poslednja izmena:
Pa ako si odgledao samo 10-15 minuta, ja mogu samo da ti kažem da pogledaš minimum 3 cela predavana pa da napišeš utiske ponovo.
Pa to kažem, hoću da odgledam još, ali bih bio zahvalan za neke smernice. :) Koja predavanja, na šta da obratim pažnju, šta je to što valja u njegovom pristupu, u odnosu na kakav pristup i tako to. Ne bih da potrošim 22h na analiziranje da bi se na kraju ispostavilo da je prvi utisak bio tačan. ;)
 
Znači oćeš da obereš plodove moga vremena utrošenog na gledanje :D Da ti ja kažem kako je bilo pošto sam već odgledao, da se ti ne bi zeznuo. Bahato, bahato. :D E pa krastavac nismo u socijalizmu. Gledaj sam pa proceni.

Šalu na stranu, ja mogu da kažem da se meni dopalo (zato sam i nahvalio). Profa je meni legendaran jer sam odgledao sve i stekao utisak da je čovek neviđen lik, a pored toga je pun znanja. Ne znam kako da te uputim u uspešno slušanje. Samo mogu da ti kažem da se udubiš, da ne budeš polupospan. Ako nešto ispustiš, vrati nazad pa odgledaj ponovo. On se tu bavi raznim temama. Implementira strukture podataka, usput pokazuje razne sitne trikove i tehnike. Ova predavanja nisu toliko o C jeziku koliko o tome da nauče studente određenom načinu razmišljanja (koji ne bih mogao da imenujem, ali ako pogledaš ukazaće se).
 
Provaljen sam! :d
Ma ne zanimaju mene njegova predavanja zbog sadrzaja, nego me zanima zasto su dobra. ;) Odgledao sam jos uvode u Scheme i Python, racunam to ne znam, pa cu da steknem bolji utisak kako izgleda pocetniku.
Ne znam... Nista se to meni ne dopada... Ni kako objasnjava razliku izmedju proceduralnog, funkcionalnog i objektnog ni, na kraju krajeva, zasto uopste objasnjava to. Puno vremena je potrosio na demonstraciju tipova (4 vraca 4, no shit!?), analogija proceduralnog mu je sadrzaj u knjigama, koji je drvo, sto znamo da nije tacno.
Nisam naleteo na neki "trik", ali upravo je to ono sto me nervira na tim uvodnim predavanjima. Bice vremena za trikove, oni su skoro uvek vezani za konkretnu sintaksu, mislim da na uvodnom nivou samo zbunjuju ljude. Da ne pricam o tome sto ne vidim korist od trika koji si tako naucio, tj. nisi ga sam provalio, ili bar "nanjusio". To je problem i sa pristupom matematici u ovoj zemlji, ali ne bih da sirim pricu. :d
 
Nisam naleteo na neki "trik", ali upravo je to ono sto me nervira na tim uvodnim predavanjima. Bice vremena za trikove, oni su skoro uvek vezani za konkretnu sintaksu, mislim da na uvodnom nivou samo zbunjuju ljude. Da ne pricam o tome sto ne vidim korist od trika koji si tako naucio, tj. nisi ga sam provalio, ili bar "nanjusio". To je problem i sa pristupom matematici u ovoj zemlji, ali ne bih da sirim pricu. :d

Pa ako nisi naleteo ni na jedan trik u uvodnim, a smatraš da ima vremena za trikove, šta onda nervira? A za ovo drugo, sve zavidi od prirode trika. Neki mogu da se najuše ako se dobro analizira problem, a neki jednostavno ne mogu. Neko ih je pronašašo sasvim drugim putem koji nema veze sa problemom za koji se kasnije pokazalo da trik može da reši, ili su pronađeni nagađanjima, probanjima (uz educated guess, koji samo iskusni ljudi mogu da pokušaju). Tako da neki jednostavno moraju da se izlože bez "izvođenja". (A za matematiku ja već odavno pizdim zbog takvog načina predavanja :smash:)

U svakom slučaju, što se hvataš za detalje, važan je opšti utisak koji stekneš na kraju, ovo su predavanja koja su napravljena da se prate od početka do kraja. Moj opšti utisak na kraju je veoma dobar kad saberem šta sam video, čuo i mislim da sam bar malo unapredio svoje razmišljanje tokom programiranja. U stvari mislim da sam počeo više da cepidlačim o efikasnosti koda :D, i čak i kad programiram u C#-u programiram pretežno proceduralno, bez mnogo objekata sa metodama, interfejsa... Mada dizajn implementacije jako zavisi od prorode problema. Mislim da je najvažnija stvar koju sam poneo sa tih predavanja da ne treba uvek koristi idiomatske (ili id*otske :D) konstrukcije nekog jezika za svaki problem koji se rešava u tom jeziku, već treba implementirati u stilu najpogodnijem za problem, a da to jezik dozvoljava. Zato su predavanja koncentrisana na C, jer u njenu moš da radiš šta oćeš, ništa nije nametnuto, pa se onda za svaki problem razvije najefikasnije ili najintuitivnije rešenje, koje se možda uklopi u idiomatske konstrukcije nekog drugo jezika (najčešće OOP-a).
 
Poslednja izmena:
Nisam gledao to o cemu pricate, ali zar se tako dugacke klase, malo metoda, bez interfejsa ne kosi sa mogucnoscu nadogradnje koda, teskim dependency injectionom (ok, mozda ti sada ne treba, a jednog dana?), losim reusability-em?
 
@ivan90BG
OK bre, tebi se sviđa, nešto si naučio, sve je to lepo. :) Ne znam ništa o tebi, šta te interesuje, šta si i koliko znao u trenutku kada si gledao ovo... A to je ustvari najbitnije. Kao što rekoh, mene zanima kako održati uvodni kurs o programiranju, koji će da ogovara većini i gde će svako ko ima potencijal da postane programer dobiti dobro usmerenje i zalet. Pri tome najviše mislim na to da ljudi poplašeni od matematike, zatrpavani svim tim "hakerskim" imidžom, obsfukacijama, mistifikacijama, "kung fu" trikovima i sl. ne odustanu ili se isključe posle dve rečenice.
Ne bih sada da specijalno duboko zalazim u to ko ima potencijal da bude programer, ali iz ličnog iskustva zaključujem da dosta ljudi koji imaju "kliker" ostanu zaglavljeni na sporednim glupostima, a oni od kojih bi mogao biti dobar code monkey ni ne pokušaju.
Ono što sam gledao od ovog profe nije toliko strašno, jasno je da neko ko ga pažljivo sluša (i ne hvata se za detalje :d) može nešto da nauči, ali nije to onako kako ja mislim da treba da izgleda uvodni kurs. :)
 
Ko je reko da je ovo uvodni kurs :D. Meni uopšte ne izgleda kao uvodni.
 
Nije bas prvi, ali po naslovu i sadrzaju je primereniji ovome sto ja pricam nego taj neki prvi. U smislu: nije mozda lose da se prvo obrne par petlji i napravi nesto, cisto da se razvije recnik, pa tek onda da se krene na demistifikaciju. Mozda nam se razlikuju definicije "uvodnog", ali voleo bi da cujem definiciju za nesto sto nije uvodno, a prica se o binarnim brojevima. :d
 
Realno, nivo uvodnosti ovog kursa je malo mutan. Da sam ja slušao ovo kad sam bio još zelen, ne bih razumeo ni 20 posto, a ono što bih jedva skapirao zaboravio bih slušajući sledeće predavanje. Tako da je ovo u suštini za one koji već znaju šta je proceduralno programiranje, da iskuse šta se nalazi ispod, tako ja gledam na ovaj kurs.
 
Moja je poenta si zelen dok ne skapiraš to "ispod". Teško mi je i da zamislim osobu koja će da ovlada jezikom visokog nivoa, a da nema blage veze ili je bar ne kopka da sazna kako radi procesor. Da ne pričam o rizicima pogrešnog razumevanja, učenja, sticanja loših navika ili prosto letargije. Mislim da to mora sve zajedno u neki uvodni kurs, sa sve numeričkim sistemima, a kada se sve dobro upakuje priča o paradigmama staje u jedan čas. A ako baš mora posle ceo kurs o tome ne bi smeo da budeš zelen dok ga slušaš, tj. da ne umeš da pročitaš binarni broj. Da ne pričamo što je preko toga preleteo prebrzo, čini mi se po šumu među studentima da nije ste to baš jasno. Iako niko, naravno, ne odgovara negativno na njegovu uzrečicu. :d
Definitivno je tu nešto mutno...
 
Teško mi je i da zamislim osobu koja će da ovlada jezikom visokog nivoa, a da nema blage veze ili je bar ne kopka da sazna kako radi procesor. Da ne pričam o rizicima pogrešnog razumevanja, učenja, sticanja loših navika ili prosto letargije.

Nis' ti bio na FON-u. ISiT smer su izgradili takvi ljudi. :(
 
Moja je poenta si zelen dok ne skapiraš to "ispod". Teško mi je i da zamislim osobu koja će da ovlada jezikom visokog nivoa, a da nema blage veze ili je bar ne kopka da sazna kako radi procesor. Da ne pričam o rizicima pogrešnog razumevanja, učenja, sticanja loših navika ili prosto letargije. Mislim da to mora sve zajedno u neki uvodni kurs, sa sve numeričkim sistemima, a kada se sve dobro upakuje priča o paradigmama staje u jedan čas. A ako baš mora posle ceo kurs o tome ne bi smeo da budeš zelen dok ga slušaš, tj. da ne umeš da pročitaš binarni broj. Da ne pričamo što je preko toga preleteo prebrzo, čini mi se po šumu među studentima da nije ste to baš jasno. Iako niko, naravno, ne odgovara negativno na njegovu uzrečicu. :d
Definitivno je tu nešto mutno...

Sta onda web programeri da kazu :d ?
 
Aj reci kako si ti naučio programiranje.

Ja sam prvo učio Pascal bez trunke poznavanja šta je ispod i naučio sam petlje, kontrole toka, funkcije, promenljive, ali bez ikakvog pojma o upravljanju memorijom (stack, heap). Znao sam od čega se sastoji računar, ali nisam ništa znao kako se kompajlira program, šta su pointeri... Onda delfi, a posle toga ne mogu da se setim šta sam učio. Sećam se da sam učio Objective-C, a verovatno sam istovremeno izučavao i arhitekturu računara, i tako dalje, znam da sam tokom tog perioda znao šta su pointeri, šta je reference counting (C++ nisam znao). Posle sam imao na faksu predmet sa Javom, koji sam glatko prešišao za desetku, iako je to bio prvi susret sa Javom (bukvalno samo sam naučio sintaksu i koje klase trebaju za ispit, sve ostalo sam znao već). Tada mogu reći da sam skroz naučio da programiram, bilo mi je poznato skoro sve ispod. Nakon toga svaki sledeći jezik (C, C#, C++) sam glatko usvajao.
 
Aj reci kako si ti naučio programiranje.
Iz knjige koja je došla uz C64, na Nemačkom, koji nisam znao niti znam sada. Dakle čist kod, čist trial&error. Onda, posle 10 godina pauze JS. Opet trial&error na osnovu primera s neta i maznutih kodova sa sajtova. Pa na faksu, takođe posle više godina pauze, C/C++. Svakakvih je tu nejednostavnih programa i fora bilo, uglavnom samoinicijativnih, ali sve je to bilo tumaranje po mraku dok nisam ukopčao arhitekturu. I pravo da ti kažem ono što sam naučio pre toga je bilo besmisleno, nepotrebno i čisto gubljenje vremena i živaca.
A kada se to sve slegne, kao što ti kažeš, više nije bitno koji je jezik, da li je objektno ili proceduralno, potrebni su bukvalno minuti da vidiš kako se rade osnovne stvari i možda dan da pohvataš ideju i raspored biblioteke, ako je jezik ima.
Ono što me nervira je što mi niko nije pomogao da sve to ukopčam! Niko nije došao i rekao - jedina razlika između programiranja na kompjuteru i korišćenja digitrona su instrukcije skoka! I objasnio, bukvalno na jednom času, kako radi CPU, šta sve možemo sa tim skokovima, kako je njihova upotreba standardizovana u nekoliko konkretnih ideja u jezicima višeg nivoa i kako su sve ostalo nijanse koje možeš i ne moraš da pamtiš. E to bi bio uvodni kurs iz programiranja! S tim što bi mi studenti drljali po binarnim brojevima barem tri časa, a konverzije datuma, lepi upisi i ispisi, više od dva načina da se sortira niz i sl. ako bude vremena. Ok, tu računam da postoji poseban kurs o strukturama i algoritmima.
 
Sjajno.
 
Zar vas nije prošao taj trip sa obsfukacijom? :d Nije ni da se ja nešto posebno ložim na matematiku, al' odavno je prestalo da me zanima kako nešto izgleda u jeziku visokog nivoa, ako ne smanjuje Big-O. :)
 
Nazad
Vrh Dno