NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Java nebo C++

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Draumer
Člen
Avatar
Draumer:1.3.2016 22:06

Ahoj.
Rozhodla jsem se tedy, že do programování půjdu a zkusím základy a něco vytvořit. Při hledání informací i na jiných stránkách jsem ale narazila na něco, co mě docela vyvedlo z míry. Hodně lidí se ptalo, jestli je lepší Java nebo C++ pro naprostého začátečníka kolem 16 let. Odpovědi byly tak napůl. Polovina byla pro Javu a druhá pro C++. Jak to tedy je? Omlouvám se, pokud vás obtěžuji "stupidními" dotazy, ale chci si být jista, že začnu něčím jednodušším, co mě třeba neodradí od dalšího případného studia.
Děkuji všem a přeji pěknou noc :)

 
Odpovědět
1.3.2016 22:06
Avatar
vesel.fil
Člen
Avatar
vesel.fil:1.3.2016 22:12

Záleží co chceš programovat. Obecně ale platí, že Java je jednoduchý moderní jazyk, kdežto C++ je složitý nízkoúrovňový jazyk v dnešní dobře vhodný jenom na části programů, které jsou velmi náročné na výkon, třeba hry. Každopádně podle mě je Java lepší pro začátečníka a změna jazyků není vůbec těžká - po 2 až 3 dnech dokážeš normálně pracovat v novém jazyce a vždycky máš při ruce Google.

Nahoru Odpovědět
1.3.2016 22:12
I don't necessarily agree with everything I say.
Avatar
Draumer
Člen
Avatar
Odpovídá na vesel.fil
Draumer:1.3.2016 22:20

No, ze začátku co jsem četla, tak je dobré zkusit naprogramovat kalkulačku, jednoduchý slovník a podobně. Jsem totální zelenáč, takže myslím, že za kalkulačku která umí sčítat, odčítat, dělit a násobit budu více než ráda. A myslím, že u mě to bude více než 3 dny. Vidím to tak na měsíc.. :D

 
Nahoru Odpovědět
1.3.2016 22:20
Avatar
vesel.fil
Člen
Avatar
Odpovídá na Draumer
vesel.fil:1.3.2016 22:25

Ne, je to opravdu jednoduché. Opravdu bych ze začátku doporučil spíše Javu, ale co se týče naprostých základů, jsou oba jazyky v podstatě totožné.

Editováno 1.3.2016 22:28
Nahoru Odpovědět
1.3.2016 22:25
I don't necessarily agree with everything I say.
Avatar
Draumer
Člen
Avatar
Odpovídá na vesel.fil
Draumer:1.3.2016 22:27

Dobře, děkuji. Zítra mi přijde již opravený netbook, tak na něm něco zkusím. Uvidím, jak mi to půjde a pokud byste nebyl proti, klidně bych vám napsala do zprávy mé poznatky a případné pokroky.

 
Nahoru Odpovědět
1.3.2016 22:27
Avatar
Odpovídá na Draumer
Patrik Valkovič:1.3.2016 22:30

To záleží co chceš dělat. Pokud tomu chceš opravdu rozumět, vědět co se dole děje a umět dokonale optimalizovat program, je lepší C++. Dostaneš opravdu hluboké znalosti programování.
Pokud chceš nějakou aplikaci, kde ti moc nejde o výkon, ale prostě něco vytvořit, je lepší Java. Vývoj je rychlejší, pohodlnější. Na druhou stranu když se naskytne problém (například s rychlostí programu), nemusíš být schopen/schopná efektivně problém analyzovat a vyřešit.
Já začínal s C++. Bylo to těžké, šlo to pomaleji, ale jsme za to rád.

Nahoru Odpovědět
1.3.2016 22:30
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
vesel.fil
Člen
Avatar
vesel.fil:1.3.2016 22:31

Proti určitě nejsem. A jen tak mimochodem - "Na této síti si tykáme :)"

Nahoru Odpovědět
1.3.2016 22:31
I don't necessarily agree with everything I say.
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Draumer
Martin Dráb:1.3.2016 22:33

C++ je, jak už tu někdo řekl, složitý jazyk; obsahuje spoustu konstrukcí a má spoustu vlastností (i kvůli jeho historickému vývoji a postupnému přidávání vlastností), takže může být dost problém vybrat si z něj ty části, které mají pro člověka smysl a moc se nezaplete do toho, čemu nerozumí.

Také bych v tomto případě doporučil Javu.

Nahoru Odpovědět
1.3.2016 22:33
2 + 2 = 5 for extremely large values of 2
Avatar
Draumer
Člen
Avatar
Draumer:1.3.2016 22:57

Děkuji všem. Zkusím zítra Javu a pokud ji pochopím, tak bych později přešla k C++. Jsem jen zvědavá, jestli vůbec něco dokážu, protože co jsem se náhodně dívala do článků, tak tam jsou podivné zkratky, kterým vůbec nerozumím.
A ještě otázka: co nejčastěji žádají zaměstnavatelé? Slyšela jsem i PHP a C#. Ať vím, na jakou úroveň bych se někdy mohla dostat.

 
Nahoru Odpovědět
1.3.2016 22:57
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Draumer
Martin Dráb:1.3.2016 23:22

Ono je u té Javy (a u většiny více používaných jazyků) trochu potíž v tom, že je prolezlá objektově orientovanému programování a i v začátcích se mu nedá úplně vyhnout. Ale uvidíš, jak to půjde.

Zaměstnavatele bych zatím neřešil, na to bude spousta času později. Pokud budeš umět libovolný z více používaných jazyků (Java, C#, PHP...), nemyslím si, že budeš mít problém najít práci (resp. určitě ne kvůli jazyku). Navíc po jistém zvládnutí jednoho jazyka nebudeš mít moc problémy zvládnout jemu podobné (např. z Javy na C#), takže neber svoji aktuální volbu jako životní rozhodnutí, se kterým se pak už nedá nic dělat.

Nahoru Odpovědět
1.3.2016 23:22
2 + 2 = 5 for extremely large values of 2
Avatar
vesel.fil
Člen
Avatar
vesel.fil:2.3.2016 8:21

Java společně s C# a PHP patří mezi nejžádanější jazyky. A jak jsem již psal já a Martin Dráb změna jazyka je velmi jednoduchá záležitost. V praxi programátoři ovládají klidně 10 jazyků, i když jen 2-3 ovládají na výborné úrovni, protože je užívají nejčastěji. Opravdu, důležitost volby jazyka je často zbytečně přeceňovaná.

Nahoru Odpovědět
2.3.2016 8:21
I don't necessarily agree with everything I say.
Avatar
Luboš Běhounek Satik:2.3.2016 9:01

Na otázku "Java nebo C++" je moje odpověď C# - je to jazyk, který je někde mezi nimi a vychází z nich, ale jde mnohem rychleji dopředu.
Navíc teď díky krokům MS (multiplatformnost) má před sebou celkem světlou budoucnost.

Ale jak už tu padlo, jakmile se naučíš dobře používat jeden jazyk, už není problém používat jiný, obzvlášť pokud mají podobnou syntaxi (C/C++/C#/Java) nebo aspoň podobnou filozofii (imperativní x deklarativní programování apod.).

Nahoru Odpovědět
2.3.2016 9:01
https://www.facebook.com/peasantsandcastles/
Avatar
Draumer
Člen
Avatar
Draumer:2.3.2016 9:46

Znovu všem děkuji za rady :)

 
Nahoru Odpovědět
2.3.2016 9:46
Avatar
vesel.fil
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
vesel.fil:2.3.2016 12:00

Pravda, hodně mě potěšilo, když jsem o tom poprvé četl, hlavně kvůli ASP.NET. Jenom je škoda, že Visual Studio je jen na Windows, protože je to v podstatě jediné rozumné IDE pro C#. Ale zrovna přechod z Javy na C# je asi nejjednodušší přechod ze všech, to se člověk jen diví, jak je to všechno lepší a jednodušší. Ještě to chce multiplatformní DirectX. :)

Nahoru Odpovědět
2.3.2016 12:00
I don't necessarily agree with everything I say.
Avatar
martanec
Člen
Avatar
martanec:2.3.2016 13:30

Pokial sa pytas, ci zacat s C++ alebo Javou, tak urcite C++. Dovod je jednoduchy: z C++ lahsie prejdes do Javy/C# ako opacne.

Moj nazor je taky, ze pokial sa chce niekto ucit programovat, mal by zacat s algoritmami a nie s objektami. Dokonca by som zaciatocnikovi odporucil zacat programovat (za tento nazor budem asi zatracovany) v Pascale. Syntax nie je prilis zlozita, da sa z neho prejst velmi lahko do C/C++ ci PHP.

 
Nahoru Odpovědět
2.3.2016 13:30
Avatar
Erik Báča
Člen
Avatar
Odpovídá na martanec
Erik Báča:2.3.2016 13:35

S tímto názorem nesouhlasím, dítě se taky nejdřív naučí lézt po čtyřech a až potom se naučí chodit. Všechno co se učíš tak se učíš od nejjednoduššího po nejsložitější, ne obráceně.
btw. každou chvíli to tu David utlumí, protože se to tu pořád řeší dokola přitom je tu na to článek: http://www.itnetwork.cz/…ace-programy

Nahoru Odpovědět
2.3.2016 13:35
Když mi dáš mínus, napiš proč!
Avatar
Draumer
Člen
Avatar
Odpovídá na Erik Báča
Draumer:2.3.2016 13:42

Ten článek jsem si přečetla už nejméně 3x. Nemám nic proti této stránce, je dokonalá, ale dívala jsem se i po jiných. Přeci jen 100 lidí, 100 chutí (názorů). Přečtu si tedy něco o C# s tím, že bych začala Javou, poté přešla na C# a následně na C++. Může být?

 
Nahoru Odpovědět
2.3.2016 13:42
Avatar
martanec
Člen
Avatar
Odpovídá na Draumer
martanec:2.3.2016 13:58

Je to nakoniec tvoje rozhodnutie. ;)

 
Nahoru Odpovědět
2.3.2016 13:58
Avatar
martanec
Člen
Avatar
Odpovídá na Erik Báča
martanec:2.3.2016 14:26

ano, novodoby trend je Object First. Znie to uzasne. Ale...
Zacinajuci programator hned narazi na pojmy ako je objekt, trieda, instancia triedy. Jednotlivo tieto pojmy su lahko pochopitelne, az pokial nepride veta: Vytvor mi objekt X1 ako instanciu triedy XY.
A presne tu mala drviva vacsina mojich studentov na univerzite problem, lebo zrazu nevedeli co vlastne maju robit.
Urcite, ked vytvaras nejaky objekt, tak ten objekt by mal nieco robit. Najlepsie riesit nejaky problem. Teda je potrebne navrhnut a implementovat nejaky algoritmus (napriklad vypocet korenov kvadratickej rovnice).

Takze metoda Object First je podla mna o mnoho narocnejsia, pretoze musis pochopit nie len objekty, ale zaroven sa ucit navrhovat aj implementovat algoritmy.

 
Nahoru Odpovědět
2.3.2016 14:26
Avatar
Draumer
Člen
Avatar
Odpovídá na martanec
Draumer:2.3.2016 14:51

Tak teď jsi mě totálně zmátl :D Budu se muset naučit základní terminologii.

 
Nahoru Odpovědět
2.3.2016 14:51
Avatar
Erik Báča
Člen
Avatar
Odpovídá na martanec
Erik Báča:2.3.2016 14:52

Pochopil jsi mě špatně, samozřejmě, že by každý měl začít "neobjektově", ale v nějakém vysokoúrovňovém jazyku, jako je java, C#, a potom až přejít na složitější nízkoúrovňový jazyk, jako je C, C++.

Nahoru Odpovědět
2.3.2016 14:52
Když mi dáš mínus, napiš proč!
Avatar
Draumer
Člen
Avatar
Draumer:2.3.2016 15:23

Omlouvám se za svou nezkušenost, ale toto jsem taky nepochopila:

*Je důležité si uvědomit, že začínající programátor se neučí jazyk. Učí se programovat a jazyk je jen prostředek pro zápis programu. Umění programovat není vázáno na žádný programovací jazyk. Pokud umíte programovat třeba imperativním způsobem, tak se naučíte nový jazyk z dané skupiny během 2 dnů, maximálně týdne. Počet jazyků neříká vůbec nic o schopnostech programátora.

Doporučuje se začít programovat s imperativním jazykem. Nejdříve nízkoúrovňový, potom vysokoúrovňový jazyk.*

Nechápu smysl prvních dvou vět. Neučím se jazyk, ale programovat, k němuž je vlastně jazyk potřeba.. Jsem jediná, kdo to nepojal?
A také poslední věta - píší, že dříve nízkoúrovňový a poté vysokoúrovňový. Přičemž o pár řádků výše na dané stránce je napsáno, že Java patří do vysokoúrovňového.. Takže podle nich by se mělo začít Pascalem a C.. Jaký je váš názor?

 
Nahoru Odpovědět
2.3.2016 15:23
Avatar
vesel.fil
Člen
Avatar
Odpovídá na Draumer
vesel.fil:2.3.2016 19:51

Já se opět vmísím do diskuse...

Programovat se dá třeba pomocí vývojových diagramů, jazyk k tomu vůbec není potřeba. Ten slouží jen jako prostředek jak program předat procesoru. Je to jen nástroj. Programování samo o sobě by se dalo chápat jako "vytváření řešení problémů spustitelné na počítači". Jazyk je opravdu jenom nástroj.

Pro začátečníka jsou většinou vhodné jazyky imperativní, staticky typované.

Dám sem příklad hledání dělitelů zadaného čísla v Javě a C/C++ pro porovnání:

Java:

package com.company;

public class Main
{
    public static void main(String[] args)
    {
        int cislo = 1000;

        for (int i = 1; i <= cislo; i++)
        {
            if (cislo % i == 0)
            {
                System.out.printf("%d\n", i);
            }
        }
    }
}

C/C++

#include <stdio.h>

int main()
{
        int cislo = 1000;

        for (int i = 1; i <= cislo; i++)
        {
                if(cislo % i == 0)
                {
                        printf("%d\n", i);
                }
        }
}

Jak vidíš, kód je prakticky stejný. Ta část, která se liší je automaticky generovaná vývojovým prostředím. Tudíž ze začátku tam není prakticky žádný rozdíl. Začínat v nízkoúrovňovém jazyce je poměrně složité. Pascal je starý jazyk se špatným návrhem, dnes nepoužitelný. Pokud chceš začít s nízkoúrovňovým jazykem tak rozhodně C/C++. Za mě ale pořád musím doporučit Javu nebo C#. Tady už je poměrně jedno, který z nich si vybereš.

Ačkoli se znalost C++ hodí, dnes se bez něj obejde i profesionální programátor. Proč se zaobírat manuální správnou paměti, když to garbage collector udělá za tebe? Začátečníka to zbytečně zatěžuje.

Takže jak jsem již mnohokrát řekl a myslím, že je to většinový názor, Java nebo C# je vhodnější.

Ještě bych doplnil část článku, na který bylo výše odkazováno.

Mezi nevhodné jazyky patří např. zastaralý Pascal, Delphi nebo céčko. Pro začátečníky není vhodné ani C++, jelikož je příliš složité, to samé platí pro JavaScript.

Editováno 2.3.2016 19:53
Nahoru Odpovědět
2.3.2016 19:51
I don't necessarily agree with everything I say.
Avatar
Draumer
Člen
Avatar
Odpovídá na vesel.fil
Draumer:2.3.2016 19:55

Díky za rady. Nakonec jsem se (na základě rad zdejšího člena) rozhodla zkusit Python. Je to prý velmi jednoduché a takový ten základ. Jakmile zvládnu Python, chtěla bych přestoupit na Javu nebo C# C++ (podle toho, co je vhodnější).

 
Nahoru Odpovědět
2.3.2016 19:55
Avatar
vesel.fil
Člen
Avatar
Odpovídá na Draumer
vesel.fil:2.3.2016 20:01

Až na dynamické typování souhlasím, že je to dobrý jazyk pro začátečníky.

Nahoru Odpovědět
2.3.2016 20:01
I don't necessarily agree with everything I say.
Avatar
Draumer
Člen
Avatar
Odpovídá na vesel.fil
Draumer:2.3.2016 20:03

Tak to asi nepůjde :/ Stáhla jsem si to, ale nejde to spustit. Resp. potřebuji aktualizovat na novější systém (mám Windows 7 Starter). Půjde nějaký jiný jazyk spustit bez další aktualizace?

 
Nahoru Odpovědět
2.3.2016 20:03
Avatar
vesel.fil
Člen
Avatar
Odpovídá na Draumer
vesel.fil:2.3.2016 20:08

Co přesně nefunguje? Nejde Ti to vůbec nainstalovat? Mám dojem, že Starter nespustí .msi soubor. Každopádně tady: "https://www.pyt­hon.org/downlo­ads/release/pyt­hon-351/" jsem našel .exe instalátor. To taky nefunguje?

Editováno 2.3.2016 20:09
Nahoru Odpovědět
2.3.2016 20:08
I don't necessarily agree with everything I say.
Avatar
Draumer
Člen
Avatar
Draumer:2.3.2016 20:21

Posílám screen. Stahovala jsem to ze stránky python.org. Verzi 3.5.1 (novější jsem nenašla)

 
Nahoru Odpovědět
2.3.2016 20:21
Avatar
Draumer
Člen
Avatar
Draumer:2.3.2016 21:08

Jak vidím, tak mi není souzeno začít programovat.. Java taky požaduje novou verzi, ale tentokrát Google Chrome.

 
Nahoru Odpovědět
2.3.2016 21:08
Avatar
vesel.fil
Člen
Avatar
Odpovídá na Draumer
vesel.fil:3.3.2016 14:32

Starter edice Windows je velice limitovaná. Ale pokud vím, tak Java by tam měla jít bez problémů. Ale Microsoft to dost omezil, takže je možné, že to prostě nepůjde a nic s tím nepůjde udělat.

Nahoru Odpovědět
3.3.2016 14:32
I don't necessarily agree with everything I say.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 30 zpráv z 30.