C++ /Java

    • Bliss86
      Bliss86
      Bronze
      Dabei seit: 03.08.2006 Beiträge: 5.562
      Ich wollte mal allgemeine Frage über C++ stellen.

      Und zwar arbeite ich seit längerem im Web-Bereich mit dem programmieren in PHP, MySQL und so Zeug, habe Erfahrung in Delphi (ganz wenige nur in Java) und will nun auch in Hinsicht auf mein folgendes Informatikstudium auf "richtige" Programmiersprachen umsteigen. Speziell im Moment C++.

      Probleme habe ich einfach damit, dass ich keinen richtigen Start finde. Bisher habe ich mir alles selbst beigebracht, bzw durch "Recherchen" im Internet. Bei C++ komme ich jedoch nich richtig rein. Ich lese die ganze Zeit nur was über Kompiler etc., weiß auch was diese machen, kann aber noch nicht ganz soviel damit anfangen.

      Brauch ich für C++ irgendwelche Programme, die mich viel Geld kosten (würden), oder geht das ganze auch kostenfrei? Womit habt ihr angefangen, gibt es bestimmte Quellen im Internet (aka php.net) worüber man sich gescheit informieren kann? Woraus bestehen einschlägige Programme wie der SHC-Trainer, Pokerstats etc? Wie kann ich mir das mit dem GUI vorstellen?

      Komische Fragen, vll kriege ich ja normale Antworten :) Freuen würde ich mich auf jeden Fall, will nun mal weiter in das Gebiet der Programmierung eindringen und nicht nur so pipifax Php..

      Grüße,
      Sven
  • 26 Antworten
    • garten309
      garten309
      SuperModerator
      SuperModerator
      Dabei seit: 02.07.2006 Beiträge: 12.097
      also ich würde mal mit c anfangen und dann auf c++ umsteigen. die unterschiede sind nicht groß, allerdings solltest du dir so leichter tun, und kannst auch noch eine programmiersprache mehr.
    • Bliss86
      Bliss86
      Bronze
      Dabei seit: 03.08.2006 Beiträge: 5.562
      naja, für C gilt dann die gleiche Frage: Wie fängt am besten an. Außerdem würd ich gern wissen, was man mit C machen kann, was C++ nich kann bzw umgekehrt..
    • TheOneAndOnlyMarkus
      TheOneAndOnlyMarkus
      Bronze
      Dabei seit: 20.02.2006 Beiträge: 3.784
      Also erstmal die Standardantwort von nem Informatiker:
      Programmieren lernen != Programmiersprache lernen

      C als erstes zu lernen ist absolut keine gute Entscheidung! Die Unterschiede sind gewaltig! Zwar mögen die Sprachen ähnlich aussehen, aber hinter C++ stecken ganz andere Programmierparadigmen. Man programmiert in C++ also komplett anders als in C.

      Wenn du wirklich programmieren lernen willst kann ich dir nur HtdP empfehlen. Die hier verwendete Sprache heißt Scheme, findet in der Realität kaum Anwendung, ist aber dennoch gut geeignet um wirklich Programmieren zu lernen (was dir für ein Informatikstudium wesentlich mehr bringt).

      Wenn du nur eine Programmiersprache lernen willst gibt sich C++, Java und C# nicht viel. Für Java gibt es eine gute Entwicklungsumgebung kostenlos: Eclipse und mit dem Openbook von Galileo Computing hast du alles was du braucht um die Sprachfeatures zu lernen. Mit intelligentem Pogrammieren hat das dann allerdings wenig zu tun. Das ist nur Sprache lernen.

      Gruß,
      Markus
    • DonSalva
      DonSalva
      Bronze
      Dabei seit: 27.08.2006 Beiträge: 11.700
      C++ und Java ftw
      lern einfach beide :)
      fang mit einer von beiden an, ist egal welche.

      und lass bloß die finger von scheme!!
      das ist ein völlig anderer ansatz, der nur noch in wenigen bereichen anwendung findet. scheme basiert auf funktionaler programmierung, C++/Java werden meist im kontext objektorientierter programmierung verwendet.

      wenn du n gutes buch hast, dann lernst du nicht nur die sprache sondern eben auch gleich die dahinterstehenden programmierkonzepte. und das schaffst du auch mit c++/java.
    • KraGena
      KraGena
      Bronze
      Dabei seit: 11.04.2007 Beiträge: 286
      Ok seit Jahren dachte ich das C++ auf C aufbaut und deshalb die Sprachen miteinander auch verwandt sind.
      Deshalb verstehe ich nicht, warum man nicht mit C anfangen sollte! Klar hat C++ andere Befehle aber das Programmieren an sich bleibt immer gleich, und wird immer gleich bleiben. Eine For-Schleife wird sich in der Deklaration unterscheiden, aber in der Funktionsweise immer gleich bleiben, egal welche Sprache du benutzt.

      Der größte Unterschied zwischen C++ und C ist, dass man unter C++ OOP Programmieren kann, was unter C nicht möglich ist.
    • baKiZ
      baKiZ
      Global
      Dabei seit: 20.10.2005 Beiträge: 56
      Ich würd schon mit C anfangen, wenigstens mit den Grundsachen, ist im Studium auch als erstes dran. Zumindest wars bei mir an der FH Schmalkalden so.

      besorg dir das buch von kernighan und ritchi, damit kannste glaub ich am besten anfangen.
      Kannst natürlich auch nen andres buch nehmen, aber das ist wohl das bekannteste für C.

      C und C++ sind schon ziemlich verschieden. C ist halt zum Kennenlernen da xD . Sehr tief muss man da aber nicht einblicken.
    • streictt
      streictt
      Global
      Dabei seit: 04.04.2006 Beiträge: 951
      Ich arbeite hauptsächlich unter Unix/Linux, eine gute kostenlose Entwicklungsumgebung für C/C++ unter Windows findest Du z.B. bei http://www.openwatcom.org

      Ein Compiler übersetzt Dein Programm in ausführbaren Maschinencode (oder in interpretierbaren Zwischencode (Java Bytecode z.B.)). Hat beides seine Vor- und Nachteile (Hauptsächlich Perfomance vs. Maschinenunabhängigkeit).
      Du musst Deine Programme jetzt halt übersetzen, während sie bisher automatisch interpretiert wurden, wenn Deine Web-Seiten aufgerufen wurden. (Selbsterklärend mit Openwatcom =) )

      Original von Bliss86
      Außerdem würd ich gern wissen, was man mit C machen kann, was C++ nich kann bzw umgekehrt..
      Prinzipiell überhaupt nichts. Beide Sprachen sind turingmächtig, d.h. berechnungsuniversell, wie man Dir schon bald beweisen wird. :D
      C++ unterstützt eben (aber erzwingt es nicht ;( ) Vererbung und Objektkapselung und ist damit ein Stück weit "besser" für ein gutes Softwareingineering geeignet.
      (Saubere) Objektorientierung und der imperative Programmierstil sind 2 Grundverschiedene Paradigmen. C ist einfacher zu lernen und eine Untermenge von C++. Die Übergänge sind aber fliessend. ;)

      Alles was Du können musst, lernst Du demnächst im Informatik-Studium.
      (Hier unterscheiden sich Unis/FHs/BAs "etwas" in der Praxisorientierung - es kann sein, dass Du an der Uni die ersten 2 Semester gar kein C brauchst ;) )
      Und wie TheOneAndOnlymarkus schon andeutete:
      Informatik != Software entwickeln != programmieren.
      (obwohl es etwas miteinander zu tun hat)

      Viel Erfolg!
    • hitecc
      hitecc
      Bronze
      Dabei seit: 26.04.2007 Beiträge: 160
      Nimm Java oder C#. Damit kann man gute Sachen machen, so dass es privat auch Spass macht.

      Den Rest lernt man in der Uni, und nem Informatiker sollte es eh (weitestgehend) egal sein was er benutzt.

      Wenn du irgendwann mal C/C++ benutzt wird dir dann zwar auffallen, dass es nen Speicher gibt und dass der Probleme bereiten kann und dass es anscheinend Dinge gibt die du noch nicht wusstest, aber das macht man halt dann.
    • hazz
      hazz
      Black
      Dabei seit: 13.02.2006 Beiträge: 4.771
      würd mit java anfangen. mehr hab ich bislang bei den wiinfs zumindest nicht gebraucht.
    • RealRauch
      RealRauch
      Bronze
      Dabei seit: 26.05.2007 Beiträge: 517
      Hi,

      ich kann mich nur einigen meiner Vorredner nur anschießen, es ist fast irrelevant was du für eine Sprache lernst. Wir haben im ersten und zweiten Semester mit C (um Hardwarenahe Prozesse klar zu machen) und mit Eiffel gearbeitet. Kennst du Eiffel? Vermutlich nicht. Genau das war der Grund warum diese Sprache gewählt wurde. Alle starteten mit den selben Voraussetzungen. Es ist mir kein in "echte" Software bekannt die in Eiffel geschrieben wurde, dafür sind die Konzepte dieser Sprache sehr "sauber".
      Ein Tipp: Lerne keine Sprache, sondern setzte dich mit den Grundlagen auseinander (OOP - nicht Out Of Position, sondern Objekt Oriented Programming), Datenstrukturen. Versuche in Mathe einfach in Übung zu bleiben. Nicht dass du mit Schulmathe an der Uni oder FH wirklich weiterkommst (den Stoff hatten wir nach etwa 2 Wochen durch) aber mathematisches-analytisches Denken ist der Schlüssel zur Informatik.
      Klar, wenn du spass am Programmieren hast kannst du auch nebenbei noch eine Sprache lernen. Wähle eine objektorientierte Sprache, damit du hinter die Prinzpien der OOP steigst. Ich empfehle Java (wird gern an den Unis genommen) oder C# (gute kostenlose IDE und gutes Framework, allerdings nix für Microsoft-Hasser).

      Gruss
      RealRauch
    • hitecc
      hitecc
      Bronze
      Dabei seit: 26.04.2007 Beiträge: 160
      C# (gute kostenlose IDE und gutes Framework, allerdings nix für Microsoft-Hasser)


      Mono rocks!
    • soucy
      soucy
      Bronze
      Dabei seit: 28.11.2006 Beiträge: 2.092
      Original von hazz
      würd mit java anfangen. mehr hab ich bislang bei den wiinfs zumindest nicht gebraucht.
      Wer C++ kann , muss in Java nur noch lernen auf was er nun nicht mehr achten muss :)
    • Mr.Snood
      Mr.Snood
      Bronze
      Dabei seit: 22.01.2005 Beiträge: 5.352
      Wundert mich das noch keiner Malbologe empfohlen hat.

      Meiner Meinung nach die Sprache der Zukunft.
    • Bliss86
      Bliss86
      Bronze
      Dabei seit: 03.08.2006 Beiträge: 5.562
      Kann die nich schon jeder?

      Naja, mit OOP habe ich mich teilweise schon während des Arbeiten mit PHP beschäftigt, derzeit arbeite ich das Buch von Galileo Computing durch (Java) und schaue mal wie weit ich damit komme. Immerhin meine ich gelesen zu haben, dass die Uni KL irgendwann auch mit Java programmiert, Kenntnisse darin sind sicherlich nicht schlecht.

      Vieles kann ich ja auch irgendwie schon, PHP ähnelt Java (bisher zumindest) in vielen Dingen fast 1 zu 1. Naja, vielen Dank für die Tipps.

      Das Buch, welches mit Scheme arbeitet, habe ich bisher auch eigentlich nur zur Vermittlung der programmiertechnischen Grundlagen erkannt, also über den Aufbau, Design und Entwicklung.. Kann bestimmt auch nicht schaden ;)

      Grüße
    • Bliss86
      Bliss86
      Bronze
      Dabei seit: 03.08.2006 Beiträge: 5.562
      Hi, nochmal ne kurze Frage. Interesse halber würde ich gerne wissen, welche "bekannten" Programme in Java geschrieben worden sind.. Für Google bin ich anscheinend zu blöd :D
    • garten309
      garten309
      SuperModerator
      SuperModerator
      Dabei seit: 02.07.2006 Beiträge: 12.097
      pokeroffice. deshlab ist es auch so lahm. ^^
    • Bliss86
      Bliss86
      Bronze
      Dabei seit: 03.08.2006 Beiträge: 5.562
      Also ist Java bei größeren Sachen relativ langsam? Wo liegt dann genau der Vorteil gegenüber C++? Ansonsten könnt ich mich ja gleich mit C++ beschäftigen..
    • Thorsten77
      Thorsten77
      Black
      Dabei seit: 28.05.2006 Beiträge: 12.896
      Das ist absoluter Quatsch. Java-Anwendungen sind nicht langsamer als C++-Programme wenn sie richtig programmiert sind. Bei Serveranwendungen kann der JIT-Compiler sogar mehr optimieren als ein statischer Compiler, so dass Anwendungen in diesem Bereich Vorteile gegenüber C/C++ haben können.

      Der Vorteil von Java ist die Platformunabhängigkeit - Du kompilierst, packst alles als JAR und kannst es auf allen Platformen auf denen eine JVM läuft laufen lassen.

      Ich persönlich bevorzuge Java, da es eine Menge kostenloser Tools und Frameworks gibt, die einem das Arbeiten extrem erleichtern (wenn man mal verstanden hat wie man sie verwendet). Als Entwicklungsumgebung empfehle ich Eclipse - das ist übrigens selbst in Java geschrieben.
    • Kreatief
      Kreatief
      Bronze
      Dabei seit: 28.01.2006 Beiträge: 13.896
      Mein HH Converter ist mit Java programmiert worden :)

      Wenn du keine OO kannst, lerne C bis du es auswändig kannst. Da kannst du auch GUIs programmieren und lernst was Pointer sind (Refernzübergabe etc).

      Dann steige in die OO ein, das dauert eine Zeit lang, bis es Klick macht. Danach kannst du dir nicht mehr vorstellen nicht OO zu arbeiten.

      C++ ist die letzte scheiss Sprache. Leider aber immer noch zu wichtig (schnelle Anbindung an Hardware etc).

      Auf Arbeit programmiere ich ausschließlich C++, privat aber nur Java. Und wer behauptet, dass Java immer langsamer ist als C++ oder C# hat das Konzept nicht verstanden.

      Das galileocmputing openbook "Java ist auch eine Insel" ist sehr gut für Beispiele. In Zusammenhang mit der Java Doc kann man damit sehr gut arbeiten.

      Theoretisch brauchst du keine Entwicklungsumgebung, sondern lediglich einen Editor und einen Javacompiler (der standardmäßig installiert sein sollte).
      Dennoch empfehle ich Eclipse, auch wenn es viel Speicher frisst. Viele Features sind einfach traumhaft (Auto generate Getter- and Settermethods... like that).

      C# ist sicherlich auch eine sehr gute Empfehlung. C# ist quasi die Entwicklung und Erfahrung aus C++ und Java. Viele Probleme konnten somit behoben werden und aus den Erfahrungen der beiden anderen Sprachen gelernt werden. Ich selber habe noch nichts in C# programmiert, habe also keine Erfahrung.

      Ich bin defintiv der Meinung, man sollte am Anfang C lernen und das solange programmieren bis man es in und auswändig kann.
      Ich habe darin auch schon ganze client- / serveranwendungen programmeiert. Eine Multi-Chatprogramm mit Dateitransfer und Gruppenunterhaltungen. Also ist es nicht vergelichbar mit Basic ;)
    • 1
    • 2