Beim Programmieren auf die Logisch einfache Lösung kommen.

Darknet

Bekanntes Mitglied
Ich Studiere gerade Informatik,
wir machen Übungsaufgaben diese Löse ich ganz gut.

Aber wenn ich am Ende die Musterlösung sehe merke ich das ich eine umständlichere Lösung habe.

Wie erlernt man die logisch Einfache Lösung?
 
Die "logisch einfachste Lösung" kann auch falsch sein, gdw wenn die Musterlösung nicht die beste ist...

Bearbeitung:
Aber um das nicht einfach so stehen zu lassen, das ist von use case zu use case unterschiedlich. Ich denke zum Beispiel nicht, das 42 die Antwort auf alle Fragen sei.
 
Nun reiß eine Antwort auf eine andere Frage doch nicht so aus dem Zusammenhang. Namensvetter! 😀 (eigentlich "asozialer" Trittbrettfahrer, aber egal).
 
Auf gute Lösungen zu kommen ist ein lebenslanger Lern- und Übungsprozess. Das ist bei Softwareentwicklung genauso wie bei allen anderen geistigen Dingen.
Konzerte zu komponieren kann man auch nicht sofort.
Genauso wenig wie ein schönes Gemälde zu malen.
Übung, Disziplin und Selbstkritik, und natürlich auch ein bisschen Begabung/Talent.
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.
 
@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...
 
Ja nun ist aber gut. Das mit Herrn Duden bezog sich ja nich auf die Frage des TEs.

Und das ich mich wundere, das die zweite Vergabe dieses Nicknames gestattet/stattgegeben wurde, is ja bereits hinlänglich bekannt....

Angenehmen Abend noch.
 
@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 🙂
 
Also, Nähkästchen auf.
Bei Herr der Ringe heißt es im Original:
One (Ring) to rule them all, One (Ring) to find them, One (Ring) to bring them all and in the darkness bind them.
Übertragen auf Informatik, denke ich aber nicht, dass es in Informatik ein Patentrezept gibt, um immer die beste Lösung zu finden... Manches ist Handwerkszeug und wiederkehrend, aber vieles auch nicht...
Nähkästchen zu.
 
Also, Nähkästchen auf.
Bei Herr der Ringe heißt es im Original:

Übertragen auf Informatik, denke ich aber nicht, dass es in Informatik ein Patentrezept gibt, um immer die beste Lösung zu finden... Manches ist Handwerkszeug und wiederkehrend, aber vieles auch nicht...
Nähkästchen zu.
Vollkommen Richtig. Daher habe ich @httpdigest auch nicht widersprochen bezüglich kreativem Prozess und zusätzlich noch meine Aussage auf den Bereich Schule und Studium eingeschränkt.

Das Problem lässt sich auch leicht verdeutlichen: Die Anforderung kommt ja nicht, dass eine Wand mit einem bestimmten Farbton gestrichen werden soll. Sondern es kommt die Anforderung: Da ist das Zimmer eines 6 Jahre alten Jungen, der sich für Feuerwehr und Fußball interessiert. Nun gestalte sein Zimmer, so dass er sich wohl fühlen wird.
-> Kreativität ist gefragt
-> Gewerk Übergreifendes Wissen ist gefragt
-> Viele mögliche Lösungen. Und wenn sich zwei dran machen und einer ein Fußball Motiv nimmt und der andere ein Feuerwehr Thema: Wie sollen wir entscheiden, was "besser" ist (Woran machen wir das überhaupt fest?)

Aber da kommt dann gleich der nächste Punkt rein: "Musterlösung"? Was genau bedeutet das? Es ist nicht unbedingt die "beste" Lösung, sondern es ist ein Muster oder Prototyp. Also lediglich eine mögliche Lösung. Es schließt aber nicht aus, dass unterschiedliche Lösungen nicht auch korrekt sein können. (So Anforderungen und Regeln eingehalten worden sind und das Ergebnis stimmt, ist die Lösung korrekt.)
 
Ich Studiere gerade Informatik,
Zusätzlich sollte klar sein, dass es hier darum geht, Geräte -welche nur auf eine grosse Menge an "Strom an, Strom aus-Befehlen" reagieren- mit der menschlichen Sicht auf die Dinge der Welt zu vereinbaren und nach dem eigenen Willen agieren zu lassen.
wir machen Übungsaufgaben diese Löse ich ganz gut.
Was für Ü-aufgaben eigentlich ? Mathematik, Sprachen,... ? (muss ja nicht zwingend mit SW-Entwicklung zu tun haben)
 

Zurück
Oben