Kreativität oder Routine
-
Irgendwie finde ich, dass der kreative Anteil bei der Lösung immer sehr gering ist. Meistens läuft es doch so ab, dass man die Daten immer in den gleichen Strukturen speichert (Arrays, Bäume, Listen...), man verwendet immer wieder die gleichen Programmabläufe (Bedingungen, Schleifen...) und wenn es objektorientiert sein soll verpackt man das ganze noch mit Hilfe von Klassen und bedient sich dabei irgendwelcher Patterns, aber viel neues muss man sich eigentlich nicht überlegen. Zum richtigen kombinieren der Sachen gehört natürlich schon etwas Kreativität, bei vielen scheitert es hier dann schon, aber eigentlich bedient man sich doch nur bei Bekanntem. Wenn man das ganze eine Weile lange gemacht hat, dann treten doch immer wieder die gleichen Muster bei der Lösung auf.
-
Meinst du? Konnte ich bis jetzt nicht so beobachten, ich bin aber auch noch nicht so wahnsinnig erfahren. Gerade beim Design von Klassenhierarchien, was du so als "in Klassen verpacken" beschreibst, lerne ich ständig dazu. Natürlich baut man sich nicht immer wieder eine neue kreative Variante einer PriorityQueue, aber auf höherer Ebene ist IMHO ständige Kreativität gefragt.
Gerade frage ich mich wieder, wie ich eine Monster-Klasse aus dunkleren Tagen kreativ in kleine Häppchen zerlegen kann. Dazu muss ich aus der bisherigen Denkweise, unter der ich diese Klasse damals designed habe, ausbrechen und mir was neues einfallen lassen. Die Schwierigkeit liegt darin, dass ich nicht kreativ genug bin.
-
Man kann es wohl auf beide Arten machen. Die Routine-Lösung wird dann aber bestimmt schlechter sein.
-
Sehe das ähnliche wie Optimizer, dass was Routine ist (also z.B. Listen usw) macht man meistens eh nicht selber, wozu gibt's ne Standardbibliothek.
Aber gerade das Design der Anwendung, sowohl die logischen Klassen, als auch die GUI, verlangen immer eine gewisse Kreativität. Die fehlt mir zwar nicht, komischwerweise bin ich aber künstlerisch (im Sinne von Zeichnen) total kreativlos.Trotzdem ist Programmieren imho eher Handwerk als Kunst. Irgendwann hat man eben die nötige Erfahrung, um zu sagen: So machen wir's. Das funktioniert und ist gut.
Aber das dauert eben. Und bis dahin ist es eben ein kreativer Prozess...Optimizer schrieb:
Gerade frage ich mich wieder, wie ich eine Monster-Klasse aus dunkleren Tagen kreativ in kleine Häppchen zerlegen kann.
Wenn man seine "back in the old days" Klassen anschaut und sieht, was man da (aus heutiger Sicht) verbrochen hat, stehen einem manchmal echt die Haare zu Berge und man fragt sich: "Wie konnte ich nur??"
-
Trotzdem ist Programmieren imho eher Handwerk als Kunst. Irgendwann hat man eben die nötige Erfahrung, um zu sagen: So machen wir's. Das funktioniert und ist gut.
Aber das dauert eben. Und bis dahin ist es eben ein kreativer Prozess...Genau das mein ich. Man denkt sich irgendwelche tollen Lösungen aus und merkt dann irgendwann das andere das auch schon gemacht haben und sogar an einigen stellen noch besser. Deshalb gibt es ja auch diese ganzen fertigen Listen, Frameworks, Patterns usw. , weil sich für die meisten Probleme doch die gleichen Lösungen anbieten.
Es ist zwar toll sich neue Lösungen auszudenken, aber meistens hätte man die passende Lösung auch in irgend einem Buch gefunden. Natürlich findet man nicht sofort die perfekte Lösung sondern muss sie erst anpassen (irgendwie so wie Songs covern).
Wirklich kreativ sein muss man meistens nicht, sondern nur die richtigen Lösungswege schon gesehen haben.
-
Segelboot schrieb:
Natürlich findet man nicht sofort die perfekte Lösung sondern muss sie erst anpassen (irgendwie so wie Songs covern).
Wirklich kreativ sein muss man meistens nicht, sondern nur die richtigen Lösungswege schon gesehen haben.je nach anforderung. bei den allermeisten jobs reicht es, stl-container zu nehmen und schnell fertig zu sein. die container sind hübsch einfach und allgemein. außerdem sind sie beo keinem problem besonders schlecht, weshalb schon leute auf ihre softwar schreiben "sehr schnell, weil multithreraded und mit stl".
bei 95% der probleme wäre ein selbstgestrickter container ein wenig schneller. wenn man in dieser gegend arbeitet, kann wird's einem vor lauter kjreativität schnell schwindlig.
-
s gehtört beides dazu 50% : 50%
-
IMHO produziert man nur dann wirklich guten Code, wenn man die Routine beherrscht, sich aber davon lösen kann, wenn das sinnvoll ist. Da gilt auch die 80:20-Regel; 80% bekommt man mit Routine hin, die restlichen 20% aber nur, wenn man querdenken kann.
-
Miq schrieb:
IMHO produziert man nur dann wirklich guten Code, wenn man die Routine beherrscht, sich aber davon lösen kann, wenn das sinnvoll ist. Da gilt auch die 80:20-Regel; 80% bekommt man mit Routine hin, die restlichen 20% aber nur, wenn man querdenken kann.
90:10 oder 70:30 aber bestimmt nicht schon wieder 80:20.
-
Genau das mein ich. Man denkt sich irgendwelche tollen Lösungen aus und merkt dann irgendwann das andere das auch schon gemacht haben und sogar an einigen stellen noch besser. Deshalb gibt es ja auch diese ganzen fertigen Listen, Frameworks, Patterns usw. , weil sich für die meisten Probleme doch die gleichen Lösungen anbieten.
Du denkst an eine völlig Falsche ebene. Niemad will neue Sortier-Algorithmen oder neue Datenstrukturen erfinden. Das ist Grundlagenwissen. Wenn du Musik machen willst solltest du auch über Harmonielehre und ähnliches bescheid wissen. Auch hier ist es so, dass es dir die Arbeit beim Komponieren beschleunigt. Dennoch kann man Kunst erschaffen.
-
-
Helium schrieb:
Niemad will neue Sortier-Algorithmen oder neue Datenstrukturen erfinden.
Das halte ich für ein Gerücht. Aber um was zu finden, was bisher noch keiner konstruiert hat muß man natürlich einiges an Kreativität aufwenden.
-
es muß ja auch nicht gleich so sein, daß man datenstrukturen erfinded. man kann durchaus guten gewissens welche kombinieren und verfremden.
vor nen b-baum setzt man vielleicht ne kleine hashtable (kombinieren), die nur 4k groß ist und die letzten 100 werte cached. cachekollisionen und so zeugs sind egal, es wird einfach überschrieben (verfremden), bei nicht-treffer liegt ja eh der baum dahinter, und schon hat man ne größenordnung mehr performance, wenn normalerweise nur 50 benutzer im forum/chat etc sind.
-
Kreativität endet aber auch oft in sogenannten "What the fucks".
-
2 schrieb:
Kreativität endet aber auch oft in sogenannten "What the fucks".
und nachdem man ein paar schöne wtfs gebaut hat, werden sie zur routine und mann benutzt sie immer wieder.
-
Jester schrieb:
Helium schrieb:
Niemad will neue Sortier-Algorithmen oder neue Datenstrukturen erfinden.
Das halte ich für ein Gerücht. Aber um was zu finden, was bisher noch keiner konstruiert hat muß man natürlich einiges an Kreativität aufwenden.
Niemand ist sicherlich das falsche Wort gewesen.