Jaký jazyk zvolit pro začátečníka

ondra.novacisko.cz

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #15 kdy: 15. 10. 2010, 08:06:53 »
Fakt se to vyplati. A na Wydle ... uplne zapomen - to neni pro programatory. Taky zapomen na mys. Nesmysly, ktere nebyly vymysleny pro programovani ale pro lidi, kteri programovat nechteli.

Připomíná mi to Červený Trpaslík. K úspěšnému postupu v karieře stačí být disciplinovaný, organizovaný, naprosto oddaný své práci a vždycky mít u sebe tužku.

Výsledek: Naprostý magor, kterým pohrdají všichni, krom lodního papouška. A to jen proto, že žádného nemáme


Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #16 kdy: 15. 10. 2010, 09:18:23 »
Muzete zkusit i Pascal. rozhodne bych Vam nedoporucoval se ze zacatku zabyvat jazyky jako je java, C#, Python a pod, protoze tyto jazyky vysi urovne uz pred programatorem skryvaji nektera uskali programovani (sprava pameti, kontroluji rozsah poli, atpd..) coz by mohlo vest ke spatnym, nebo nevhodnym navykum.     

To mi přijde jako zvláštní názor. Jaké např. špatné návyky přináší jazyk, který obsahuje kontrolu rozsahu polí? Když index přešvyhnu, dojde k výjimce, která jasně říká k čemu a kde došlo (IndexOutOfRangeException na řádku 123 v souboru xyz). U C může dojít v podstatě k čemukoli, včetně toho, že nedojde k ničemu a program normálně funguje (přepíšu data, která už potom nepoužívám, takže na chybu nepřijdu). Nebo přestane fungovat úplně jiná část programu a chudák začátečník ať si láme hlavu, proč...

Správa paměti - no to je fakt, že to se člověk v C# moc nenaučí - ovšem otázka je, proč by se to taky měl učit, když to v C# není potřeba. V C se taky nenaučí práci s registry procesoru a nikomu to nevadí...

ondra.novacisko.cz

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #17 kdy: 15. 10. 2010, 09:53:44 »
Správa paměti - no to je fakt, že to se člověk v C# moc nenaučí - ovšem otázka je, proč by se to taky měl učit, když to v C# není potřeba. V C se taky nenaučí práci s registry procesoru a nikomu to nevadí...

Protože paměť je prostředek OS jako každý jiný. Třeba diskový soubor, nebo otevřené spojení, nebo zámek, vlákno. Tyhle prostředky už v GC jazycích automaticky spravovat nelze. V C++ ano.

podlesh

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #18 kdy: 15. 10. 2010, 09:55:20 »
Ze svých zkušeností (nějaký čas jsem to učil) rozhodně nedoporučuji začínat s C.

Naprosto souhlasím s tím, že každý programátor by měl C umět a získat nějaké zkušenosti s low-level programováním, takže určitě C nepřeskakovat. Na druhou stranu, pro opravdového začátečníka je docela "záhul" učit se základy programování (algoritmizace, větvení, smyčky, proměnné / parametry, funkce/procedury) a zároveň současně detaily a zákeřnosti architektury počítačů (paměť a její adresování, zásobník, registry).

Za mých mladých let se s C začínalo až když člověk získal nějaké zkušenosti z BASICu (Pascalu, pokud někdo začínal až ve škole) a trochu si pohrál s asemblerem (nebo alespoň s hw).

alefo

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #19 kdy: 15. 10. 2010, 10:04:37 »
Suhlasim s predrecnikom: vacsina zaciatocnikov, co vidim na okoli, ma dostatok problemov uchopit uz len zakladnu algoritmizaciu. Pre nich je dolezite pochopit zakladne finty, kedy aky cyklus pouzit, ako stavat funkcie, ako postavit podmienku. Pre nejedneho z nich su uz aj datove typy vec, ktora im sposobuje na uvod potiaze a najradsej by ich ignorovali.

Low-level veci im pridu kontraproduktivne, resp. im stazuju pristup.

Vsak kopa ludi zacinala tiez blahej pamati v 80. rokoch v BASICu, kde ziadne low level veci neboli, a ludia sa to prevazne ucili az potom, co zvladli zaklady.

Ja by som skusil Python (to hovorim ako clovek, co bdie a zaspava s Javou)


ondra.novacisko.cz

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #20 kdy: 15. 10. 2010, 10:30:11 »
Ja by som skusil Python (to hovorim ako clovek, co bdie a zaspava s Javou)

S tím pythonem nevím. je fakt, že člověk neposkrvění programováním nebude zápasit s odsazováním na každém řádku, na druhou stranu může mít později problém zvyknout si na to, že většina jazyků strukturu nehledá v bílých znacích, ale zpravidla v blocích uvozených nějakými závorkami (ať už symbolem, nebo klíčovým slovem)

David Strejc

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #21 kdy: 15. 10. 2010, 10:40:03 »
Samozrejme, ze jsem si delal zadek ;o)

Pouzivat kazdy muze co chce - vcetne Cerveneho trpaslika, kde se to vypousti z hlavy.

Jen dle meho nazoru jsou windows malicko nepritulne v tom, ze vsechno kvalitni je placene (fajn - tak to byt muze ...) a nema to dostupne zdrojove kody, ktere nekdy staci oeditovat tak, ze zakomentujeme jeden radek a funguje to.

Programovaci jazyk je jen nastroj - dulezite jsou myslenky - co programuju - proc to delam a tak dale. Cili bych zacal teoretickou rovinou - kdy pouzit for, kdy while, kdyz pole, kdy hash a tak dale az k tomu, co je to trida, objekt ...

Podle me je nejdulezitejsi to neustale zkouset. Co to dela, jak to dela ... Ted jsem resil napriklad to, ze v BSD, Linuxu a Win jsou ruzne naimplementovane traceroute ... A pak si debugujte sit, kdy dva velci provideri pravdepodobne "prepajali" ve stejny den ... Firewally na BSD jsou nastavene na ICMP echo ... Linux ma ICMP volani jine pri spusteni traceroute.

A to je taky programovani, jestli se nepletu. Programovani je hrani si s kostickama. Muzou to byt mikrokosticky Assambleru nebo to muzou byt makro kosticky Javy ... stejne jde jen o to, co clovek skutecne chce a co ma byt vysledek jeho tvorby.

ondra.novacisko.cz

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #22 kdy: 15. 10. 2010, 10:46:13 »
Jen dle meho nazoru jsou windows malicko nepritulne v tom, ze vsechno kvalitni je placene (fajn - tak to byt muze ...) a nema to dostupne zdrojove kody, ktere nekdy staci oeditovat tak, ze zakomentujeme jeden radek a funguje to.

Ty Express edice jsou zdarma. Většinou jsou určeny pro začínající programátory

(http://www.microsoft.com/express/Windows/ - tady si můžete vybrat Basic, C++ a C#)

Logik

  • *****
  • 1 022
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #23 kdy: 15. 10. 2010, 10:58:19 »
Podlesh: tys asi v C moc nedělal, když ho dáváš do souvislosti s různým adresováním a zásobník a registry.... IMHO pro začátečníka jsou v C dva problémy a to práce s řetězci a horší možnosti ladění.

  Pro výuku ho považuju za vhodnější než Basic či VisualBasic. Jelikož jsem prošel ve svých mladých letech vývojem Basic - VisualBasic - C++ (pascal až poté ve škole), tak myslím, že to tvrzení má nějakou relevanci. Těch zlozvyků, co jsem se musel z Basicu odnaučit....

Tiger, novačisko: Psát objewktově se dá i v assembleru. Jde jen o to, jak velkej support ten danej jazyk poskytne. C++ proti modernějším jazykům v tom moc dobře není a proto ho osobně pro výuku objektového programování nepovažuju za příliš vhodný - netlačí člověka k správnému způsobu psaní, a některé běžně používané obraty se tam nechovaj standardně
 (např. interface).

Čím víc nad tím přemýšlím, tak bych začal algoritmizací v pascalu či pythonu, přes pokročilejší algoritmizaci v C a pak přešel na nějakej objektovej jazyk (Java, C#).
No a do toho nějakej kus javascriptu, pokud člověk není takovej masochista, že si začne s lispem/schemem...

D.A. Tiger

  • ****
  • 486
  • Tygr, který žere tučňáka ;-)
    • Zobrazit profil
    • E-mail
Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #24 kdy: 15. 10. 2010, 11:25:40 »
Muzete zkusit i Pascal. rozhodne bych Vam nedoporucoval se ze zacatku zabyvat jazyky jako je java, C#, Python a pod, protoze tyto jazyky vysi urovne uz pred programatorem skryvaji nektera uskali programovani (sprava pameti, kontroluji rozsah poli, atpd..) coz by mohlo vest ke spatnym, nebo nevhodnym navykum.     

To mi přijde jako zvláštní názor. Jaké např. špatné návyky přináší jazyk, který obsahuje kontrolu rozsahu polí? Když index přešvyhnu, dojde k výjimce, která jasně říká k čemu a kde došlo (IndexOutOfRangeException na řádku 123 v souboru xyz). U C může dojít v podstatě k čemukoli, včetně toho, že nedojde k ničemu a program normálně funguje (přepíšu data, která už potom nepoužívám, takže na chybu nepřijdu). Nebo přestane fungovat úplně jiná část programu a chudák začátečník ať si láme hlavu, proč...

Jenze prave proto, ze je to jazyk nizsi urovne, tak je mnohem vetsi pravdepodobnost, ze duvod chybneho chovani programu snaze najde - Jazyk pred nim nic neskryva a nedela nic sam. Navic nikde neni psano, ze naucit se programovat je neco jednoducheho a bez obtizi.

Citace
Správa paměti - no to je fakt, že to se člověk v C# moc nenaučí - ovšem otázka je, proč by se to taky měl učit, když to v C# není potřeba. V C se taky nenaučí práci s registry procesoru a nikomu to nevadí...

A to je prave ono - presne jak uz tu myslenku nekolikrat rozvedl a upresnil kolega Ondra. Ono to podle toho taky tak potom vypada. Clovek si lejhce zvykne na to, ze spravu zdroju a podobne lahudky (treba zminovanou kontrolu indexu poli, kterou se tolik ohani zastanci C#) za nej dela jazyk. Za prve ty techniky nejsou uplne 100% (automaticka sprava pameti obcas uvolni obekt, ktery uvolnen byt nema, atpd...) a za druhe pokud se od zacatku nauci si hlidat zdroje (a jine veci) bude mit (snad) tendence  psat o dost usporneji a efektivneji. No a za treti, o delu na komara jsem uz mluvil....
 

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #25 kdy: 15. 10. 2010, 12:22:01 »
Jenze prave proto, ze je to jazyk nizsi urovne, tak je mnohem vetsi pravdepodobnost, ze duvod chybneho chovani programu snaze najde

"Snaze najde"? Kdyz nekde v ramci programu pretecu prez hranice pole, tak v C v nejlepsim pripade program spadne - tzn. dostanu core dump. V C# dostanu hlasku "v souboru xyz na radce abc pretekl index pole". Nechapu, co je snazsiho na hledani chyby v coredumpu... A to coredump je jeste ten nejlepsi moznej zpusob, jak se chyba projevi.

Clovek si lejhce zvykne na to, ze spravu zdroju a podobne lahudky [...] za nej dela jazyk.

No a?

V C si zase člověk snadno zvykne na to, že se nemusí zamýšlet nad tím, do kterých registrů se co ukládá. A to je jako špatně?

Dneska se prostě vyvíjí v jazycích, které mají GC a podobná usnadnění. A když ho nemají, tak se tam dodělá poloautomatický GC (C++, Objective C). Není důvod se (obzvláště na úplném začátku) prudit s něčím, co člověk v praxi stejně nebude potřebovat.

bubavanek

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #26 kdy: 15. 10. 2010, 14:13:15 »
No co jsem si tak přečetl, tak je pravděpodobně jedno v čem začnu (pokud to nebudou vyšší jazyky, ne který bych měl mít nějaké ty znalosti) stejně si budu muset projít minimálně vším. S tím jsem počítal. Takže první možnost je tedy asi C, Python či Pascal.

Všem moc děkuji, jak za názor, tak za odkazy. Pokud byste chtěli něco dodat budu jen rád.

ondra.novacisko.cz

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #27 kdy: 15. 10. 2010, 14:32:24 »
C++ proti modernějším jazykům v tom moc dobře není a proto ho osobně pro výuku objektového programování nepovažuju za příliš vhodný - netlačí člověka k správnému způsobu psaní, a některé běžně používané obraty se tam nechovaj standardně
 (např. interface).
chemem...

Které moderní jazyky jste zde měl na mysli?

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #28 kdy: 15. 10. 2010, 14:54:12 »
Ahoj, chtěl bych se seznámit do hloubky s programovacími jazyky. Tudíž se vás ptám, jestli byste mi mohli poradit v čem začít. A jestli by pro mě jako pro začátečníka bylo výhodnější si nainstalovat Linux. Plánuji si samozřejmě koupit nějakou tu literaturu pro začátečníky, ale zajímalo by mě zda-li byste mi nějakou mohli doporučit. Tak trochu jsem se zaobíral PHP, HTML, CSS (velmi okrajově), Delphi samozřejmě ve škole, Visual Basic trošku.
Budu rád za jakoukoliv objektivní radu.
Předem děkuji.

Java, protože je to čistý objektový jazyk. Na naučení objektového programování je podle mě ze současných dostupných jazyků nejlepší.  :)

Re: Jaký jazyk zvolit pro začátečníka
« Odpověď #29 kdy: 15. 10. 2010, 14:59:12 »
Ahoj, chtěl bych se seznámit do hloubky s programovacími jazyky. Tudíž se vás ptám, jestli byste mi mohli poradit v čem začít. A jestli by pro mě jako pro začátečníka bylo výhodnější si nainstalovat Linux. Plánuji si samozřejmě koupit nějakou tu literaturu pro začátečníky, ale zajímalo by mě zda-li byste mi nějakou mohli doporučit. Tak trochu jsem se zaobíral PHP, HTML, CSS (velmi okrajově), Delphi samozřejmě ve škole, Visual Basic trošku.
Budu rád za jakoukoliv objektivní radu.
Předem děkuji.

Java, protože je to čistý objektový jazyk. Na naučení objektového programování je podle mě ze současných dostupných jazyků nejlepší.  :)

Ještě jsem viděl, že vám tu doporučují na učení jazyk C++. To můžu silně nedoporučit, protože v C++ se často stává, že vám kompilátor nahlásí chybu někde úplně jinde než ve skutečnosti je - třeba v úplně jiném souboru. Sám mám C++ rád, ale na naučení programování je podle mě jeden z nejméně vhodných. To už je opravdu mnohem lepší Pascal/Delphi.