C auslassen, oder vor c++ lernen?



  • berniebutt schrieb:

    Programmieren ist aber unabhängig von der Programmiersprache. Die Grundlagen, was man machen will oder machen muss, bleiben die gleichen.

    Tja, ein Grund mehr nicht mit C anfangen zu müssen. Dann kann man ja gleich mit C++ anfangen, da die Sprache ja egal ist. 😉

    Im Ernst: C++ ist heute eine eigenständige Sprache. Warum leben so viele wie Du noch noch in einer "C with Classes"-Welt? Einfach unbegreiflich.
    Sagst du etwa auch einem Java-Einsteiger, das er erst C lernen muß, weil man als Java-Einsteiger auch gleich mit OOP konfrontiert wird? Viele empfehlen Anfängern gleich Java, Python oder C#. Alles OO-Sprachen, und keiner sagt, das diese schlecht für Anfänger sind.

    C++ ist eine Multiparadigmen-Sprache, gerade mit dieser lernt man nicht nur OOP sondern auch procedurales Programmieren. Dafür muß ich vorher nicht unnötig C lernen. Die Zeit die ich für C verbringe, kann ich sinnvoller in C++ investieren.



  • Dravere schrieb:

    Trotzdem, ich habe es gelernt und ich empfand es relativ leicht. Das war ziemlich schnell drin.

    Mir hat es dagegen beim Lernen von C geholfen, daß ich schon ein paar Assemblersprachen kannte,
    denn so war es kein Problem, sich unter einem Array die Anfangsadresse eins Speicherbereichs vorzustellen, auf den man mittels indirekter Adressierung zugreift - das ist ein Konzept, daß sich 1:1 auf Maschinensprache abbildet, ebenso wie Post- und Preinkrement (ja, die PDP 11) und einige andere Dinge.

    Ohne dieses Vorwissen ist doch beispielsweise schwer zu vermitteln, warum das 1. Element eines Arrays a[0] (und nicht a[1]) ist. Weiß man, daß a eine Adresse ist, macht es Sinn, weil a+0 == a.


  • Administrator

    u_ser-l schrieb:

    Ohne dieses Vorwissen ist doch beispielsweise schwer zu vermitteln, warum das 1. Element eines Arrays a[0] (und nicht a[1]) ist. Weiß man, daß a eine Adresse ist, macht es Sinn, weil a+0 == a.

    Und ein gutes Buch vermittelt dieses Wissen im voraus. Das Wissen ist ja wirklich einfache. Eine Adresse kann man extrem leicht und einfach erklären. Grundsätzlich reicht, wenn man jemandem sagt, dass die Adresse nichts anderes ist, als eine Zahl für jedes Byte.
    Nun kannst du genau das oben hinschreiben, mit dem a+0 == a . Ein gutes C++ Buch wird schliesslich erklären, was eine Adresse ist.
    Darum ging es mir ja auch, denn wenn man diese Konzepte schon kennt, wird man dann das Kapitel womöglich überfliegen und dann plötzlich gewisse andere Dinge nicht sehen, welche aber wichtig gewesen wären.

    Grüssli



  • es hat halt jeder andere Voraussetzungen und eine andere Mischung an Vorwissen, bei mir Assembler vor C. Dafür lernte ich OO mit C++, mit Smalltalk gingen mir dann die Augen auf.



  • Grundwissen zu Bits und Bytes gehört natürlich in jedes Programmierer-Anfänger-Buch. Selbst damals auf dem C64 wurde für BASIC-Anfänger erklärt was Speicheradressen sind. Und wenn ein C++-Buch kein C lehrt, heißt das nicht, das darin Bits & Bytes nicht erklärt gehören. In dem Buch http://www.oop-mit-cpp.de wird ausgiebig am Anfang dieses Thema behandelt, selbst wenn OOP auf dem Buchtitel steht.



  • berniebutt schrieb:

    Wer mit C++ zu programmieren beginnt lernt zunächst einmal C oder sollte das jedenfalls tun. Ich glaube nicht, dass der sofortige Einstieg in OOP etc. sehr sinnvoll ist. Ältere Programmierer hatten es da einfacher: Es gab erst C. Als es dann C++ gab konnte man prüfen, was man mit den erweiterten Möglichkeiten machen konnte.
    Programmieren ist aber unabhängig von der Programmiersprache. Die Grundlagen, was man machen will oder machen muss, bleiben die gleichen.

    Eben überhaupt nicht.
    Zum Programmieren braucht man Logik, das ist so ziemlich in jeder Sprache nötig, aber damit hört's sich schonmal auf.



  • War mir schon klar, dass einige hier über mich herfallen. Jeder soll das nehmen, womit er am besten klarkommt oder was der Chef oder der Kunde verlangt! Ich habe meine ersten Programmieaufträge erledigt als es C und vieles weitere noch nicht gegeben hatte. Dementsprechend sehe ich einiges anders. !Hasta la vista, los amigos!



  • berniebutt schrieb:

    Jeder soll das nehmen, womit er am besten klarkommt oder was der Chef oder der Kunde verlangt!

    Es geht hier aber um einen Anfänger, der C++ lernen will und sich fragt, ob sich ein Umweg über C lohnt. Und es sind sich recht viele Leute einig, dass dies nicht der Fall ist.



  • Richtig, es geht um den sinnvollen Einstieg vom Punkt Null!
    Antwort: etwas einfaches wählen mit kleinen Aufgaben steigender Komplexität. Das kann man sowohl mit C wie auch C++, aber auch mit Basic, Fortran oder Pascal machen. Der Fragesteller macht nichts falsches, egal ob er nun mit C oder C++ beginnt, die Unterschiede sind am Anfang gering. Wähle also C++, dann vermeidest Du einigen überflüssig gewordenen Ballast. Fange einfach an und lerne, was Dir weiterhilft!



  • Ich möchte mich für die vielen Antworten bedanken, die teilweise aber auch leicht verwirrend waren.
    Ich nehme für mich aber nun mit, dass ich direkt mit C++ beginne und C außen vor lasse, bzw. nur dort betrachte wo es sinnvoll ist.

    Als Einführungsbuch habe ich den C++ Primer bestellt. Dann sollte es nun ja wohl klappen!

    Danke noch einmal und viele Grüße

    Ohne_Ahnnung (der den Namen absichtlich falsch geschrieben hat)


Anmelden zum Antworten