Ich bin auf dieses Zitat von Bill Gates gestoßen: "Sie sollten mir auf jeden Fall einen Lebenslauf schicken, wenn Sie das Ganze lesen können." Er sprach über die Kunst des Programmierens von Büchern. Also war ich ziemlich neugierig und wollte alles lesen, aber ehrlich gesagt verstehe ich es überhaupt nicht I'm really not that highly
intellectual being
. Das sollte der Grund sein, warum ich es nicht verstehen kann , aber ich bin sehr lernbegierig. Ich lese gerade Band 1 über fundamentales Algo. Gibt es da draußen Bücher, die für Anfänger / langsame Leute wie mich freundlich sind? So kann ich mich aufbauen und in Zukunft hoffentlich Knuths Buch gut lesen.
wenn du dich selbst definierst, dann stellst not a highly intellectual being
du dich auf niedrige Erwartungen ein. Du musst diese Mentalität brechen, wenn du etwas tun willst, das die Mühe wert ist. Sie sollten keinen Zweifel daran haben, dass Sie etwas erreichen können. Es zu erreichen bedeutet auch nicht, dass Sie es leicht erreichen werden.
Dinge, die es wert sind, verfolgt zu werden, sind diejenigen, die schwierig sind ... und das ist kein Klischee. In der Software, im Engineering, im Leben im Allgemeinen, wenn Sie etwas erreichen möchten, müssen Sie sich für die Dinge entscheiden, die schwierig sind, die Dinge, die die Leute meiden, und sich nicht mit den kleinsten gemeinsamen Nennern der Dinge zufrieden geben.
Zunächst ist nicht klar, wie Ihr CS-Hintergrund aussieht. Knuths Buch erfordert einen gewissen Reifegrad. Nur wenige Menschen mit einem CS-Abschluss können es problemlos durchstehen. Ich würde nicht erwarten, dass ein CS-Student, der gerade seinen ersten Kurs in Algorithmen abgeschlossen hat, auch nur ein Buch von Knuth durchgehen kann. Die Reife, die benötigt wird, um es zu bekommen, ist einfach nicht da, und das hat nichts mit der mentalen Kapazität des Schülers zu tun.
Sie müssen Ihre grundlegenden Algorithmen kalt und klar haben, und Sie müssen eine Menge Programmierkenntnisse (Arbeit und / oder Gelehrsamkeit) haben - ich würde sagen, mindestens 40 Credits für Programmierkenntnisse. Sie müssen auch Ihre CS-Mathematik auf festem Grund haben.
Sie können nicht weiterkommen, ohne ein gutes Verständnis der diskreten Mathematik (und möglicherweise der Berechnungstheorie) zu haben.
Es ist nicht so, dass Sie dieses Wissen benötigen, um Knuths Probleme zu lösen, aber Sie brauchen eine gewisse Reife, um in der Lage zu sein, diese Art von Material zu durcharbeiten.
Wählen Sie zuerst ein Buch und nur ein Buch aus (CLRS-Buch wie zuvor vorgeschlagen) und bearbeiten Sie es von Anfang bis Ende. Wenn möglich Programme ausführen, die die Algorithmen implementieren. Verwenden Sie kein Java oder C #, nicht einmal C ++. Gehen Sie zu Bare Bones C und bekommen Sie das Gefühl, Dinge aus Bare-Bone-Metallschrotten zu bauen.
Holen Sie sich auch Knuths Buch "Konkrete Mathematik", wenn Sie keinen Kurs in diskreter Mathematik und Rechentheorie belegt haben. Es wäre gut, wenn Sie auch dieses Buch durchgehen würden.
Dann gehe auf Knuths Enzyklopädie ein Band, ein Kapitel nach dem anderen ein. Gehen Sie nicht zu einem anderen Kapitel, ohne das erste richtig verstanden zu haben.
Ich würde vorschlagen, dass Sie zuerst Band I (grundlegende Algorithmen) und dann Band III (Suchen und Sortieren) durchgehen. Das sollten Ihre unmittelbaren Ziele sein. Dann, später (viel später), Band IV (Kombinatorische Algorithmen) und dann Band II (Semi-Numerische Algorithmen).
Fühlen Sie sich nicht schlecht, wenn Sie es zuerst nicht bekommen. Ich habe jahrelang versucht, durch Band I und III zu kommen (jetzt 10 Jahre).
Und Sie sollten auch nicht so viel Gewicht darauf legen. Tun Sie es nicht, um sich selbst oder jemandem etwas zu beweisen. Tun Sie es, weil Sie intellektuell daran interessiert sind. Sie können sich mit Algorithmen auskennen, indem Sie einfach das CLRS-Buch (oder eines der hervorragenden Grad-Level-Bücher) verwenden.
Sei pragmatisch und gönne dir eine Pause. Betrachten Sie das Durchgehen von Knuths Buch als langfristigen persönlichen Ehrgeiz, nicht als sofortigen Beweis dafür, dass Sie CS-Material sind;)
Es gibt andere wichtigere Dinge (beruflich), für die du dich umbringen musst;)