Kann man noch kreativ beim programmieren sein?



  • In Minecraft und 7d2d kann man auf vielen verschiedenen Wegen seine Festungen bauen, aber nach einigem verschiedenen Varianten baue ich letzten endes inzwischen nur noch gleich, weil ich weiß, was am besten funktioniert und am schnellsten zum Ziel führt und dennoch sind es kreative Spiele.



  • Benninson, statt rumzusülzen, dass es nicht klappt, hättest du dir das Thema an dem du scheinbar nicht weiterkommst auch aneignen können, sei es durch selbstständiges suchen oder einfach eine Frage zu stellen, wie man das Problem denn am besten löst.



  • Aber nun, nach mehrmaligem rumprobieren und ein paar kleinen Projekten, stößt man immer wieder auf Grenzen.

    Glaub Du suchst nur an der falschen Stelle nach Krativität.
    "Eigene Projekte", also selber Architektur erzeugen, wenn Dir das nicht kreativ genug ist, solltes Du auf noch abstraktere Disziplinen ausweichen ...

    Es gibt schon Bereiche, wo man in der Kreativität beim Programmieren etwas eingeschränkt ist ... (FuSi, MISRA), wo sich Software Entwicklung ab und an wie "Jira Tickets einpflegen" anfühlt. Aber bei eigenen Projekten sollte das echt nicht der Fall sein.



  • Ähh ja, man muss bei der Softwareentwicklung kreativ sein. Man muss nur etwas tiefer in die Materie schnuppern.

    Auf der Implementierungsebene hat man schon einige Freiheitsgrade. Implementiere ich Funktion XYZ generisch, als Template, mittels Design Pattern XYZ? Aber auch auf der algorithmischen Seite gibt es diverse Freiheitsgrade auf denen ich meine Kreativität loslassen kann. Welchen Filter verwende ich beispielsweise bei Sensor XYZ um das Rauschen zu vermindern?

    Und ein Klassiker der Softwareentwicklung: Wie tausche ich die Funktionalität XYZ aus, da diese buggy ist und verbessert werden muss?



  • Auch muss man manchmal ein eigenes Daten- bzw. Dateiformat entwickeln. Das hört sich auf den ersten Blick einfach an. Aber wie definiere ich ein Format so dass dieses auch einigermaßen Zukunftskompatibel ist?

    Ich erinnere hier an das DXF Format. Punkte können hier als Punkte, Proxy Grafiken, in Blöcken, als Blockreferenzen definiert sein. Polylines können aus Bögen bestehen. Das Format ist eine Katastrophe.



  • Man kann auch als Mathematiker kreativ/schöpferisch sein, sieht man doch bei ganz vielen.

    Manche Leute mit hoher und gleichzeitig qualitativer Produktivität kriegen ganz nebenbei gute z.B. erstaunliche Lösungen zu bestimmten Problemen hin. Das liegt einfach in der Natur der Sache.

    Dann ist noch die Frage, was mit "kreativ" gemeint sein soll. Man hat im schöpferischen Sinne oft die besseren Karten, wenn man sehr produktiv ist oder eben sich sehr gut mit bestimmten Regeln/Genres und Grenzen auskennt (um die Grenzen anschließend mit Know How zu überwinden).

    Wenn Programmieren nicht kreativ wäre, sondern immer nur seelenloses herunterrattern von (boilerpate-) Code, dann würde das fast keiner machen.

    Oder nehmen wir mal ein Beispiel aus dem Tagesgeschäft von Unterhaltungskünstlern:

    1. https://www.youtube.com/watch?v=OTuQ9cKGSdM Vorlage Folksong (?)

    2. https://www.youtube.com/watch?v=0Ep5blX2CVM Vorlage oben (1)

    3. https://www.youtube.com/watch?v=wOwblaKmyVw Vorlage oben (2)

    Oder: was wurde z.B. aus dem Norton Commander? 😉



  • Ich dachte eigentlich immer, dass programmieren auch sowas wie eine Kunst ist.

    Bei unserem OS-Projekt ( https://www.c-plusplus.net/forum/f62 und http://www.prettyos.de ) kannst du deiner Kreativität im User-, Kernel- und Treiberumfeld freien Lauf lassen. Allerdings muss man dazu die Sprache C/C++, teilweise noch Assembler, ausreichend gut beherrschen. Vor allem im User-Bereich, z.B. bei der Erfindung völlig neuer Spiele oder Tools, hat man grenzenlose Möglichkeiten. Denke mal an die Erfindung von Tetris. 🙂



  • Woran arbeiten hier eigentlich die meisten? Schreibt ihr tatsächlich die meiste Zeit neue neue Funktionalität/neuen Code?

    Ich bin noch sehr neu in der Software-Entwicklung und arbeite momentan am Support einer schon länger laufenden Anwendung.
    D.h 90% sind Tickets bearbeiten, die Bugs finden, die in den Tickets beschrieben sind, also viel Code debuggen und überhaupt erstmal verstehen (da man ihn ja nie selber geschrieben hat), etc.

    Irgendwie glaub ich, dass ich gar nicht programmieren kann. Weil ich so gut wie nie was selber schreiben muss. Außer halt ein bisschen buggy Code korrigieren.
    Nicht nur wie der TE meinte, bin ich nicht kreativ, sondern vermutlich auch einfach gar nicht gut darin. Vermutlich.

    Ich sollte wohl echt privat mal irgendwas sinnvolles starten ...



  • also ich soll momentan fürs studium (semesterprojekt) eine software entwickeln, mit der ein programm auf einem entfernten rechner ausgeführt und gesteuert werden kann.
    da kann ich sehr wohl kreativ sein, aber das fällt dann eher unter den bereich "software-engineering" als unter "programmieren". programmieren selbst ist eher unkreativ, monoton und frustrierend, gehört aber eben dazu.

    wenn du also kreativ sein willst, musst du dich selbständig machen und dir dann irgendwas überlegen. als angestellter setzt du eher die kreativität anderer leute um ("code monkey").



  • frag0r schrieb:

    Woran arbeiten hier eigentlich die meisten? Schreibt ihr tatsächlich die meiste Zeit neue neue Funktionalität/neuen Code?

    Ich nehme mal mehrere Fälle zum Vergleich, ich versuche sie in neutraler Zeitangabe zu halten:

    Fall A: Komplette Neuentwicklung, Kreativität nur begrenzt möglich (im Rahmen der Vorgaben). Wartungsanteil* vielleicht 20%.

    Fall B: 15+ Jahre alte Anwendung, Wartung* alleine 90%+ Zeitanteil (Wenn man ein Buch über Antipattern zulegt, ist die Wahrscheinlichkeit hoch jedes einzelne wiederzufinden). Jedwede Kreativität grundsätzlich geblockt.

    Fall C: 15+ Jahre alte Anwendung, Wartung* unter 50%+ Zeitanteil (Einzelne Bereiche schlecht, aber für eine "historisch gewachsene" Legacyanwendung gesamt noch recht gut). Kreativität (UI-/Codeüberarbeitungen, neue Features) grundsätzlich beführwortet, wenn auch nur teilweise übernommen.

    * Wartung bedeutet in diesen Fällen nur Korrekturen und nötige Anpassungen um Code fit für neue Anforderungen zu machen, nicht aber die Umsetzung von neuen Anforderungen/Features...

    frag0r schrieb:

    Ich bin noch sehr neu in der Software-Entwicklung und arbeite momentan am Support einer schon länger laufenden Anwendung.

    Support ist immer ein undankbarer, unkreativer bereich. Wenn 90% Ticketabarbeitung sind, kann ich dir bereits jetzt sicher sagen das du an der Arbeit keine Freude haben wirst.

    frag0r schrieb:

    Irgendwie glaub ich, dass ich gar nicht programmieren kann...
    Nicht nur wie der TE meinte, bin ich nicht kreativ, sondern vermutlich auch einfach gar nicht gut darin. Vermutlich.

    Ich kann dir aus eigener Erfahrung sagen: Wenn die Wartung 90% ausmacht, bist du vermutlich an einem Platz wo auch alles schlecht geredet wird, man baut in so einer Umgebung kein Selbstvertrauen auf, im Gegenteil. Am Schluß einer solchen Stelle (wenn man den die Reisleine zieht) glaubt man das man nichts kann. Wobei man auch sagen muss: In C++ beispielsweise kann man in der Regel die ersten paar Jahre wirklich nicht viel...

    frag0r schrieb:

    Ich sollte wohl echt privat mal irgendwas sinnvolles starten ...

    Oder dir eine andere Stelle suchen. Support kann zwar ein guter Einstieg in die Materie sein, es sollten aber immer auch genügend Freiräume existieren. Anderseits warne ich dich aber auch: Der andere Fall kann auch leicht problematisch sein (gerade in kleinen Firmen muss man teilweise schlicht zu viel machen, zu viel Kenntnisse parallel beherrschen und anwenden).



  • Wade1234 schrieb:

    also ich soll momentan fürs studium (semesterprojekt)
    eine software entwickeln, mit der ein programm auf einem entfernten
    rechner ausgeführt und gesteuert werden kann. da kann ich sehr wohl
    kreativ sein, aber das fällt dann eher unter den bereich
    "software-engineering" als unter "programmieren". programmieren selbst
    ist eher unkreativ, monoton und frustrierend, gehört aber eben dazu.

    Also ich arbeite als angestellter Softwarewickler und muss öfters auch
    mal nur Tickets abarbeiten - d.h. viel Fremdcode debuggen - und das kann
    in der Tat frustrierend sein. In dem Fall ist dann vielleicht erstmal
    Kreativität gefragt, wie man mehr eigene Kreativität, in die Arbeit
    einbringt. Ich habe bei solchen Arbeiten z.B. viel Zeit damit
    verbracht, mir ein angenehmes Debug-Umfeld zu schaffen. Da kann man
    seine Kreativität auch ausleben.

    wenn du also kreativ sein willst, musst du dich selbständig machen und
    dir dann irgendwas überlegen. als angestellter setzt du eher die
    kreativität anderer leute um ("code monkey").

    Nee. 1.) sind die Leute, die bestimmen was die Software wie machen muss,
    auch oft angestellt. 2.) liegt das "wie" meiner Erfahrung nach auch oft
    in der Hand der Programmierer. Ich hatte zumindest auch während dem
    Studium als Code-Monkey genug Platz für eigene Kreativität.



  • [quote="Coda' Vinci"]In dem Fall ist dann vielleicht erstmal
    Kreativität gefragt, wie man mehr eigene Kreativität, in die Arbeit
    einbringt. Ich habe bei solchen Arbeiten z.B. viel Zeit damit
    verbracht, mir ein angenehmes Debug-Umfeld zu schaffen. Da kann man
    seine Kreativität auch ausleben.
    [/quote}

    aber das hat dann doch nichts mit kreativem programmieren zu tun. 🙄

    Nee. 1.) sind die Leute, die bestimmen was die Software wie machen muss,
    auch oft angestellt. 2.) liegt das "wie" meiner Erfahrung nach auch oft
    in der Hand der Programmierer. Ich hatte zumindest auch während dem
    Studium als Code-Monkey genug Platz für eigene Kreativität.

    ja schon, aber bill gates als prominentes beispiel hat irgendwann mal von ibm gesagt bekommen "wir brauchen mal ein betriebssystem" und er konnte das dann alles weitgehend frei gestalten. irgendwelche spieleentwickler (k.a. simon woodroffe, hideo kojima, shigeru mijamoto) können ihre ideen auch weitgehend frei umsetzen, der "ausführende programmierer" bekommt dagegen (hoffentlich) sehr genau gesagt, wie das alles zu sein hat.

    also unter kreativität verstehe ich jetzt nicht, dass ich darüber entscheiden darf, ob ich jetzt mit zeigern oder arrays arbeite oder eine einfach oder doppelt verkettete liste verwende, wie die variablen heißen sollen usw, sondern dass ich darüber entscheiden darf, was da überhaupt programmiert werden soll und das ist faktisch immer mit selbständigkeit verbunden, unabhängig davon, ob das jetzt juristisch ein arbeitsvertrag, ein dienstvertrag oder sonst was ist.



  • Wade1234 schrieb:

    also unter kreativität verstehe ich jetzt nicht, dass
    ich darüber entscheiden darf, ob ich jetzt mit zeigern oder arrays
    arbeite oder eine einfach oder doppelt verkettete liste verwende, wie
    die variablen heißen sollen usw, sondern dass ich darüber entscheiden
    darf, was da überhaupt programmiert werden soll ...

    Naja, solange du mit Programmieren Geld verdienen willst, musst
    du programmieren, wofür man dir Geld gibt.

    Da hilft dann auch nicht, dass du das Endprodukt komplett selbst
    designed hast. Früher oder später wird etwas benötigt, worauf du gerade
    keinen Bock hast.



  • Solange du nach vorgabe programmieren musst (und dabei spielt es keine rolle ob als angestellter, oder als free-lancer) benoetigst du keinerlei kreativitaet.
    Du suchst schliesslich immer nach der optimalen/effizientesten loesung zum problem foo.
    Der weg zu dieser loesung ist meines erachtens nach nicht durch pure kreativitaet zu erreichen, sondern durch reines know-how.

    Anders sieht es bei hobby/open-source projekten aus. Hier hast du die moeglichkeit nach eigenem ermessen dein grundlegendes design zu kreieren; wie es dir gefaellt.
    Ich bin zwar immernoch der meinung, dass das wenig mit kreativitaet zutun hat, denn es wird auch dafuer einen optimalen und viele weniger optimale wege nach rom geben.

    definition creativity:

    the ability to transcend traditional ideas, rules, patterns, relationships, or the like, and to __create meaningful new ideas__,
    forms, methods, interpretations, etc.; originality, progressiveness, or imagination
    


  • Cardiac schrieb:

    Solange du nach vorgabe programmieren musst (und dabei spielt es keine rolle ob als angestellter, oder als free-lancer) benoetigst du keinerlei kreativitaet.

    Das hängt auch sehr viel von der Firma ab und ob sie Kreativität duldet. Hier bei uns wird das einbringen von Ideen durchaus begrüßt, solange es zum Gesamtkonzept passt (Wir machen Produktentwicklung, keine Projektentwicklung). Dazu gehört auch das man Ideen einbringt die ggf. vorhandenes Design in Frage stellt, das man bei der Entwicklung mitdenkt und auch entscheidungen hinterfragt.


Anmelden zum Antworten