Fragen an die (Berufs)Programmierer unter euch



  • Mahlzeit schrieb:

    AlexNeumann schrieb:

    . Mir hat nicht gefallen das Chefs, das Diplom von der ILS nicht so gerne sehen, wie ein Bachelortitel aus der Universität! Oder jemand mit Fachhochschulreife.

    LoL, DAS wundert dich? Den ILS-Papierfetzen willst du mit einem akademischen Abschluss einer Universität gleichstellen?????????? Das wäre so, als wenn du einen Kindergarten-"Abschluss" mit dem Abitur vergleichst.

    Kannst du lesen? Hab ich geschrieben, dass ich was vergleiche oder mich irgendwas wundert?



  • AlexNeumann schrieb:

    Mahlzeit schrieb:

    AlexNeumann schrieb:

    . Mir hat nicht gefallen das Chefs, das Diplom von der ILS nicht so gerne sehen, wie ein Bachelortitel aus der Universität! Oder jemand mit Fachhochschulreife.

    LoL, DAS wundert dich? Den ILS-Papierfetzen willst du mit einem akademischen Abschluss einer Universität gleichstellen?????????? Das wäre so, als wenn du einen Kindergarten-"Abschluss" mit dem Abitur vergleichst.

    Kannst du lesen? Hab ich geschrieben, dass ich was vergleiche oder mich irgendwas wundert?

    Implizit schon, aber ich schätze, das Wort kennst du nicht.



  • Mahlzeit schrieb:

    Implizit schon, aber ich schätze, das Wort kennst du nicht.

    Langsam wird du mir langweilig.



  • Soooo schwere Mathematik, wie einige hier behaupten, ist es nun auch wieder nicht, die man beim Spieleprogrammieren brauch. Nur mal so am Rande eingeworfen.



  • Realist schrieb:

    Soooo schwere Mathematik, wie einige hier behaupten, ist es nun auch wieder nicht, die man beim Spieleprogrammieren brauch. Nur mal so am Rande eingeworfen.

    Irgendwie reden hier immer so viele über "Spieleprogrammierung", ohne Ahnung zu haben, ohne mal auf die Idee zu kommen, dass es völlig davon abhängt, wie tief man in irgendwas einsteigt. Man kann jedes beliebige Problem so exakt behandeln, wie man es braucht, seien es Kompressionsalgorithmen, Wegfindung, Datenbanken oder Kryptographie. Dinge, wo man härteste Mathematik braucht, wenn man sich damit näher befasst. Google hat Dutzende Mathematiker, die Qualifikationen haben, die es weltweit nicht oft gibt, nur um die Suche im Web zu optimieren.
    Je nachdem, ob es dann für das Projekt Sinn macht, betreibt man den Aufwand oder nicht. Ich verstehe nicht, warum hier immer wieder so allgemeine Aussagen über Spieleprogrammierung getroffen werden wie "man braucht viel Mathe" oder "man braucht nicht so viel Mathe". So besonders sind Spiele schon nicht. Man kann auch Dreiecke am Bildschirm anzeigen, ohne die Transformationen vollständig zu verstehen. Man kann alles, inklusive Gebiete, die man in der Spieleprogrammierung nützlich finden könnte, auch bis zum Exzess theoretisch zerlegen. "Spieleprogrammierung" ist gar nichts besonderes, sondern genauso leicht oder schwer wie alles andere.



  • Optimizer schrieb:

    Realist schrieb:

    Soooo schwere Mathematik, wie einige hier behaupten, ist es nun auch wieder nicht, die man beim Spieleprogrammieren brauch. Nur mal so am Rande eingeworfen.

    Irgendwie reden hier immer so viele über "Spieleprogrammierung", ohne Ahnung zu haben, ohne mal auf die Idee zu kommen, dass es völlig davon abhängt, wie tief man in irgendwas einsteigt. Man kann jedes beliebige Problem so exakt behandeln, wie man es braucht, seien es Kompressionsalgorithmen, Wegfindung, Datenbanken oder Kryptographie. Dinge, wo man härteste Mathematik braucht, wenn man sich damit näher befasst. Google hat Dutzende Mathematiker, die Qualifikationen haben, die es weltweit nicht oft gibt, nur um die Suche im Web zu optimieren.
    Je nachdem, ob es dann für das Projekt Sinn macht, betreibt man den Aufwand oder nicht. Ich verstehe nicht, warum hier immer wieder so allgemeine Aussagen über Spieleprogrammierung getroffen werden wie "man braucht viel Mathe" oder "man braucht nicht so viel Mathe". So besonders sind Spiele schon nicht. Man kann auch Dreiecke am Bildschirm anzeigen, ohne die Transformationen vollständig zu verstehen. Man kann alles, inklusive Gebiete, die man in der Spieleprogrammierung nützlich finden könnte, auch bis zum Exzess theoretisch zerlegen. "Spieleprogrammierung" ist gar nichts besonderes, sondern genauso leicht oder schwer wie alles andere.

    einfach nur ja 👍



  • Optimizer schrieb:

    Man kann auch Dreiecke am Bildschirm anzeigen, ohne die Transformationen vollständig zu verstehen.

    Ja, ok: Ich sehe ein, dass man auch ohne Mathematikkenntnisse Beispielcode aus Tutorials abtippen und verändern kann. Trotzdem sehe ich das, was du hier sagen willst, anders. Um in einem Bereich sinnvoll und effizient programmieren zu können, muss man IMHO ein gewisses Grundverständnis der zugrundeliegenden Materie mitbringen. Welche Firma will es sich leisten, Programmierer einzustellen, für die jedes Stückchen Code ein Experiment mit ungewissem Ausgang ist?



  • nehmen wir doch einfach ein konkretes beispiel: world of warcraft
    sicher gibt es ein paar leute, welche die 3dengine geschrieben haben aber es gehört mehr dazu

    user interface, missionen, effekte, auktionshaus, userverwaltung, sound und musik... etc.
    das sind alles wesentliche teile des spiels aber keins davon benötigt zwingend mathematische kenntnisse

    selbst ki, wegfindung und darstellung können ohne mathe geschrieben werden wenn die engine ein sauberes interface dafür zur verfügung stellt

    für die jedes Stückchen Code ein Experiment mit ungewissem Ausgang ist?

    genau das is eine frage des interfaces
    wenn es z.b. als
    spielfigur::move(x,y),spielfigur::run(x,y) nach außen geführt wird gibt es keinen
    grund mehr sich mit kollisionsabfragen zu beschäftigen



  • Gregor@Home schrieb:

    Optimizer schrieb:

    Man kann auch Dreiecke am Bildschirm anzeigen, ohne die Transformationen vollständig zu verstehen.

    Ja, ok: Ich sehe ein, dass man auch ohne Mathematikkenntnisse Beispielcode aus Tutorials abtippen und verändern kann. Trotzdem sehe ich das, was du hier sagen willst, anders. Um in einem Bereich sinnvoll und effizient programmieren zu können, muss man IMHO ein gewisses Grundverständnis der zugrundeliegenden Materie mitbringen. Welche Firma will es sich leisten, Programmierer einzustellen, für die jedes Stückchen Code ein Experiment mit ungewissem Ausgang ist?

    Ich will damit zwei Schwierigikeiten bei der Formulierung "bei Spieleprogrammierung braucht man viel/wenig Mathe" darstellen.

    Zum einen ist "Spieleprogrammierung" ständig, immer und überall ein sehr weitgefasster Begriff. Wie sovok schon sagt, gibt es wohl mehr als genug Bereiche innerhalb eines einzigen Projekts, für die Realschul-Mathe ausreicht. Gleichzeitig gibt es natürlich auch Bereiche, wo man mehr braucht. So eine allgemeine Formulierung ist jedoch Blödsinn. Ich glaube einfach nicht, dass jeder GUI-Programmierer einen Master in Mathematik und einen Doktor in Informatik hat.
    Ich möchte wie gesagt, nicht bezweifeln, dass es Dinge gibt, für die man Leute mit Ahnung von Mathematik braucht.

    Zum anderen glaube ich nicht, dass das Entwickeln von Spielen eine so wahnsinnige Paraderolle dabei spielt. Das hat mit dem Abtippen von Tutorial-Code nichts zu tun, man kann mit Direct3D ziemlich eindrucksvolle Dinge darstellen, ohne überhaupt kapiert zu haben, wie grundlegende Dinge, z.B. die Transformationsmatrizen eigentlich funktionieren. Man sagt doch nur "multipliziere mit Translation um ..." und da dauert es einfach, bis man an die Grenzen stößt. Die Mathematik hat in diesem Punkt Microsoft oder vielleicht schon andere Leute davor beschäftigt, ich setze nur ne Lichtquelle und muss mir halt das Koordinatensystem irgendwie vorstellen können.

    Ich möchte nur zeigen, dass man in jedem Gebiet solche Bereiche hat. Warum höre ich nicht ständig "für eine Datenbank-Applikation brauche ich viel Mathematik"? Weil es eben darauf ankommt. Ich kann MySQL benutzen, ohne Relationenalgebra zu verstehen.

    Daher denke ich, dass allgemeine Formulierungen wie "in xyz braucht man viel/wenig Mathematik" (und wie spezifisch ist denn bitte "Spieleprogrammierung"?) einfach viel zu unkonkret sind, um sinnvoll zu sein. Und die Leute, die solche Aussagen ständig machen, sind meistens die, die über ein gewisses Niveau (nämlich dem Setzen von Lichtquellen) noch nicht wahnsinnig hinausgekommen sind und es deshalb leicht finden, oder die Matrizen nicht verstehen und deshalb denken, dass man viel Mathe braucht.



  • Optimizer schrieb:

    Das hat mit dem Abtippen von Tutorial-Code nichts zu tun, man kann mit Direct3D ziemlich eindrucksvolle Dinge darstellen, ohne überhaupt kapiert zu haben, wie grundlegende Dinge, z.B. die Transformationsmatrizen eigentlich funktionieren. Man sagt doch nur "multipliziere mit Translation um ..." und da dauert es einfach, bis man an die Grenzen stößt.

    /me muss an dieser Stelle mal seinen Joker einsetzen... 🤡

    Man kann sicherlich alles mögliche machen, ohne Ahnung von der Materie zu haben. Was mir da gerade einfällt ist eine Primzahlsuche, bei der es doch eigentlich ausreicht, die Definition der Primzahl zu kennen. Mehr Wissen ist nicht nötig. Das hatten wir ja vor ein paar Jahren, heh?! 😉 Ich dachte, du hättest damals gelernt, dass Hintergrundwissen sinnvoll ist.

    Inwiefern ist die 3D-Programmierung nun anders? Naja, vielleicht gar nicht. Vielleicht sagt sich der Unwissende wieder nur "Ich komme ja irgendwie ans Ziel, das reicht. Ich muss die Theorie nicht kennen und ich muss nicht wissen, was da eigentlich passiert.". Natürlich ist dann am Schluss die Verwunderung groß, wenn das resultierende Spiel in den Fachzeitschriften zerfetzt wird, weil es enorme Hardwarevoraussetzungen hat und trotzdem weniger als die Konkurrenz leistet.

    Spiele sind alleine schon aus dem Grund ein Bereich, in dem man besser Ahnung haben sollte, weil in diesem Bereich die verfügbare Hardware voll ausgenutzt werden soll. Wenn man da bei einem großen Spieleprojekt ein Budget von mehreren Millionen € hat, dann sollte man die Fehlerquelle "unterqualifizierter Programmierer" IMHO so weit wie möglich ausschließen. Oder redest du von "Moorhuhn"?



  • Optimizer schrieb:

    Gregor@Home schrieb:

    Optimizer schrieb:

    Man kann auch Dreiecke am Bildschirm anzeigen, ohne die Transformationen vollständig zu verstehen.

    Ja, ok: Ich sehe ein, dass man auch ohne Mathematikkenntnisse Beispielcode aus Tutorials abtippen und verändern kann. Trotzdem sehe ich das, was du hier sagen willst, anders. Um in einem Bereich sinnvoll und effizient programmieren zu können, muss man IMHO ein gewisses Grundverständnis der zugrundeliegenden Materie mitbringen. Welche Firma will es sich leisten, Programmierer einzustellen, für die jedes Stückchen Code ein Experiment mit ungewissem Ausgang ist?

    Ich will damit zwei Schwierigikeiten bei der Formulierung "bei Spieleprogrammierung braucht man viel/wenig Mathe" darstellen.

    Zum einen ist "Spieleprogrammierung" ständig, immer und überall ein sehr weitgefasster Begriff. Wie sovok schon sagt, gibt es wohl mehr als genug Bereiche innerhalb eines einzigen Projekts, für die Realschul-Mathe ausreicht. Gleichzeitig gibt es natürlich auch Bereiche, wo man mehr braucht. So eine allgemeine Formulierung ist jedoch Blödsinn. Ich glaube einfach nicht, dass jeder GUI-Programmierer einen Master in Mathematik und einen Doktor in Informatik hat.
    Ich möchte wie gesagt, nicht bezweifeln, dass es Dinge gibt, für die man Leute mit Ahnung von Mathematik braucht.

    Zum anderen glaube ich nicht, dass das Entwickeln von Spielen eine so wahnsinnige Paraderolle dabei spielt. Das hat mit dem Abtippen von Tutorial-Code nichts zu tun, man kann mit Direct3D ziemlich eindrucksvolle Dinge darstellen, ohne überhaupt kapiert zu haben, wie grundlegende Dinge, z.B. die Transformationsmatrizen eigentlich funktionieren. Man sagt doch nur "multipliziere mit Translation um ..." und da dauert es einfach, bis man an die Grenzen stößt. Die Mathematik hat in diesem Punkt Microsoft oder vielleicht schon andere Leute davor beschäftigt, ich setze nur ne Lichtquelle und muss mir halt das Koordinatensystem irgendwie vorstellen können.

    Ich möchte nur zeigen, dass man in jedem Gebiet solche Bereiche hat. Warum höre ich nicht ständig "für eine Datenbank-Applikation brauche ich viel Mathematik"? Weil es eben darauf ankommt. Ich kann MySQL benutzen, ohne Relationenalgebra zu verstehen.

    Daher denke ich, dass allgemeine Formulierungen wie "in xyz braucht man viel/wenig Mathematik" (und wie spezifisch ist denn bitte "Spieleprogrammierung"?) einfach viel zu unkonkret sind, um sinnvoll zu sein. Und die Leute, die solche Aussagen ständig machen, sind meistens die, die über ein gewisses Niveau (nämlich dem Setzen von Lichtquellen) noch nicht wahnsinnig hinausgekommen sind und es deshalb leicht finden, oder die Matrizen nicht verstehen und deshalb denken, dass man viel Mathe braucht.

    so viel text und so viel müll 🙄



  • vieles bei der (spiele)programmierung braucht sehr gutes logisches verständnis, dieses logische verständniss haben die leute früher automatisch mit mathematik gleichgesetzt, vielleicht hängt das ein wenig mit dem vorurteil über spieleprogrammierer zusammen?

    Man braucht extrem viel mathematik bei der spieleprogrammierung wenn man persönlich das verlangen hat eine möglichst optimale software zu schreiben. aber arbeitgeber und leute die nur für ihren lebensunterhalt (spiele)programmieren, die brauchen kein besonderes mathekönnen, denn es ist in 99,99% günstiger, middleware für problemstellungen zu kaufen, als einen programmierer darauf anzusetzen.
    wenn man also pathfinding haben möchte, eine gute AI, net-code usw. wird man es aus wirtschaftlichen gesichtspunkten kaufen, statt zu coden. die leute die dann diese libs anbieten, müssen natürlich super in mathe sein, weil man ja irgendwie begründen möchte, weshalb jemand für die eigene lib das doppelte gegenüber einer andere lib zahlen soll. also "mit meiner pathfinding lib können sie wegfindung ohne grid machen" oder "diese lib kann auf der gpu laufen um die cpu zu entlasten" oder..
    spieleprogrammierer an sich sind wiederum dafür da, dinge zu implementieren die nicht kaufbar sind und libs zusammenzuführen. dafür braucht man aber auch nicht wirklich tolles mathewissen, im grund muss man sogar sagen, je besser die mathe und das design einer eingekauften lib ist, desto weniger kann man damit falsch machen und desto weniger mathe und arbeit muss man investieren.

    das ganze ist aber auch das problem der deutschen spielehersteller. jeder kleine kautz muss seine eigene super engine coden, zeit und geld die besser investiert sein könnten. ist übrigen in polen nicht anders, siehe chrome oder earth21x0. aber diese menschen arbeiten dann auch aus verwirklichungsgründen und nicht um goldene hoden zu haben ;)...

    rapso->greets();



  • rapso schrieb:

    aber diese menschen arbeiten dann auch aus verwirklichungsgründen und nicht um goldene hoden zu haben ;)...

    Und wofür arbeitest du? 🙂



  • rapso schrieb:

    wenn man also pathfinding haben möchte, eine gute AI, net-code usw. wird man es aus wirtschaftlichen gesichtspunkten kaufen, statt zu coden. die leute die dann diese libs anbieten, müssen natürlich super in mathe sein, weil man ja irgendwie begründen möchte, weshalb jemand für die eigene lib das doppelte gegenüber einer andere lib zahlen soll. also "mit meiner pathfinding lib können sie wegfindung ohne grid machen" oder "diese lib kann auf der gpu laufen um die cpu zu entlasten" oder..
    spieleprogrammierer an sich sind wiederum dafür da, dinge zu implementieren die nicht kaufbar sind und libs zusammenzuführen. dafür braucht man aber auch nicht wirklich tolles mathewissen, im grund muss man sogar sagen, je besser die mathe und das design einer eingekauften lib ist, desto weniger kann man damit falsch machen und desto weniger mathe und arbeit muss man investieren.

    Ach so. Dann muss man nach deiner Logik auch nicht wissen, wie eine Liste funktioniert, wie ein Vektor funktioniert usw.. Die Sachen gibt es ja alle schon in der Standardbibliothek und man kann sie einfach nutzen. Interessante Sichtweise. Wirklich. Ich denke, je mehr Mathematik in einer Bibliothek verwirklicht ist, desto mehr Mathematik muss auch der Nutzer dieser Bibliothek kennen, um die Bibliothek wie vorgesehen nutzen zu können.



  • Gregor@Home schrieb:

    Ach so. Dann muss man nach deiner Logik auch nicht wissen, wie eine Liste funktioniert, wie ein Vektor funktioniert usw.. Die Sachen gibt es ja alle schon in der Standardbibliothek und man kann sie einfach nutzen. Interessante Sichtweise. Wirklich. Ich denke, je mehr Mathematik in einer Bibliothek verwirklicht ist, desto mehr Mathematik muss auch der Nutzer dieser Bibliothek kennen, um die Bibliothek wie vorgesehen nutzen zu können.

    jap, so ist das. man muss nur wissen wie man ein werkzeug verwendet, nicht wie es im detail erstellt wurde oder arbeitet. so läuft das schon immer in der welt, ein formel 1 wagen fahrer weiß zwar genau, wenn etwas nicht stimmt, woran es liegen könnte und sagt den mechanikern "hey, ich hab das gefühl das differential blockiert zu sehr", aber das problem zu lösen ist er dann nicht fähig.
    viele programmierer können eine sql datenbank programmieren, brauchen aber einen admin um den server sicher ans netz zu bringen. ein admin andereseits weiß wo er überall welche flags setzen muss und was sie verursachen, wenn aber mal ein programm abraucht, kann er trotz tiefster hingabe für sein tool es nicht selbst fixen (in den meisten fällen).
    programmierer die wiederum stl und tollstes c++ design benutzen/anwenden, wissen auch viele dinge nicht. gerade letztens hab ich über nen source geschaut, der langsam war, wieso er denn langsam ist, denn die person die den geschrieben hatte hat eigentlich top c++ skills. lag dann daran dass er mittels dynamic_cast objekte identifizierte. dann mußte er auf die weniger schön aussehende und weniger sicherere, aber schnellere methode übergehen und eine funktion einbauen die den typen einer class checkt.
    und dass sowas passiert liegt nicht daran dass wir alle zu faul sind, es liegt schlicht daran dass man beim besten willen nicht alles verstehen kann was es zu verstehen gibt, und wenn man einfach nur schnell seine ziele erreichen möchte, dann nimmt man das werkzeug das einem gut liegt und erreicht sie, ohne zu wissen wie das tool arbeitet.

    btw. ganz ehrlich, obwohl ich seit nem viertel jahrundert brot esse, hab ich keine ahnung wie dieses nahrungsmittel im detail entsteht, wird mich aber nicht dran hinder es für meine zwecke zu verfuttern 😉

    rapso->greets();



  • Neugieriger schrieb:

    rapso schrieb:

    aber diese menschen arbeiten dann auch aus verwirklichungsgründen und nicht um goldene hoden zu haben ;)...

    Und wofür arbeitest du? 🙂

    meine eigentliche motivation ist selbstverwirklichung, ich schreibe viele grundlegende dinge neu, einfach weil ich entweder glaube/hoffe sie besser hinzubekommen, oder weil ich hoffe, wenn ich sie schlechter hinbekomme, einen lerneffekt zu haben bei dem versuch es am ende doch besser hinzubekommen, sodass ich das wissen auf alle meine weiteren projekte anwenden kann.
    so hab ich z.b. auch meine eigene stl implementierung, die nicht nur in inneren details, sondern auch in manchen grundlegendem designansatz sehr von der richtigen stl abweicht. z.b.
    -kein std::string.c_str()!
    -memorypooling
    -mojo
    ...

    in der arbeit kommt aber genau das gegenteil. dinge wie "mach mal eben" implizieren, dass ich viele dinge suboptimal einhäcken soll. ich hab an so manchen stellen z.b. anstatt xml dateien, stumpfe txt dateien mit zahlenkolonen, unwartbar und mir eigentlich so peinlich, dass ich hoffe dass sie hier niemals jemand finden wird und mich darauf anspricht ;), aber nachdem ich jede woche eh ~16 unbezahlte und nicht sontige kompensierte überstunden habe und geradezu forciert werde es einfach fertig zu bekommen, weil es niemanden interresiert wie es fertig wird und man nicht an die zukunft denkt sondern "wir lösen das problem, wenn es aufkommt". ist es mir wirklich nicht wert irgend ein geniales konstrukt zu erstellen, das am nächsten tag mit "eigentlich brauchen wir das nicht, mach stattdessen mal eben..." verworfen wird.

    btw. deswegen code ich auch soviel in meiner freizeit, ich würde ohne wenigstens privat mein verlangen nach selbstverwirklichung zu befriedigen, bekloppt werden 😉

    rapso->greets();



  • Gregor@Home schrieb:

    Ich denke, je mehr Mathematik in einer Bibliothek verwirklicht ist, desto mehr Mathematik muss auch der Nutzer dieser Bibliothek kennen, um die Bibliothek wie vorgesehen nutzen zu können.

    das hängt davon ab ob das was der nutzer machen möchte etwas mathematisches is

    wenn ich ner bildverarbeitungs-bibliothek z.b. sage leg nen kreis mit dem radius
    100 über das bild, und zähl alle hellen kanten
    dann gib mir den abstand zwischen der ersten gefundenen im uhrzeigersinn
    und der ersten gegen den uhrzeigersinn

    da steckt einiges an mathe dahinter aber zur anwendung ist es überflüssig die
    formeln zu verstehn



  • wie wärs, wenn ihr das in nem anderen thread diskutiert??


Anmelden zum Antworten