Kateri programski jezik za začetnika?
11 naročnikov
11 naročnikov
Pozdravljeni.
Zanima me vaše mnenje z katerim programskim jezikom se splača začeti učiti programirati. Da ne bom dobim odgovora "Let me google that for you" naj povem, da sem prebral že kar nekaj forumov, vendarle sem le še bolj zmeden, saj vsak navija za drug jezik.
Za začetek naj povem, da ne poznam nobenega programskega jezika (osnovno poznam html, malenkostno pa se znajdem tudi v php)
Nekako sem izluščil, da je za začetnika najboljši C++ - se strinjate? Željo pa imam, da bi zbrano znanje kasneje nadgradil tudi z javo, saj nabiram osnovna znanja za kasnejše programiranje v Androidu.
Poleg tega pa me zanima tudi če poznate kakšno dobro literaturo na to temo, ali pa kar kakšne tečaje?
Lep pozdrav, Luka.
14 odgovorov
Odvisno, kaj želiš s programiranjem delati. Kolikor opažam se začetnikom bolj svetuje java, tudi po šolah in fakultetah se začenja s tem. Za prvi "hello world" je tudi python super, se da narediti kaj uporabnega že z osnovnim znanjem.
Priporočam CS50. To je dejanski predmet na Harvardu, ki je popolnoma zastonj, v celoti posnet in z vsemi gradivi dostopen preko spleta. Temu se reče Open Course Ware.
Lahko rečem samo eno - na Harvardu znajo. Iz precej dolgočasnega predmeta uspejo naredijo pravi show. Poglej si malo posnetke predavanj. Imaš posneta predavanja, potem so tu zanimivi "problem seti", ki te dobro prisilijo, da začneš razmišljati programersko, so še obstranska predavanja, pisni izpiti in ostala gradiva.
V bistvu je ta predmet namenjen temu, da predstavi koncepte programiranja in delovanja računalnika. Programira se pretežno v Cju. Proti koncu se dotaknejo še HTMLja, Javascripta in PHPja.
Zadeva ni ne prelahka, ne pretežka, si pa moraš vzeti čas. Za začetek se mi zdi, da je super.
"programski jezik za začetnika" :) To je zelo filozofsko vprašanje.
1. Če misliš potem programirat za android se začni učit javo.
2. Če misliš delat spletne strani se začni učit PHP, ruby, ...
Ne vem pa kaj točno boš naredil s c++ (ne pravim, da se ga ne rabi)
Sedaj literature za Javo je precej ker se jo uči na faksih. Tko da lahko pogledaš če kak študent prodaja "glej knjigo za Programiranje 1" :)
Moj glas gre Pythonu.
Pros:
- Zelo enostavna sintaksa.
- Bogati nabor knjižnic.
- Po defaultu deluje na vseh(večini?) linux distribucijah.
Cons:
- Platformska podprtost.
- Meni osebno ni ratalo kompajlat .exe, ki bi delal na windowsih brez predhodne inštalacije Pythona.
Recimo ok, obstajajo knjižnice, preko katerih lahko delaš tudi robo za Androida, ampak ti iz prakse povem, da se hitro zatakne, če želiš zadevo monetizirat z oglasi. Zato sčasoma greš pač the native way:
- Java za Androida
- Objective C za iOS
- PHP/javascript za web development
- C ali .NET za Windows desktop aplikacije
Začni pa s katerim koli jezikom, ki se tebi osebno najbolj dopade. Tako boš ostal še najbolj motiviran, kar je vsaj za moje pojme taglavna stvar, ki te bo na dolgi rok vlekla naprej. Samo programiranje je povsod načeloma isto, spreminja se samo sintaksa, ki si jo pa itak lahko sproti pogledaš za karkoli pač potrebuješ.
Am.. tole ko se .NET povezuje samo z windows desktop aplikacijami me res razkuri. Poglejte si malo MVC in .NET, je za web zelo lepo razdelano..
Ne verjamem, da ti vrstni red programskih jezikov, ki sem se jih jaz naucil in uporabljal danes se kaj pomaga je pa morebiti zanimivo iz arheoloskega stalisca :P
Fortran (prvi jezik ki sem se ga naucil - dejansko na papirju)
Basic (prva koda na racunalniku)
Turbo pascal (s temle smo se res naucili programirat)
C (tega sem zares uporabljal - TSR programi, prakticno sem mel preprogramiran bios)
Cobol (resevanje zastarelih programov iz Iskra Partner racunalnikov in prenos na PCje)
Clipper (tule je pa bilo pa verjetno par 100k vrstic kode :P)
PHP (v zadnjem casu - maksimalno 15 vrstic kode naenkrat :D)
@Perun, samo še na Prolog ga navižaj, pa se mu bo programiranje priskutilo še pred začetkom ;-)
Če ti je cilj programiranje v Androidu, bi ti morda pomagalo kaj od tega:
https://www.coursera.org/course/programming1
Tole je osnova o programiranju. Razloženo res čisto za začetnika in bi ti morda bilo najbolj ugodno za začetek. Je tudi poudarek na dobrih tehnikah programiranja (par vrstic hitro sflikaš skupaj, za večje projekte je pomemben red in sistematika)
Še ena taka bolj začetniška stvar, ampak že malo več:
https://www.coursera.org/specialization/fundamentalscomputing/9?utm_medium=courseDescripTop
Ta dva bi ti bila za ogrevanje. Kateri programski jezik - saj je res, da se jeziki razlikujejo, ampak pri vseh moraš razumet naslednje:
- podatkovni tipi (različnih vrst za znake, števila, logične vrednosti, indeksirana polja, večkrat indeksirana polja ...)
- stavki if
- zanke for, while, unitl
- koncepti objektnega programiranja (razredi, podrazredi, metode, konstruktorji ...)
. potem so še druge zadeve (delo z datotekami, io napravami ...)
Tako da je pravzaprav vseeno, kje začneš, ker na tem nivoju še ne bo takih fines. Predvsem si potem zastavi nekaj osnovnih nalog iz programiranja, da se navadiš po programersko razmišljat. Če misliš resno s programiranjem, poguglaj kaj na temo "Design of computer algorithms".
To bi bilo za ogrevanje, potem imaš pa tule en totalno našponan tečajček prav za mobilne naprave:
https://www.coursera.org/course/digitalmedia
Naj te ne moti, da je že spet en drug jezik (Processing), nekako je v sorodu z Javo. Pridobil boš koncepte dela s sliko, zvokom, povezovanja s Facebookom, prilagajanja za različne operacijske sisteme. Vse ti pokažejo, v roke ti dajo knjižnico, ti pokažejo kako je narejena igrica AngrBirds - ti dajo v roke en physics engine, da si lahko sam narediš kaj podobnega. Ma totalno lušten tečaj, toliko ti dajo "lego kock", da z minimalnim znanjem načaraš vse živo. Tale bi ti bil po moje fajn v motivacijo.
Morda najdeš tule kakšne pametne vire:
http://developer.android.com/sdk/installing/studio.html
S tem bi že moral imeti toliko podlage, da boš lahko kakega resnega programerja vprašal kaj konkretnega. Je pa toliko online zastonj resursov - recimo Cousera ima vse živo (in brezplačno), Udacity ima tudi zanimive tečaje.
Tako kot pravijo, odvisno je od tega, v kaj se boš usmeril. Edina napaka, ki jo folk dela, je ta, da kolebamo okoli jezikov, potem ko smo enkrat odločeni. In pol kolebamo in kolebamo in gledamo okol in od tega ničesar nimamo. Samo začet je treba, magari s čemerkoli. (pa če že vzameš karkoli, vzemi LISP, hihi)
Ampak, če pa po slučaju kakorkoli želiš delat z web aplikacijami, pa IMHO ne moreš zgrešit, če začneš z JavaScript.
Edini problem, ki ga JavaScript ima, je ta, da dandanes vsak nadebudni programer najprej pogoogla okoli jezikov. In čez pet minut že bere en forum, kjer šimfajo čez JavaScript sto na uro. Garantiram, tukejle pod mano se bo zdejle oglasila ena zgubljena duša, ki bo na ves glas vpila, da bohnedaj JavaScript, ker se boš nalezel vseh možnih slabih navad, pa počas dela, pa obupna sintaksa, pa to pa to ne dela tam pa tam, pa da boš zasovražil DOM in BOM. In to je vse res, sploh če z JavaScript ne znaš delat.
Ampak ko pa enkrat znaš z JavaScript delat, pa lahko leta 2014 z enim samim jezikom sproduciraš strežnik, na njem sprogramiraš serverside aplikacijo, ki se na drugem koncu pogovarja s JS frameworkom tipa Angular.js, ki se bo pogovarjal z brskalnikom in potem samo ustvarjaš. In imaš zelo hitro kej za pokazat.
JS ne dela počas (je eden izmed jezikov, v katerega optimizacijo se je zmetalo največ keša).
JS nima veze z DOM. Z BOM pa še manj.