Ich habe einen großen Teil meines Lebens damit verbracht, mich zu fragen, ob Talent etwas ist, das Sie entwickelt haben oder mit dem Sie geboren wurden. Dann kam mir der Gedanke, dass die Antwort irrelevant war, zumindest wenn Sie die Dinge selbst erreichen wollen. Selbst wenn Sie Talent haben, hilft es Ihnen nur, wenn Sie so tun, als ob Talent nur aus der Praxis stammt, weil Sie so viel härter arbeiten werden.
In Bezug auf Algorithmen und andere wirklich schwierige Fähigkeiten braucht es Übung, um gut zu werden. Ob Sie auch etwas Talent haben müssen oder nicht, weiß ich nicht. Ich weiß jedoch, dass die Leute bei Wettbewerben wie TopCoder enorme Verbesserungen erzielt haben durch das Üben . Ich selbst habe viel daraus gelernt.
Wenn Sie ein systematisches Trainingsprogramm einrichten, sind Sie dem Rudel weit voraus, auch wenn es nicht perfekt ist. Ich habe inzwischen einige hundert Programme auf TopCoder geschrieben und es hat mein Denken tiefgreifend beeinflusst. Ich habe viele Dinge gelernt, die man nur lernen kann, wenn man sie falsch macht und dann meinen Fehler behebt. Ein Freund von mir hat mehrere tausend Programme auf TopCoder geschrieben und er ist viel besser als ich, obwohl seine Statistiken zu Beginn schlechter waren als meine. Das ist kein Zufall.
BEARBEITEN:
Ich bin gerade auf diese Antwort bei math.stackexchange gestoßen. Ich denke, es ist eine der besten Erklärungen, wie man Algorithmen lernt, die ich gelesen habe, obwohl er über Schach und Mathematik schreibt.