Java nebo C++ pro absolutní začátečníky?

Waseihou

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #15 kdy: 04. 09. 2012, 10:31:41 »
A nebo mohou pěstit ;)

Pot Farm Bot with Sikuli: http://www.youtube.com/watch?v=ZZk3goL33lo


Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #16 kdy: 04. 09. 2012, 10:36:01 »
Ještě abych upřesnil situaci. Ten věk co píšu, se netýka mé osoby. Mě 15 bylo už dávno :-) Učím na SŠ C++, teď nás sloučili s jinou školou, kde programují v Javě. Ale právě už prváci (15-16 letý děcka). No a naši "programátoři" se bijí s těma jejich, že C++ je na naučení a pochopení problematiky lepší. S Javou nemám osobně zkušenosti, proto se ptám :-) A děkuji za názory.
O jaký jde předmět a specializaci SŠ? Jaké programátorské techniky by se měli studenti naučit? Jaký způsob použití nabytých znalostí se dá očekávat (typ aplikací, oblast, technologie)?

Podle toho bych vybíral jazyk já.

vyvojar

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #17 kdy: 04. 09. 2012, 11:09:54 »
Podle mě totální kravina začínat s Javou. Nejlíp začni s C a pak případně C++ nebo Javu. C se překládá přímo do strojovýho kódu, takže si případně můžeš i v nějakém disassembleru jako ollydbg prohlédnout, co to vlastně vygenerovalo, pročíst si nějaké základy assembleru, aby jsi tak nějak pochopil tu filosofii, že se programy překládají do strojového kódu procesoru, který pak ten kód vykonává a že Java např. se překládá do kódu, který je pak interpretován jiným programem, který byl naprogramován třeba v tom C. Pochopíš, jak funguje paměť, že musíš alokovanou paměť taky uvolňovat, že máš nějaké ukazatele, které drží adresy jiných entit v paměti a že se někdy vyplatí předávat spíš ukazatel atd. atd. Pod C už máš akorát assembler, java už je další level abstrakce, navíc C je hodně spjaté s operačními systémy, protože se začlo vyvíjet spolu s unixem. R.I.P Dennis Ritchie.

pk13

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #18 kdy: 04. 09. 2012, 11:21:30 »
Napíšu z vlastní zkušenosti (sice jsem s programováním nezačínal v 15-16 ale o pár málo let později). Nicméně úplný (ten nejúplnější) začátek mi byl položen v pascalu a pak hned navázalo C (ta odlišnost od pascalu mi přišla minimální) a C++, později pořádně objektově Java a pak další...

Tato cesta mi přišla hodně dobrá, neboď když člověk narazil na Javu tak už měl trochu potuchy jak programy pracují a co on ten JVM asi všechno dělá, navíc že bych měl začít od nuly v čistě objektově orientovaném jazyku si nedokážu moc dobře představit. V C/C++ člověk dostane takové dobré návyky a myslím, že bolestivější to mají ti, co z Javy se učí C/C++ než ti co se z C++ chtějí naučit Javu. (Zatímco v prvním případě je to opruz, že musí člověk myslet na věci, které mu Java hlídala sama, ti druzí zažijí "WOW efekt", jakože já si nemusím hlídat alokovanou paměť :) apod... )

Na druhou stranu, musím se přiznat že paradigma OOP začínat v C++ bylo hooodně nepříjemné (pro mě osobně) a vlastně jsem do něj pronikl až s tou Javou.


....snad pomohlo :)

Waseihou

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #19 kdy: 04. 09. 2012, 11:43:58 »
Pokud jde o nějakou elektrotechniku, tak je čisté C určitě dobrá volba, možná učit spolu s C++ ale programovat strukturně a využívat STLkové kontejnery. Céčko se hodí i pro programování různých embedded systému a proto je to velmi univerzální jazyk. Z hlediska dostupných knihoven je C/C++ stále asi nepřekonatelné.

Pokud nejde vyloženě o budoucí informatiky, potom velmi zajímavou možnost představuje Python, který má také hodně knihoven a jsou snad ještě přístupnější než v C/C++. Něco o výuce pythonu se rozebírá zde: http://howto.py.cz/uvod.htm

Jinak já jsem na C++ začínal, ale vím že ostatní s tím měli problémy. Aby se to jeden naučil, musí si to prostě odsedět sám, jiná možnost není, a to platí pro jakýkoliv programovací jazyk.

Jinak místo javy můžete zkusit C#, protože java je po přebrání sunem v podstatě ve stejně "problematické" pozici takže je to z hlediska ideologického už jedno. Pro multiplatformní vývoj jde použí monodevelop(http://monodevelop.com/), pokud ale jedete na windows, můžete zkusit i sharp develop(http://www.icsharpcode.net/OpenSource/SD/). Má to klikátka pro GUI a je to o něco responzivnější než java, ta se stejně hodí spíš na psaní middlewaru.


alef0

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #20 kdy: 04. 09. 2012, 11:48:02 »
Vy máte dosť špecifickú dilemu: nízkoúrovňové C++ alebo pohodlnejšiu Javu, ktorú neviete. Ja by som tento rok zvolil C++, čisto z dôvodov zachovania zdravého rozumu Vás i žiakov, nejak to pretrpel, a popozeral si nezávisle od toho Javu. Lebo už je september a nie je nič horšie, ako keď vyučujúci tápe, lebo sám nevie, čo učí.

Ale C++ ako "môj prvý jazyk" je do budúcna odvážny počin, hlavne pre 14-15 ročné deti, ktoré nevedia programovať. Ony totiž potrebujú hlavne zvládnuť princípy, vysokoúrovňové koncepty (OOP) a boj s technickými detailami C++ je kontraproduktívny, lebo nielenže im nič nedá, ale dokonca ich môže odradzovať.

Ten, kto sa chce učiť programovať a nevie nič, nepotrebuje vedieť, čo sa deje vo vnútri. Rovnako ako človek, čo sa chce naučiť šoférovať, nepotrebuje vedieť na začiatku, ako funguje spaľovací motor: preňho najlepšie je sadnúť do auta s automatickou prevodovkou a rozbehnúť sa.

Ono tie deti aj tak potom začnú kódiť stránky v PHP :-)

Waseihou

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #21 kdy: 04. 09. 2012, 12:05:03 »
PHP jako první programovací jazyk? Kdyby nebyl dynamicky tovaný, tak by bylo velmi vhodné, už kvůli své rozšířenosti a možnosti tvořit weby. Takhle by to byl velmi odvážný krok. Možná někde na gymplu, kde se dá předpokládat že většina studentů se programováním nebude dále zabývat by to za to stálo, protože takhle získají znalost co je velmi užitečná. Naučit je nainstalovat XAMPP(http://www.apachefriends.org/en/xampp.html), pak udělat hello world v php, připravit šablonu HTMLka do které budou dál psát a hodit to na GIT nebo někam, aby to bylo dostupné, by taky šlo.

V prvním ročníku naučit základy programování a jak nainstalovat LAMP a dostat se na free hostingy, v dalším možná zkusit používat nějaký ten framework jako Nette a nebo CakePHP. Možná by se s tím ale dalo začít hned, nechat framework vygenerovat základní strukturu aplikace a programování vysvětlovat na nějaké stránce tím bastlem vygenerované. Výhodou PHPka a webů je, že takový přístup mnohé odpustí a je to všude. Studenti navíc ocení to, že tyto znalosti jdou použít k získání nějaké té brigády či jiného přivýdělku...

Kit

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #22 kdy: 04. 09. 2012, 12:20:40 »
PHP jako první programovací jazyk? Kdyby nebyl dynamicky tovaný, tak by bylo velmi vhodné, už kvůli své rozšířenosti a možnosti tvořit weby. Takhle by to byl velmi odvážný krok.

Dynamické typování by nevadilo. Vadí slabé typování.

DK

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #23 kdy: 04. 09. 2012, 12:28:59 »
Waseihou: tvrdit, ze C# je multiplatformni jenom proto, ze existuje mono, je dost odvazny krok :) mono je takova sra*ka, ze k multiplatformnosti to ma hodne daleko... nehlede na to, ze C# je z velke casti jenom okopirovana java

Waseihou

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #24 kdy: 04. 09. 2012, 12:32:26 »
Jo, jsem zapoměl jak se tomu nadává, nějaký času už pracuji jako opice v C++ a PL/SQL a nic jiného neřeším ;)

Myslel jsem právě tu slabou typovanost PHP, která by podle mě mohla být pro mnohé matoucí. Ale pro výuku bude asi opravdu nejlepší onen python, ten odkaz co jsem našel výše je součástí učebnice: http://howto.py.cz/index.htm a ta se dá rovnou použít k výuce, není tedy co řešit, kromě vytváření příkladů a úkolů.

Pro python existuje IDE eric (http://eric-ide.python-projects.org/), eric4 pro python2, eric5 pro python3. Python2 má výhodu možnosti použít časem Django i na ty weby, jinak je dobrý nápad přidat na začátek souborů řádku vynucující používání UTF-8, což je velká výhoda pythonu3. Se stabilitou toho GUI jsem měl v linuxu promlémy, ale to bylo dané mojí verzí knihovny qt. Zkuste chvíli používat eric4 pod windows, a pokud pojede stabilně, použijte na výuku i to. Obojí je zdarma, studenti to ocení.

Jo a nerozjíždějme flame o monu, jede na tom třeba i mindtouch(dříve dekiwiki) a zas taková hrůza to není, funguje to. Dobře uznávám, že C# má své mouchy ohledně multiplatformnosti. SharpDevelop by se těm děckám ale stále mohl líbít, a pokud mají nějakého linuxáka tak balíček poslední záchrany stále existuje... Jinak prosím dále nerozvádět, no flame!

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #25 kdy: 04. 09. 2012, 12:36:04 »
Jinak místo javy můžete zkusit C#

Kurňa, jenom to ne! :-) . C# je splácanina všeho možného a míchá se v něm objektový, deklarativní a funkcionální přístup. Což samo o sobě není špatně (v C# 4 se nám pracuje hezky a s nadšením čekáme na C# 5), ale na učení (zvlášť pro začátečníky ve věku 14-15) je nevhodný.

Kdo se chce učit vrtat, taky si rovnou nevezme příklepovou vrtačku nebo sbíječku a nejde dělat velkou díru do železobetonu, neb to dopadne špatně.

---

Jinak myslím, že se toto vlákno vzdaluje od tématu, který byl Java vs. C++. Kdybych měl volnou ruku, tak vezmu Scheme, příp. Python, ale zavádět do školy zcela nový jazyk je běh na dlouhou trať a pochybuji, že k tomu bude politická vůle "na vyšších místech".


matuss

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #26 kdy: 04. 09. 2012, 12:52:23 »
Osobne som zacinal v cistom C (v 16), to ma kus chytilo, principy imperativneho stylu som pochopil takmer hned, neskor som skusal Javu, ale nesedela mi, potom som presiel na C++.

IMHO je blbost zacinat s OOP, imperativne jazyky su ovela lahsie na pochopenie preco to vtedy spravi toto a vtedy toto...

Myslim ze by si mal zacat s C a potom im povedat nieco o C++ a nieco o Jave a nech sami povedia co z toho by sa im mohlo pacit viac.

Kit

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #27 kdy: 04. 09. 2012, 13:26:29 »
Osobne som zacinal v cistom C (v 16), to ma kus chytilo, principy imperativneho stylu som pochopil takmer hned, neskor som skusal Javu, ale nesedela mi, potom som presiel na C++.

Osobně jsem začínal se strojovým kódem a pak teprve přešel na Pascal. Pro mne to nebylo špatné, ale moc tento postup nedoporučuji. Ani nedoporučuji C či C++, jsou to na můj vkus příliš nízkoúrovňové. To už by byl lepší strojový kód nějakého virtuálního procesoru.

Na Pythonu se bez problémů dá začít třeba imperativně, pokračovat funkcionálně a dokončit objektově.

Honza

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #28 kdy: 04. 09. 2012, 13:42:01 »
Já jsem prošel Pascal -> C -> C++ -> Java, což je pro učení docela fajn. Ale Pascal už je skoro mrtvý, tak bych asi začínal C - ale žádné drsárny typu pokročilý preprocesor, pointerová aritmetika nebo pointer na funkci vracející pole pointerů na pointer na funkci... S objekty bych na ně šel až budou něco umět. Nemá cenu dětem vysvětlovat, co je objekt, když ti hloupější nevědí, co je to funkce.

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #29 kdy: 04. 09. 2012, 13:42:15 »
To já začal od assembleru ručně přepisovaného do strojáku přes Pascal, Céčko, assembler, objektový Pascal, C++ a Javu až do stavu, kdy v podstatě není problém se naučit nový jazyk.
Ale rozhodně tenhle postup nedoporučuji. Spousta věcí jde udělat lépe a efektivněji - je ale každopádně si říci, co je cílem, a podle toho vybírat postup a jazyk(y).