offline
- E.L.I.T.E.

- Legendarni građanin
- 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...)
|