Par pitanja u vezi programiranja

Par pitanja u vezi programiranja

offline
  • coa93  Male
  • Zaslužni građanin
  • Pridružio: 31 Okt 2014
  • Poruke: 614

Imam 16 godina i shvatio sam da je od skole mala vajda i da cu morati od kuce da ucim programiranje,pa imam par pitanja
Koji program da prvo ucim,ne znam nista o programiranju
Nasao sam jako puno videa od naseg coveka koji objasnjava par programa,ali ti videi su iz 2014,da li su zastareli
Koliko je potrebno vremena da se ovlada jednim jezikom da bi se moglo napraviti ozbiljniji program ili igrica
Nisam jos odlucio kojom granom da se bavim,da li programiranjem desktop aplikacija,igrica za desktop ili android,sajtova,da li ima velike razlike u nacinu ucenja i programiranja
Koliko je matematika i fizika bitna u programiranju i u kojim granama



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

coa93 ::Koji program da prvo ucim,ne znam nista o programiranju

Ne učiš program, već programski jezik, za početak. Mišljenja su podeljena; neki savetuju početnicima da krenu sa dinamički tipiziranim jezicima poput Python-a i Ruby-a jer sa njima početnici za vrlo kratko vreme mogu da razviju sopstvene programe. Problem kod ovih jezika jeste što puno toga sakrivaju od početnika, dok te jezici poput C, C++, Go i sličnih teraju da malo više razmišljaš o stvarima koja se dešavaju iza paravana poput alokacije memorije, bafera, rada sa pokazivačima i sl.

Moj prvi jezik je bio C++, isto kao ti nisam imao blage veze o programiranju i igrom slučaja sam našao knjigu na hrvatskom u kojoj je baš on bio objašnjen. Jeste da mi je trebalo neko vreme da pohvatam neke stvari, ali sam nakon njega bio svesniji stvari koje se dešavaju tokom izvršavanja programa. Danas ne bih nikome preporučio da kreće od njega.

U školama se recimo i dalje radi Pascal koji ne podržava neke mogućnosti koje imaju moderniji jezici poput Jave i C#, ali je odličan za upoznavanje sa osnovnim konceptima programiranja. Kada ih dobro naučiš i primeniš u nekim hobi projektima lako ćeš preći na neki drugi, moderniji jezik.

Izbor je na tebi:

C - prikupićeš znanja koja će ti dobro doći koji god jezik da učiš u budućnosti; velika većina njih se bazira na njemu, vrlo je moćan, brz, ima izvanrednu podršku za različite platforme, ali da bi iskoristio svu njegovu moć potrebno ti je dobro poznavanje računarske arhitekture.
Pascal - jezik namenjen za edukaciju, sintaksa se dosta razlikuje u odnosu na moderne jezike, ali ćeš sa njim vrlo lako da naučiš osnove. Imaj u vidu da sem Delphi-a nema neku veliku primenu i da ćeš posle njega najverovatnije morati da naučiš neki drugi jezik ako misliš da se ozbiljno baviš ovim poslom.
Python / Ruby - ako želiš da brzo naučiš osnovne koncepte i kreneš da pišeš aplikacije izaberi jedan od njih. Ovi jezici su među najproduktivnijim za rad, imaju dobru podršku kako za web (Flask, Django; Rails, Sinatra...) tako i za desktop i druge aplikacije (moj drug recimo koristi Python za programiranje Raspberry Pi-a).


Neko se možda neće složiti sa ovim izborom i možda preporučiti C# ili Javu, ali ja ipak mislim da su to jezici koje je bolje učiti nakon upoznavanja sa konceptima objektno-orijentisanog programiranja da bi se uspešno koristili. Ima još puno jezika koji bi se mogli pomenuti, ali ne bih želeo da te zbunjujem i bacam u dilemu tako da sam ti suzio malo izbor. Ne postoji pravi put, sve zavisi od tvoje volje i interesovanja. Najvažnije je da naučiš da razmišljaš kao programer, a ne da se potpuno vežeš za jedan jezik.

coa93 ::Nasao sam jako puno videa od naseg coveka koji objasnjava par programa,ali ti videi su iz 2014,da li su zastareli

Programski jezici ne zastarevaju tako brzo. Jedini problem na koji možeš naići gledanjem tih video snimaka je ukoliko on koristi neke funkcije koje su izbačene ili koje više nije preporučljivo koristiti (što je manje verovatno) ili ako objašnjava na pogrešan način (ali to nema veze sa jezikom već sa predavačem).

coa93 ::Koliko je potrebno vremena da se ovlada jednim jezikom da bi se moglo napraviti ozbiljniji program ili igrica

Ne postoji jasno definisano vreme; to zavisi od toga koliko si spreman da dnevno izdvojiš za učenje i koliko ti vremena treba da shvatiš neke osnovne koncepte (nekima treba kraće, nekima duže vreme). Jednostavne igrice možeš da praviš već sada bez programerskog znanja; baci pogled na seriju članaka Game Maker u potforumu Programiranje igara / 3D programiranje ako te zanima.

coa93 ::Nisam jos odlucio kojom granom da se bavim,da li programiranjem desktop aplikacija,igrica za desktop ili android,sajtova,da li ima velike razlike u nacinu ucenja i programiranja

Trebao bi da se odlučiš jer itekako ima razlike. Nije isto razvijati za web i baviti se sistemskim programiranjem. Prva oblast (web programiranje) je daleko jednostavnija i mnogi se odlučuju za nju jer je trenutno najperspektivnija (ako te ona zanima pročešljaj malo forume Web programiranje i Web dizajn / HTML pošto smo tu pisali više o ovoj temi). Programiranje igara je samo jedan segment razvoja igara (imaš i grafiku, audio/video produkciju, 3D modelovanje...) i nemoguće je da jedan čovek savršeno poznaje sve grane, međutim, jednostavnije igre možeš i sam da razvijaš koristeći gotove resurse , biblioteke i alate za 3D modelovanje i crtanje.

coa93 ::Koliko je matematika i fizika bitna u programiranju i u kojim granama

Za programiranje web, mobilnih i veći deo desktop aplikacija ti neće biti potrebna neka naprednija matematika, a kamoli fizika. Poznavanje fizike je recimo vrlo korisno, pa čak i neophodno kod programiranja igara, simulacija, softvera za vojne svrhe i sličnog (podrazumeva se i matematika jer jedno bez drugog ne mogu), dok ti sama matematika može dosta pomoći pri dizajniranju kompajlera (programskih prevodioca), algoritama (skupovi koraka za rešavanje određenog problema), u nekim delovima sistemskog programiranja i sl.

Za kraj bih dodao jedan plan koji sam napisao sebi čitajući postove iskusnijih u ovom poslu koji koristim kao vodilju - ovo je jedan plan koji ti može pomoći da se bolje orijentišeš i da ne lutaš kao što sam ja lutao na početku, ali radi se o opštim smernicama; nisam išao u detalje jer različite oblasti na različite načine primenjuju dole navedene stavke (plan nije pisan definisanim redom) - neke oblasti ti možda uopšte neće biti neophodne u poslu niti trebaš da previše detaljišeš, ali ćeš sa njima postati ozbiljniji programer.

- Teorija programskih jezika
- Algoritmi
- Strukture podataka
- Operativni sistemi i sistemske arhitekture
- AI i mašinsko učenje
- Objektno-orijentisano programiranje
- Design patterns
- Funkcionalno programiranje
- Rad sa bazama podataka
- HTTP, RESTful API-i i baze podataka
- Testiranje softvera, TDD (Test-driven development) i BDD (Behaviour-driven development)
- Diskretna matematika (logika, teorija igara, linearna i diskretna optimizacija...)



offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

E.L.I.T.E. ::Za programiranje web, mobilnih i veći deo desktop aplikacija ti neće biti potrebna neka naprednija matematika, a kamoli fizika.

Ako pod naprednija mislis na diferencijalne jednacine i logaritme (ili ozbiljnije od toga), onda si (uglavnom) u pravu. U svim ostalim slucajevima i nisi bas.

Evo i zadatka ako mislis da pricam napamet: napisi JS koji ce od niza od proizvoljnog broja 2D slika da napravi pseudo-3D krug takav da mu je osa rotacije paralelna sa taskbarom, i css za rotaciju.

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Naravno, ima i toga. I u većim web projektima je potrebno poznavati neke naprednije algoritme kod naprimer procesorski zahtevnih operacija na strani servera, strimovanja i sličnog, ali je taj procenat daleko manji nego kod recimo sistemskog programiranja gde moraš da znaš da radiš sa stekom, registrima, da pišeš programe u kernel modu bez standardne biblioteke tj. sve moraš sam da implementiraš.

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Ako izuzmemo osnovne opercije, znanje matematike nije uslov za programiranje. U zadnjih 10 godina koliko već pravim programe za držacne organizacije, banke, policiju i neke privatne firme, nisam radio ništa što je zahtevalo znanje matematike na nivou srednje škole. Sve se moglo rešiti matematikom koja se uči u osnovnoj.

Ne kažem da neku naprednu matematiku ne treba znati, ali nije potrebna za većinu programa koji se traže na tržištu.

offline
  • coa93  Male
  • Zaslužni građanin
  • Pridružio: 31 Okt 2014
  • Poruke: 614

Moze li mi neko preporuciti knjigu u pdf formatu koju biste dali pocetniku da uci iz nje

offline
  • Programer
  • Pridružio: 23 Maj 2012
  • Poruke: 4575

Ja ti preporučujem Harvardov CS50 kurs - kad njega prođeš na konju si, ako želiš možeš i da dobiješ sertifikat za pređeni kurs ukoliko platiš $90 Smile

Ooops, zaboravih link: https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

Ako odmah želiš da pređeš na neki jezik prvo i prvo je dokumentacija, prelazak na knjige preporučujem tek kada postaneš zreliji programer (naravno, možeš da učiš i iz knjiga za početnike, ali iz mog iskustva znam da su one veoma spore i brzo zastarevaju, dok se dokumentacija redovno ažurira).

offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Svaka knjiga je dobra. Da sam na tvom mestu, prvo bih uzeo da čitam besplatne online knjige. Ovde imaš jednu veću listu, pa izaberi šta te zanima: https://github.com/vhf/free-programming-books/blob.....g-books.md

Ko je trenutno na forumu
 

Ukupno su 1247 korisnika na forumu :: 47 registrovanih, 4 sakrivenih i 1196 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., ajo baba, amaterSRB, armor, Atomski čoban, bojank, BORUTUS, Buzdovan, cavatina, cenejac111, Dorcolac, dule10savic, Futurama, goxin, ILGromovnik, Istman, Ivan Campo, JimmyNapoli, Još malo pa deda, Kaplar2, Karla, kokodakalo, Krusarac, Krvava Devetka, kuntalo, Luka1998, mikrimaus, mile23, milimoj, moldway, mrav pesadinac, Nemanja.M, NoOneEver Dreams, Oscar2, ozzy, Rakenica, raso7, Regrut Boskica, Shinobi, Srki94, stankolich, Tvrtko I, Wrangler, zdrebac, zeo, Žrnov, žeks62