Zitat von: Hexley
Der IT-Thread
-
#2021 Karl Klammer 16 Nov. 2022, 20:59Lernt man an der FHS oder der FOS was von Algorithmen und Datenstrukturen?Gute Frage. Ich hatte zumindest an der AOS kein Informatik im Plan.
-
Mod/RDW
#2022 Sylvester 16 Nov. 2022, 21:04Also 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)
- nochmal 3D-Grafik allerdings mit Shadern
- Computational Geometry
- Graphentheorie
- Bildverarbeitung
-
#2023 Karl Klammer 16 Nov. 2022, 21:10und 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:16Zitat 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:24Zitat 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:33Hast du jetzt dein Pythonlernprogramm schon abgebrochen, oder kommt da noch was?
-
Mod/RDW
-
-
#2029 pump3 16 Nov. 2022, 21:46Zitat 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: Qu4rkeyIch mach grad passives LernenGibts 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:53Zitat von: pump3
haha, nein.Aber es ist hilfreich wenn man den Unterschied zwischen einer
Also ja, aber genasowenig wie man seine eigenen Legosteine giesst, entwickeln die meisten Informatiker keine eigenen Algorithmen sondern nehmen die vorgefertigten.std::unordered_mapundstd::mapkennt, oder ob eineflat_mapvielleicht 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:21Zitat 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:01Zitat von: Hexley
Aber es ist hilfreich wenn man den Unterschied zwischen einerGerade solche Dinge sind doch leicht zu googeln und hat man nach der Prüfung wieder vergessen. Dafür braucht’s kein Studium.std::unordered_mapundstd::mapkennt, oder ob eineflat_mapvielleicht noch besser wäre. Obwohl bei mir Programmieren II das bessere Algo. & Dat. war. -
#2033 RichterinWinkelmann 16 Nov. 2022, 23:22Zitat 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:09Zitat von: Hexley
Aber es ist hilfreich wenn man den Unterschied zwischen einerich seh da immer nur sexual transmitted disease..std::unordered_mapundstd::mapkennt, oder ob eineflat_mapvielleicht noch besser wäre. Obwohl bei mir Programmieren II das bessere Algo. & Dat. war. -
#2035 Karl Klammer 17 Nov. 2022, 02:20Zitat von: pump3
haha, nein.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?
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.
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 beimscheißenprint[list1)
#Aktivitäten = [list1] trifft. -
#2036 pump3 17 Nov. 2022, 02:36Zitat 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: Qu4rkeyWas 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?Du bist nicht zu blöd dafür.
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 beimscheißenprint[list1)
#Aktivitäten = [list1] trifft.
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:46Das mit dem passiven Lernen war 1 Scherds. "heute".. also auf gregorianisch gesagt den 16.11.2022 her
umlang, 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:09Zitat 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?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.
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..
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 dieseprint-Statements, obwohl die dir natürlich für das Debugging helfen:
Jetzt kommt aber das Aha: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
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 mitifundforverschachtelte 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 verschachtelteif,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:45Zitat 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.Deshalb sollte man nur mit IQ 130 C++ coden. Wieder keiner.
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 dieseprint-Statements, obwohl die dir natürlich für das Debugging helfen:
Jetzt kommt aber das Aha: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
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 mitifundforverschachtelte 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 verschachtelteif,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. -


