@httpdigest Aber wenn man es jetzt genau nimmt, kann er mit: "Du musst Dein halbes Leben lang lernen, um eine Musterlösung schreiben zu können", jetzt auch nicht so viel anfangen...
Was aber auch nicht die Aussage von
@httpdigest war. Und vor allem hat er klare Fragen gestellt, die der TE einmal beantworten könnte ....
Und ein gewisses Handwerkszeug gibt es aber auch. Vieles ist halt nur ein Adaptieren von Vorgehensweisen, die man bereits in der Vergangenheit eingesetzt hat. Eine Sache, die man als Handwerkszeug ansehen könnte, wären z.B. die Pattern:
Wenn man diverse Pattern mit Ihren Anwendungsgebieten kennt, dann kann man relativ einfach schauen, welchen Anwendungsgebieten das eigene Problem ähnlich ist und schon hat man einen ersten Ansatz, wie man sowas implementieren kann.
Wenn man da etwas abstrahiert, dann ist es wie überall: Man kann diverse Techniken einüben um diese dann einzusetzen. Und dann kann man sich schlicht überlegen, welche Techniken man so benötigt.
- Pattern habe ich bereits erwähnt.
- Sprach Features sind natürlich eine wichtige Grundlage.
- (Basis-) Libraries / Frameworks / Technologien sind dann auch schnell existenziell, wenn es um mehr als eben die kleinen Beispiele in Schule oder Studium geht.
Daher sind die Fragen von
@httpdigest zielführend:
Hast du dich denn schon mal gefragt, warum deine eigene Lösung nicht der Musterlösung entsprach? Kanntest du die bei der Musterlösung verwendeten syntaktischen Sprachelemente, Operatoren, Methoden, Klassen noch nicht? Oder lag es daran, dass noch etwas "Kreativität" gefehlt hat, eine einfachere Lösung zu finden? Denn nicht zuletzt ist Softwareentwicklung auch ein hochkreativer Prozess, bei dem es häufig keinen "Schema-F" Weg gibt, um auf die Lösung zu kommen.
Also woran lag es? Was fehlte? Der Punkt mit der Kreativität kann vorkommen, aber meiner Erfahrung nach ist das gerade im Bereich der Schule und des Studium weniger wichtig, da es da eben doch um die Anwendung von Erlerntem geht. Und in anderen Bereichen hat man selten eine Musterlösung