4 Stimmen

Wie kann ich besser erkennen, wie ich ein bestimmtes Problem lösen kann?

Ich beherrsche inzwischen einige Sprachen ziemlich gut, aber es scheint mir schwer zu fallen, den besten Weg zu finden, um bestimmte Probleme zu lösen. Welche Möglichkeiten gibt es, um bei der eigentlichen Problemlösung des Programmierens besser zu werden?

1voto

Ric Tokyo Punkte 6497

Studie Algorithmen !

Suchen Sie nach möglichst vielen Beispielen, Büchern über das Thema Programmierung oder anderes usw.

Die Fähigkeit zur Problemlösung kann auch durch taktische Spiele verbessert werden.

Dadurch hatte ich Spaß am Problemlösen und wurde besser (nicht unbedingt gut) darin:

Schach y igo

1voto

Joe Soul-bringer Punkte 3214

Ich glaube, dass es viel mehr als nur Erfahrung braucht, um ein guter Problemlöser zu werden - denn ich habe gesehen arm Problemlöser mit viel Erfahrung.

Hier sind ein paar Tipps, aber Sie können noch viele weitere im Internet finden.

  • Betrachten Sie eine Reihe von Problemen und finden Sie heraus, was sie haben in gemeinsam . Je größer die Allgemeinheit Sie die Lösung einer Lösung eines Problems verstehen, desto mehr können Sie kann man sie auf andere Probleme anwenden.
  • Versuchen Sie, Ansätze zu entdecken, die gute Problemlöser verwenden, um Probleme zu lösen. Aber gehen Sie nicht davon aus, dass irgendjemand ein Monopol auf die Problemlösung hat.
  • Wenn Sie Richard Feynman's Bücher werden Sie feststellen, dass er viele verschiedene Wege zu um sein Ziel zu erreichen. Schränken Sie Ihren Ansatz nicht voreilig
  • Seien Sie positiv. Gehen Sie davon aus, dass Sie die die Lösung für alles finden können. Ihre Geisteshaltung ist wichtig. Wenn Sie den Prozess der Problemlösung genießen, ist er viel einfacher
  • Schlagen Sie Ihren Kopf nicht gegen die Wand. Wenn Sie keine mit einem Ansatz keine Fortschritte zu machen scheinen, versuchen Sie einen anderen Ansatz
  • Immer auf der Suche nach weiteren Möglichkeiten der Probleme zu lösen und mehr Erkenntnisse zu gewinnen über den Prozess der Problemlösung selbst
  • Seien Sie bereit zu arbeiten. Es kann immer noch eine Menge Mühe kosten, einige Probleme zu lösen
  • Je mehr verschiedene Studienrichtungen man kennt, desto mehr Sichtweisen hat man. Ich habe einen starken mathematischen Hintergrund und finde ihn für viele Probleme sehr nützlich. Physik, Musik oder eine andere Sichtweise könnte nützlich sein

1voto

user57368 Punkte 5600

Arbeiten Sie sich durch das Projekt Euler und schauen Sie sich die Lösungen anderer Leute an. Fast jedes Problem wird auf eine Art und Weise gelöst worden sein, die Ihnen nicht eingefallen wäre, und das meist mit größerer Effizienz.

1voto

codybartfast Punkte 6793

Der beste Weg ist wahrscheinlich, von einem Meister wenn das eine Option ist. Vor allem, wenn Sie jemanden finden können, der mit den Problemen, die Sie ansprechen, vertraut ist.

Generell gilt: Je mehr Werkzeuge wir zur Verfügung haben, desto mehr Möglichkeiten haben wir, ein Problem anzugehen. Ich stimme zu, dass es wichtig ist, immer zu programmieren und immer etwas zu liefern, das funktioniert (auch wenn es noch so unelegant ist). Aber ich denke, wir müssen unsere Fähigkeiten/Wissen in viele Richtungen erweitern:

  • Sprachkenntnisse (gründliche Kenntnis Ihrer Sprache(n))
  • Programmierparadigmen (Imperativ, Objekt, Funktional)
  • Rahmenwissen
  • Algorithmen
  • Muster
  • Dateistrukturen
  • Methodologien (Agile, DDD, BDD, ?DD)
  • Werkzeuge
  • usw.

Man kann sich viele Fähigkeiten durch berufsbegleitendes Lernen aneignen, aber in der Regel habe ich immer ein Lieblingsthema, das ich vertiefen möchte, und das bedeutet in der Regel, dass ich mir ein Buch besorge und es von vorne bis hinten lese.

1voto

jturcotte Punkte 1265

Ich mag diese allgemeine Methode:

  1. Auflistung der möglichen Lösungen mit ihren Stärken und Schwächen
    (Das wird Sie dazu bringen, alle kurz zu probieren)
  2. Wählen Sie den besten aus und entwerfen Sie ihn.
    (Wenn Sie auf ein schweres Hindernis stoßen, sollten Sie andere Optionen in Betracht ziehen)
  3. Umsetzung

und vor allem bei jedem Schritt, lernen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X