Welche Informatik-Bücher sollte man kennen?



  • Hallo,
    da ich demnächst meinen Bücherbestand um einige Bücher
    erweitern wollte, würde ich gerne wissen, welche Bücher man
    aus der Informatik gelesen haben muss(bspw. A. Tannenbaums Operating
    Systems)

    0x0ERROR



  • Den Tannenbaum muss man
    nicht gelesen haben.

    Den TAOCP auch nicht,
    obwohl der schon mehr
    bringt.



  • 2 wirklich interessante Bücher:

    Hacking: The Art of Exploitation
    Ein Augenöffner.
    Nicht nur wird erklärt, wie Buffer Overflows und andere übliche Attacken funktionieren, man lernt vor allem Dinge, die sonst zu kurz kommen: was passiert mit einem C Programm genau, wenn man es compiliert? Wie sieht der Prozess im Speicher aus, wie werden Bibliotheken zur Laufzeit dazugelinkt, usw...

    Understanding the Linux Kernel
    Anhand eines echten Betriebssystems wird erklärt, wie ein solchen funktioniert. Es wird zuerst allgemein auf ein Thema eingegangen, und dann wird anhand von Codestücken aus dem Kernel erklärt, wie es implementiert ist.
    Im Gegensatz zu dem Tannenbaum Buch hat man es hier mit einem modernen OS zu tun, wodurch der Praxisbezug weitaus höher ist.



  • izuiziziziziz schrieb:

    Nicht nur wird erklärt, wie Buffer Overflows und andere übliche Attacken funktionieren, man lernt vor allem Dinge, die sonst zu kurz kommen: was passiert mit einem C Programm genau, wenn man es compiliert?

    Echt unglaubliche Infos, hat man davor echt noch nie gesehen und wird so bald wohl sicher nicht in irgendeinem anderen Buch oder irgendwo im Internet finden oder in einer Vorlesung hören.



  • Mechanics schrieb:

    izuiziziziziz schrieb:

    Nicht nur wird erklärt, wie Buffer Overflows und andere übliche Attacken funktionieren, man lernt vor allem Dinge, die sonst zu kurz kommen: was passiert mit einem C Programm genau, wenn man es compiliert?

    Echt unglaubliche Infos, hat man davor echt noch nie gesehen und wird so bald wohl sicher nicht in irgendeinem anderen Buch oder irgendwo im Internet finden oder in einer Vorlesung hören.

    zumindest nicht in dem Detail 😉
    Dem Buch liegt eine Linux Live CD bei, bei dem man alles in sicherer Umgebung testen kann. Ich jedenfalls konnte einiges dazulernen. Alleine schon hat es sich ausgezahlt, weil ich jetzt ziemlich genau weiß, welcher ASM Code aus einem C Programm entsteht.



  • Interessant, was mich auch interessiert,
    ist die theoretische Informatik. Gibt es dort
    "Standartwerke"?



  • 0x0ERROR schrieb:

    Interessant, was mich auch interessiert,
    ist die theoretische Informatik. Gibt es dort
    "Standartwerke"?

    Man kann streiten, was alles im Kern der Informatik anzusiedeln ist. Ich nenne Dir mal ein paar Bücher, die ich persönlich sehr gut finde und als Standardwerk einschätzen würde. Diese Einschätzung ist subjektiv und könnte bei anderen völlig anders aussehen. Weiterhin gehören nicht alle diese Bücher zu einem Kernbereich der Informatik.

    Das da ist IMHO ein Standardwerk zur Komplexitätstheorie:
    Computational Complexity | ISBN: 0521424267

    Das da ist ein sehr schönes Buch zur Prädikatenlogik:
    First-Order Logic and Automated Theorem Proving | ISBN: 0387945938

    Zu Automatentheorie und so weiter kann ich Dir leider nicht unbedingt ein Standardwerk nennen. Ich habe damals mit Hopcroft/Ullman gearbeitet. Aber ich glaube nicht, dass das wirklich ein Standardwerk ist.

    Das da ist IMHO ein Standardwerk zur Künstlichen Intelligenz:
    Artificial Intelligence | ISBN: 0137903952

    Das da zur Mustererkennung:
    Pattern classification | ISBN: 0471056693

    ...und natürlich SICP: 😉
    Aspect-oriented Software Development | ISBN: 0262510871



  • Standartwerke

    Nein, nur Standardwerke.
    Nie gelesen: http://www.amazon.de/Einführung-Automatentheorie-Formale-Sprachen-Berechenbarkeit/dp/3868940820/ref=sr_1_1?s=books&ie=UTF8&qid=1376688464&sr=1-1

    SICP natuerlich, geht aber nicht weit genug.



  • Gang of Four: Design Patterns
    Noch nicht genannt, aber definitiv ein Must-Have.

    Ansonsten:
    Jon Bentley: Perlen der Programmierkunst.
    Inspirierend... und vor allem hält es einem die Augen offen, dass vieles geht, auch wenn es im ersten Augenblick nicht möglich erscheint. Die Idee ein Wörterbuch mit 70000 Einträgen in 64kB Speicher zu pressen - da würde heute wohl keiner mehr drauf kommen. Passt aber.

    Ansonsten ist die Frage, welcher Bereich Dich interessiert. Mir eröffnete "Design und Entwicklung von C++" einen anderen Blick auf C++. Aber den muss man haben wollen, denn Bjarne Stroustrup ist nicht Dan Brown und 400 engbedruckte Seiten können auch mit Interesse sehr lang sein. Wenn einen das Warum nicht interessiert, gilt natürlich das übliche Repertoire für C++: Scott Meyers, Alexandrescu

    Häufig wird das Drachenbuch noch als Standardwerk genannt... es endet leider rechtzeitig, bevor es wirklich interessant wird. Ich habe es auch im Regal, sonst wüsste ich ja nicht, dass es endet, bevor es gut wird. Aber da setzt es auch eher Staub an.
    Ich würde mir was gutes im Bereich Algorithmen und Datenstrukturen anlachen, den Sedgewick gilt dabei als Must-Have, sollte man haben, aber Lesen sollte man vielleicht doch was anderes. 😉

    Ansonsten nicht zurückhaltend sein. Oftmals versteht man in einem Buch etwas anders als in einem anderen. Beides kann falsch sein, aber mit etwas Glück versteht man mit den Hinweisen des ersten Buches dann das zweite.



  • Design Patterns? Informatik? WTF? OOP-Schlangenöl != Informatik!

    Bezüglich theoretischer Informatik noch:
    Introduction to Automata Theory, Languages, and Computation (Hopcroft, Motwani, Ullman)

    “Object-oriented programming is an exceptionally bad idea which could only have originated in California.” — Edsger Dijkstra



  • Gregor schrieb:

    Das da ist IMHO ein Standardwerk zur Künstlichen Intelligenz:

    Nie von gehört. Ist das so ein Ingenieurbuch aus den Zeiten als man dachte, KI wäre einfach? Dann vielleicht doch eher sowas:
    Reinforcement Learning | ISBN: 0262193981
    Zumindest meines Erachtns nach DAS Standardwerk in dem Bereich.

    Das da zur Mustererkennung:

    Naa. Dann eher
    Pattern Recognition and Machine Learning | ISBN: 0387310738



  • Gregor schrieb:

    ...und natürlich SICP: 😉
    Aspect-oriented Software Development | ISBN: 0262510871

    Worum geht es in dem Buch. Die Amazon Beschreibung ist irgendwie sehr allgemein.



  • qwertzui schrieb:

    Gregor schrieb:

    ...und natürlich SICP: 😉
    Aspect-oriented Software Development | ISBN: 0262510871

    Worum geht es in dem Buch. Die Amazon Beschreibung ist irgendwie sehr allgemein.

    Funktionale Programmierung. Du kannst das Buch auch kostenlos im Netz lesen: http://mitpress.mit.edu/sicp/

    Auch Videovorlesungen findet man dazu: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

    ...das GoF-Buch würde ich auch als Standardwerk im Rahmen der Objektorientierten Programmierung ansehen, allerdings hängt es von der Ausrichtung im Studium ab, ob man in der Tiefe mit OOP konfrontiert wird. Ich habe es jenseits des Studiums gelesen.



  • otze schrieb:

    Gregor schrieb:

    Das da ist IMHO ein Standardwerk zur Künstlichen Intelligenz:

    Nie von gehört. Ist das so ein Ingenieurbuch aus den Zeiten als man dachte, KI wäre einfach? Dann vielleicht doch eher sowas:
    Reinforcement Learning | ISBN: 0262193981
    Zumindest meines Erachtns nach DAS Standardwerk in dem Bereich.

    Das Buch habe ich auch mal gelesen. IMHO ist es genau das, was draufsteht: Ein Buch zu einem speziellen Lernproblem. Ich persönlich bin nicht wirklich von dem Buch überzeugt, aber da kann man sich leicht selbst ein Bild machen: Man kriegt es kostenlos im Netz:
    http://webdocs.cs.ualberta.ca/~sutton/book/ebook/the-book.html

    "Artificial Intelligence - A Modern Approach" ist eher ein Buch, dass einem einen Gesamtüberblick über das Gebiet der Künstlichen Intelligenz vermitteln will. Wie gesagt: Ich kann es sehr empfehlen.

    otze schrieb:

    Das da zur Mustererkennung:

    Naa. Dann eher
    Pattern Recognition and Machine Learning | ISBN: 0387310738

    Hmmm. Das Buch habe ich nie gelesen. Nach den Amazon Rezessionen und dem Inhaltsverzeichnis zu urteilen scheint es allerdings auch ein sehr gutes und interessantes Werk zu sein. Vielleicht sollte ich es mir auch mal holen. 😋



  • Xin schrieb:

    Gang of Four: Design Patterns
    Noch nicht genannt, aber definitiv ein Must-Have.

    Nein, muss man nicht.

    Jon Bentley: Perlen der Programmierkunst.

    Zu sehr veraltet.

    Algorithmen und Datenstrukturen anlachen, den Sedgewick gilt dabei als Must-Have, sollte man haben, aber Lesen sollte man vielleicht doch was anderes.

    Das ist widerspruechlich.

    Irgendwie lese ich andere Buecher, sind alle themenbezogen.



  • knivil schrieb:

    Irgendwie lese ich andere Buecher, sind alle themenbezogen.

    Was meinst Du damit?

    Was GoF betrifft: Wenn man objektorientierte Programmierung auf hohem Level betreiben möchte, dann muss man auch Entwurfsmuster kennen. Zu meiner Zeit damals war das GoF Buch diesbezüglich definitiv das Standardwerk. Es kann allerdings sein, dass es inzwischen andere Werke gibt, die sich entsprechend etabliert haben.

    Möglicherweise ist das GoF Buch aus Sicht von C++ Programmierern nicht wirklich sinnvoll, da C++ keine rein objektorientierte Sprache ist und somit auch nicht automatisch mit einer stark objektorientiert dominierten Programmierweise verbunden ist. Das ist allerdings eine reine Vermutung meinerseits.

    Es haben sich hier jetzt schon einige gegen GoF ausgeprochen. Kann einer davon mal ein bisschen dazu sagen, warum er diesem Buch so ablehnend gegenüber steht? Geht es darum, dass Alternativen inzwischen zu bevorzugen sind oder geht es darum, dass Entwurfsmuster von unterschiedlichen Leuten unterschiedlich bewertet werden. Oder geht es einfach darum, dass es nicht im Kern der Informatik anzusiedeln ist, weil es zu anwendungsorientiert ist? Klar, in einem Informatikstudium wird man nicht notwendigerweise mit Entwurfsmustern konfrontiert.



  • Ich besitze das GoF und bezeichne es als Fehlkauf. Ich habe noch nie in ENtwurfsmuster daraus verwendet und habe auch im Nachhinein nie einen Fall gefunden wo ich gesagt hätte, das ein Entwurfsmuster das Designv erbessert hätte. Vielleicht liegt es nur an miner Anwendung, ich mache ja kein high level OO sondern nur soviel damit meine Numerik nicht auseinanderfällt (🤡), aber ich komme auch wirklich gut ohne zurecht.



  • Xin schrieb:

    Häufig wird das Drachenbuch noch als Standardwerk genannt... es endet leider rechtzeitig, bevor es wirklich interessant wird. Ich habe es auch im Regal, sonst wüsste ich ja nicht, dass es endet, bevor es gut wird. Aber da setzt es auch eher Staub an.

    Hmmm... nach Wikipedia geht es da wohl um Compilerbau. Da bin ich nicht wirklich bewandert. Welches Drachenbuch meinst Du denn? Purple? Ist Purple eine bessere (neuere) Version von Green? Ich glaube, ich sollte mir auch mal eins davon kaufen.



  • Gregor schrieb:

    Xin schrieb:

    Häufig wird das Drachenbuch noch als Standardwerk genannt... es endet leider rechtzeitig, bevor es wirklich interessant wird. Ich habe es auch im Regal, sonst wüsste ich ja nicht, dass es endet, bevor es gut wird. Aber da setzt es auch eher Staub an.

    Hmmm... nach Wikipedia geht es da wohl um Compilerbau. Da bin ich nicht wirklich bewandert. Welches Drachenbuch meinst Du denn? Purple? Ist Purple eine bessere (neuere) Version von Green? Ich glaube, ich sollte mir auch mal eins davon kaufen.

    Dies:
    http://www.amazon.de/Compiler-Prinzipien-Techniken-Werkzeuge-Pearson/dp/3827370973/ref=sr_1_3?ie=UTF8&qid=1376748965&sr=8-3&keywords=compilerbau





  • otze schrieb:

    Ich besitze das GoF und bezeichne es als Fehlkauf. Ich habe noch nie in ENtwurfsmuster daraus verwendet und habe auch im Nachhinein nie einen Fall gefunden wo ich gesagt hätte, das ein Entwurfsmuster das Designv erbessert hätte. Vielleicht liegt es nur an miner Anwendung, ich mache ja kein high level OO sondern nur soviel damit meine Numerik nicht auseinanderfällt (🤡), aber ich komme auch wirklich gut ohne zurecht.

    Wenn du keine software-architektur machst, dann hat ein buch über software-architektur natürlich nur geringen wert -- das ist dann in etwa so sinnvoll wie mein numerik-buch. 🙂


Anmelden zum Antworten