Menü×

Der IT-Thread

  • #2021 Karl Klammer 16 Nov. 2022, 20:59

    Zitat von: Hexley

    Lernt man an der FHS oder der FOS was von Algorithmen und Datenstrukturen? :unsure:
    Gute Frage. Ich hatte zumindest an der AOS kein Informatik im Plan.

  • Mod/RDW
    #2022 Sylvester 16 Nov. 2022, 21:04

    Also ich hatte im Bachelorstudium z.B.

    • Programmieren I + II (Java und C++)
    • Algorithmen und Datenstrukturen
    • Betriebssysteme und da mit Linux-Systemprogrammierungsübungen angereichert
    • Datenbanken (Ok, brauch ich inzwischen weniger)
    • OpenGL-Programmierung (als Wahlpflichtfach)
    • Linux-Systemprogrammierung (nochmal seperat als Wahlpflichtfach)
    Im Master war ich an einer anderen Hochschule, aber auch da hatte ich interessante Module die ich frei wählen konnte, z.B.:
    • nochmal 3D-Grafik allerdings mit Shadern
    • Computational Geometry
    • Graphentheorie
    • Bildverarbeitung
    Also ich kann für mich sagen, dass mich das Studium schon weitergebracht hat. War aber auch FH-Studium, das worüber viele die Nase rümpfen (grundlos).

  • #2023 Karl Klammer 16 Nov. 2022, 21:10

    und als wie anstrengend würdest du allgemein das Studium bezeichnen? Einerseits hört man ja, dass Studenten so lange pennen wie der Drache und abseits von ein bisschen am WE zu kellnern nur Party machen. Oder hattest du permanent den arsch voll zu tun?

  • Mod/RDW
    #2024 BigBANG 16 Nov. 2022, 21:16

    Zitat von: Qu4rkey

    und als wie anstrengend würdest du allgemein das Studium bezeichnen? Einerseits hört man ja, dass Studenten so lange pennen wie der Drache und abseits von ein bisschen am WE zu kellnern nur Party machen. Oder hattest du permanent den arsch voll zu tun?
    Du musst dich im Studium selbst organisieren. Es kann in 6 Semestern mit einem 1er Schnitt durchgepeitscht werden, oder in 15 Semestern mit nem 3er Schnitt.
    Wenn man das Studium wie einen Job behandelt, dann kann man täglich 8 Stunden arbeiten. Man kann natürlich auch 4 Monate chillen und kurz vor der Prüfung versuchen alles nachzuholen (und dann 3 Prüfungen ausfallen lassen).

  • Mod/RDW
    #2025 Sylvester 16 Nov. 2022, 21:24

    Zitat von: Qu4rkey

    und als wie anstrengend würdest du allgemein das Studium bezeichnen? Einerseits hört man ja, dass Studenten so lange pennen wie der Drache und abseits von ein bisschen am WE zu kellnern nur Party machen. Oder hattest du permanent den arsch voll zu tun?
    Ich fand es eher interessant als anstrengend, zumindest im Bachelor, allerdings gab es auch viele Gesichter die man irgendwann eben nicht mehr gesehen hat. Und die Hörsäle in denen die Vorlesungen stattgefunden haben wurden auch eher kleiner je höher das Semester war.

  • Mod/RDW
    #2026 Sylvester 16 Nov. 2022, 21:33

    Hast du jetzt dein Pythonlernprogramm schon abgebrochen, oder kommt da noch was?

  • Mod/RDW
    #2027 BigBANG 16 Nov. 2022, 21:36

    *Hexley has been banned from the server*

  • #2028 Karl Klammer 16 Nov. 2022, 21:36

    Ich mach grad passives Lernen

  • #2029 pump3 16 Nov. 2022, 21:46

    Zitat von: Hexley

    Algorithmen sind nicht relevant bei deinem aktuellem Beruf? Algorithmen und Datenstrukturen doch das täglich Brot eines Informatikers.
    haha, nein.
    Also ja, aber genasowenig wie man seine eigenen Legosteine giesst, entwickeln die meisten Informatiker keine eigenen Algorithmen sondern nehmen die vorgefertigten.
    Zitat von: Qu4rkey
    Ich mach grad passives Lernen
    Gibts genauso sehr wie trockenes Wasser.
    Du betrügst dich grade selber: Lernen ist immer aktiv. Wenn du es nicht selbst machen/erklären kannst, dann hast du es nicht wirklich gelernt.
    Ich glaube du verwechselst wiedererkennen mit erinnern.
    Bsp: Du kannst ein Gesicht einfach wiedererkennen, aber nur ganz schwer mit allen details aufs Papier bringen weil die Erinnerung nicht da ist.

  • Mod/RDW
    #2030 Sylvester 16 Nov. 2022, 21:53

    Zitat von: pump3

    haha, nein.
    Also ja, aber genasowenig wie man seine eigenen Legosteine giesst, entwickeln die meisten Informatiker keine eigenen Algorithmen sondern nehmen die vorgefertigten.
    Aber es ist hilfreich wenn man den Unterschied zwischen einer std::unordered_map und std::map kennt, oder ob eine flat_map vielleicht noch besser wäre. Obwohl bei mir Programmieren II das bessere Algo. & Dat. war.

    Dieser Beitrag wurde von Sylvester am 16.11.2022 22:06:22 bearbeitet.
  • #2031 Genosse Lenin 16 Nov. 2022, 22:21

    Zitat von: Qu4rkey

    und als wie anstrengend würdest du allgemein das Studium bezeichnen? Einerseits hört man ja, dass Studenten so lange pennen wie der Drache und abseits von ein bisschen am WE zu kellnern nur Party machen. Oder hattest du permanent den arsch voll zu tun?
    Wo Abitur?

  • Mod/RDW
    #2032 BigBANG 16 Nov. 2022, 23:01

    Zitat von: Hexley

    Aber es ist hilfreich wenn man den Unterschied zwischen einer std::unordered_map und std::map kennt, oder ob eine flat_map vielleicht noch besser wäre. Obwohl bei mir Programmieren II das bessere Algo. & Dat. war.
    Gerade solche Dinge sind doch leicht zu googeln und hat man nach der Prüfung wieder vergessen. Dafür braucht’s kein Studium.

  • #2033 RichterinWinkelmann 16 Nov. 2022, 23:22

    Zitat von: BigBANG

    Gerade solche Dinge sind doch leicht zu googeln und hat man nach der Prüfung wieder vergessen. Dafür braucht’s kein Studium.
    Ich glaub es kommt auch sehr darauf an, was Du genau machst. Wenn Du bei Google an der Core Server Infrastructure arbeitest haben falsche Entscheidungen mehr Gewicht, als wenn Du irgendein System für Mittelständler XYZ mit maximal 100 gleichzeitigen Nutzern programmierst.
    Wobei die meisten ja schon damit hadern polynomiellen und exponentiellen Aufwand sauber unterscheiden zu können, bzw. zu erklären warum was welchen braucht.

  • #2034 Karl Klammer 17 Nov. 2022, 02:09

    Zitat von: Hexley

    Aber es ist hilfreich wenn man den Unterschied zwischen einer std::unordered_map und std::map kennt, oder ob eine flat_map vielleicht noch besser wäre. Obwohl bei mir Programmieren II das bessere Algo. & Dat. war.
    ich seh da immer nur sexual transmitted disease..

  • #2035 Karl Klammer 17 Nov. 2022, 02:20

    Zitat von: pump3

    haha, nein.
    Also ja, aber genasowenig wie man seine eigenen Legosteine giesst, entwickeln die meisten Informatiker keine eigenen Algorithmen sondern nehmen die vorgefertigten.

    Gibts genauso sehr wie trockenes Wasser.
    Du betrügst dich grade selber: Lernen ist immer aktiv. Wenn du es nicht selbst machen/erklären kannst, dann hast du es nicht wirklich gelernt.
    Ich glaube du verwechselst wiedererkennen mit erinnern.
    Bsp: Du kannst ein Gesicht einfach wiedererkennen, aber nur ganz schwer mit allen details aufs Papier bringen weil die Erinnerung nicht da ist.
    Was denkst du wie's mir ging, als mir die nötige Formel (oder eher) (nötige)n Befehle für "die Primzahlen bis 1000 ausgeben" nicht in den Sinn kam?

    Ja klar, immer num (die stetig +1 ist, bis 1000 öööhhh plus oder minus 1?) nehmen und ob man sie durch eine Zahl halb 1000 minus(oder plus) 1 dividieren kann, und wenn bei dessen Division eben 0 rauskommt, isses keine Primzahl und die Primzahlen, die dazwischen sind, werden ausgegeben..




    Ich will halt einfach nur lernen, wie es (zb mit python als Grundlage) geht, und dann selber austüfteln, was damit so alles möglich ist.*


    Und laut meinen Recherchen liegt "was damit so alles möglich ist" zwischen Elon Musketieres Jet tracken bis am CERN was steuern bzw zumindest die Daten jeder Protonenkollision im Teilchenbeschleuniger datenbankmäßig zu untersuchen bzw auszuwerten..





    * und wenn ich nun dafür zu blöd bin, ja dann [irgendeinen Sachverhalt in einem tupel einfügen, der absolut keinen Sinn ergibt], aufdass mich der Blitz beim scheißen print[list1)
    #Aktivitäten = [list1] trifft.

  • #2036 pump3 17 Nov. 2022, 02:36

    Zitat von: BigBANG

    Gerade solche Dinge sind doch leicht zu googeln und hat man nach der Prüfung wieder vergessen. Dafür braucht’s kein Studium.
    kannst ja die Suchergebnisse studieren, höhöhö
    Zitat von: Qu4rkey
    Was denkst du wie's mir ging, als mir die nötige Formel (oder eher) (nötige)n Befehle für "die Primzahlen bis 1000 ausgeben" nicht in den Sinn kam?

    Ja klar, immer num (die stetig +1 ist, bis 1000 öööhhh plus oder minus 1?) nehmen und ob man sie durch eine Zahl halb 1000 minus(oder plus) 1 dividieren kann, und wenn bei dessen Division eben 0 rauskommt, isses keine Primzahl und die Primzahlen, die dazwischen sind, werden ausgegeben..




    Ich will halt einfach nur lernen, wie es (zb mit python als Grundlage) geht, und dann selber austüfteln, was damit so alles möglich ist.*


    Und laut meinen Recherchen liegt "was damit so alles möglich ist" zwischen Elon Musketieres Jet tracken bis am CERN was steuern bzw zumindest die Daten jeder Protonenkollision im Teilchenbeschleuniger datenbankmäßig zu untersuchen bzw auszuwerten..





    * und wenn ich nun dafür zu blöd bin, ja dann [irgendeinen Sachverhalt in einem tupel einfügen, der absolut keinen Sinn ergibt], aufdass mich der Blitz beim scheißen print[list1)
    #Aktivitäten = [list1] trifft.
    Du bist nicht zu blöd dafür.
    Bzw. wir waren alle mal so blöd wie du.
    Das ist eine normale Wand, da musst du eben mit dem Kopf durch.
    Mit diesem passieven lernen meine ich vor allem populärwissenschaftliche Videos über eine Thema gucken und dann denken man kenne das Thema. Dann setzt man sich hin und versucht das "gelernte" anzuwenden und stellt fest dass das Hirn grade afk ist.
    Wenn mann stattdessen (oder darüberhinaus) auch aktives Lernen mit einbaut, sprich: Übungen machen, kleine Programme erstellen etc. Dann weiss man am Ende wirklich wie man das gelernte anwendet.

  • #2037 Karl Klammer 17 Nov. 2022, 02:46

    Das mit dem passiven Lernen war 1 Scherds. "heute".. also auf gregorianisch gesagt den 16.11.2022 herumlang, habe ich zum Teil damit verbracht, ob meine Fabriken im almost gleichnamigen Faktoriossini nun endlich mal gut genug bosizionird waren, um ohne mein Zutun zu machen, was ich verlange. Nämlich mehr "höhergradige" items produzieren und sie zum jeweiligen Vorgesetzten innerhalb der Produktionskedde zu versenden um dann das big X zu erzeugen..

    War alles nicht so das Wahre, deshalb machte ich mir auch mal wieder Gedanken um IQ und Leistungspotenz(oder "t"??? fak aller)ial , welches mir mit auf den, aus längst volljähriger Sicht, lang vergangenen und gut geebneten, Weg, gegeben wurde.




    Ich wette, die den Nebensatz eröffneneden Kommas stimmen nicht damit überein, wie @CIA es gerne hätte, um nach einem weiterenCHRMCHRM Komma, eben jenen Nebensatz wieder zu schließen/deckeln))))... genauso wie mit den Klammern für jedes print, int, str usw.



    Kleine Cryse über ein paar in den Gombjuder getippte Zeilen..

  • Mod/RDW
    #2038 Sylvester 17 Nov. 2022, 05:09

    Zitat von: Qu4rkey

    Was denkst du wie's mir ging, als mir die nötige Formel (oder eher) (nötige)n Befehle für "die Primzahlen bis 1000 ausgeben" nicht in den Sinn kam?

    Ja klar, immer num (die stetig +1 ist, bis 1000 öööhhh plus oder minus 1?) nehmen und ob man sie durch eine Zahl halb 1000 minus(oder plus) 1 dividieren kann, und wenn bei dessen Division eben 0 rauskommt, isses keine Primzahl und die Primzahlen, die dazwischen sind, werden ausgegeben..
    Eine der wichtigsten Fähigkeiten die du beim programmieren lernen musst ist es ein komplexes Problem in mehrere Teilprobleme aufzuteilen, wie eben hier: Dann beginnst du zuerst mit etwas was prüft ob die Zahl eine Primzahl ist, und wenn das klappt machst du im zweiten Schritt etwas was prüft welche Zahl bis 1000 eben eine Primzahl ist.

    Jetzt hast du als Lösung damals folgendes angegeben:
    Python:
    print("This calculator will tell you wether an integer in a range of integer you've chosen is a prime number or not.\n"
          "If it's not a prime number it will tell you the smallest number the integer can be divided by as well as the result.\n")
    s = input("Choose a number to start with:\n")
    f = input("Choose a final number to calculate with:\n")
    print("\n")
    for i in range(int(s),int(f)+1):
        for b in range(2, int(i/2)+1):
            if i % b == 0:
                r = i / b
                print(str(i)+" is not a prime number because it can be divided by "+str(b)+".\nThe result is "+str(r))
                break
        else:
            print(str(i)+" is a prime number because any other division of "+str(i)+" except by 1 and "+str(i)+" would result in a float.")

    Kann man machen, ist auch gültiger Code, versteh ich jetzt nicht auf Anhieb was das macht.

    Ich hätte diesen Teil hier in eine extra Funktion ausgelagert, allerdings ohne diese print-Statements, obwohl die dir natürlich für das Debugging helfen:
    Spoiler
    Python:
    def is_prime(i: int) -> bool:
        for b in range(2, int(i/2)+1):
            if i % b == 0:
                r = i / b
                # print(str(i)+" is not a prime number because it can be divided by "+str(b)+".\nThe result is "+str(r))
                return False
        else:
            # print(str(i)+" is a prime number because any other division of "+str(i)+" except by 1 and "+str(i)+" would result in a float.")
            return True
    Jetzt kommt aber das Aha:
    Ich sehe auch viele ausgelernte/studierte Softwareentwickler, die alles in einer Mega-Funktion verwursteln. Bei diesem Beispiel ist das noch alles relativ überschaubar, aber ich habe auch schon mehrfach mit if und for verschachtelte Funktionen gesehen, die am Schluss mehrere hundert Zeilen haben. Sowas ist dann unwartbar.

    Mal eine Real-Life Story:
    Ich nutze in meinem derzeitigem C++-Projekt ein Tool namens clang-tidy, das kann einem u. a. die "cognitive complexity" einer Methode mit einer Kennzahl veranschaulichen. Je mehr verschachtelte if, for, ... man hat desto höher ist dann die Kennzahl. Die Grenze kann man einstellen und ist jetzt standardmäßig bei 25. Und eine Methode vom Code des Kollegen dessen Quellcode ich jetzt bearbeiten muss hat für eine Funktion eine Kennzahl 180. Eine totale Katastrophe. Aber auch der restliche Quellcode ist eine Katastrophe die wir jetzt neuschreiben dürfen.

  • Mod/RDW
    #2039 BigBANG 17 Nov. 2022, 10:45

    Zitat von: Hexley

    Eine der wichtigsten Fähigkeiten die du beim programmieren lernen musst ist es ein komplexes Problem in mehrere Teilprobleme aufzuteilen, wie eben hier: Dann beginnst du zuerst mit etwas was prüft ob die Zahl eine Primzahl ist, und wenn das klappt machst du im zweiten Schritt etwas was prüft welche Zahl bis 1000 eben eine Primzahl ist.

    Jetzt hast du als Lösung damals folgendes angegeben:
    Python:
    print("This calculator will tell you wether an integer in a range of integer you've chosen is a prime number or not.\n"
          "If it's not a prime number it will tell you the smallest number the integer can be divided by as well as the result.\n")
    s = input("Choose a number to start with:\n")
    f = input("Choose a final number to calculate with:\n")
    print("\n")
    for i in range(int(s),int(f)+1):
        for b in range(2, int(i/2)+1):
            if i % b == 0:
                r = i / b
                print(str(i)+" is not a prime number because it can be divided by "+str(b)+".\nThe result is "+str(r))
                break
        else:
            print(str(i)+" is a prime number because any other division of "+str(i)+" except by 1 and "+str(i)+" would result in a float.")

    Kann man machen, ist auch gültiger Code, versteh ich jetzt nicht auf Anhieb was das macht.

    Ich hätte diesen Teil hier in eine extra Funktion ausgelagert, allerdings ohne diese print-Statements, obwohl die dir natürlich für das Debugging helfen:
    Spoiler
    Python:
    def is_prime(i: int) -> bool:
        for b in range(2, int(i/2)+1):
            if i % b == 0:
                r = i / b
                # print(str(i)+" is not a prime number because it can be divided by "+str(b)+".\nThe result is "+str(r))
                return False
        else:
            # print(str(i)+" is a prime number because any other division of "+str(i)+" except by 1 and "+str(i)+" would result in a float.")
            return True
    Jetzt kommt aber das Aha:
    Ich sehe auch viele ausgelernte/studierte Softwareentwickler, die alles in einer Mega-Funktion verwursteln. Bei diesem Beispiel ist das noch alles relativ überschaubar, aber ich habe auch schon mehrfach mit if und for verschachtelte Funktionen gesehen, die am Schluss mehrere hundert Zeilen haben. Sowas ist dann unwartbar.

    Mal eine Real-Life Story:
    Ich nutze in meinem derzeitigem C++-Projekt ein Tool namens clang-tidy, das kann einem u. a. die "cognitive complexity" einer Methode mit einer Kennzahl veranschaulichen. Je mehr verschachtelte if, for, ... man hat desto höher ist dann die Kennzahl. Die Grenze kann man einstellen und ist jetzt standardmäßig bei 25. Und eine Methode vom Code des Kollegen dessen Quellcode ich jetzt bearbeiten muss hat für eine Funktion eine Kennzahl 180. Eine totale Katastrophe. Aber auch der restliche Quellcode ist eine Katastrophe die wir jetzt neuschreiben dürfen.
    Deshalb sollte man nur mit IQ 130 C++ coden. Wieder keiner.

  • #2040 pump3 17 Nov. 2022, 11:04

    Zitat von: BigBANG

    Deshalb sollte man nur mit IQ 130 C++ coden. Wieder keiner.
    si3gftG.jpg


    Man kann aber auch mit Python Spass haben, man muss sich nur ein wenig mehr anstrengen:
    0Qw52eC.jpg


    s28zf8y4pea91.gif