Programiranje

Najbolji programski jezik za totalnog početnika

chrispy450 uto 15.7.2014 00:50

Pozdrav. Nikad prije nisam ucija programirat i neznan nikoji programski jezik. Prije par dana mi je palo na pamet da krenem programirat ali neznam ni od kud pocet ni koji je programski jezik najbolj za pocetak, a zelio bih radit Android i Linux programe i najvise igre. Hvala unaprijed.

Wox uto 15.7.2014 09:59

Ako je totalni početnik onda možda neki BASIC sa puno primjera. Meni jedan od boljih je Blitz3D u kojem se mogu izraditi 2D i 3D igre. Može se downloadati ovdje: "youtube.com/watch?v=Q7_7G1yf9B0" ili na nekoj drugoj stranici ako postoji strah od virusa . Ali ova verzija je puna odnosno može kreirati .exe fajl . Tek toliko da shvati osnove programiranja , a onda pređe na objektno orijentirani jezik - ako je za android onda Java i android SDK + Eclipse.

ROFLOLMAO uto 15.7.2014 11:43
chrispy450 kaže...

U cemu je razlika između C/C++? I imajte na umu da nisam nikad ni pokusavao programirat.

Za početnika nema razlike kad je sintaksa ista. Fokusiraj se na jednostavnije programe i nauči osnove. Skini CodeBlocks i nađi tutorijale za C ili C++. 

vratinulu uto 15.7.2014 12:07

Uhvati se C-a i samo njega izučavaj neko vrijeme. Moja preporuka ti je knjiga Domagoja Kusalića, "Napredno programiranje i algoritmi u C-u i C++". Također, mnogi fakulteti imaju prezentacije otvorene za javnost koje možeš skinuti, kao i snimljena predavanja koje možeš odgledati. Pronađi što ti najbolje odgovara i budi uporan. 

rustweaver uto 15.7.2014 12:38
chrispy450 kaže...

Pozdrav. Nikad prije nisam ucija programirat i neznan nikoji programski jezik. Prije par dana mi je palo na pamet da krenem programirat ali neznam ni od kud pocet ni koji je programski jezik najbolj za pocetak, a zelio bih radit Android i Linux programe i najvise igre. Hvala unaprijed.

Ako odabereš C ili C++ po netu ćeš pronaći toliko materijala da nećeš znati što bi prije krenuo čitati, plus ima nas ovdje na forumu koji smo poprilično aktivni na C i C++ temama, tako da će ti biti lakše kada zapneš. Ali isto tako trebaš znati da su C i C++ dosta "grubi po rubovima", što rezultira time da ih se ne preporuća kao prvi jezik, što je IMO bullshit jer ne postoji niti jedan drugi jezik koji te može pripremiti na specifičnosti s kojima ćeš se susretati u C-u i C++-u, tako da onda možeš početi i s njima ako su ti oni nekakav krajnji cilj.

 

S druge strane python, java, basic, pa čak i C# su ti jezici koji se češće preporučaju za prve jezike (s time da bih baš istaknuo python i basic), budući da su višeg nivoa i skrivaju razne specifičnosti hardvera od programera. Na ovom forumu teme za te jezike nisu ni izbliza toliko aktivne kao C i C++ teme (zlobnici će reći da je to zato što C i C++ programeri imaju više problema :P), tako da i to trebaš uzeti u obzir ako se kaniš znatno oslanjati na forumsku pomoć pri učenju. Literature po netu za te jezike ima (pogotovo za Javu i C#) tako da nećeš imati problema sa popratnim materijalima (iako ti možda neće baš iskakati iz svakog kuta kao što je slučaj za C i C++).

 

Ako ti je cilj Android onda ti je Java way to go. S druge strane linux, baš kao i windows, žvače sve i svašta tako da se tu onda ne moraš brinuti je li tvoj programski jezik podržan.

 

Ovo je bitno, i vidio sam mnoge početnike ovdje na forumu kako se spotiču na tom koraku:

Odabir programskog jezika je manje bitan, mnogi se izgube u bespućima tražeći idealni programski jezik da na kraju malo toga nauče ili čak odustanu i prije početka. Ono što je bitno jest da odabereš neki jezik i držiš ga se neko vrijeme. Neka ti ovo bude nekakvo okvirno pravilo: tako dugo dok nisi sposoban napisati, recimo, tetris u nekom programskom jeziku, ne poznaješ ga ni izbliza dovoljno da bi mogao tvrditi da ga znaš.

rustweaver uto 15.7.2014 12:43
chrispy450 kaže...

Onda cu pocet sa C/C++ i molim vas preporucite mi neku knjigu ili youtube tutorijal. I nije mi jos jasno kako doci do grafike u nekoj igri? Hvala vam puno

Pogledaj temu literatura ima stvarno svačega.

 

Ako ćeš kupovati, imaš knjige na hrvatskom:

  • C++ analiza i primjena - Željko Kovačević
  • Demistificirani C++ - Julijan Šribar i Boris Motik
  • Naučite programirati uz C++ - Krešimir Ćosić i Petar Marendić

 

Za grafiku ćeš koristiti jednu od slijedećih biblioteka: SDL, SFML, Allegro,... budući da C i C++ nemaju podršku za grafiku u svojoj standardnoj biblioteci.

rustweaver uto 15.7.2014 13:09
chrispy450 kaže...

Malo mi je komplicirano ovo za grafiku. Objasni mi to malo "u grubo" kako nastaje. Jeli se modeli crtaju u PS pa onda ubacuju ili nesto tako? Hvala unaprijed 

Ovako, u grubim crtama ti se grafika dijeli na 2D i 3D grafiku.

 

Rad sa 2D grafikom se svodi na crtanje mnoštva bitmapa (slika, crteža uglavnom izrađenim u nekom programu za crtanje), na ekran ili u nekakav spremnik. Kada pomičeš te bitmape po ekranu stvaraš animiranu grafiku. Koristi se jednostavan (x,y) koordinatni sustav sličan onome s kojim si se već susreo u školi (samo što je 0,0 gore lijevo, a y raste prema dolje i pozitivan je, x naravno raste udesno).

 

Rad sa 3D grafikom se svodi na rad sa 3D modelima koji su sačinjeni od mnoštva trokuta u 3D koordinatnom sustavu (x,y,z). Modeli se uglavnom izrađuju u nekakvom programu za 3D modeliranje (blender, 3D studio, maya, softimage, lightwave...). Potrebno je solidno znanje matematike za napraviti išta ozbiljnije. Također ćeš za to koristiti neki 3D API (Direct3D ili OpenGL) koji su nekoliko redova veličine kompliciraniji od kojekakvih biblioteka koje se koriste za 2D grafiku. Ukratko 3D grafika je kompliciranija, ako do sada nisi shvatio :P

 

 

Nažalost, mislim da niti jedan popularni programski jezik još nije dostigao basic po pitanju jednostavnosti pristupa 2D grafici. Zato je svojevremeno basic bio toliko popularan, jer je grafika praktički bila sastavni dio programskog jezika i crtanje točke na ekran nije bilo ništa kompliciranije od ispisa slova na ekran. Kod ostalih programskih jezika morat ćeš prethodno poprilično ovladati jezikom kako bi mogao kako treba postaviti i inicijalizirati biblioteke koje će ti omogućiti rad sa 2D grafikom, pa vrijedi ovo što ti je Wox gore napisao.

chrispy450 uto 15.7.2014 13:21

Jel to znaci da bi morao i znat OpenGL programirat? I koliko bi mi trebalo vremena za napravit npr. neku igricu tipa arkanoid (za Android ili Linux)? Sad mi je ovo malo nepoznato, nekuzim pola toga sta si napisao..

rustweaver uto 15.7.2014 13:27
chrispy450 kaže...

Jel to znaci da bi morao i znat OpenGL programirat?

Ako misliš raditi sa 3D grafikom onda je ili to ili Direct3D.

 

Tuđe 3D engine i softversko renderiranje ne računam jer mislim da ne pričaš o tome.

 

chrispy450 kaže...

I koliko bi mi trebalo vremena za napravit npr. neku igricu tipa arkanoid (za Android ili Linux)? Sad mi je ovo malo nepoznato, nekuzim pola toga sta si napisao..

Naravno da ne kužiš jer radiš tipičnu grešku kao i svi. Pokušavaš unaprijed procijeniti koji bi jezik odabrao te želiš li se uopće time i baviti, a to ne možeš dok ne okusiš programiranje. Ukratko, možeš ovako sjediti i teoretizirati u beskonačnost, ali nećeš znati dok ne probaš. To ti je kao da tražiš nekoga da ti opiše okus vanilije i čokolade (recimo da ne znaš kakav okus imaju vanilija i čokolada) kako bi odlučio koji ćeš sladoled odabrati. Mi ti možemo reći samo što je popularno, ali ne i hoće li se to tebi svidjeti.

rustweaver uto 15.7.2014 13:42
chrispy450 kaže...

Onda cu pocet najprije sa C/C++ jer je tako najbolje kolko vidim

Onda te očekujemo u temi, koja ti btw sa svojih 187 stranica i 5602 posta već pruža primjere i odgovore na sve i svašta. Sve vezano uz C i C++ možeš pitati na toj temi. Nemoj otvarati nove teme vezane uz C i C++, ne zato što ne smiješ, nego zato što ćeš puno brže dobiti odgovor ako pitaš u temi koja je aktivna (to mnogi ne razumiju pa otvore novu temu koju nitko ne vidi, jer kad napišeš post u neku temu svi koji su u toj temi sudjelovali u zadnjih 30 dana vide da ima novih postova).

 

chrispy450 kaže...

EDIT: Jeli bolje OpenGL ili Direct3D

sum_of_all_fears ti je odgovorio koji radi na više operacijskih sustava. btw. kad mi kažeš što točno misliš pod "bolje" onda ću ti reći koji je "bolji".

rustweaver uto 15.7.2014 13:54
zerocool12 kaže...
Python?

Ako ćeš mu ti odgovarati na pitanja kada zapne. Do sada sam primijetio samo da je bobobo-bo-bo-bobo bio veoma aktivan pri objašnjavanju problema vezanih uz python. Znam da Sum_of_all_fears roka po C# pa on to može preporučivati...

 

Nemoj me krivo shvatiti, ali svi se javljaju sa preporukama programskog jezika, a kada onda zatreba neka konkretna pomoć u nekom programskom jeziku nema nikoga. Šansa je da ako se je ovdje propitivao za izbor programskog jezika da će se ovdje vratiti i sa problemima s kojima se susreo.

 

Treba ponekad biti i praktičan pri odabiru/preporuci.

chrispy450 uto 15.7.2014 14:08

Hvala ti najvise. Dosta si mi pomogao. Pocet cu sa C/C++ i imam jednu ideju za aplikaciju koje nema na Google Playu a jako je jednostavna aplikacija. Kasnije imam ideju za jednu jako jednostavnu 2D igru koja je jako zabavna a isto nije bas teska koliko iz moje perspektive vidim. Radi se o 2D strategiji.. I jel ko poznaje jezik Pawn, prije kad sam igrao SAMP nesto sam znao u njemu al to je bilo prije 3 godine otprilike.  I koji je program dobar za C,C++? Gledam ovaj CodeBlocks pa neznam kakav je..

rustweaver uto 15.7.2014 14:37
chrispy450 kaže...

EDIT: Evo nasao sam jednu igru koja je napravljena na C++/OpenGL i zanima me koliko je trebalo za napravit ovu igru?

Puno. Gledaj, to ti nitko ne može reći, to ovisi o milijun stvari. Koliko brzo učiš, koje predznanje imaš, kako stojiš sa samostalnim rješavanjem problema, kako stojiš s engleskim, koliko si samoinicijativan tražiti odgovore po internetu ljudima koji su imali sličan problem u odnosu da čekaš da ti "padne s neba", koliko vremena dnevno utrošiš na programiranje, koliko si uporan, koji su ti životni planovi...

 

I sada od nas tražiš da te psihoanaliziramo i ispljunemo nekakvu brojku. Pa ja ni za sebe ne bih mogao dati procjenu koliko bi mi trebalo, a kamoli tek za tebe!

 

chrispy450 kaže...

Onda za te 3 platforme je najbolje C/C++? i koji cu alat koristit za radit?

Alati se razlikuju ovisno o platformi, postoje oni koji rade samo na jednoj (visual studio, kdevelop, devcpp) i oni koji rade i na linuxu i na windowsu (code blocks, qt creator, eclipse...). GCC ti je primjer univerzalnog kompajlera (kompajler je program koji tvoj izvršni programski kod pretvori u .exe) za svakakve platforme i programske jezike, i radi više-manje svugdje...

Cheezl uto 15.7.2014 14:41
vratinulu kaže...

Uhvati se C-a i samo njega izučavaj neko vrijeme. Moja preporuka ti je knjiga Domagoja Kusalića, "Napredno programiranje i algoritmi u C-u i C++". Također, mnogi fakulteti imaju prezentacije otvorene za javnost koje možeš skinuti, kao i snimljena predavanja koje možeš odgledati. Pronađi što ti najbolje odgovara i budi uporan. 

Ta knjiga više obrađuje algoritme i korisnija je za natjecatelje nego za običnog početnika.

Ima par osnova obrađeno, ali ništa predetaljno o samom jeziku. Možda to čak i nije loše za početnike.

Inače izvrsna knjiga.

 

Demistificirani c++ ulazi u detalje. Iako hvaljena, meni osobno je knjiga preopširna i teška za pratit.

 

Mislim da je najbolje potražit tutoriale na youtube-u, puno je lakše pratit vizualnu prezentaciju na računalu nego čitati udžbenike. Ili naći neke web tutoriale, ima ih tone. Naravno sve ovisi koliko dobro poznaješ i shvaćaš engleski.

 

Ako se tek susrećeš s programiranjem nemoj očekivat da ćeš tako brzo napraviti nešto kao na ovom videu.

Nemoj se obeshrabrit, samo jako, ali možda će ti entuzijazam malo splasnuti kad saznaš koliko truda i vremena sve to zahtijeva. Ako isključivo želiš igre raditi onda se možda probaj ulovit nekog gotovog enginea, npr Unity.