Wieviel Prozent von C++ muss man wirklich können um ordentliche C++ Programme zu schreiben?



  • Prozent schrieb:

    Nathan schrieb:

    Wieviel Prozent von C++ muss man wirklich können um ordentliche C++ Programme zu schreiben?

    Auf jeden Fall reicht 1% um Anfängerbücher über C++ zu schreiben. 😃

    Danke auch an dich.

    Genau das habe ich nämlich vor.
    Ich möchte C++ vermitteln können und daher ein Buch für Anfänger schreiben, so ganz nach dem Vorbild der C++ Bücher von Jürgen Wolf.
    Ich werde also etwa diese 1 % lernen und dann meine super C++ Bücher schreiben, so wie ihr mir hier empfohlen habt.

    Dann bitte deinen Namen, wir brauchen den für die Blacklist. 😃
    Mit 1 % wird ein Buch genauso wie die von Jürgen Wolf - genauso schlecht.



  • Nathan schrieb:

    Prozent schrieb:

    Nathan schrieb:

    Wieviel Prozent von C++ muss man wirklich können um ordentliche C++ Programme zu schreiben?

    Auf jeden Fall reicht 1% um Anfängerbücher über C++ zu schreiben. 😃

    Danke auch an dich.

    Genau das habe ich nämlich vor.
    Ich möchte C++ vermitteln können und daher ein Buch für Anfänger schreiben, so ganz nach dem Vorbild der C++ Bücher von Jürgen Wolf.
    Ich werde also etwa diese 1 % lernen und dann meine super C++ Bücher schreiben, so wie ihr mir hier empfohlen habt.

    Dann bitte deinen Namen, wir brauchen den für die Blacklist. 😃
    Mit 1 % wird ein Buch genauso wie die von Jürgen Wolf - genauso schlecht.

    Aber ihr seid dann schuld, weil ihr mir gesagt habt, dass 1 % C++ Wissen ausreichen. 😃



  • Es gibt gute Programmierer, die schlechte Softwareentwickler sind.
    Es gibt schlechte Programmierer, die gute Softwareentwickler sind.

    Und es gibt sehr gute Programmierer, die ebenfalls seht gute Softwarentwickler sind.
    Von dieser Sorte gibt es nicht sehr viele, vielleicht die besten 5% der Informatiker.



  • Prozent schrieb:

    Re: Wieviel Prozent von C++ muss man wirklich können um ordentliche C++ Programm
    Und wie lange dauert es etwa, diese Prozentzahl zu erreichen, wenn man am Ball bleibt?
    C++ bietet ja oftmals mehr Sprachfeatures als man in der Praxis dann wirklich braucht. Was ist also wirklich wichtig?

    Mal ein anschaulicher Vergleich:

    C++ ist die Weiterentwicklung von C.
    Den Grundwortschatz von C kann man locker in 3 Monaten lernen.
    Theoretisch kann man damit alles programmieren....... 😃



  • fgjadölfajfdöl schrieb:

    Mal ein anschaulicher Vergleich:

    C++ ist die Weiterentwicklung von C.
    Den Grundwortschatz von C kann man locker in 3 Monaten lernen.
    Theoretisch kann man damit alles programmieren....... 😃

    Das geht sogar praktisch ^^

    Und ich halte belastbare Kenntnisse in C für eine der grundlegensten Fertigkeiten, die ein Entwickler haben sollte, gerade weil man alles auch in C ausdrücken kann, man daraus also ableiten kann, was (wahrscheinlich) bei abstrakteren Sprachen passiert, um ein Problem zu lösen und damit abstraktere Elemente, wie zum Beispiel OOP, zu begreifen statt nur anzuwenden.

    Wer C++ lernt, muss allerdings OOP lernen, bevor er sagt "Ich kann". Neben der Sprache und der Möglichkeit ein beliebiges Programm darin zu formulieren, muss er zusätzlich einige Konzepte erlernen, die sein Denken besser strukturieren. Ähnliches gilt für Const-Correctness, Mehrfachvererbung, Templates...

    Das Programm kann man auch in C erzeugen, die Hilfe vom Compiler, es überhaupt programmieren zu können, bekommt man aber nicht.



  • Xin schrieb:

    Und ich halte belastbare Kenntnisse in C für eine der grundlegensten Fertigkeiten, die ein Entwickler haben sollte, gerade weil man alles auch in C ausdrücken kann, man daraus also ableiten kann, was (wahrscheinlich) bei abstrakteren Sprachen passiert, um ein Problem zu lösen und damit abstraktere Elemente, wie zum Beispiel OOP, zu begreifen statt nur anzuwenden.

    Ja und der nächste kommt und sagt, dass belastbare Assembler-Kenntnisse zu den grundlegensten Fertigkeiten gehören. Für den übernächsten ist es Bedingung, dass ein Entwickler mindestens eine funktionale Sprache wegen der ach so tollen Denkweise kennt.
    Jeder will doch ständig nur anderen Aufzwingen, was er selbst am besten kann.
    Alles Blödsinn. Man kann im Jahr 2013 prima als Entwickler überleben, ohne ein C-Guru zu sein. Lesen kann den Schrott doch sowieso jeder.



  • C++ bietet recht viel.
    Da gibts den C Teil, mit dem man sehr low level gehen kann, dann gibts den OOP Teil, dann gibts noch den generischen Teil mit Templates, und wer weiß, vielleicht könnte man ja noch eine weitere Kategorie von C++ finden.

    Welche Teile du benötigst, hängt stark vom Projekt ab.
    Hier im Forum findet man ja immer wieder Experten in Sachen Templates. In der Praxis (also im Beruf) habe ich festgestellt, dass Templates nicht so häufig verwendet werden.
    In meiner derzeitigen Firma müssen wir außerdem zu einem alten Compiler kompatibel bleiben, und dessen Templatefähigkeiten gehen gegen Null! Auch in Sachen STL ist dieser Compiler eher schwach.

    Gute Software besteht nicht nur aus eleganten Codezeilen. Sie besteht sehr stark auch aus guten Ideen. Ich kenne C++ Entwickler, die sind nicht wirklich am neuesten Stand, und verwenden ein C++ das eher an C erinnert. Trotzdem sind die von ihnen betreuten Subsysteme spitze, weil sie aus einem Guss sind (eben nur diese eine Person arbeitet daran), und weil die Personen viel fachliches Know How haben.
    Was bringt es mir, wenn ich perfekt Templates verwenden kann, und den C++ Standard runterbeten kann, mir aber der fachliche Background in einem Projekt fehlt? Seien es nun Hardwarekenntnisse, Netzwerkkenntnisse, oder was auch immer...

    C++ ist ein Werkzeug, man braucht etwas Theorie dafür, aber hauptsächlich Erfahrung.
    Wie beim Autofahren: Wieviel Übung braucht man, um Fahren zu können? Naja, etwas Theorie, ein paar Fahrstunden, dann aber auch möglichst bald ab in die Praxis, erst da lernt man es dann so richtig.

    Von daher: Sieh zu, dass du möglichst bald Praxis bekommst. Du wirst sehen, deine Kollegen sind auch nur Menschen und auch nicht perfekt. Auch nicht in C++!



  • wewrfesdfs schrieb:

    In meiner derzeitigen Firma müssen wir außerdem zu einem alten Compiler kompatibel bleiben, und dessen Templatefähigkeiten gehen gegen Null! Auch in Sachen STL ist dieser Compiler eher schwach.

    Wieso passiert so etwas?

    Wieso tauscht die Firma den Compiler nicht gegen was besseres aus?
    LLVM und G++ kosten doch nichts.

    Und wenn man solche Upgrades von Anfang an, seit Projektbeginn macht und sich an die C++ Standards hält, dann hält sich auch der Aufwand, alte Software immer fortwährend an zukünftige Compiler anzupassen, in Grenzen.

    Was bringt es mir, wenn ich perfekt Templates verwenden kann, und den C++ Standard runterbeten kann, mir aber der fachliche Background in einem Projekt fehlt? Seien es nun Hardwarekenntnisse, Netzwerkkenntnisse, oder was auch immer...

    Der Code wäre wartbar, d.h. eine andere Person könnte das Problem übernehmen und die Entwicklung weiterführen.

    Bei so Spagetticode, den nur ein einziger Guru versteht, geht das meistens nicht und was soll man dann machen, wenn der Guru den Arbeitsplatz verläßt?
    Ja, dann kann man den Code wegwerfen und neu anfangen oder den Code irgendwie stümperhaft weiterflicken.

    Außerdem ist der Guru dann in einer Position die Firma unter Druck zu setzen.
    Kann sich also viel erlauben, ohne befürchten zu müssen, gefeuert zu werden, denn so einer, der so nen unwartbaren scheiß one-man-show Code programmiert, der ist ja wichtig.



  • Wieso passiert so etwas?

    Wieso tauscht die Firma den Compiler nicht gegen was besseres aus?
    LLVM und G++ kosten doch nichts.

    Und wenn man solche Upgrades von Anfang an, seit Projektbeginn macht und sich an die C++ Standards hält, dann hält sich auch der Aufwand, alte Software immer fortwährend an zukünftige Compiler anzupassen, in Grenzen.

    Wäre mir auch lieber, aber es handelt sich um embedded Plattformen, für die es leider nur den Schrott Compiler gibt. Und zu dem müssen wir zumindest noch ein paar Jahre kompatibel bleiben.

    Der Code wäre wartbar, d.h. eine andere Person könnte das Problem übernehmen und die Entwicklung weiterführen.

    Bei so Spagetticode, den nur ein einziger Guru versteht, geht das meistens nicht und was soll man dann machen, wenn der Guru den Arbeitsplatz verläßt?
    Ja, dann kann man den Code wegwerfen und neu anfangen oder den Code irgendwie stümperhaft weiterflicken.

    Außerdem ist der Guru dann in einer Position die Firma unter Druck zu setzen.
    Kann sich also viel erlauben, ohne befürchten zu müssen, gefeuert zu werden, denn so einer, der so nen unwartbaren scheiß one-man-show Code programmiert, der ist ja wichtig.

    Da hast schon recht, allerdings ist der Code gar nicht so schwer zum Verstehen.
    Wir hatten auch mal Leuten da, die meinten, alles müsse ein Design Pattern sein, und dieser Code ist schwer verständlich. Ich behaupte mal, die haben den Code selbst nicht mehr verstanden.

    Da ists mir dann lieber, die Leute verwenden nur den Teil von C++, den sie auch kapieren. Denn solange sie das tun, ist der Code auch verständlich.



  • Die Leute vom ioccc verwenden auch nur den Teil von C, den sie kapieren. 😉



  • fgjadölfajfdöl schrieb:

    Den Grundwortschatz von C kann man locker in 3 Monaten lernen.
    Theoretisch kann man damit alles programmieren....... 😃

    Hier liegt der Denkfehler. Die Kenntnis von Vokabel und Grammatikregeln macht leider noch keinen Schriftsteller aus.

    Gerade Stil und Aufbau sind Fähigkeiten, die man mit Sicherheit nicht in Monaten erwirbt - und die nicht deckungsgleich mit der Vollständigkeit der "Kenntnis" von Vokabeln und Grammatikregeln ist. Nicht der Besitz einer Bohrmaschine macht den Handwerker.

    Ciao, Allesquatsch



  • Allesquatsch schrieb:

    Hier liegt der Denkfehler. Die Kenntnis von Vokabel und Grammatikregeln macht leider noch keinen Schriftsteller aus.

    Richtig. Auch wenn man eine Sprache wie C vollständig kann, ist es trotzdem sehr wahrscheinlich, dass man fast jedes Projekt an die Wand fährt, wenn man sonst nichts kann. Du kriegst einfach so kein MS Office oder Catia hin, nur wenn du C kannst. Nicht mal ansatzweise.


Anmelden zum Antworten