Bücher-Klassiker, die man gelesen haben sollte?



  • Ich hab hier beispielsweise noch "Agile Software Development" vom Martin rumliegen - aber ist das Ding überhaupt noch aktuell? Ist ja schon uralt, er selber schreibt in dem Buch auch sehr ausgiebig darüber, wie sich sein Verständnis von Softwareentwicklung in den Jahren vor dem Buch geändert hat.
    Kann ja gut sein, dass das nach dem Erscheinen des Buches wieder der Fall war.

    Welche anderen, sprach unspezifische (jedoch eventuell schon auf OO bezogen) kennt ihr und würdet ihr definitiv empfehlen?



  • Design Patterns von Gamma et al.: ist jetzt kein Buch das man von vorne bis hinten in einem durchliest, aber ich hab dort immer wieder mal nachgeschlagen, wie man gewisse Dinge möglichst elegant implementieren kann.

    Vielleicht auch mal mit einem anderen Ansatz als OO beschäftigen? Kann z.B. Learn you a Haskell for great good von Lipovača empfehlen, dabei lernt man eine rein funktionale Sprache. Selbst wenn man danach nie wieder mit Haskell programmiert, so ist es trotzdem eine interessante Erfahrung, dass man Probleme auch anders angehen kann als man es gewohnt ist (in "normalen" Sprachen verwendet man ja meist irgendwelche Variablen bzw. Zustände, um Algorithmen zu implementieren).



  • Hi Booker,

    so aus dem Stegreif würden mir die Bücher von Helmut Balzert einfallen.

    Aber die Grundlagen objektorientierter Programmierung sind eigentlich recht simpel, Es gibt halt Klassen, die Daten enthalten, Methoden haben und von einer oder anderen Klassen abgeleitet sein können (oder müssen)...

    Die wirklichen Feinheiten (und auch Stolperstellen) kommen ja erst bei den speziellen Programmiersprachen raus.
    Nimm einfach mal ein paar von der reinen Syntax fast gleiche Sprachen: C++, C#, Java und Java-Script.
    Wenn Du nur ein paar wenige Zeilen siehst, dann ist in vielen Fällen überhaupt nicht klar zu sagen welche es ist. alle 4 greifen letztlich in den gleichen Syntax-Eimer, aber jede holt was anderes raus, jede hat asndere Wege eine Aufgabe zu lösen.

    Odfer Du gehtst noch einen Schritt weiter. Mittlerweile gibts ja selbst von Fortran schon objektorientierte Varianten. Cobol und Prolog sollen auch schon objektorientiertes Programmieren unterstützen.
    Was nützt es Dir bei einem Perl- oder Python-Programm, wenn Du weist wie objektorientiertes Cobol funktioniert. (hier eine Liste, welche Programmiersprachen Wikipedia als OOP ansieht:https://de.wikipedia.org/wiki/Liste_von_Programmiersprachen

    Für einen allgemeinen Überblick sollte das was es im Netz gibt reichen (z.
    B. hier: http://openbook.rheinwerk-verlag.de/oop/, und für weitergehendes dann immer bezogen auf die konkrete Sprache.
    Wenn das C++ werden soll, dann auf alle Fälle die Stroustup-Bibel Die C++-Programmiersprache: Aktuell zu C++11 und auf jeden Fall auch die Bücher von Scott Meyers.

    Gruß Mümmel



  • Mir fallen aus dem Stehgreif diese hier ein:

    The Pragmatic Programmer
    Refactoring (gibt bald oder seit kurzem eine neue Ausgabe)
    Clean Code von Robert C. Martin
    Je nach Programmiersprache die Effect C++ bzw. C# in Depth oder das Java-Äquivalent

    MfG SideWinder



  • ghfghfhfh schrieb:

    Design Patterns von Gamma et al.:

    Stimmt, davon hab ich schon öfter gehört und ich habe sowas als Nachschlagwerk noch gar nicht, würde sich also anbieten.

    ghfghfhfh schrieb:

    Vielleicht auch mal mit einem anderen Ansatz als OO beschäftigen? Kann z.B. Learn you a Haskell for great good von Lipovača empfehlen

    Das gibt's ja sogar umsonst online, cool. Den Rat, mal eine funktionale Programmiersprache zu lernen höre ich tatsächlich auch oft, daher wird es auch irgendwann so weit sein. Aber es gibt so viele Dinge, die man Lesen kann und ich denke ich werde mich erstmal auf das konzentrieren, was ich nachher auch wirklich machen werde, bis ich das Gefühl habe, dass ich mich da genügend auskenne.

    muemmel schrieb:

    Hi Booker,
    so aus dem Stegreif würden mir die Bücher von Helmut Balzert einfallen.

    Konkret was von dem Herrn? Habe gerade mal nachgeschaut, der scheint echt einiges geschrieben zu haben.

    muemmel schrieb:

    Aber die Grundlagen objektorientierter Programmierung sind eigentlich recht simpel, Es gibt halt Klassen, die Daten enthalten, Methoden haben und von einer oder anderen Klassen abgeleitet sein können (oder müssen)...

    Im Prinzip schon, aber wenn es dann um Sachen wie Design geht, dann gibt es auf einmal sehr viele Vorstellungen und Konzepte, die man als guter Entwickler kennen und verstehen sollte.
    Beispielsweise: Ich bin momentan in Java unterwegs und da sollte man wohl DDD und mittlerweile auch Microservices kennen. Mit beiden kommen wieder einige Subsets an Designs und Pattern, die man kennen sollte.
    Beispielsweise habe ich bisher immer DAOs verwendet, um Datenbankzugriffe zu abstrahieren. Das scheint mittlerweile out zu sein und man verwendet "Repository Pattern".
    Dazu habe ich mir dann mal durchgelesen, was das besser kann - und es scheint nicht ganz klar definiert zu sein und viel Semantik und Design zu beinhalten. Daher würde ich zu sowas gerne gute Literatur gelesen haben.

    muemmel schrieb:

    Die wirklichen Feinheiten (und auch Stolperstellen) kommen ja erst bei den speziellen Programmiersprachen raus.

    Jop, da hast du Recht - man sollte als C++ Entwickler auf jeden Fall die Bücher vom Meyers und als Java-Entwickler die Äquivalente dazu gelesen haben. Das sehe ich definitiv auch. Nur denke ich, dass es halt auch sprach übergreifend (aber halt im OO-Realm) Konzepte und Ideen gibt, die man kennen muss.

    SideWinder schrieb:

    Mir fallen aus dem Stehgreif diese hier ein:
    The Pragmatic Programmer
    Refactoring (gibt bald oder seit kurzem eine neue Ausgabe)
    Clean Code von Robert C. Martin

    Vielen Dank, habe ich mir notiert und werde ich mir besorgen.



  • Kennst du die SOLID-Prinzipien bereits? Falls nicht, diese kennenlernen. Eines der Bücher von RCM, ich glaube https://www.amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258/ , behandelt diese ebenfalls.

    MfG SideWinder



  • SideWinder schrieb:

    Kennst du die SOLID-Prinzipien bereits? Falls nicht, diese kennenlernen. Eines der Bücher von RCM, ich glaube https://www.amazon.com/Agile-Principles-Patterns-Practices-C/dp/0131857258/ , behandelt diese ebenfalls.

    MfG SideWinder

    Ich hab definitiv schon mal gelesen, was hinter den Abkürzungen steht, aber so wirklich verinnerlicht habe ich die Prinzipien sicher nicht.
    Ich kann mir gut vorstellen, dass ich in der Praxis nicht wirklich sagen könnte, ob meine Klassen, die ich geschrieben habe, sie einhalten oder nicht.

    Aber guter Tip auf jeden Fall, ich bin gerade eh dabei wieder ein bisschen was zu coden, da werde ich jetzt definitiv mal drauf acht geben und dabei etwas darüber nachdenken!


Anmelden zum Antworten