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

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #30 kdy: 04. 09. 2012, 13:45:03 »
Z mého laického pohledu a z mojí hlavy - sáhnul bych po C++.

Důvody nevím, ale když se zamyslím (hluboce), našel bych:
- schopnost pochopit (nebo alespoň se snažit) spousty programů, které používám, případně je upravit (připomínám - jsme na Linux serveru)
- možnost napsat si vlastní malé prográmky na různé pitomosti, které dokážu vymyslet


Waseihou

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #31 kdy: 04. 09. 2012, 14:02:16 »
No tak google našel třeba že na nějaké SPŠ (http://www.uzlabina.cz/) učí python, viz. první lekce zde:
http://www.uzlabina.cz/file/python-lekce01.pdf
takže je skustet kontaktovat a získejte více informací, můžete třeba nějak spolupracovat, zlepšit časem učební texty atp. Python se zdá být dobrá volba.

Jinak - abychom se mohli dál bavit, bylo by dobré vědět o jaký typ školy jde a na co se nejvíce zaměřuje. Nakonec na jazyku až tak nezáleží, prim bude stejně hrát kvalita vyučujícího. Volba ale může ovlinit dobu nutné přípravy pro kvalitní výuku, a u toho pythonu nejspíše dosáhnete lepších výsledků za stejný čas. Ale ani zde nesmíte podcenit kvalitu přípravy, hlavně vytvořte a napište dobrou příručku jak si to nainstalovat a jaké nástroje použijete.

Třeba ten SharpDevelop jsem předtím navrhoval hlavně proto, že program .exe lze naklikat velmi snadno, což může být pro studenty lákavé a přimět je k zájmu o programování, samotný C# a .NET platforma je na druhou trochu problém který bude překážkou ke kvalitnímu zvládnutí programování. Pokud jde ale třeba o nějakou algoritmizaci, základní programové konstrukce, řazení atp., je to C# opravdu překážkou? Myslím že ne. Stejného efektu jako s tímto balíkem dosáhnete asi i s tím ericem, ale budete muset nainstalovat python a několik knihoven do něj, než to spustíte. Takže buď nakonec vytvoříte jeden zip kde bude všechno a spustí se to jedním exe souborem, a nebo složitou příručku k instalaci. Psát programy v notepadu není dobré, chce to zvýrazňování syntaxe a něco co ten program spustí. Java má NetBeans, to je taky plus pro Javu. Pro C++ je zde DevCpp IDE, CodeBlocks a free verze visual studia. Uvažujte proto nejenom jazyk, ale také ty věci okolo. Třeba proti javě mluví GUI, standardně vypadá děsně a naprosto se nehodí do systému, byť jde taky naklikat.

yankee

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #32 kdy: 04. 09. 2012, 14:13:33 »
Visual Basic 6

Petr

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #33 kdy: 04. 09. 2012, 14:28:50 »
Jak jsem psal vyse, Arduino nebo jeste lepe Processing! Na nauceni zakladu jako jsou ify, for cykly a whily je to bezkonkurencni, protoze studenti okamzite vidi, co jejich kod dela (= kresli).

Pro zacinajici programatory, kteri nikdy nic nenapsali a nemaji o tom proste paru, je zbytecne travit cas prokousavanim se slozitym GUI, kompilaci a debugovanim. Kdo sahl na Processing, da mi zapravdu.

Tomez

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #34 kdy: 04. 09. 2012, 14:38:08 »
Pro začátečníky je nejvhodnější Python. Je jednoduchý a podobný C++. Co nedoporučuju je Java nebo C#, protože z toho člověk zmagoří a naučí se nehorázný zlozvyky a navíc bude kydat hnůj na nízkoúrovňový jazyky.
A Visual Basic? Na škole nám ho vnucovali jako jazyk, který má budoucnost a do teď toho lituju.  >:(

Každopádně pro C++ se najde větší uplatnění než pro Javu. To samý platí o Pythonu vs Visual Basic.


eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #35 kdy: 04. 09. 2012, 14:46:00 »
Každopádně pro C++ se najde větší uplatnění než pro Javu.

V 15 se člověk potřebuje hlavně naučit základy programování, nedá se předpokládat, že by po střední šel rovnou do praxe a hledal uplatnění. Takže tohle je celkem jedno. Stejně i kdyby ti lidi šli na výšku, kde se v prváku studenti drtí na C (např. FIT VUT), tak stejně nebude moc rozhodující, jestli se v 15 budou učit C++, Javu, Pascal nebo Python.

Waseihou

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #36 kdy: 04. 09. 2012, 15:28:37 »
Vliv může být v tom, co můžou s daným jazykem dělat. Je velmi dobré, pokud se v tomto věku pokusí naprogramovat nějakou to jednodušší počítačovou hru, a správná volba jazyka může ovlivnit jak snadné bude dosáhnout dobrého výsledku. Z hlediska výuky se mi přirozeně zdá nejlepší python, ale z hlediska nahlédnutí "pod kapotu" počítačových programů je opravdu asi nejlepší to C/C++, které má navíc hodně knihoven. Nejlepší by samozřejmě bylo učit oba jazyky a vzájemně je kombinovat, ale vymyslet to tak aby to šlo snadno pochopit by asi bylo obtížné a vyžadovalo více vyučovacích hodin. Nakonce je to ale stejně jedno, protože dobré věci mají stejně binding na jiné jazyky - viz. třeba Ogre3D (http://www.ogre3d.org/). Kdyby mi bylo 15 a měl jsem tedy čas na voloviny, tak pokud bych se učil programovat, nejspíše bych byl rád už jenom zato, že by mi někdo třeba o tom Ogre3D řekl. Dobře pojatá vyučovací hodina by měla tedy také úkázat, čeho všeho je možné programováním dosáhnou a naznačit, že dosažení prvních viditelných výsledků lze dosáhnout v poměrně krátkém čase. Přehled existujícíh programových knihoven by tudíž měl být součástí výuky, a žáci by se měli alespoň naučit stáhnou a spustit exámply, což je velmi důležité pro jejich další rozvoj.

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #37 kdy: 04. 09. 2012, 15:32:34 »
Opět se budu opakovat - nejdříve je nutné definovat cíl (studijní obor, očekávané uplatnění v praxi, návaznost na další předměty, zvládnutí některých konkrétních technologií) a teprve potom prostředky (osnovy, jazyk, cvičení, ...).

balki

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #38 kdy: 04. 09. 2012, 15:49:08 »
pokud Javu neznáš, tento rok uč C++ a na něco se vymluv - není nic horšího, než učitel, který si není jist tím, co učí :) .

To bych nedělal. Pokud umí C++, potřebné základy Javy se naučí za víkend.

A potom to tak vyzera, clovek nekodi, ale hovni.  Ja som javista, ale v pripade ze ucitel ovlada C++,  tak by som volil C++.

A.S. Pergill

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #39 kdy: 04. 09. 2012, 15:56:27 »
Já rezignoval na představu, že ze mě někdy bude programátor velkých systémů, a vydal se pro začátečníky nepříliš doporučovanou cestou: Perl. Je to na každém linuxu (na win plnohodnotný perl do nedávna nebyl k dispozici, jen jakýsi "ActivePerl" a ten bylo nutno "pro pohodlí uživatelů" po stažení nainstalovat speciálním instalačním prgramem - snad za peníze, alespoň jsem ho nikde zdarma ke stažení nenašel - byla to "poslední kapka" k mému přechodu na linux). Menší věci si udělám bez problémů v něm a do větších (natož třeba ovladače k zařízení apod.) se nepouštím.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #40 kdy: 04. 09. 2012, 16:02:47 »
Nejlepší by samozřejmě bylo učit oba jazyky a vzájemně je kombinovat, ale vymyslet to tak aby to šlo snadno pochopit by asi bylo obtížné a vyžadovalo více vyučovacích hodin

To bezpochyby. Učit 2 věci zároveň může skončit hodně špatně (a je to i proti Komenského principům). Nedávno jsem dělal školní projekt jednomu borcovi z FEI VUT a nedokázal rozlišit mezi C, C++ a C#. Tomu borcovi bylo přes 20. Pochybuji o tom, že průměrný středoškolák by to byl schopný rozlišit, kdyby se to učilo zároveň.

Nakonce je to ale stejně jedno, protože dobré věci mají stejně binding na jiné jazyky

Binding na jiný jazyk je vždy ofuk a omezí Tě to. Takže jedno to není - pokud z té knihovny chceš vyždímat maximum, tak se na binding musíš vykašlat a použít jazyk té dané knihovny (je-li ta 3d knihovna v C, pak svoje rozšiřující věci k zobrazování si taky musíš napsat v C ... logiku hry pak klidně v Haskellu).

Waseihou

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #41 kdy: 04. 09. 2012, 16:21:36 »
Pokud onen učitel umí C++, tak asi bude nejlepší se ho při výuce držet, a zároveň se daný rok učit jiný jazyk, třeba ten python. Je tu ale ještě jedna možnost - ať sice učí v C++, ale dovolí studentům ať si programují v čem chtějí, pokud projeví zájem. My jsme na střední vždycky dostali úlohu a pak se měla odevzdat, a my co jsme to už všechno znali ze základky jsme si kódili v C++ a zbytek v pascalu (ten jsem samozřejmě uměl taky, protože jsem měl knížku Algoritmy a programovací techniky kde všechny příklady byly v pascalu a taky četl výheň (http://nuane.com/vyhen/) kde byly nějaké ty exámply). Vždycky to dopadlo tak že jsem třeba nějakou blbost typu spočítej řešení kvadratické rovnice hodil vyřešil jako malé demíčko kde na pozadí běžela nějaká blbůstka typu oheň a nebo plazma a text s řešením lítal v popředí ;)

NoFlame

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #42 kdy: 04. 09. 2012, 16:37:32 »
Opět se budu opakovat - nejdříve je nutné definovat cíl (studijní obor, očekávané uplatnění v praxi, návaznost na další předměty, zvládnutí některých konkrétních technologií) a teprve potom prostředky (osnovy, jazyk, cvičení, ...).
Prosím opište to tu ještě několikrát, snad to někomu dojde.

1. je potřeba si ujasnit, co to je za školu a jaké si ve výuce programování dává cíle. Bez toho, je celá diskuze jenom mlácení prázdné slámy. Kdo se tam učí programovat? Celý ročník, nebo vybraná skupina studentů? Je to jediný jazyk na škole, nebo na něj později navazuje další? Co dalšího z IT se tam učí?
Obecně lze říci, že čím má škola blíže k elektru/HW, tak tím více je potřeba učit C (a později třeba i rozšířit na C++). A čím více je to všeobecná SŠ, tím vhodnější bude Java.

2. tak jako tak je dilema Java vs. C++ rozhodnutí mezi špatným a ještě horším. Nejlepší jazyk k výuce programování (jako takového) pro 15letého začátečníka je python. Kdybysme se bavili, jakým jazykem začít na univerzitě, tak chápu Javu a C++ jako logické kandidáty, ale na SŠ je nejlepší python. Takže pokud je cílem naučit studenty programovat (a fungovat vlastně jako přípravka na VŠ) a není požadavek na nízkoúrovňovost (kvůli práci s HW), tak bych výuku směřoval k pythonu a tam by java byla logičtější přestupní stanice než C++. Nicméně to píši pouze hrubě všeobecně - rozhodující je bod 1.

3. SŠ učitel C++ nemá s Javou žádné zkušenosti? To si proboha za ty roky, co je Java na světě (a je to komerční jazyk č. 1) nezkusil stáhnout NetBeans s JDK a nezkusil si projet nějaký programovací kurz v Javě?

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #43 kdy: 04. 09. 2012, 17:45:55 »
za sebe bych volil C s tím že jim napřed vysvětlíš základy algoritmizace, ukaž jim pár strukturogramů vysvětli jak počítač myslí a jak postupuje, předveď jim výrokovou logiku a postupně do toho zapojuj Cčko, jen ty pointry vynech, pointry jsou něco co i jako vysokoškolskej student IT nesnáším a nikdy nepochopím k čemu to proboha existuje

Martin Huněk

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #44 kdy: 04. 09. 2012, 18:05:47 »
Jak tady psal už člověk předemnou: Pokud se později mají vaši studenti setkat např. s mikrokontroléry (SŠ se zaměřením elektro), tak rozhodně C/C++.
Pokud se jedná o školu IT zaměření, tak se dá o Javě uvažovat, ale i potom by měli vědet co se na těch nižších úrovní děje a na VŠ se s Cčkem taky potkají, takže nevím, zda-li bych i s nima neprolít nějákej ten nízkoúrovňový jazyk.
Pokud by se jednalo o školu nějákého jiného (ne IT/elektro), tak bych se přikláněl taky k pythonu. Javu bych je neučil, stejně jako OOP všeobecně. Můj názor je, že se OOP na SŠ nemají šanci naučit tak kvalitně, aby si nevytvořili nějáké zlozvyky, které by jim pak akorát přidělávali práci na VŠ.

Nás kdysi na SŠ učili nejdřív pascal, pak C++ a potom C pro 8051. Rozhodně myslím, že měli rovnou začít C++kem, případně Cčkem a ušetřil bych si dost starostí.
Na VŠ jsme se pak učili nejdřív JSA pro 8051 (assembler), pak C a pak C# (kdo chtěl mohl dělat v C++).

Takže osobně, pokud mají vaši studenti pokračovat v programování dál, tak bych volil C++ nebo samotný C. Nemá smysl zabíhat moc do OOP, hlavně ať vědí co je to pointer a jak se používá. Ze zkušenosti vím, že potom na VŠ není na čem stavět a nebo ty jejich programy nemají žádnou kultůru.
Možná bych jim ještě ukázal jak udělat nějáký to jednoduchý GUI (ke konci studia) a k tomu může v C++ stačit třeba Qt Creator. Ale hlavní je ať uměj dobře procedurální přístup, to potom nebudou mít až takový problém na VŠ.
Pokud ale jde jen o to aby uměli jen něco jednoduchýho naprogramovat, s tím, že se s tím už nesetkaji, tak nemá smysl je mordovat s OOP, takže buď ten python anebo pokud se ho učit nechcete, tak nějáký základ C. Java pro ně bude zbytečně matoucí.