Do diskusií sa môžu zapojiť všetci predplatitelia SME.sk, Korzar.sk a Spectator.sk. S predplatným získate neobmedzený prístup k článkom, ako aj neobmedzený počet príspevkov v diskusiách. Ak ešte nemáte predplatné, kúpiť si ho môžete tu.
Ak už máte predplatné, prihláste sa.
Zeny by mozno pomohli prekonat take klasicke stereotypy - ze ajtaci sa o zovnajsok velmi nestaraju alebo ze maju problemy komunikovat s ludmi mimo svoje zameranie.
K clanku: Rails su popularne, robi sa v tom pomerne dobre, ale to podla mna nie je o syntaxi. Stretol som sa aj so zaciatocnikmi, ktorym isli od zaciatku lepsie programovacie jazyky zalezene na rekurzii - ci uz funkcionalne ako Haskell, ((mozno Lisp)), alebo logicke ako Prolog.
Keby islo o mna, tak by som na zakladne naucenie asi odporucil Pascal, potom nieco objektovejsie (Java; mozno Delphi) a potom Groovy a Grails. Dovodom je ta striktnost a zaroven jednoduchost Pascalu, kde nejde o ucenie sa funkcii, potom pripadne rozumny navrh z Javy a nakoniec nieco, v com sa pise lepsie ako v Jave.
Ako sa naučiť programovať?
- najefektívnejší je individuálny kurz s lektorom a začať treba s Visual Basicom a neskôr prejsť na C# alebo Javu, ja som absolvoval individuálny kurz v IJaVe (www.ijav.sk) a po 12 hodinách som už obstojne ovládal základy a bol schopný písať jednoduché aplikácie, po ďalších 12 hodinách som bol schopný ísť ďalej sám a rozvíjať sa samoštúdiom, dnes ma to celkom dobre živí
- investícia 12x20+12x20= 480€ sa mi totálne vyplatila
- naučiť sa programovať je celkom určite vec , ktorú vám musí niekto vysvetliť a vy musíte mať možnosť sa ho pýtať a on musí opravovať vaše časté chyby, riešiť to "čistým samoštúdiom" je plytvanie časom a nervami, takže ten článok je celkom pekne zavádzajúci
Niekto potrebuje ...
sám sa naučiť programovať = utópia
- sám sa ako samouk pokiaľ nemáš základy programovania ani nepohneš z miesta, jednoducho sa budeš stále zasekávať na triviálnych problémoch s ktorými si nebudeš vedieť rady
- naučiť sa sám programovať bez možnosti sa niekoho pýtať, to je predstava ktorá sa blíži k utópii
re:
...
a zostalo mi to dodnes - to, co viem teraz je taktiez z velkej casti samostudium + znalost zakladov matematiky
oproti tomu vyssie spominanan investicia 480 eur na skolenie sa mi zda efektivnejsia - nehovorim teraz o konicku ked mam neobmedzene casove zdroje :) bez naroku na efektivnost vynalozenych prostriedkov.
Programator bez toho spravi chybu a vacsinou nema tusenie, preco to moze nefungovat - nenapada ho, kam by sa pozrel. Nevie, ako by to riesil. Nam, co sme sa ucili postupne, toto nerobi taky problem. Nejde mi nejaka obskurny konstrukt? Pozriem do kodu po spracovani prekompilerom.
Vyzera to dobre? Pozriem do assembleru / bytecode u Javy. Je tam chyba? Tak je mozno nezdokumentovane chovanie / chyba v kompilatore (aj to sa mi stalo - pri nejakom nastaveni kompiloval nieco prakticky nespustitelne).
Je to dobre? Nie je tam race condition? Neprepisujem si vlastnu pamat? A co keby mi tam dal niekto nejaky necakane dlhy retazec alebo inu zlu vec? Co keby sa nejaky student volal Robert'); DROP TABLE students; -- ? ( http://xkcd.com/327/ )
re:
...
programovanie ta musi prirodzene bavit, toto nie je ten typ prace ze investujem x penazi/rokov a budem sa mat dobre - budes sa akurat trapit\
samouk :)
...no, hlavy študované túžiace po vedení
Takže vo finále je to stále iba remíza! Tak chalani sa ukľudnite a začnite sa rešpektovať navzájom! Lebo iba takto spravíme svet IT lepším, zrozumiteľnejším a hlavne prijateľnejším. Ešte nikto nedokázal zvíťaziť nad zákazníkom a ten jednoznačne potrebuje ako študovaných analitikov, tak aj samovzdelaných fanatikov...
hehehe
Pre niekoho utopia, ...
Napriklad ked som robil diplomovku (navrh cipu) tak jej sucastou bol aj pomocny program na programovanie toho cipu. Vtedy (bolo to v polovici 90. rokov) som programoval hlavne v Pascale, teda aj riadiaci program som napisal v Pascale. Diplomovy veduci po mne ale chcel, aby som ten program prepisal do C a zaroven aby bol multiplatformny (teda aby isiel skompilovat aj na Windows aj na Unixe). Trvalo mi cca. 2 tyzdne (asi 1-2 hodiny denne) kym som sa sam naucil C a prepisal som do neho program (samozrejme bez konzultacii).
Ano, mal som vtedy uz asi 10 rocne skusenosti s programovanim, ale ked som sa ucil programovat na zaciatku, tak som sa tiez ucil sam, na zaklade kniziek a serialov v casopisoch (Elektron, VTM) a to som vtedy dokonca nemal ani pocitac. Ked som sa neskor prvykrat dostal u kamarata k pocitacu, napisal som okamzite bez problemov funkcny program.
A to nehovorim o funkcionalnych jazykoch - tam je rozdiel najcitelnejsi.
Ako maly jojo som bol Pascalista dusou, a tiez som videl C ako inu formu zapisu Pascaloveho programu. Ale to som sotva chodil na strednu skolu.
Z Tvojho prispevku badat ze robis v Jave. Aby som dal kontrapriklad(tiez pritiahnuty za vlasy). dovol mi predostriet alternativnu verziu, ze prechod z Pascalu do Javy je tiez otazka par dni. Java je v podstate skladacka; ked pochopis princip objektoveho programovania a naucis sa par beznych tried tak uz to ide ako po masle. Dalsi priklad: Java ma narozdiel od C komfort garbage collectingu, takze uz len vytvaras objekty jak na beziacom pase a uz sa vezes. Ale skus si v C napisat vlastny memory management a az potom programuj. Aby programy vyzerali "Cckovsky", to uz je narocnejsie....blablaatdatd..
Zhrnute, podciarknute: Kazdy jazyk sa da naucit na zakladnej urovni patlania behom par dni. Avsak kazdy moderny jazyk ma tolko vymozenosti, ktore sa musis ucit v praxi pouzivat roky, nez ti prejdu do krvi. Java, C, C++, Python, Perl, Ruby atdatd.. nie su ziadnou vynimkou.
Preprocesor Pascalista jednoducho nepouzije (mozno mimo #Include, ale to pre neho moze byt len iny sposob zapisu "using").
Z uzivatelskeho hladiska a z pohladu takehoto prechodu je to teda naozaj v pohode.
Java ma nejake rozdiely, ale je pravda, ze ked v nej niekto nechce robit objektovo, tak v nej bohuzial moze pisat takmer ako v C (aj ked pre Cckara je to uz narocnejsie, lebo nema pointery a napriklad take pointery na funkcie si musi programator sam vytvorit vlastnym interface-om).
Java ma GC, ale s tym vytvaranim objektov ako na beziacom pase to az tak neplati - skor sa mi zda, ze dnesne pomale Java programy vyzadujuce na spustenie desiatky GB RAM su len dosledkom toho, ze niektori ludia nepoznaju GC a nevedia, ako mu to spravne podat.
V C netreba pisat vlastny memory management - mame RAII. Memory management nepise nikto ani v Jave. V C musim akurat namiesto Javovskeho nastavovania pointeru na null pouzit free (niekedy ju preto musim aj prechadzat).
Z tych dalsich jazykov - v C++ sa da programovat takmer ako v Jave a myslim, ze je to jeden z mala rozumne citatelnych sposobov. Pri pouzivani viacnasobnej dedicnosti uz sa straca ten vztah is-a, co uz vacsinou svedci o zlom navrhu.
Python - rozumny programovaci jazyk, ale ze nieco zo stareho Pythonu nebezi pod novym, to je na nervy. A pouzitie whitespace ako niecoho vyznamoveho tiez. Ocenujem funkcionalne prvky.
Perl je vyborny na skriptovanie - robit v nom nieco vacsie sa mi zda byt trochu od veci, aj ked aj to je moznost (poznam jednu taku velku firmu). Na Perli sa mi nepaci, ze zvadza k lepeniu kodu (ked sa nepouzije use strict; ma implicitne premenne, silne regexpy) a komunita ho aj tak berie.
Ruby - podla mna nema jasny ciel ako Perl alebo Python - chce byt kazdym trochu, takze nie je nicim...
> Potom rozdiel medzi dvoma lubovolnymi jazykmi je len v syntaxi.
To urcite nie - skus si porovnat napriklad Prolog a C. Kazdy vyzaduje diametralne iny sposob uvazovania.
Isteze syntax nie je zdaleka vsetko, to bolo myslene v uvodzovkach, ked si porovnaval pascal a C, prislo mi to ako podobna kravina, len otocena naopak.
...a RAII v C? Akym sposobom?? Nemylis si to s C++?
Ale inak máš pravdu, najväčši problém pre začínajúceho programátora je ked nemá pri sebe niekoho kto mu odpovie na triviálne otázky....
Ale vzdy som sa ucil v praci, nikdy nie doma a uz vobec som nedrzal v ruke ziadnu knizku :)