SME
Pondelok, 30. november, 2020 | Meniny má Ondrej, AndrejKrížovkyKrížovky

Načítavam moment...
Momentálne nie ste prihlásený

Čo tak naučiť sa ďalší jazyk? Programovací (Späť na článok)

Pridajte priamu reakciu k článku

1 2 3 4 5 > >>

Hodnoť

 

klobuk dole, kto sa toto dokaze "naucit", podla mna sa s tym clovek musi narodit...IT nie je povolanie, IT je diagnoza
 

 

Zalezi od fazy - zacina ako povolanie a neskor je to diagnoza ;-).

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ť?

- učiť sa programovať ako samouk je totálna "Kalvária", sám som si to skúsil
- 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 ...

... na to aby sa nieco naucil lektora, niekto sa radsej uci ako samouk. Ja preferujem druhy pristup, pretoze pri samostudiu musim najst vsetky riesenia problemov sam a preto si ich aj lepsie zapamatam.
 

sám sa naučiť programovať = utópia

- ja ti to neberiem, veľa vecí sa dá učiť ako samouk ale máloktorá je tak ľahká, aby si sa ju ako samouk učil od začiatku a programovanie k nim určite nepatrí
- 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:

no vidis, ja som zivy priklad -> jediny z triedy som mal c64 (zvysok mal atari, didaktiky a ja neviem este co) -> nemal som ziadne hry, tak som sa ucil programovat
...
a zostalo mi to dodnes - to, co viem teraz je taktiez z velkej casti samostudium + znalost zakladov matematiky
 

 

jedine co mas je cas, ty si sa to neucil (ako praca), ty si to mal ako konicek - na ktory si minul kopec casu ktory ini mozno minuli na hranie ....
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.
 

 

Nie je to utopia - naopak, dava to dobry pohlad dovnutra a zaroven na chyby, ktore sa mozu vyskytnut.
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:

nuz ked sa na programovanie pozeras ako na investiciu, tak si radsej najdi inu pracu
...
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 :)

pozri, sice som sa naucil programovat tiez sam a to v dobe bez internetu znamenalo len jednu knizku a studovanie cudzich kodov, ale zabilo mi to nezmyselne pol detstva. keby som mal viac informacii a vedenie, tak by som bol omnoho dalej, lebo by som nepouzival nezmysele postupy a nerobil dookola tie iste chyby.
 

...no, hlavy študované túžiace po vedení

Nikto múdry z neba nespadol! Ani ja! Ale keby som mal rozsúdiť, ktorý spôsob štúdia je lepší a ktorý má viac výhod, tak mám veľmi veľkú dilemu! Rukami mi prešlo strašne veľa kódu a poviem vám, že hlavy študované majú veľký problém s čítaním kódu po sebe, ale na druhej strane píšu sofistikovanejšie štruktúry ako samoukovia. Ale samoukovia vedia písať jednoduchšie kódy pre zložitejšie implementácie, pretože daný problém diagnostikujú sami a nespoliehajú sa na poznatky a analýzy teamových kolegov. Musia si to sami prejsť aj odladiť a tým pádom majú väčšie skúsenosti ako hlavy študované, ktoré dosť často implementujú kusy kódu napísané niekým iným....
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

moj prvy pocitac bol tento: http://www.root.cz/clanky/papi... a dali sa na nom hrat aj hry, trochu vadilo len to, ze kazdy prikaz "strojoveho kodu" vykonavala obsluha zapisom do registrov a posuvanim papierovych pasikov. Potom TI-59, ZX80, Amstrad CPC 6128, ZX Spectrum, PDP-11 a VAX4000...
 

Pre niekoho utopia, ...

.. pre niekoho bezna realita.
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.
 

 

Rozdiel Pascal a C je prakticky len v syntaxi - to sa da zvladnut v jednotkach dni. Horsie je to, ked sa ide ovela dalej. Napriklad ASM niekomu pri prechode z C robil problemy (pre mna to bolo zase docela v pohode). Na opacnu stranu je tu napriklad Java - samotna sa da naucit; aby programy vyzerali "Javovsky", to uz je narocnejsie. A aby si pouzival aj vymozenosti v tomto pripade Java EE, to uz nejaky cas trva.
A to nehovorim o funkcionalnych jazykoch - tam je rozdiel najcitelnejsi.
 

 

Rozdiel Pascal a C je len v syntaxi? Potom rozdiel medzi dvoma lubovolnymi jazykmi je len v syntaxi. Skus v standartnom Pascale pouzit preprocessor, headerfajly, onanie s pointermi.. a urcite sa to nikdo nenauci v radoch dni.
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.
 

 

Pardon, ale on robil prenos Pascal -> C, nie C -> Pascal. Pascal nema hlavicky, ale riesi to inak - tusim to volal "Unit" .
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.
 

 

Joj ved OK, ja suhlasim s tvojim popisom vhodnosti jazykov, len mi nepride vhodne porovnavat prechod z pascalu na C s prechodom z pascalu na Javu, tvrdiac ze java je narocnejsia ked v tom chce clovek pisat poriadne. Ja som chcel len dodat, ze narocne aj C. A povedal by som, o dost viac.

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++?
 

 

S RAII - j, mylim si to - myslel som nieco trochu ine ako je vo zvyku v C++. U C robim to, ze objekt / teda strukturu uvolni jeho vlastnik. A ked sa struktura preda dalej, tak ju uvolni novy vlastnik atd.
 

 

opakom "naučiť sa sám" je vyštudovať vysokú školu zameranú na IT. Ty aj so svojim kurzom skôr spadáš pod kategoriu "samouk"...

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....
 

 

ja som sa 22 rokoch ( bolo to niekdy v roku 93 ) zacal hrat na ITckara, lebo som mal ake take skusenosti s pocitacom, lebo este za totaca sme mali Sinclaira a otec bol programator, ale doma ma to nejak nebavilo. Hned v prvej robote som vyfasoval spravovat UNIX a musel som sa ucit. K tomu Informix. V dalsej praci som vyfasoval FoxPro, tak som sa musel ucit, k tomu DBFky. V 2000 roku som uz presiel na iny level, objektove programovanie a Oracle.
Ale vzdy som sa ucil v praci, nikdy nie doma a uz vobec som nedrzal v ruke ziadnu knizku :)
 

1 2 3 4 5 > >>

Najčítanejšie na SME Žena