Ich lerne jetzt seit Tagen Java.
Ich möchte ein erfolgreicher Unternehmensentwickler sein. Mit welchen Algorithmen und Datenstrukturen sollte ich mich dann auskennen? Welche Bücher würdest du mir empfehlen?
Muss ich alle fortgeschrittenen Algorithmen wie die in CLRS angegebenen kennen, um ein erfolgreicher Java-Entwickler zu sein?
Können Sie mir eine Liste der Themen vorschlagen, die ich in absteigender Reihenfolge ihrer Priorität lernen sollte?
Sagen Sie mir den Namen einiger Themen, die ich kennen muss. Mögen Sie Suchen, Sortieren, Diagramme, Bäume usw.?
Es ist gut, dass Sie bestrebt sind, Ihre Programmierkenntnisse zu erweitern und zu verbessern. Es ist jedoch wichtig, Algorithmen nicht als einen Katalog von Dingen zu betrachten, die man sich merken sollte. Was Sie wissen müssen, um ein guter Entwickler zu werden (in Java oder irgendetwas anderem), ist, die algorithmische Analyse zu verstehen.
Sie lernen , dies durch einige wenige ausgewählte Datenstrukturen und Algorithmen zu lernen, und lernen , ihre Leistung in Bezug auf Zeit und Raum (Speicher) zu analysieren. Suchen, Sortieren, Graphen, Bäume, Haufen, Stapel und all das Gute. Dies sollte auch einige Grundlagen der Rechentheorie und der diskreten Mathematik berücksichtigen (auch wenn wir im Bereich Java diese beiden Themen nie direkt anwenden können - ihre Vorteile sind indirekt).
Trennen Sie das Erlernen einer Programmiersprache (in Ihrem Fall Java) mit dem Erlernen der algorithmischen Analyse (die sich vom "Auswendiglernen" von Algorithmen und Datenstrukturen unterscheidet).
George T. Heineman, Gary Pollice und Stanley Selkows "Algorithmen in Kürze" sind ein guter Anfang. "Algorithmen" von Sanjoy Dasgupta, Christos Papadimitriou und Umesh Vazirani ist ein weiteres gutes Lehrbuch für Studenten.
Am besten ist es, 9-12 Kreditpunkte in Programmierung zu belegen, bevor Sie einen Grundkurs in Algorithmen mit 3000 Stufen belegen. Ansonsten könnte das Selbststudium mit den beiden Büchern, die ich erwähnte, eine gute Alternative sein (das Selbststudium ist jedoch möglicherweise nicht für jedermann geeignet.)
Viel Glück!