Tutoriali za naučiti se programirati

[quote=""]- When I started programming we didn’t have any of these sissy “icons” and "windows. All we had were zeros and ones – and sometimes we didn’t even have ones. I wrote an entire database program using only zeros.

  • You had zeros? We had to use the letter “O”.[/quote]

Teach yourself to program

http://www.softcity.com/contribution/QOxEzMwADN/view/teach-yourself-to-program

Linkovi na gradiva, grupirano kao Basic Programming, HTML, Phyton, Ruby, C++ Java.

Ovo je jako lipo. Bar da san 35 godina mlađi.
Za totalne početnike je dobar Just Basic iako je basic odavno out. Mislim s pravom. Star je i danas ima toliko toga svrsihodnijeg. Ako ga ko želi koristiti nek skine udžbenik:

http://davor.ursulatolj.com/linux/prog.html

Pri dnu je.

Computer Science from the Bottom Up

http://bottomupcs.sourceforge.net/csbu/book1.htm

Kratki tečaj osnovnih koncepata u računarstvu od niže razine prema višoj razini apstrakcije - binarni brojevni sustav, binarna logika, računalna arhitektura, operacijski sustavi, procesi, virtualna memorija, prevodioci i vezani alati, sistemske biblioteke, ulaz/izlaz.

Vrlo klasičan pristup učenju programiranja, odličan za sve koji su krenuli iz skriptnih jezika da im malo ukloni jednu veliku koncepcijsku slijepu točku u osobnom im programerskom vidnom polju.

Priča o izgradnji prvog računala temeljenog na tzv. von Neumannovoj arhitekturi. Video od 15-tak minuta, možete uključiti titlove za lakše praćenje.

Radi se o računalu nastalom nakon ENIAC-a, a koje se baš ne spominje često, iako je važan korak u razvoju današnje arhitekture računala, jer je taj dizajn zapravo idejni dizajn današnjih procesora.

Jedna od temeljnih spoznaja za programera je shvatiti koliko je koncept “programirljivog stroja”, stroja čije se ponašanje može mijenjati ovisno o nekakvoj praktički nematerijalnoj podlozi, nevjerojatan i zapravo težak za percipirati.

Video-predavanja s američkih sveučilišta: uvod u programiranje, izrada web-stranica

http://www.webmajstori.net/forum/showthread.php?t=32990

Ako imate nešto ozbiljniju namjeru zaokružiti vašu teorijsku podlogu, obratite pažnju na predavanja iz predmeta Struktura i interpretacija računalnih programa:

Mislim da je Berkeley dosta opsežniji, ali nisam gledao ova s MIT-a.

Uz ovo ide i istomena knjiga, cca. 600 stranica oko 90 USD, ali se može čitati i online:

http://mitpress.mit.edu/sicp/full-text/book/book.html

Aho, Ullman: Foundations of Computer Science

http://infolab.stanford.edu/~ullman/focs.html

Između sebe, autori ove knjige su učinili da upravo algoritimi i strukture podataka budu osnovica načina na koji se podučava računarstvo. Ullman je jedan od prvih istraživača baza podataka, a (za one kojima to više znači) i jedan od osnivača Googlea. Tko je čuo za ove autore ne treba mu ništa pojašnjavati.

Čitatelji Stackoverflowa predlažu slijedeće knjige kao temelj svakog programerskog zanata:

.

Knjiga iz 1997.

Peter Müller, Introduction to Object-Oriented Programming Using C++

http://www.desy.de/gna/html/cc/Tutorial/tutorial.html

Hvala ti na svemu ovome. Ima jako dobrih linkove :=)

Uvod u računalne znanosti i programsku metodologiju na Stanfordu

Kroz izbornik na desnoj margini se pristupa video-zapisu predavanja (28 školskih sati), pisanim bilješkama, problemskim i programskim zadacima s rješenjima (9 zadataka), oglednom ispitu s rješenjima i softveru potrebnom za predavanja.

Programski jezik za predavanja je Java.

Na MIT-u razvijaju tečajeve za samoučenje, naziva OCW Scholar:

Tečajevi su iz različitih područja - matematika, kemija, fizika, ekonomija.

[hr][/hr]
Iz područja računarstva je otvoren tečaj “Uvod u računarstvo i programiranje” - programski jezik izbora je Python (!), što će mnogima biti privlačno.

[hr][/hr]
MIT ima publikacijski program pod nazivom OCW (OpenCourseWare) - koji sadrži praktiči sadržaj svih predavanja s MIT-a. Neki linkovi su dani i ranije u ovoj temi. OCW Scholar je, međutim, program koji sadrži više od samih predavanja s “normalnog” OCW-a - namijenjen je samoučenju i ima dodatne sadržaje i prilagođene materijale s predavanja.

Koliko bi mi trebalo vremena da naučim programirati u Javi do nivao izrade mobile applikacija, ako se uzme u obzir da nemam predznanje osim nesto malo osnove iz C#, asp.net.
Mozda 1 godina, pola godine, mozda 100, neznam, sta vi mislite?

Znaci krecem od pocetka i imam jaku volju, slobodnog vremena onako srednje…

Koliko poznaješ jedan jezik 4. generacije, toliko poznaješ i bilo koji drugi - potrebno je nešto malo rada (recimo mjesec, dva) da novi jezik “legne” u naučene koncepte.

A što se programiranja tiče - ono nema veze s programskimi jezicima. Koliko ti vremena treba da iz tvoje razine znanja dođeš do razine potrebne za samostalnu izradu bilo koje vrste klijenta na mobilnom uređaju… to ti nitko ne može reći. Jer to nije nešto što učiš, pa onda radiš, već je nešto što savladavaš i razvijaš rješavajući različite vrste problema.

Ovdje u temi su ti dani linkovi na cijeli niz predavanja tipa “uvod u programiranje”. Odaberi jedno (možeš i ovo gdje se koristi Java) i kreni. Kada ćeš to završiti imat ćeš razumjevanje programiranja koje ima većina ljudi koji krenu raditi. Dalje je na tebi. Ako želiš malo podignuti teorijsku razinu, odaberi nakon toga neko predavanje koje ima naziv “paradigma” u sebi (odn. neki tečaj koji nema “uvodno”).

I to je to.

Video tecajevi preko net-a vezani za JavaScript te jQuery library:

JavaScript + jQuery:
JavaScript 101 | appendTo Developer Learning Center

jQuery (200 videa vezanih za isti)
jQuery - 1 - Introduction to jQuery

jQuery (Tuts+ - 30 Days to Learn jQuery)
Tuts+ Premium Course: 30 Days to Learn jQuery

… naravno, referenca:

Ovaj site sadrži popis besplatno dostupnih sveučilišnih predavanja s poznatih američkih sveučilišta:

Neki su linkovi zastarjeli i ne vode na navedena odredišta, ali pomoću naziva predavanja i sveučilišta ih je moguće potražiti na alternativne načine.

Postoji jedna fora kod učenja programiranja.
Normalno važno je naučiti kako, no prilikom učenja važnije je učiti što taj kod radi.
Recimo za primjer implode, explode u PHP, iskreno da mi udarite test trebao bih pošteno razmisliti što mi treba da array pretvorim u string ili okrenuto.

Ali to nije važno, važno jest da znam da postoji nešto što pretvara varijablu sa više polja u jednu i u okrenuto.
To je bit, a kako ću ja to napraviti to je ništa drugo nego jezična konstrukcija.
A to je dimenzija koja se zapostavlja kod učenja programiranja.

I najbolji primjer jest Regex. Ne učiš kako nešto napraviti jer ako radiš u tri jezika u svakom su malo drugačija pravila i stalno su drugačiji zahtjevi za riješenje.

Ukratko nije ponta foreach da prolazi nešto što se zove kontruira sa array(), već je ponta da se njime prolazi kroz svako polje u varijabli sa više polja.
I onda odmah to stečno vrijedi i za JS gdje se tako nešto zove for in.

Zato se uvijek kreće s primjenjenom matematikom, tokovima dijagrama, proceduralnim jezicima(Pascal, c) pa tek onda nešto OO i high level jezici. Ja bih rekao da je važno naučiti ili još bolje usvojiti, ukoliko se to uopće može, logiku programiranja ili programsku logiku, nego nekakvu sintaksu nekakvog programskog jezika. E, a tu postoji jedan problem, puno, puno, puno suhoparne teorije o binarnom i heksadecimalnom sustavu, memorijskim prostorima, nizovima itd. itd., a ljudima se to neda učiti jer su željni odmah vidjeti nekakav rezultat, makar nakon rezultata nemaju pojma kako su i zbog čega dobili upravo taj rezultat koji su dobili.

Potpisujem izjavu CreatifCode-a. Bitno je shvatiti logiku programiranja, sve ostalo su samo različite sintakse. Jednom kada shvatiš, kada ti logika programiranja postane jasna, tada je sintaksa samo alat.
Tada više nije bitno radiš li u assembleru, C++, ASP-u, PHP-u, javi, javascriptu…

meni osobno je dosta pomagao ovaj ovdje naslov Foundations of Programming: Fundamentals | Video Tutorial from lynda.com

… u najmanjem slucaju da si polomim one neke psihicke blokade da nemrem programirati posto u biti cijeli zivot sa matematikom sam bio kita labudova, dok sam sa ovom drugom iliti “desnom stranom mozga” uvijek bio na ti…

Foundations of Programming Object-Oriented Design | Video Tutorial from lynda.com