Ich brauche eine Bewertung zu einem Buch!



  • Hallo,

    bin selbst Anfänger in C++

    ich habe mir ein Buch gekauft: C++ in 21 Tagen von Jessy Liberty

    ich finde dass da eigentl. alles ganz gut erklärt wird und wenn man wirklich konsequent dahinter hängt versteht man alles --> nur die Zeiger sin kompliziert, aber die sind soundso kompliziert

    mfg hirs

    PS: Das soll keine Werbung sein, nur seitdem ich das buch habe schreibe ich nur noch 1en oder 2en bei den Informatik Tests



  • hirs_cpp schrieb:

    PS: Das soll keine Werbung sein, nur seitdem ich das buch habe schreibe ich nur noch 1en oder 2en bei den Informatik Tests

    ... und mit den Frauen klappt es auch besser seitdem. SCNR: Hörte sich irgendwie nach TV-Shopping an 😃 .



  • Power Off schrieb:

    Die Fa. ging dann irgendwann Pleite, aber trotzdem!! Kein Einzelfall.

    Jo, leider. vorallem wenn der chef den ganzen mist verbockt hat. da kann man sich nichtmal richtig darüber beschweren...

    aber mir ist das mit PHP basiert... kann es also sein, dass das Problem anfänger und nicht komplexe sprachen sind.

    und da sehe ich C++ nicht wesentlich schwieriger als Java oder PHP. Denn man kann ohne Probleme mit C++ arbeiten ohne Streams und Templates verstanden zu haben - anwenden kann man das ja recht schnell.

    IMHO ist C++ hier aber dank der komplexität nicht so anfällig wie Java oder PHP. Denn Java oder PHP 'kann jeder in 24 stunden lernen' 😞 und ist nachher der absolute profi...

    bei C++ geht das zum glück noch nicht, da braucht man 21 Tage 😞

    (EDIT: natuerlich haette das o.g. Projekt nicht so gross sein muessen, man haette das auch locker in 1/100 des Codes hingekriegt, aber das waren halt Anfaenger, die wussten es nicht besser ... 😮 Scheissegal, ob's einen Sinn ergibt, Hauptsache es ist objektorientiert! 👍 👍 👍 )

    exzessive Coderedundanz mit OOP habe ich noch nie gesehen, aber wenn man 3 funktionen (je 300 zeilen) hat die sich jeweils durch die ersten 5 zeilen und die letzten 5 zeilen unterscheiden, dann versteht man was du meinst...



  • Ich schreibe auch schon seit einiger Zeit in C++ und finde, dass man auf keinen fall erst C lernen sollte.
    Ich hab zuvor schon mit Basic und WDL gearbeitet und selbst da kam mir schon oo zuerst befremdlich vor. 🙄
    Fang auf jeden fall mit C++ an! ⚠

    Zu denn 5-6 Jahren: Ich würde sagen höchstens 2 bis man es halbwegs drauf hat. 😉

    MfG RoaN;



  • Ach ja, guckt mal umbedingt in meinen DX + !VC++ Post im 3D-Spieleforum rein! 😃

    MfG RoaN;



  • Bei Amazon habe ich einige Rezensionen angeschaut und auch ein Buch gekauft, das speziell für Anfänger ist. Ich bin nicht schlecht gefahren:

    D. May: Grundlagen der Software-Entwicklung, Vieweg verlag

    Gruss Jerry



  • Ach Leute kommt, es ist doch allen klar das C++ die defenetiv komplexere und damit schwerere Programmiersprache ist und nur weil im C++ Codex C implementiert ist heißt es noch lange nicht das jeder C Code automatisch C++ ist. Also sollte man defenetiv mit einer einfachen Programmiersprache anfangen. Wo man das Konzept und was viel wichtiger ist den Sinn des Konzepts sehr schnell versteht, wesentlich besser.



  • Shade Of Mine schrieb:

    exzessive Coderedundanz mit OOP habe ich noch nie gesehen

    OOP ist weder ein Garant für noch gegen Coderedundanz. Das übereifrig angewendete OOP aber schnell mal zu einer Codeexplosion führt, sollte wohl jeder schon mal erlebt haben.
    Gerade am Anfang neigt man ja gerne mal dazu überkomplizierte Lösungen (und damit unnötig viel Code) zu produzieren (oder geht das nur mir so?).
    Natürlich alles im Namen der Flexibilität und Wiederverwendbarkeit und auf der Suche nach der "Software-Familie" hinter dem Problem.

    Beispiel?[1]

    Version A: Ich

    #include <iostream>
    #include <ostream>
    int main()
    {
        std::cout << "Hello World!" << std::endl;
    }
    

    Version B: Anfänger nach der Lektüre des Gof-Buchs:

    #include <memory>
    #include <stdexcept>
    
    // Todo: Factory-Komponente für das Erzeugen von Applikations-Objekten 
    // bereitstellen. 
    class Application
    {
    public:    
        static Application* instance()
        {
            if (!instance_s.get())
                throw std::runtime_error("you must register an App-Instance first!");
            return instance_s.get();
        }
        static void registerApp(Application* a)
        {
            instance_s.reset(a);
        }
        virtual ~Application() {}
        int run()
        {
            init();
            while (!done())
            {
                idle();
            }
            return cleanup();
        }
    protected:
        Application() : isDone_(false) {}
        bool done() const {return isDone_;}
        void setDone() {isDone_ = true; }
    private:
        Application(const Application&);             
        Application& operator=(const Application&); 
        virtual void init() = 0;
        virtual void idle() = 0;
        virtual int cleanup() = 0;  
        bool isDone_;
        static std::auto_ptr<Application> instance_s;
    };
    
    std::auto_ptr<Application> Application::instance_s;
    
    #include <iostream>
    #include <ostream>
    class HelloWorld : public Application
    {
    public:
         HelloWorld(std::ostream& os) : Application(), os_(os) {}
    private:
        void init() {}
        void idle() 
        {
             os_ << "Hello World!" << std::endl;
             setDone();
        }
        int cleanup() {return 0;}
        std::ostream& os_;
    };
    
    using namespace std;
    int main()
    {
        Application::registerApp(new HelloWorld(cout));
        return Application::instance()->run();
    }
    

    [1]Ähnlichkeiten zum "Pattern Abuse"-Beispiel aus "Agile Software Development" von Robert C. Martin sind nicht zufällig.



  • HumeSikkins schrieb:

    // Todo: Factory-Komponente für das Erzeugen von Applikations-Objekten 
    // bereitstellen.
    

    Spitzen Beitrag! 😃 👍



  • @Hume: das ist ja total unflexibel!
    Zumindest den Zeichentyp solltest Du noch als template parametrisieren. Außerdem wäre es vielleicht besser den String der ausgegeben werden soll aus einer Datei zu lesen. 😃



  • Ich hab jetzt das Buch und bin eigentlich ganz zufrieden!

    Es ist jedenfalls an absolute Anfänger gerichtet.

    Danke für eure Hilfe



  • Jester schrieb:

    @Hume: das ist ja total unflexibel!
    Zumindest den Zeichentyp solltest Du noch als template parametrisieren. Außerdem wäre es vielleicht besser den String der ausgegeben werden soll aus einer Datei zu lesen. 😃

    Schlage vor, den String per Webservice von einem Datenbankserver abzuholen.


Anmelden zum Antworten