Wer programmiert beruflich Algorithmen?
-
die frage klingt sicher für einige etwas dämlich, aber es interessiert mich trotzdem:
programmiert ihr beruflich tatsächlich nicht komplexe algorithmen selber?
falls ja: in welcher branche seid ihr tätig?
bei mir ist das nämlich rückblickend irgendwie gar nicht der fall. ich programmiere webanwendungen mit java, html5, css3, javascript, jquery und sql. ich würde nicht sagen, dass das ganze trivial ist, aber unterm strich ist es einfach nur eine datenschuppserei: hole daten aus der DB, zeige sie an, schreibe daten zurück in die DB.
für die komplexeren algorithmen (volltextsuche, indexierung, ...) kommen fertige open source lösungen zum einsatz.
klar gibts auch hier viele herausforderungen (libs kennen, OO design, client/server performance, skalierbarkeit, testbarkeit usw). aber ich habe manchmal trotzdem das gefühl zu verblöden, weil ich nie wirkliche algorithmen implementiere.
es ist schon so schlimm, dass ich viele dinge aus dem studium schon wieder vergessen habe. habe mir über die feiertage mal den unistoff von damals angeguckt und brauche gefühlt schon viel zu lange, um selbst die einfachen sortieralgorithmen wieder zu verstehen (insertion sort, merge sort).
kennt ihr das? gehts euch auch so? was kann man dagegen tun?
-
Du hast studiert und arbeitest jetzt als normaler Progger?
Das ist nicht deine Aufgabe als Studierter, für die Sachen über die du erzählt hast sind FIAEs da. Kein Wunder das du dich masslos unterfordert fühlst.
-
kurze frage schrieb:
programmiert ihr beruflich tatsächlich nicht komplexe algorithmen selber?
Ja, sowohl komplexe als auch nicht komplexe. Aber nicht Hauptberuflich, das ist eher Nebentätigkeit.
falls ja: in welcher branche seid ihr tätig?
Computerphysik.
kennt ihr das? gehts euch auch so?
Nein. Zumindest nicht was die Programmierung angeht. Aber vieles andere finde ich schon manchmal langweilig.
was kann man dagegen tun?
Keine Ahnung. Langweilige Routine ist nun einmal das was den größten Teil aller Berufe ausmacht, da dir nach einer Weile der Hauptteil der Arbeit langweilig wird, weil es eben immer das gleiche ist (sonst wäre es nicht der Hauptteil), egal wie aufregend es für Außenstehende aussehen mag.
-
compl schrieb:
Du hast studiert und arbeitest jetzt als normaler Progger?
ja. natürlich. programmieren ist meine leidenschaft. warum sollte ich also was anderes tun, als das was mir spaß macht? das wäre dumm!
aber um dein weltbild nicht zu zerstören: bin auch teamleiter, verantwortlich für die techn. systemarchitektur, entwickle hauptverantwortlich das unter den kundensystemen liegende hauseigene framework und verdiene 55k im jahr + boni. jetzt zufrieden?
du sagst "normaler progger" als wäre es was schlimmes. ich verrate dir die wahrheit: das gegenteil ist der fall!
-
kurze frage schrieb:
programmiert ihr beruflich tatsächlich nicht komplexe algorithmen selber?
Muss man jetzt mit ja oder nein Antworten, wenn man komplexe algorithmen programmiert? Was soll das "nicht" in der Frage?
-
sorry, das war ein typo. die frage sollte lauten:
> Programmiert Ihr beruflich komplexe Algorithmen tatsächlich (noch) selber?
-
kurze frage schrieb:
Programmiert Ihr beruflich komplexe Algorithmen tatsächlich (noch) selber?
Manchmal.
kurze frage schrieb:
falls ja: in welcher branche seid ihr tätig?
Visualisierung.
-
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.