Wie ich meine Datenstrukturfähigkeiten nach einem langen Winterschlaf verbessern kann [geschlossen]


10

Ich war vor langer, langer Zeit einmal ziemlich gut mit Algorithmen und Datenstrukturen. Seitdem habe ich professionell programmiert und dann ein kleines Team geleitet, das meine technischen Fähigkeiten auf diesem Gebiet völlig zurückgeworfen hat.

Ich habe beschlossen, wieder Entwickler zu werden und für Google zu arbeiten. Die Sache ist, ich bin so außer Übung, dass ich, wenn ich jetzt interviewt würde, sicherlich in 10 Minuten durchfallen würde.

Welches Trainingsprogramm würden Sie mir empfehlen, um wieder in Form zu kommen? Ich habe dieses Wochenende bereits damit begonnen, zu den absoluten Grundlagen zurückzukehren und einige Sortieralgorithmen, eine verknüpfte Liste und eine Hash-Tabelle zu implementieren. Als nächstes werde ich das gesamte Kursmaterial über die anderen grundlegenden Datenstrukturen und Graph-Algorithmen lesen. Ich möchte eine Reihe von praktischen Übungen finden, die ich in relativ kurzer Zeit machen kann, um die alten Gehirnzellen zu jonglieren. Ich kenne dieses Zeug - ich muss mich nur daran erinnern, dass ich es weiß.


@Anon: Wenn dies eine neue Art ist, wie Google in diesem neuen Jahr für Aufsehen sorgt, möchte ich eines sagen. Es klappt.
Fanatic23

4
Wenn Ihre Datenstrukturen in den Ruhezustand versetzt wurden, wurden sie höchstwahrscheinlich serialisiert. Sie müssen sie nur unserialisieren.
Mchl

4
@Mchl - Ich weiß nichts über Anon, aber ich habe festgestellt, dass das Speichermedium "Gehirn" auf lange Sicht noch weniger zuverlässig ist als Disketten. Alles, was vor mehr als ein paar Jahren serialisiert wurde, ist inzwischen mit ziemlicher Sicherheit beschädigt.
Steve314

Antworten:


6

Es gibt 4 Dinge, die ich Ihnen sagen möchte, und ich habe die Reihenfolge aufgelistet, in der ich Ihnen diese mitteilen muss:

  1. Holen Sie sich Ihre eigene Quelle für grünen Tee, während Sie dabei sind
  2. Während Sie an diesem grünen Tee nippen, lesen Sie Skienas Buch, das Sie hier erhalten . Und geht durch das Audio / Video - Material hier .
  3. Unter http://code.google.com/edu/courses.html finden Sie eine Reihe hervorragender Links, die von Google verwaltet werden
  4. Gehen Sie bei SO algorithmische Fragen durch und versuchen Sie, diese selbst zu beantworten

Viel Glück!


Obwohl ich das Buch aus Skiena liebe, wusste ich nie, dass es Audio- / Videomaterial gibt, danke.
Flash

1

Ich würde vorschlagen, eine echte Datenstruktur oder ein Dateiformat auszuwählen, die gerade verwendet werden, und etwas Cooles daraus zu machen. Das Git-Dateiformat ist zum Beispiel ziemlich gut dokumentiert:

http://book.git-scm.com/1_the_git_object_model.html

Wenn Sie etwas Interessantes mit einem Format machen, das von Menschen verwendet wird, und wenn Sie streng damit umgehen, lernen Sie Unterricht - und - erhalten Sie etwas, an dem die Leute interessiert sein werden.

Oder zumindest etwas mit einem einzigartigen Winkel machen. Als ich mich in einer ähnlichen Position wie Sie befand, schrieb ich eine Antwort auf eine Online-Interviewfrage zum Erstellen eines ungerichteten Diagramms, das das Einfügen von Zyklen erkennen konnte. Es wäre ein einfaches Problem gewesen, wenn ich keine zusätzlichen Einschränkungen hinzugefügt hätte ... aber ich entschied mich dafür, dass es Einfügungen in O (1) ermöglichen könnte. Das Ergebnis war NoCycle:

http://hostilefork.com/nocycle/


1

Dies hängt genau davon ab, was Ihr Ziel ist - z. B. ob Algorithmusdesign und -analyse vorhanden sind oder ob Sie sich an die Standardstrukturen und -algorithmen halten? Aber es klingt für mich so, als ob Sie bereits das tun, was Sie tun müssen.

Wenn Sie noch ein altes Lieblingslehrbuch von "vor langer, langer Zeit" haben, schlage ich vor, es noch einmal zu besuchen. Darüber hinaus ist es der Standard-Ratschlag für alles, was Sie noch einmal besuchen sollten. Stellen Sie sich spezifische Fragen, suchen Sie nach Antworten, wenn Ihnen die Fragen ausgehen, überfliegen Sie und stöbern Sie schnell durch alles, was Sie finden können, bis Sie spezifischere Fragen haben.

Algorithmen und Datenstrukturen (Niklaus Wirth) ist ein relativ kurzes Buch über grundlegende Algorithmen und Datenstrukturen ohne das gesamte Design und die Analyse von Algorithmen. Sehr einfach - Listen, verschiedene Bäume, Haufen, aber ich erinnere mich nicht an Digraphen zum Beispiel. Ein Vorteil ist, dass die Oberon-Version - http://www.inf.ethz.ch/personal/wirth/ - kostenlos heruntergeladen werden kann. Suchen Sie nach dem PDF-Link am Ende der Bücherliste. Wikipedia ist eine offensichtliche Ressource, hat aber so viel, dass es eine gute Idee ist, zu entscheiden, was Sie wollen und was nicht, bevor Sie dorthin gehen.


0

Auf welche Ressourcen haben Sie zugegriffen, als Sie mit Algorithmen und Datenstrukturen ziemlich gut umgehen konnten?

Wie kurz ist die "relativ kurze Zeit", die Sie benötigen, um Ihr Wissen aufzufrischen?

Ich glaube nicht, dass Wissen, das mit Engagement gewonnen wird, jemals verschwinden wird. Es wird nur ein wenig verblassen, und SIE sind der beste Richter, an welchen Bereichen Sie arbeiten müssen, um Ihre alten Fähigkeiten mit den Themen wiederzugewinnen, die Sie einst geliebt haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.