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

Ovrscout

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #60 kdy: 05. 09. 2012, 00:39:36 »
Já začínal  na pascalu a přejít na c nebyl žádný velký problém, je to skoro to samé. Myslím ale že dnes by už bylo lepší začít rovnou C.

Co se týká programování, myslím že je vhodné se ho učit po vrstvách, které v podstatě rozšiřují možnosti zapouzdření/abstrakce

Jazyk:C/Pascal/...
1)Proměnné a operátory, nějaké jednoduché počítání a podmínky
2)datové struktury
3)Rozdělění programu do funkcí (Předávání parametrů a návratové hodnoty,jednoduché ukazatele,reference(c++))
4)algoritmizace (převod myšlenky do algoritmu, zmínka o standardních algoritmech-vzorech)
5)způsoby odstraňování chyb (ladění,logování,asertace,...)
6)Rozdělení programu na Moduly (oddělený překlad souborů, knihovny)
Doplňkové pokročilé znalosti) složité ukazatele + ukazatele na funkce,...
Doplňkové zaměření na jazyk C)Pokročilé funkce preprocesoru

Jazyk:C++/Java
7)Objekty základ =(ve smyslu kombinace modulu a struktury)
8a)Objekty dědičnost (základ)
8b)Objety  interface    (základ)
9)přetěžování operátorů a funkcí

Programy řízené událostmi
modelování UML,abstrakce
..........
metodologie vývoje .. .. .

Za bodem 8 je to už takové hodně otevřené a ani to pořadí není tak jisté, ale to už nejsou tak úplně základy a i toho ostatního je docela dost, pokud to má člověk pochopit a ne jen nabiflovat a splácat/odladit program aby prošel zkouškou jak to často bývá.

Také by asi šlo použít C++ hned od začátku a místo modulů začít objekty, ale mně přijde přechod z C na C++ jako psychologická výhoda, nový začátek (C++)  umožní se odpoutat od strukturálního programování a algoritmizace a začít pohledem z jiného úhlu.

Rozhodně nesouhlasím s tím že by se mnělo začínat objekty. Ty slouží hlavně jako nadstavba/abstrakce/zapouzdření aby se dal kód udržovat/znovupoužít a byl přehledný. Je to jiný způsob zápisu(a má své výhody), ale není to jediný ani nutný předpoklad k programování.Koneckonců dobře napsaný modul nebo knihovna v C/Pascalu může v mnoha ohledech(samozřejmně né ve všech) objekt nahradit.

P.S. Doporučuji používat nějaké rozumné IDE a využít jeho výhod, nechápu ty kteří IDE zakazují a trvají na používání notepadu a překladu z příkazové řádky. Programování není (dle mne) o tom aby se někdo nabifloval příkazy a parametry kompilátoru. To si můžu vždy najít když to bude třeba. Programování, to je způsob myšlení a vnímání.


KapitánRUM

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #61 kdy: 05. 09. 2012, 01:00:48 »
Java je na učení naprosto výborná, C++ tě nijak nenutí používat objekty a je lepší objekty chápat už od začátku a vzít je jako něco přirozeného.

Inkvizitor

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #62 kdy: 05. 09. 2012, 09:05:12 »
Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.

Waseihou

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #63 kdy: 05. 09. 2012, 09:14:47 »
Kde je ten Petros84 aby nám dodal více informací o škole kde učí? Když někdo něco chce, tak ať sám aktivně participuje ;)

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #64 kdy: 05. 09. 2012, 09:16:38 »
Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.

Takže jedním z nejlepších jazyků pro výuku programování je command line ve Windows - tam stačí napsat "echo Hello World!" a je to. Pro složitější projekty je potom možné využít BAT soubory...

Také názor.


Inkvizitor

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #65 kdy: 05. 09. 2012, 09:41:03 »
Ano, dovedu si představit, že výuka programování prakticky začne úvodem do příkazové řádky, klidně pod Windows. Otázka je, jak bude výuka probíhat, jaké při ní budou studenti vstřebávat principy. Pro výuku OOP je Java nevhodná, protože je to kompromisní kočkopes míchající C s principy OOP. Pro výuku procedurálního programování je nevhodná, protože to je kompromisní kočkopes míchající C s principy OOP. Nemluvě o dost strašných knihovnách a třeba o tom, že když chceš pracovat s většími čísly, nemůžeš použít normální operátor jako v jiných jazycích, ale jakousi metodu, na což student narazí už u tak primitivního programu, jako je výpočet faktoriálu - pro výuku tedy perfektní. Jediné, k čemu je Java jako první jazyk vhodná, je k výchově budoucích javistů, kteří zůstanou nepolíbeni jakýmkoliv jiným jazykem až do konce života. Což chápu, že určité praktické výhody má, ale pokud se škola snaží dát studentům všeobecný přehled, tak to jaksi nestačí...

Java je na učení naprosto na ho..., protože jenom k blbému Hello world potřebuješ asi 10 řádků. Kromě jiných nevýhod.

Takže jedním z nejlepších jazyků pro výuku programování je command line ve Windows - tam stačí napsat "echo Hello World!" a je to. Pro složitější projekty je potom možné využít BAT soubory...

Také názor.

Straces

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #66 kdy: 05. 09. 2012, 09:46:23 »
Myslím si že pro absolutní základy je jedno který z uvedených jazyků se použije, osobně sem začínal jak na javě tak poté na c++, jde oto se naučit pracovat s operátory, datovými strukturami, třídami, atd... nejde o to, do začátků ani tak naučit se perferně znát syntaksi, ale spíše pochopit programování jako takové..  ;)

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #67 kdy: 05. 09. 2012, 10:16:09 »
Ano, dovedu si představit, že výuka programování prakticky začne úvodem do příkazové řádky, klidně pod Windows. Otázka je, jak bude výuka probíhat, jaké při ní budou studenti vstřebávat principy....

To je ten zásadní problém - tazatel stále nevysvětlit co má v úmyslu studenty naučit (nemyslím tím konkrétní jazy) a k čemu by své znalosti měli dále využívat. Bez těchto informací je to tu jen žvanírna se spoustou doporučení založených na subjektivních dojmech a zkušenostech.

Jinak jsem narážel na to, že počet řádků potřebných pro hello world je kritérium, které nic nevypovídá o vhodnosti toho kterého jazyka pro výuku programování. A command line processor nepovažuji za prostředí, ve kterém by výuka programování (základních principů) měla probíhat.

YaDo

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #68 kdy: 05. 09. 2012, 10:45:13 »
Zdravim...
Moj osobny nazor je, ze pokial si musite vybrat medzi C++ a Javou tak by to malo byt C++.
Preco? Prave preto, ze nuti mysliet na memory management a ostatne veci, ktore Java robi automaticky. Tym sa vybuduje u studentov ten spravny styl programovania. Prechod na ine pokrocilejsie programovacie jazyky je potom uz hrackou a spravny styl programovania zostava. Len musite dat pozor, aby ho naozaj dodrziavali. Teda nesmiete tolerovat neporiadnost, neupratovanie pamate atd. atd.

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #69 kdy: 05. 09. 2012, 10:47:10 »
Citace
Re:Java nebo C++ pro absolutní začátečníky?

Záleží, jak moc vážně se chce programováním zabývat a jakou chce mít v budoucnosti mzdu.

Pokud to má mít jako koníček, nebo jako povinnost na škole ale jinak ho spíš baví hrát na kytaru, fotbal, jezdit na kole, chodit do hospody, tak doporučuju Javu. Ale ať předpokládá nižší průměrnou mzdu (čest výjimkám).

Pokud je to šílenec, který ve volném času sedí u compu a neustále něco vyvíjí, tak rozhodně C++. Profesionální C++ programátoři se platí zlatem

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #70 kdy: 05. 09. 2012, 11:55:24 »
Profesionální C++ programátoři se platí zlatem

Protože memory leak. When you see it you wil sh*t brix. :)

Teď vážně, pokud nejde o programování embedded zařízení nebo specifických aplikací, kde potřebuješ opravdu maximální výkon (např. grafický engine), pak má málokdo nervy na vlastní memory management nebo si sahat přímo na železo. Nehledě na to, že to prodražuje již tak drahý vývoj.

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #71 kdy: 05. 09. 2012, 12:05:23 »
Protože memory leak. When you see it you wil sh*t brix. :)

Teď vážně, pokud nejde o programování embedded zařízení nebo specifických aplikací, kde potřebuješ opravdu maximální výkon (např. grafický engine), pak má málokdo nervy na vlastní memory management nebo si sahat přímo na železo. Nehledě na to, že to prodražuje již tak drahý vývoj.

Programátor C++, který neustále řeší memory managment a hledá leaky ve své aplikaci není možné nazývat špičkovým profesionálem. Ne že bych občas leaky nehledal taky, ale nejsou jen memory leaky, třeba resource leaky, ty nepořeší ani Java. A pokud máte memory leaky dobře řešené v C++ (třeba chytré ukazatele) netrápí vás ani resource leaky (takový leakovaný zamknutý semafor, nebo běžící vlákno, to jsou nádherné situace)

klw

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #72 kdy: 05. 09. 2012, 13:27:15 »
Jelikož asi nemá cenu reagovat na konkrétní příspěvky, tak jen ve stručnosti v bodech (rýpání do C++ berte prosím s velkou rezervou, nechci rozpoutávat klasický flame C++ vs. Java ;-):
- Absolventi SŠ (především průmyslovek) s výukou IT/programování mají často problém dostat se, případně udržet se na VŠ s IT zaměřením. Gymnazisti programováním netknutí nikoliv.
- Je úplně jedno, jaký jazyk pro výuku používat – pokud to bude rozumný jazyk.
- Ti, co se dostanou na VŠ a případně ji i absolvují, beztak nebudou mít problém přejít na jiný jazyk.
- S ohledem na pragmatickou stránku bych volil jazyk se syntaxí jazyků z rodiny C, tedy přímo C, Javu, nebo klidně D. Kvůli nevýhodám C++ tento jazyk raději ne.
- C++ je zprasený hybrid nevhodný pro výuku začátečníků.
- Ti, co doporučují C++, to dělají jen proto, že oni sami v něm začínali a cítili by jakousi zhrzenost, kdyby někdo jiný měl začít v něčem jiném.
- Některé zhůvěřilosti C++, které se začátečník naučí, bude brát jako dogma, a bude se je snažit používat při případném přechodu do jiného jazyka.
- C++ programátoři se cítí být něčím víc, než ostatní (protože C++ je zbytečně složité a náchylné na chyby), nicméně jejich případné snahy vytvořit něco v Javě jdou na první pohled poznat a často je stejně nutné je přepsat (viz předchozí bod). Jímá mě hrůza, když v OOP jazyce vidím něco jako:
Kód: [Vybrat]
akce(objekt1, vysledek, objekt2);namísto:
Kód: [Vybrat]
vysledek = objekt1.akce(objekt2);PS: Já měl tu slušnost v tomto příkladu naznačit, co je vstup, a co výstup ;-)

- To, že C++ je zbytečně složité, neznamená, že by programátoři v něm byli lepší než ostatní, protože byli schopni se to naučit, ale naopak že dělají zbytečně moc práce navíc v něčem, co je špatně navrženo.
- V C se začátečník naučí myslet nízkoúrovňově, v Javě zase objektově, C++ mu pomotá hlavu. Volte pragmaticky podle zaměření školy s ohledem na budoucnost absolventů (viz první bod).
- Proč vůbec neučit první dva jazyky zároveň + důsledně vysvětlovat rozdíly?
- Java patří mezi mainstream (nikoliv zde na root.cz), berte na to ohledy (na obojí).
- I v Javě lze psát čistě procedurálně, byť je to k ničemu. Pro prvotní výuku to ale stačí a nějakou tu deklaraci třídy a main metody se začátečník naučí nazpaměť. Pak ale rychle na objekty, aby to nedopadlo jako v případě přechodu z C(++) na Javu ;-)

Učte především psát čitelně a přehledně. Jako se prvňáčci učí (nebo alespoň za mě učili) krasopis.
Tedy něco jako tohle – vykopíroval jsem to z jiného nedávného threadu, to opravdu ne(!):
Kód: [Vybrat]
if(hmotnost<minimalhmotnost)pocet++;
Učte také myslet a psát správně a přenositelně. Kód, kterému rozumí počítač, umí psát skoro každý. Ne každý ale umí psát kód, kterému rozumí i lidé.

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #73 kdy: 05. 09. 2012, 14:56:41 »
...

Já jsem to asi nepochopil. Buď si tady pletete jednotlivé jazyky, nebo jste C++ viděl z rychlíku, nebo vám ho prezentoval někdo, kdo v C++ neumí. Každopádně Java je jen trochu osekané C++. Co se naučíte v Javě jde pak většinou s měnší modifikací použít v C++ a naopak. Postavit vedle sebe C a Java to je jako postavit vedle sebe trabanta a audi.

Že je C++ kombinací nízkoúrovňového jazyka s prvky vysokoúrovňového programování, o tom se nikdo nehádá. Myslím si ale, že to v současné době nejlepší kompromis mezi jednoduchostí a efektivitou, přestože současné JIT překladače tomu dost dýchají na záda. Pořád ale nedošlo ke zlomu, jsou systémy, kde nepochodíte s C a jsou systémy, kde nepochodíte s Javou, ale vsadím se, že ve všech těchto systémech bude možné použít C++ (byť třeba ne úplně, například při programování pro Atmely jsem musel ožele nemožnost používat výjimky, což je ale drobnost)

aoeu

Re:Java nebo C++ pro absolutní začátečníky?
« Odpověď #74 kdy: 05. 09. 2012, 15:08:54 »
U nas v skole nam predhodia 500 riadkove (a nejednoznacne) zadanie na projekt a deadline.
Priprava na real-life ako vysita, prax je azda horsia.

C++ vs Java, to je jedno, C++ pamatovy manazment nuti aj novacikov aby sa o pamat starali (teoreticky) ale oba jazyky su relativne komplexne a zaciatocnik nema sancu ich dostatocne pochopit, nie to naucit sa kodit.
A navacik bude aj tak robit prasaciny v kode, tym si asi kazdy presiel. Ja by som hlavne doporucil jazyk co ma slusne IDE a pluginy na bezplatnu staticku analyzu kodu a slusny debugger.

C++ by u mna vyhralo pretoze je relativne standardizovane.