Welche Informatik-Bücher sollte man kennen?
-
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.
-
Jester schrieb:
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.
Keine Panik, bei rund 200k Zeilen code kommt auch genug Architektur zusammen.
-
knivil schrieb:
Jon Bentley: Perlen der Programmierkunst.
Zu sehr veraltet.
Was soll's. Es ist veraltet, aber trotzdem interessant zu lesen und auch ganz schön beeindruckend
Im Vergleich zu damals sind wir heute alles Weicheier ^^
-
GPC schrieb:
knivil schrieb:
Jon Bentley: Perlen der Programmierkunst.
Zu sehr veraltet.
Was soll's. Es ist veraltet, aber trotzdem interessant zu lesen und auch ganz schön beeindruckend
Im Vergleich zu damals sind wir heute alles Weicheier ^^
Ich würde nicht "Weicheier" sagen, aber selbst Denken ist nunmal heute nicht mehr wirtschaftlich.
Das Buch ist alt, weil sowas heute nicht mehr gemacht wird. Denken wird durch Speicherbausteine und höhere Taktraten ersetzt.