Welche Informatik-Bücher sollte man kennen?
-
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: 0521424267Das da ist ein sehr schönes Buch zur Prädikatenlogik:
First-Order Logic and Automated Theorem Proving | ISBN: 0387945938Zu 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: 0137903952Das 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-1SICP 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: 0262510871Worum 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: 0262510871Worum 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: 0387310738Hmmm. 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.
-
Zeus schrieb:
Hmmm. Sieht lila aus.
-
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.
-
"Multiple View Geometry in Computer Vision"
http://www.amazon.de/dp/0521540518"Digital Signal Processing: A practical guide for engineers and scientists"
http://www.amazon.de/dp/075067444X
-
Ich stimme für
- SICP -> http://mitpress.mit.edu/sicp/ (Buch) -> https://www.youtube.com/playlist?list=PLE18841CABEA24090 (Vorlesungen)
- Introduction to Algorithms -> http://www.amazon.de/Introduction-Algorithms-Thomas-H-Cormen/dp/0262533057 (Buch) -> https://www.youtube.com/playlist?list=PL8B24C31197EC371C (Vorlesungen) obwohl ich die hier auch sehr nett fand: https://www.youtube.com/playlist?list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb
- GEB -> http://www.amazon.de/Gödel-Escher-Bach-Anniversary-Eternal/dp/0465026567 -> Einfach nur weils so viel Spaß macht.
Wenn man aber tatsächlich Informatik als Strukturwissenschaft betreibt kommen da bestimmt noch Sachen zu Berechenbarkeit, Automaten, Verschlüsslung, Datenstrukturen, Komplexität, Typtheorie, Compiler usw. dazu.
Wenn mit Informatik aber eigentlich nicht Informatik sondern Softwaremachen gemeint ist:
- The Pragmatic Programmer -> http://www.amazon.de/Pragmatic-Programmer-From-Journeyman-Master/dp/020161622X
- GoF -> http://www.amazon.de/Patterns-Elements-Reusable-Object-Oriented-Software/dp/0201633612
- Code Complete -> http://www.amazon.de/Code-Complete-Practical-Handbook-Construction/dp/0735619670
- Clean Code -> http://www.amazon.de/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
- The Mythical Man-Month -> http://www.amazon.de/Mythical-Man-Month-Essays-Software-Engineering/dp/0201835959
- Peopleware -> http://www.amazon.de/Peopleware-Productive-Projects-Tom-DeMarco/dp/0932633439
-
-
Gregor schrieb:
warum er diesem Buch so ablehnend gegenüber steht?
Die meisten Patterns tauchen als natuerliche Loesungen von selbst auf. Sicher verwendet jeder zumindest eine Auswahl der GoF-Patterns, ich jedoch finde die konkrete Umsetzung im Buch viel zu kompliziert, zu viel Boilerplate, Kollisionen mit anderen Konzepten in C++.
Hier die Probleme zum Proxypattern mit const-correctness: http://www.c-plusplus.net/forum/319424
-
knivil schrieb:
Die meisten Patterns tauchen als natuerliche Loesungen von selbst auf.
Stimmt. Entscheidend ist hierbei, das man als Softwareentwickler selbige erkennen und beim Namen nennen kann. Es macht die Kommunikation mit andern Entwicklern um ein Vielfaches leichter wenn man sagen kann: "Ich habe ein Problem mit meiner Singleton-Implementierung" als wenn man schreibt: "Ich habe ein Problem mit meiner Klasse die nicht oder nur einmal Instanziierbar sein soll".
Bestimmten Mustern wie Adapter, Controller, Observer, MVC usw eindeutige Namen zu geben die jeder kennt ermöglicht es besser darüber zu kommunizieren.