Vorbereitung auf Code-Herausforderungen [geschlossen]


15

Vor ein paar Tagen habe ich Codility entdeckt und ihre Herausforderungen ausprobiert. Und ich muss sagen. Ich bekam mein Hinterteil auf einer Platte gereicht. Ich bin mir nicht sicher, was das Problem war, aber ich werde meine Wunden lecken und darauf warten, dass die Lösung herauskommt und sie mit meiner eigenen vergleicht. In der Zwischenzeit möchte ich mich auf die nächste Herausforderung vorbereiten, also lese ich ihre vorherigen Blog-Beiträge und sehe nach, wie ich ihre vorherigen Probleme lösen kann. Es gibt eine Menge neuer Dinge, von denen ich noch nichts gehört habe (kartesische Bäume, verschiedene Sortieralgorithmen usw.)

Wie bereitet man sich auf solche Herausforderungen vor (insbesondere die Komplexität von O (x) Zeit und Raum)? Was soll ich lesen, um mich auf eine solche Aufgabe vorzubereiten?


Ich habe in letzter Zeit Haskell studiert, um mein Gehirn dazu zu zwingen, sich zu verziehen (dies wird es zwingen), um dabei zu helfen, schneller an Lösungen zu denken. Aus diesem Grund lese ich auch das Algorithm Design Manual (es gibt ein kostenloses Online-PDF) und eine Flohmarktversion von The Art of Computer Programming, Band 1 Fundamental Algorithms von Knuth (das auch eine ernsthafte Quelle für Hirnschmerzen darstellt) .
Jimmy Hoffa

Antworten:


3

Wie bereitet man sich auf solche Herausforderungen vor (insbesondere die Komplexität von O (x) Zeit und Raum)? Was soll ich lesen, um mich auf eine solche Aufgabe vorzubereiten?

Durch die immer bereit natürlich! Es ist eine Frage der Übung und des Einstiegs in Bereiche, in denen Sie sich kurz gefühlt haben. Gott sei Dank, es gibt ziemlich gute Ressourcen, um Informationsdefizite im Internet abzudecken, und Google ist Ihr Freund.

In Bezug auf Referenzen würde ich mehrere Websites empfehlen, die Programmierer-Challenge-Fragen haben. Aus diesen Fragetypen können Sie Ihre Mängel ermitteln und diese untersuchen.

Ressourcen zu suchen:


7

Das Einzige, was Sie tun können, um sich auf solche Tests vorzubereiten, ist Übung. Übe viel . Es gibt eine Menge guter Ressourcen für die Hilfe von Programmierern, wie Topcoder, Codegolf, Geeks für Geeks, Programming Praxies, CodeKata, Project Euler usw.

Wenn Sie Probleme mit Datenstrukturen haben, sollten Sie Ihre Algorithmus- und Datenstrukturkonzepte auffrischen. Der beste Ort dafür ist Wikipedia, aber Sie können auch nach Algo-Datenkursen für Nptel, Coursera usw. suchen.


Ich habe mehr nach Ressourcen wie Büchern gesucht, aber einige Ihrer Links waren neu und informativ.
Daniel Fath

1
@DanielFath: Darüber zu lesen hilft, aber das Lösen von Problemen ist eine Kunst, die geübt werden muss, um darin gut zu werden. In der Welt des Schreibens von Software gibt es eine überraschend große Anzahl von Problemen, die Sie immer wieder sehen werden. Die Erfahrung, diese zuvor gelöst zu haben, gibt Ihnen die Möglichkeit, neue Variationen zu erkennen und schnell eine gute Lösung anzuwenden.
Blrfl

Ich stimme der Praxis zum großen Teil zu, ich drücke lediglich den Wunsch nach konkreteren Ressourcen aus, um die gelöste Frage zu betrachten. Ich habe die Antworten positiv bewertet (zum Teufel, ich habe sie alle positiv bewertet).
Daniel Fath

4

In den halboffiziellen Blog-Posts zu Google Recruitment wird dieses Buch empfohlen: The Algorithm Design Manual .

Es ist sehr umfangreich und gut geschrieben, mit einem 'Schnellreferenz'-Teil, der in Ihrer Situation sehr hilfreich sein kann, wenn Sie mit gängigen Algorithmen und Datenstrukturen vertraut sind.

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.