Wofür das alles?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
serum
User
Beiträge: 3
Registriert: Donnerstag 5. Februar 2015, 01:22

Guten Abend/oder Morgen! (Je nachdem)

Mein Problem ist im Moment überhaupt nicht zu fassen und passt vielleicht auch gar nicht in dieses Forum.

Ich habe vor ein paar Monaten meinen Master in Informatik in Kiel abgelegt und bin vor ca. einer Woche dermaßen in eine Krise gestürzt, dass es mir nichtmal peinlich ist, mich extra deswegen nocheinmal hier registriert zu haben. Wie gesagt, habe ich den Master in Informatik, bin aber dennoch unfähig zu erklären, wir programmieren eigentlich wirklich funktioniert.
Informatik ist (für mich, auch im Nachhinein) kein sehr einfaches Studium und umso schwerer wiegt die Last, die momentan auf mir liegt.

Wir alle (die sich mit Informatik und im Zuge dessen auch mit Programmierung auseindander setzen) lernen so einiges darüber, was es da so alles gibt. Ob Java, Python, C, C++, Delphi etc. und die Eigenheiten/Vor- und Nachteile/Einsatzgebiete einer jeden Sprache. Das war für mich übrigens der Anfang dessen, was mich überhaupt dazu gebracht hat, diesen Post zu formulieren. Aber egal.

Ich werde nie vergessen, wie peinlich es mir vor meinen Abi-Freunden war zu gestehen (!), dass wir mit Dr. Racket (Scheme) zu tun haben in unseren Kursen und Seminaren. Ich bin dafür tatsächlich ausgelacht worden (war immer als Scherz gemeint, aber trotzdem) und dass es eine relativ einfache Sprache ist und sie deshalb vermehrt an Universitäten Einsatz findet etc., während die Freunde von mir sofort mit C, Delphi (zB Innsbruck od. Linz) losgelegt haben und die ärgsten Sachen abgeliefert haben nach kürzester Zeit und ich mit DR. RACKET immer noch am Listen- und Bäumebasteln war... Egal, das ist ja noch immer nicht mein Kernproblem.

Letztens habe ich meine Freunde getroffen (alte Zeiten, etc) und jemand in der Runde hat sich erkundigt bzw. Informatikstudium (war irgendein Dazugestoßener). Da ging es dann um Libraries, Module, Erweiterungen etc.

Und jetzt: Keiner von uns (keiner, abzüglich des pseudo-überdeckenden Geschwafels unsererseits) war in der Lage zu erklären, wie es überhaupt dazu kommt, dass man Libraries, Module und Erweiterungrn zur Hand hat, wenn man doch selbst programmiert!!!!!

Niemand konnte auch nur irgrndwie erklären, wie es dazu kommt, dass man Programme hat, mit denen man programmiert, um andere Programme zu programmieren und trotzdem auf MODULE, LIBRARIES etc zugreift und sich dann super toll vorkommt...

In diesem Moment hatte ich einen so unbeschreiblichen, fast pathologischen Hass auf die Uni, die Professoren, Dozenten und mein Leben generell (bin 28). Wie kann es denn sein, dass keiner von uns in der Lage war, auch nur irgendwie zu erklären, was wir da eigentlich die ganzen Jahre getan haben? Wer schreibt denn die Module? Was ist denn dann ECHTES Programmieren???

Ich kann mich erinnern, dass mal einer bei uns im ersten Semester mal gefragt hat, was passiert, wenn man den Computer einschaltrt. Unmittelbar danach. Der wollte das schritt für Schritt erklärt haben.

Alle haben gelacht, ich wahrscheinlich am lautesten. Aber jetzt mal im Ernst;

Wie kann es sein, das ich nicht weiß, was passiert, nachdem ich den Computer einschalte, bis zum SystemLogin?

Was passiert, wenn ich den Knopf drucke? Wer hat denn all diese GRUNDLaGEN überhaupt programmiert, mit denen wir dann programmieren können? Womit wurde denn Java, C, Python etc. überhaupt programmiert?????

Im Moment ist das für mich so:
Pc Knopf drücken....
Strom geht rein....
??????
??????
?????
Windows/Linux wtf Login Bildschirm
Dann erst kann ich anfangen, zu programmieren.

Bitter, oder? Tja. Hab einen Master.

Tut mir leid, wenn das alles wie ein Haufen Müll klingt, aber ich bin mit den Nerven echt fertig seit dem Abend.

Sorry für das Gejammere.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Uraltes Problem:
"Da steh ich nun, ich armer Tor, und bin so klug als wie zuvor.", Goethe
Mathematiker können nicht rechnen.
Maschinenbauer können kein ganzes Auto bauen.
Germanisten können keine Bücher schreiben.
Politologen werden nicht ins Parlament gewählt.
Nach dem Physikstudium, wusste ich nichts über Relativitätstheorie und Kernspaltung. Aber wirklich jeder meiner Physik-Komilitonen konnte programmieren.

Ich glaube nicht, dass man Programmieren lehren kann. Ich habe Java-Kurse gehalten. Die einen haben niemals begriffen wie Programmieren geht und die anderen hätten es mit einem Buch genauso gut selbst lernen können. Programmieren lernt man beim Programmieren, aber nicht jeder. Das ist wie mit dem Schreiben, es gibt Leute die können Geschichten und Artikel schreiben und andere lernen es nie. Das Studium hat Dir aber eigentlich genug Zeit gegeben, dass Du neben den Vorlesungen verschiedene Dinge hättest ausprobieren können (Python, Java, Apache, Eclipse, ...).

Ist der Schock mal vorbei, finden dann die meisten aber doch noch eine geeignete Aufgabe (Mathematiker werden Finanzberater, Physiker gehen zu SAP oder in die Politik, Germanisten werden IT-Spezialisten, ...).
a fool with a tool is still a fool, www.magben.de, YouTube
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich denke man könnte allgemein besser dafür sorgen, das man untersucht ob eine Person überhaupt geeignet für ein bestimmtes Studium ist oder nicht. Halt mit einer Aufnahme Prüfung oder so.
Aber was haben wir? Zig Studienfächer bei den man sich einfach "einschreiben" muß und los geht es. Ist klar, das da viele nicht für geeignet sind und irgendwann aufhören.

Warum ist das so? Weil die Uni/FH für jeden der sich einschreibt im Prinzip Geld bekommt. Von daher haben die kein Interesse daran, groß auszusieben. Die Politik will auch, das viele Studieren können, statt z.B. Arbeitslos zu sein.

Beim gesamten Bildungssystem ist so einiges im Argen :(
Geht mit Kingergarten/Grundschule schon los und hört bei Ausbildung/Studium auf...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Das sind doch alles Fragen, die du dir mit "ein wenig" lesen selbst beantworten kannst. Wenn nicht, dann hättest du ein ganz anderes und viel größeres Problem. Abitur und Uni sind ja gerade nicht dazu da, dass dir Unmengen an trivialem Wissen beigebracht werden und dass alles abgehandelt wird, was es so gibt. Mal ganz davon abgesehen, dass das gar nicht geht. Der ganze Spaß ist dazu gedacht, dass dir das nötige Handwerkszeug und Basiswissen vermittelt wird, damit du dir solche Dinge ggf. selbst beibringen kannst.
Das Leben ist wie ein Tennisball.
serum
User
Beiträge: 3
Registriert: Donnerstag 5. Februar 2015, 01:22

Hallo!

Vielen Dank erstmal für die schnellen Antworten. Das klingt schon alles sehr plausibel und nachvollziehbar, aber trivial scheint mir mein Problem dann doch nicht zu sein.

Von den Antworten ist keine auf die Frage meines Posts eingegangen und bevor eine Antwort kam, wurde er 36 mal gelesen, es scheint sich dann doch nicht nur auf mich zu beschränken...

Es ist schon peinlich genug, dass ich das überhaupt gepostet habe, aber diese Profilierungstexte haben mich eben genau dahin gebracht: viel zu sagen, um eigentlich gar nichts zu sagen. Das hilft mir nicht.

In der Hoffnung, dass es mir jemand erklären kann: auf bald!

Trotzdem aber nochmal danke für die Antworten, ich weiß das trotzdem zu schätzen, es war halt einfach nichtmal im Ansatz eine brauchbare Antwort dabei.

Lg
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Wenn du wirklich den Rechner als solches verstehen willst, dann mußt du halt mit den Grundlagen anfangen.

Für mich war es hilfreich einen Emulator zu programmieren:
* http://www.python-forum.de/viewtopic.php?f=1&t=32089
* https://github.com/jedie/DragonPy

Ist viel Arbeit und nicht leicht. Aber damit muß man sich wirklich mit den kleinsten Einheiten auseinander setzten...

EDIT: Vielleicht auch hilfreich: http://www.python-forum.de/viewtopic.php?f=5&t=35013

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Was erwartest du denn für Antworten? Sollen dir hier jetzt persönlich erklärt werden, wie all die Dinge funktionieren? Damit können - und sind - ganze Vorlesungen und Bücher gefüllt, das will dir hier sicher keine noch einmal nacherzählen. Wenn es dich jetzt interessiert, dann musst du dir das ganze Wissen eben nun aneignen. Fang mit Wikipedia an, benutze eine Suchmaschine deiner Wahl und kauf dir Bücher zu den Themen.

MagBen hatte es schon ganz am Anfang angesprochen: Wenn die entsprechenden Kurse bei dir nicht angeboten wurden, dann hattest du nebenher genug Zeit dich damit zu beschäftigen. Ich habe eher das Gefühl, dass es dir an Eigeninitiative fehlt und dass du am liebsten vorgekaut hättest.
Das Leben ist wie ein Tennisball.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

serum hat geschrieben:Womit wurde denn Java, C, Python etc. überhaupt programmiert?????
http://en.wikipedia.org/wiki/Bootstrapp ... mpilers%29
serum hat geschrieben:Im Moment ist das für mich so:
Pc Knopf drücken....
Strom geht rein....
??????
??????
?????
Windows/Linux wtf Login Bildschirm
Dann erst kann ich anfangen, zu programmieren.
Die Zeiten in denen ein Einzelner ein komplexes System wie ein Auto, Flugzeug oder PC noch vollständig überblicken kann, sind schon viele Jahrzehnte vorbei. Such Dir eine Nische und werde darin gut. Es gibt viele IT-Nischen, die sich überhaupt nicht mit dem Booten eines Rechners befassen.
jens hat geschrieben:Ich denke man könnte allgemein besser dafür sorgen, das man untersucht ob eine Person überhaupt geeignet für ein bestimmtes Studium ist oder nicht.
Ich finde es wird in der Schule viel zu viel untersucht, wofür jemand geeignet ist und wofür nicht. Die Lehrer sollten mehr unterrichten anstatt zu prüfen, zu werten und die Schüler zu filtern.
Zuletzt geändert von MagBen am Donnerstag 5. Februar 2015, 11:11, insgesamt 1-mal geändert.
a fool with a tool is still a fool, www.magben.de, YouTube
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

serum hat geschrieben:Wie kann es sein, das ich nicht weiß, was passiert, nachdem ich den Computer einschalte, bis zum SystemLogin?
Ich bin jetzt seit den 80er-Jahren in der IT-Branche und ich weiß es auch nicht. Ich habe ungefähr eine Idee über den Ablauf und beim C=64 war es auch noch etwas mehr als eine Idee. Was aber tatsächlich im Prozessor passiert weiß ich auch nicht.

Ich hatte aber auch nie das Gefühl, das unbedingt wissen zu müssen. Ich habe auch keine Ahnung davon wie ein CD-Player oder eine Mikrowelle genau funktionieren und trotzdem benutze ich sie einfach und mache mir keinen Kopf darum.

Wenn du deinen Master gemacht hast, dann solltest du an Recherche und eigenständiges Arbeiten gewöhnt sein. Wenn dir das genaue Wissen um die Vorgänge so wichtig ist kannst du dir doch einfach entsprechende Fachliteratur suchen und durcharbeiten.
BlackJack

@serum: Scheme ist eine einfache Sprache was Syntax und Semantik angeht, aber eine sehr flexible und mächtige Sprache. Wer die auslacht hat keine Ahnung. Es ist auch eine gute Sprache zum Programmieren lernen. `Structure and Interpretation of Computer Programs` ist ein Standardwerk das Scheme verwendet und wirklich viele Aspekte mit der Sprache rüberbringt die man als Programmierer drauf haben sollte.

C oder Delphi sind keine Sprachen mit denen man auch nur annähernd umfassend lernen kann was mit Programmiersprachen möglich ist. Wer nur diese Sprachen kann, auch wenn er damit schon „echte” Projekte umgesetzt hat, hat einen beschränkten Horizont. Selbst wenn man diese Sprachen dann täglich einsetzt, fehlt einem etwas. Sowohl das lernen von objektorientierter Programmierung als auch funktionale Programmierung haben meine Art in C zu programmieren nachhaltig beeinflusst.

Deine Frage bzw. Fragen sind entweder zu schwammig („Wofür das alles?”) oder echt zu trivial oder zu rhetorisch. Wenn Du noch nicht einmal eine konkrete Frage stellen kannst (ausser denen die man sich selbst beantworten können sollte wenn man recherchiert), wie kannst Du dann eine konkrete Antwort erwarten?

Bibliotheken hat man zur Hand weil die jemand programmiert und zur Verfügung gestellt hat und weil man sich die Arbeit nicht unnötig noch mal machen will. Wenn man Deine Frage weitertreiben möchte, kann man sich ja auch fragen warum man überhaupt ein Betriebssystem benutzt, wo man doch selber programmiert. Sollte man wenn man beispielsweise einen Schneelastrechner programmieren möchte, nicht erst einmal anfangen Code zu schreiben der das Programm von der Platte bootet, die Grafikkarte so programmiert das man Text ausgeben kann, dann die Tastatur auf Hardware-Ebene abfragt, und so weiter. Wie lange mag das wohl dauern im vergleich zum ”normalen” Programmieren. Oh, und es läuft dann als einziges auf einem Rechner, weil ja nur dieses Programm gebootet wird, für mehr bräuchte man ein Betriebssystem, und alle Rechner auf denen das läuft müssen von der Hardware zumindest sehr ähnlich sein, weil die Textausgabe und die Tastaturabfrage ja an diese spezielle Hardware gekoppelt sind. Damit wären wir dann ungefähr beim Stand der Entwicklung vor den Heimrechnern in den 1980ern, denn die hatten in der Regel schon ein kleines Betriebssystem gegen das man programmiert hat, auch wenn man da oft noch dran vorbeiprogrammierte.

Wenn Du wissen willst was direkt nach dem Einschalten eines Rechners passiert dann mach Dich da halt schlau. Entweder mit einem Heimrechner aus den 80ern, die sind übersichtlich und heutzutage echt gut dokumentiert. Oder mit einem PC, die sind deutlich umfangreicher, aber die Standardhardware ist auch gut dokumentiert und es gibt quelloffene Betriebssysteme an denen Du das alles im Detail nachlesen und nachvollziehen kannst. Wir haben in der Uni Minix verwendet und zum Beispiel einen Maustreiber für den PS/2-Anschluss programmiert, oder eine Speicherverwaltung die `malloc()`- und `free()`-Aufrufe zur Verfügung stellte. Man kann aber natürlich auch mit Linux etwas nehmen was tatsächlich grossflächig im Einsatz ist. Wenn man Hardware ohne Betriebssystem programmieren möchte bieten sich neben den Heimrechnern aus den 80ern Mikrocontroller an, zum Beispiel was so auf Arduinos verbaut ist. Da schliesst man dann irgendwelche Sensoren an und lernt wie man Datenblätter liest und wie einfache Bussysteme funktionieren.

Zum Thema „echte Programmierer”: https://xkcd.com/378/ :-)

Das Du nicht im Detail weisst was vom Einschalten bis zum Login alles passiert kann sein weil das mittlerweile alles sehr komplex ist. Ich habe mit dem C64 angefangen und wusste was da alles passiert vom Einschalten bis der blinkende Cursor auf eine Eingabe vom Benutzer wartet. Das ist heute aber deutlich mehr weil viele Abstraktionsschichten dazwischen gekommen sind. Was Du machen kannst, oder zumindest nach einem Studium können solltest, ist Dir die Teile die Dich interessieren zu erarbeiten. Das braucht aber Zeit. Mehr als man in einem Studium zur Verfügung hat. Und das konkrete Wissen veraltet schnell — den Maustreiber für den PS/2-Anschluss kann man bei vieler aktueller Hardware gar nicht mehr gebrauchen. Also ist es auch nur bedingt sinnvoll in einem Studium so sehr in die Details zu gehen sondern mehr die Fähigkeit zu vermitteln sich selbständig in Themen einzuarbeiten, dann wenn man sie benötigt.
Benutzeravatar
sparrow
User
Beiträge: 4189
Registriert: Freitag 17. April 2009, 10:28

Zwei Sachen fallen mir zu dem Thema ein. Keine Ahnung ob das passt.

  • Ich habe nie etwas mit Informatik bis zum Ende studiert, aber ich war außerordentlich überrascht, wie viel Mathematik dort Voraussetzung war. Ich bin keine große Leuchte in Mathe (was vor allem daran liegt, dass ich es schlicht nicht besonders oft brauche und Regel vergessen werden). Trotzdem programmiere ich seit vielen Jahren privat und beruflich. Das was ich dafür an Mathe brauche ist keine Herausforderung und steht in gar keinem Verhältnis zu dem was da manchmal prophezeit wurde.
  • Meine Schulzeit ist schon eine ganze Weile her, trotzdem finde ich es ein bisschen ärgerlich, dass ich zwar mal in der Schule gelernt habe wie ein Verbrennungsmotor funktioniert (das Wissen brauche ich wahrscheinlich nie), aber das Wissen über Computer und deren Funktionsweise wurde nich vermittelt. Keine Ahnung ob sich das in den letzten 20 Jahren geändert hat, aber diese Technik nimmt immer mehr Platz im Leben ein, und Kinder sollten möglichst früh lernen wie die Geister in der Maschine funktionieren. Ich kenne Leute ohne Auto - die Anzahl der Leute, die kein Gerät haben auf dem Daten verarbeitete werden tendiert da eher gegen 0.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

sparrow hat geschrieben:Das was ich dafür an Mathe brauche ist keine Herausforderung und steht in gar keinem Verhältnis zu dem was da manchmal prophezeit wurde.
Das hängt sehr stark vom zu bearbeitenden Problem ab.
Das Leben ist wie ein Tennisball.
serum
User
Beiträge: 3
Registriert: Donnerstag 5. Februar 2015, 01:22

Hallo!

Da ist ja ganz schnell was dazugekommen. Vielen Dank nochmal.

Es ist schon richtig, dass der Thread grundsätzlich zu schwammig formuliert und viel zu emotional war (super Voraussetzung!!!). Insofern können auch gar keine konkreten Antworten kommen, das ist schon richtig und tut mir leid.

Trotzdem kann ich mit den Informationen hier eine Menge anfangen und möchte mich nochmal bedanken (Jens, Der Herr aus den 80ern und auch die anderen) und wenn ich jetzt darüber nachdenke, fühlt sich das nicht mehr so schimm und enttäuschend an.

Selbstverständlich lag dabei überhaupt nichts an der Uni oder sonstwem; es ist ja auch klar, dass man selbstständig und ein Eigenregie das meiste übernimmt und lernen muss, das funktioniert ja sonst gar nicht. Es war einfach nur dieses Gefühl an dem Abend, plötzlich überhaupt keine "wirkliche" Ahnung gehabt zu haben. So als würde man eine Lehre als Mechaniker beginnen und als erstes mit der Konstruktion einer Zündkerze beginnen. Ohne wirkliche Grundlagen.

Ich kann mir das aneignen, es ist jetzt auch wieder alles ok, es war einfach nur ein unerträglicher Moment, weil ich dachte, ich sollte das eigentlich als Master bis ins Kleinste erklären können (jetzt am Beispiel des eigentlichen Starprozesses etc) an diesem einen Abend. Es hat mich einfach runtergezogen. So, bevor es jetzt noch kindischer und unappetitlicher wird: vielen Dank euch allen nochmal für die prompten Antworten. Wirklich! Danke!

Lg
Benutzeravatar
sparrow
User
Beiträge: 4189
Registriert: Freitag 17. April 2009, 10:28

EyDu hat geschrieben:
sparrow hat geschrieben:Das was ich dafür an Mathe brauche ist keine Herausforderung und steht in gar keinem Verhältnis zu dem was da manchmal prophezeit wurde.
Das hängt sehr stark vom zu bearbeitenden Problem ab.
Absolut richtig. Ein mathematisches Problem kann ich nur lösen wenn ich die Mathematik dahinter verstehe. Das ist aber bei allen Problemen so. Wenn ich ein Programm schreibe, dass einem Logistik-Unternehmen dabei helfen soll bestimmte Entscheidungen über die Verladung zu treffen, muss ich auch deren Abläufe und Kriterien verstehen. Das kann am Ende ein mathematischen Problem sein, muss es jedoch nicht zwangsläufig.

Ich habe mal angefangen Kurse für Interessierte zu geben, die einfach nur ins Programmieren hinein schnuppern wollten. Es war sehr auffällig, dass sich viele Lehrbücher in Beispiele verloren, die sich nur schwer in der Realität wiederfinden ließen. Also mit Beispielen wie "dieser Index braucht n-1 Durchläufe im Mittel." Gut, die Leute waren nicht wirklich das Zielpublikum der Bücher, aber als ich dann mit dem Karteikasten aus der Bücherei angefangen habe, da hatten sie zumindest eine Idee davon wie ein Index funktioniert.
Ich bin ja dafür immer alles für Kinder zu erklären. Erwachsene sollten das dann auch verstehen ;)

Schweif ich ab? War Absicht :)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Das mit Mathe<->Informatik hab ich auch nie verstanden.
Wie schon festgestellt wurde, kommt es auf das Problem an...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@jens & @sparrow: Ich glaube ihr verwechselt "Themen / Teilbereiche aus der Mathematik" mit der "Mathematik als ganzes"! Informatik besteht ja auch nicht nur aus der Softwareentwicklung, sondern diese ist nur *ein* Teil davon, den man aber eben *nicht* vollständig aus dem Gesamtkomplex herauslösen kann. Genauso ist das mit der Mathematik. Man braucht *vieles* aus verschiedenen Gebieten der Mathematik, um Softwareentwicklung i.A. betreiben zu können. Für andere Themen aus der Informatik braucht es wiederum andere Mathematik, teilweise aber auch dieselbe. Dennoch ist es schwer, das kleinste gemeinsame Vielfache der Mathematik für ein Studium der Informatik zu extrahieren, eben weil Informatik an sich auch extrem vielseitig ist.

Aus diesem Grund gibt es ja ein "Grundstudium", welches jedem Informatiker eine solide Basis an Grundlagen schaffen soll. Im Hauptstudium (Master?) findet zumeist auch eine Spezialisierung statt. Für diese werden dann separat benötigte Grundlagen vermittelt, die *nicht* jeder Informatiker benötigt.

Aber imho braucht es schon einiges an Mathematik, um ein solides Fundament für die Grundlagen der Informatik zu schaffen (ohne die man eben auch keine Softwareentwicklung betreiben kann!). Ob man nun "Differentialrechnung" zu den Grundlagen zählt oder nicht, darüber kann man natürlich vortrefflich streiten. Aber es gibt schon viele Aspekte, ohne die man sich schwer tun wird, grundlegende Themen der Informatik zu erfassen.

Ich werfe mal alleine das Thema Zeitkomplexität in den Raum... da sollte man schon wissen, was ein Logarithmus ist ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@jens: Die Informatik ist aus der Mathematik hervorgegangen. Das ist im Grunde angewandte Mathematik. Wobei Mathe hier nicht unbedingt das Rechnen in der Schule meint, sondern eher so Logik, Grammatiken, Graphentheorie, Mengenlehre, und so weiter. Und diese Sachen findet man eigentlich auch ständig in der Anwendung — wenn man nicht CRUD-Oberflächen programmiert mit wenig bis gar keiner Programmlogik. Wobei selbst dort ist es sehr nützlich sein kann das relationale Modell und die dahinterstehende Mengenlehre verstanden zu haben wenn ein RDBMS involviert.

@sparrow: Bei Entscheidungen zur Verladung bei einem Logistikunternehmen hat man doch in der Regel mit einem Optimierungsproblem und/oder Graphenalgorithmen zu tun‽ Welches Zeitveralten bei verschiedenen Operationen auf Datenstrukturen anfallen kommt in der Realität doch auch ständig vor. Danach wählt man schliesslich aus welche Datenstrukturen man verwendet um ein Problem zu lösen. Und sei es nur die Wahl zwischen Liste, Wörterbuch, und Mengentyp. Ab und zu hat man dann aber auch Probleme wo man eine Queue braucht, oder eine Heap-Struktur. Wie sollte man ohne Wissen um das Laufzeitverhalten die richtige Wahl treffen?

@allgemein: Insgesamt lehrt einem die Mathematik im Informatikstudium auch strukturiert an ein Problem heran zu gehen und das sauber und exakt formal auszudrücken. Nichts anderes macht man am Ende ja mittels einer Programmiersprache um einen Lösungsweg exakt und formal für den Rechner zu beschreiben. Oder zum Beispiel bei deklarativen Ansätzen das Ergebnis mit Eigenschaften und Bedingungen so zu beschreiben das der Rechner den Lösungsweg von den Ausgangsdaten zum beschriebenen Ergebnis finden kann.
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ein "reines" Informatik-Studium soll schon ein bißchen mehr vermitteln als ein VHS-Kurs zum Thema Programmieren. Nach dem Studium sollen die Absolventen (idealerweise) fähig sein, sich von der Methodik her relativ zügig in alle möglichen Themenbereiche der Informatik einarbeiten zu können. Da geht es nicht darum, ein paar Zeilen PHP-Code hinklatschen zu können. Daher ist die Mathematik entsprechend wichtig.

Klar gibt es bestimmt auch etliche Studenten, die einfach nur programmieren möchten. In dem Fall sollte man sich aber besser eine Ausbildung zum Programmierer aussuchen oder von Anfang an etwas studieren, was mehr mit angewandter Programmierung zu tun hat. Beispiele wären Wirtschaftsinformatik oder ein Studienfach, wo man halt ein paar IT-bezogene Kurse dazuwählen kann. Da kommt man dann immer noch (mitunter nicht zu knapp) mit Mathematik in Berührung, aber man sieht möglicherweise eher den praktischen Zusammenhang zur später gewünschten Tätigkeit.

Es ist halt das typische Problem bei der Wahl des Studienfachs: Oftmals hat man ganz andere Vorstellungen von dem, was man sich ausgesucht hat und wird dementsprechend enttäuscht von seinem Studium sein. Wenn man so etwas merkt, dann sollte man sein Studium IMHO aber auch früher oder später abbrechen, anstatt sich bis zum Ende durchzuquälen. Es gibt wie gesagt auch Ausbildungen oder eben Studienfächer in Bereichen, die einem vielleicht eher zusagen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Als erstes mächte ich, wie BlackJack vor mir, eine Lanze für Scheme und zpeziell PLT Scheme/Racket brecken. Ich finde das ist eine exzellente Sprache zum lernen von Programmierung. Sie ist in vielerlei Hinsicht deutlich simpler als Java oder C oder ähnliche Sprachen und in vielerlei hinsicht auch deutlich mächtiger. Das war die erste funktionale Sprache die ich benutzt habe, und ich hatte viele Abende Kopfschmerzel als ich "The Little Schemer" gelesen habe, aber seitdem war die Art von Code die ich in Python schreibe ziemlich anders. Und Racket hat auch eine echt praktische Umgebung um Programmieren zu lernen. Das was man in C völlig vergeblich sucht und in Java evtl. von BlueJ repräsentiert wird.

Aber man muss sich halt klar sein, dass Informatik keine Lehre über Computer ist. Computer sind nur Werkzeuge die benutzt werden um diese Informatik zu betreiben, aber etwa so relatiert zu Informatik wie Taschenrechner zu Mathematik oder Teleskope zu Astronomie. Klar, es gibt Felder die sich praktischer mit Computern beschäftigen, aber ein Von-ganz-unten-nach-ganz-oben-Ansatz zum lernen über Computer ist Zeitlich schwer machbar, evtl überhaupt nicht möglich (weil Intel z.B. weniger begeistert ist sein komplettes CPU-Wissen an Unis weiterzugeben, wir haben im Jahr 2008 über ne alte AMD-CPU aus den 80ern gelernt) und schon gar nicht nützlich, weil das Feld sich so schnell ändern kann dass die CPU die man 2 Jahre lang von Grund auf geändert hat nun komplett obsolet ist. Daher muss man irgendwo Grenzen ziehen. Bei uns war die Grenze "Konzepte der Mikroprogrammierung", wir sind nicht auf die Ebene gegangen wo E-Techniker beheimatet sind und auch nicht auf die darunterliegende Ebene wo Physiker sich wohl fühlen. Und selbst wenn man von der CPU ausgeht, wie bootet ein System. Da stellt sich die Frage, was für ein System? Eine x86-Kiste? Ein Smartphone? Ein Mainframe? Ein Batch-System? Ein verteiltes Cluster? Wenn man soweit ist dass ein OS bootet, welches OS? Man kann nicht jedes OS im Detail betrachten, das ist teils wiederrum technisch nicht machbar weil der Code nicht verfügbar ist und teils auch nicht praktikabel weil die komplexität erdrückend ist. Daher schaut man sich in der Regel Spielzeugsysteme an, damit man einen überblick über wichtige Konzepte hat, etwa Scheduling, dann ist man in der Betriebssystemsvorlesung.

Nun kann man weiter gehen und sich überlegen wie man Daten organisiert. Dabei kann man natürlich auch nur einen kleinen Bereich abdecken, also pickt man sich die interessantesten Algorithmen und Datenstrukturen raus (ist auch wieder eine Vorlesung). Dann weiß man schonmal wie man effizient mit Daten arbeiten kann. Nun kann man weiter hoch gehen und das mit Relationaler Algebra verbinden und raus kommen RDBMS. Man kann noch weiter gehen und dann kommt man etwa im Web an, mit seinen myriaden von Frameworks die teilweise Halbwertszeiten von Wochen haben.

Also klar, man weiß in Informatik nicht von Grund auf wie Computer funktionieren. Aber egal was man macht, man weiß nie wie irgendetwas von Grund auf funktioniert, dafür ist unsere Welt zu komplex um alles zu wissen. Was man aber als Informatiker kann ist, wenn einen eines der Gebiete interssiert, dass man das Handwerkszeug hat, sich zu erarbeiten wie die Details funktionieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Leonidas hat geschrieben:Was man aber als Informatiker kann ist, wenn einen eines der Gebiete interssiert, dass man das Handwerkszeug hat, sich zu erarbeiten wie die Details funktionieren.
Das sollte eigentlich für fast alle Studiengänge gelten: die Vermittlung von Grundlagen, partiellen Spezialwissen, die Fähigkeit strukturiert zu denken sowie lernen zu lernen, nicht nur unter Anleitung, sondern auch selbständig. Das ist sicher ein hoher Anspruch, aber dazu ist ein Studium schließlich auch da.
Antworten