Wer programmiert beruflich Algorithmen?




  • ➡ Ich programmiere lieber eine Pivot-Funktion über 3 Datenbankserver und -Systeme, die dann effektiv genutzt wird, als dass ich einen weiteren Radix-Sort implementiere, oder mir etwas neues einfallen lasse, was im übrigen niemand bezahlt. Das ist normal so, mit Verblödung hat das nichts zu tun 😉



  • sicherlich hast du recht. klar benutzt man die bestehenden lösungen, alles andere wäre ja unsinn.

    es ging mir viel mehr darum, ob ihr im kontext eurer kundenprojekte eigene kundenspezifische algorithmen implementiert, für die es eben noch keine general-purpose lösung gibt?
    oder gehts euch eher wie mir, dass es unterm strich nur noch darum geht, fertige lösungen (libs, frameworks) zu integrieren?

    vielleicht ist der bereich, in dem ich tätig bin, einfach zu high-level. :xmas1:



  • Und jetzt mal alle die Hand hoch, wer nicht auf x86 bzw. Standardhardware programmiert. Wie sieht es mit Mikrocontrollern oder FPGAs aus?



  • /rant/ schrieb:

    ...

    wieviele hier nicht in der lage sind einen text besser zu verstehen, als ein roboter.



  • /rant/ schrieb:

    definitiv! Oder gibt es eine andere Erklärung für die hunderte verschiedenen l*n*x-Distros und die schon immer blühende Vielfalt an Programmiersprachen und inkompatiblen Dialekten? :xmas1:

    on-topic:

    zunehmende Spezialisierung und Arbeitsteilung ist ein Beweis für handwerklichen Fortschritt. Ist doch gut so. Wer wünscht sich die 8-bit-Zeiten zurück, als man als ambitionierter Programmierer seine eigenen custom-Grafikprimitives und Multiplikationsroutinen geschrieben hat und mit jedem Byte geizen mußte?



  • Was ist denn für dich ein komplexer Algorithmus? Das sieht doch jeder anders. Obwohl schon eine find-Funktion schon ein Algotithmus ist. Machst du das das erste Mal, wird es herausfordernd. Beim zweiten oder dritten Mal, ist es langweilig.

    Ich war mal in einem Projekt, da war die Herausforderung den Arbeitsprozess einer Abteilung in einem Algorithmus abzubilden. Das fand ich komplex, weil es sehr viele Bedingungen und Fälle gab.

    Das Leben eines Entwicklers besteht aber meiner Erfahung nach nicht nur darin, Algorithmen zu entwickeln oder umzusetzen, sondern vorallem auch im Design und Architektur. Das ist also Aufgabenabhängig. Wenn einer meint, das Programmieren unter seiner Würde ist, kann er kein guter Programmierer sein. Und ich stelle immer wieder fest, das es schwer ist, studierte Fachkräfte zu finden, die wirklich die Basics in Sachen Software-Entwicklung beherrchen.



  • kurze frage schrieb:

    programmiert ihr beruflich tatsächlich nicht komplexe algorithmen [...]?

    falls ja: in welcher branche seid ihr tätig?

    Ja, auf dem Gebiet Gebiet Compiler/Codegeneratoren. Die Algorithmen haben meistens damit zu tun, aus irgendwelchen Daten Datenstrukturen wie Bäume und Graphen zu bauen, und die dann wieder in bestimmter Art und Weise zu transformieren und zu traversieren. Das ist zwar irgendwo auch immer wieder das gleiche, aber es versteht nicht jeder 🤡



  • Zu der Frage, was man gegen "kenne ich schon, weil habe ich schon tausendmal gemacht" zu tun: man kann in seinen Projekten/Supportaufgaben sich weitere Ziele setzen. Z.B. könnte man versuchen mal den Code aufzuräumen. Wiederkehrende Aufgaben, die man noch manuell macht, automatisieren. Unit-Tests schreiben die noch fehlen.

    Also muß man Sachen machen, auf die ein Frischling nicht kommt. Die oben genannten Dinge kann man wunderbar in einem abgeschlossenen Projekt machen, das nur noch gepflegt wird.

    Ich kann das Buch "Der leidenschaftliche Programmierer" von Chad Fowler empfehlen. Das behandelt genau das Thema! Knackig kurze und unterhaltsame Erfahrungen mit Tips, wie man sein berufliches Programmierleben auffrischen kann. 😃 👍



  • Artchi schrieb:

    Und ich stelle immer wieder fest, das es schwer ist, studierte Fachkräfte zu finden, die wirklich die Basics in Sachen Software-Entwicklung beherrchen.

    Was verstehst Du in diesem Zusammenhang unter "Basics in Sachen Software-Entwicklung"?



  • danke für die konstruktiven beiträge zum thema.

    muss aber noch mal eins klarstellen: es geht mir nicht darum, dass meine arbeit keine herausforderungen mehr bietet. dem ist definitiv nicht so.
    es geht mir nur darum, dass ich das gefühl habe, dass gewisse - in meinen augen zentrale - aspekte der informatik in meinem arbeitsbereich gänzlich fehlen - algorithmen.

    die konsequenz: man verlernt algorithmen mit der zeit total. das finde ich sehr schade. seit ich das erkannt habe, versuche ich das durch private projekte zu kompensieren, was grundsätzlich eine gute sache ist. allerdings ist die zeit privat halt auch begrenzt. 😞



  • kurze frage schrieb:

    es geht mir nur darum, dass ich das gefühl habe, dass gewisse - in meinen augen zentrale - aspekte der informatik in meinem arbeitsbereich gänzlich fehlen - algorithmen.

    Was heißt das? Was für Algorithmen fehlen? Standardalgorithmen, die man irgendwann in einer A+D Vorlesung lernt oder generell die Entwicklung von Algorithmen? ...die man im Studium eigentlich gar nicht explizit lernt.



  • für den standard kram gibts schon fertige libs. das habe ich oben doch schon geschrieben. sowas implementiert man natürlich nicht neu. würde zwar spaß machen, macht aber keinen sinn und bezahlt auch niemand.

    ich rede von domänenspezifischen algorithmen. probleme, für deren lösung es nicht schon eine fertige lib gibt. probleme, die sich nicht auf relativ einfache routinen runterbrechen lassen. probleme, die sich nicht aus der geschickten kombination fertiger komponenten lösen lassen.

    algorithmen halt. nicht in pseudo code. nicht mathematisch hergeleitet und bewiesen. einfach algorithmen in form von nicht-trivialem programmcode.

    wie gesagt: meine projekte sind durchaus herausfordernd. aber die herausforderungen liegen halt wo ganz anders. wenn ich mir den sourcecode letztendlich auf methoden-ebene angucke, ist er - bis auf wenige ausnahmen - recht trivial.



  • Kurze Antwort: Ich verstehe nicht was du meinst.



  • knivil schrieb:

    Kurze Antwort: Ich verstehe nicht was du meinst.

    Ich verstehe inzwischen, was er meint.

    @kurze frage: Das Problem ist, dass es in den meisten Bereichen, in denen Code entwickelt wird, keine informatischen Problemstellungen gibt. Entsprechend kommt die Herausforderung dann vielleicht durch die Komplexität bzw. die Größe des Projekts, wohingegen in kleineren Codesegmenten kaum Herausforderungen zu finden sind. Das ist letztendlich eine Frage des Anwendungsgebiets.

    Ich programmiere im Bereich Computerpysik, da gibt es auch jede Menge Herausforderungen im Kleinen. Aber keine typisch informatischen Problemstellungen, da die zugrundeliegenden Strukturen und Fragestellungen nichts sind, mit dem sich die Informatik stark auseinandersetzt. Ich würde super gerne Methoden aus der Mustererkennung oder Bildverarbeitung oder ähnlichem auf mein Gebiet loslassen, aber die sind in dem Zusammenhang einfach nicht einsetzbar. Ist halt ein ganz anderes Gebiet.


Anmelden zum Antworten