Deep C / C++



  • Steffo schrieb:

    Hier brauchst du Ahnung von Computern und das geht auch in Richtung theoretischer Informatik!

    Nein! Geht es eben nicht. So schwer kann das doch nicht sein sich mal eben schlau zu machen bevor man sich immer und immer wieder blamiert. Gerade die Theoretische Informatik beschäftigt sich mit völlig anderen Problemen, das hardwarenächste sind da Turingmaschinen. Technische Informatik, das geht in diese Richtung.



  • Und nein, du musst nicht wissen was ein Callstack ist um C zu können. Aber du musst es wissen um ein C Guru zu sein und die Fragen so zu beantworten wie das Mädel, darum ging es schließlich. Du kannst auch Java können ohne zu wissen was ein GC ist, trotzdem bist du dann kein Java Guru.



  • Steffo schrieb:

    Hier brauchst du Ahnung von Computern und das geht auch in Richtung theoretischer Informatik!).

    Bevor du dich noch laecherlicher machst als bisher poste ich mal folgendes Zitat von Edsger Dijkstra (ein Pionier der Informatik, der vor allem in der theoretischen Informatik forschte):

    Edsger Dijkstra schrieb:

    Computer science is no more about computers than astronomy is about telescopes.

    Ich denke das braucht keien Uebersetzung.



  • roflalter schrieb:

    Steffo schrieb:

    Hier brauchst du Ahnung von Computern und das geht auch in Richtung theoretischer Informatik!

    Nein! Geht es eben nicht. So schwer kann das doch nicht sein sich mal eben schlau zu machen bevor man sich immer und immer wieder blamiert. Gerade die Theoretische Informatik beschäftigt sich mit völlig anderen Problemen, das hardwarenächste sind da Turingmaschinen. Technische Informatik, das geht in diese Richtung.

    http://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCcQFjAA&url=http%3A%2F%2Fwww.mathematik.uni-marburg.de%2F~gumm%2FBuch%2F8.Auflage%2Ftext%2FKapitel09.pdf&ei=clSUT_KrGsvKtAa_1MjkDQ&usg=AFQjCNF3JGMTIlNk9hXoMCu3Q9BwY3NrIg

    http://www.tcs.ifi.lmu.de/lehre/ws-2011-12/compiler

    http://www.willemer.de/informatik/compiler/index.htm

    Ich wette, das überzeugt dich alles nicht, weil du es besser als die Quellen weist...

    Ohne Kenntnisse der theoretische Informatik kann da nichts gescheites rauskommen. Die Hardwarekenntnisse... Darum kann sich dann der Programmierer kümmern, wenn in Assembler übersetzt werden soll, aber nicht mal das ist nötig, denn es gibt z. B. Compiler, die die Sprache in C übersetzen.



  • Als Argument dafür, dass die theoretische Informatik sich mit Computern beschäftigt, postest du jetzt Links für Compilerbau. 😕
    So langsam schreibe ich deine Logik endgültig ab, am besten du hörst einfach, so schwer es mir fällt das zu schreiben, auf Pi. 🙄



  • Compiler gehören wohl eher in den Bereich der praktischen Informatik. Zumindest beschäftigt sich bei uns der Lehrstuhl für praktische Informatik damit. Die theoretischen Informatiker beschäftigen sich eher damit, OB eine Sprache parsebar ist, und nicht wie. Theoretische Informatiker machen harte Mathematik. Deswegen sind das auch alles Informatiker. Ob die Ahnung von x86-Architekturen haben? ich bezweifle es.



  • Gut, dann haben Computer mit Compiler, Programmen, Algorithmen, Datenverarbeitung etc. nichts zu tun (weil das ja alles Bestandteil der theoretischen Informatik ist).
    Vielleicht interpretierst du Computer zu sehr mit Hardware als als das, was die Computer tun! 🙄



  • Steffo schrieb:

    Vielleicht interpretierst du Computer zu sehr mit Hardware als als das, was die Computer tun! 🙄

    Der Satz macht nicht nur keinen Sinn, der ist sogar syntaktisch falsch.
    Jetzt sind schon Mathematiker Computerexperten, weil sie sich u.A. mit dem beschäftigen was Computer machen? Oder Honigverkäufer Bienenexperten? Weil Bienen machen den Honig ja schließlich.
    Nein, ich würde eher sagen, du hast einfach keine Ahnung und versuchst dich jetzt irgendwie da rauszuwinden. Wenn dir jeder widerspricht, solltest du mal überlegen, ob an deiner Vorstellung von "Ahnung von Computern haben" nicht irgendetwas ganz stark verschimmelt, sonst wird das nämlich immer peinlicher für dich.



  • Jetzt sind schon Mathematiker Computerexperten, weil sie sich u.A. mit dem beschäftigen was Computer machen?

    Ein Mathematiker oder ein Physiker wird relativ problemlos einen Informatiker ersetzen können, umgekehrt sieht das aber ganz anders aus. Ich weiß: C/C++ Programmierer halten sich für die Götter der Informatik, aber so sieht die Realität nun mal aus: Mathematiker/Physiker > Informatiker! Dazwischen sind IMHO die theoretischen Informatiker.

    Oder Honigverkäufer Bienenexperten? Weil Bienen machen den Honig ja schließlich.

    Ne, aber ein Imker, der sowohl Honig verkauft als auch Bienen züchtet, wird wohl Ahnung von beidem haben...

    Nein, ich würde eher sagen, du hast einfach keine Ahnung und versuchst dich jetzt irgendwie da rauszuwinden. Wenn dir jeder widerspricht, solltest du mal überlegen, ob an deiner Vorstellung von "Ahnung von Computern haben" nicht irgendetwas ganz stark verschimmelt, sonst wird das nämlich immer peinlicher für dich.

    Drei, vier Leute, darunter ein Troll und ein anonymer Nutzer mit skurrilem Namen, sind also JEDER!



  • Ein Mathematiker oder ein Physiker wird relativ problemlos einen Informatiker ersetzen können, umgekehrt sieht das aber ganz anders aus. Ich weiß: C/C++ Programmierer halten sich für die Götter der Informatik, aber so sieht die Realität nun mal aus: Mathematiker/Physiker > Informatiker! Dazwischen sind IMHO die theoretischen Informatiker

    Unsinn. Ein Mathematiker beschäftigt sich idr nicht mit Komplexitätstheorie und p-np Problemen (nur um 2 Beispiele zu nennen)



  • Unterteilung der Informatik von http://www.tinohempel.de/info/info/ti/informatik.htm:

    Angewandte Informatik
    Anwendung von technischer, praktischer und theoretischer Informatik in anderen Wissenschaften und Gesellschaftsbereichen.

    Technische Informatik
    Untersuchung des funktionellen Aufbaus der Hardware; logischer Entwurf von Rechentechnik; maschinennahe Programmierung

    Praktische Informatik
    Formulierung von Methoden, um Programmsysteme zu erstellen, einschließlich konkreter Entwicklungsumgebungen und Softwarewerkzeuge zur Unterstützung von Programmierenn und Anwendern.

    Theoretische Informatik
    Theoretische Informatik ist ein Teilgebiet der Informatik, das die (meist mathematischen) Grundlagen der Information sowie ihre Darstellung und effiziente Verarbeitung untersucht.

    Compilerbau besteht aus folgende Teilgebieten:

    Angewandte Informatik - Linguistik (ohne Sprachdesign gibst kein Zweck)
    Technische Informatik - Prozessoren, Assembler, Laufzeitumgebung, Systemprogrammierung
    Praktische Informatik - Realisierung, Design und Architektur
    Theoretische Informatik - Formale Sprache (Syntax und Grammatik), Automatentheorie (Aufbau von Lexer und Parser), ...

    Kein Anspruch auf Vollständigkeit 😉



  • daki schrieb:

    Ein Mathematiker oder ein Physiker wird relativ problemlos einen Informatiker ersetzen können, umgekehrt sieht das aber ganz anders aus. Ich weiß: C/C++ Programmierer halten sich für die Götter der Informatik, aber so sieht die Realität nun mal aus: Mathematiker/Physiker > Informatiker! Dazwischen sind IMHO die theoretischen Informatiker

    Unsinn. Ein Mathematiker beschäftigt sich idr nicht mit Komplexitätstheorie und p-np Problemen (nur um 2 Beispiele zu nennen)

    Schön, ein Mathematiker beschäftigt sich in seinem Studium auch nicht so intensiv mit dem Programmieren, wie das Informatiker tun, aber er wird sich das schnell beibringen können, genauso wie jedes andere logische, mathematische Modell. Für einen Mathematiker wäre so etwas wie die Komplexitätstheorie nicht wirklich eine Herausforderung...

    Der Fehler, der hier im Thread übrigens die ganze Zeit begangen wurde, war, dass man das, was ihr in den Händen hält (Hardware), den Computer nennt. Tatsächlich ist jedoch die Idee, die dahinter steckt, der eigentliche Computer und hier sind die Mathematiker und auch Physiker viel näher an der Quelle. Das ist auch der Grund, weshalb Mathematiker und Physiker in der IT-Branche gerne gesehen sind.

    BTW ist die Komplexitätstheorie ein Teilgebiet der theoretischen Informatik. 😉



  • Steffo schrieb:

    Der Fehler, der hier im Thread übrigens die ganze Zeit begangen wurde, war, dass man das, was ihr in den Händen hält (Hardware), den Computer nennt. Tatsächlich ist jedoch die Idee, die dahinter steckt, der eigentliche Computer

    Falsch. (Mal wieder..)
    Siehe auch auch deutsche und englische Wikipedia Artikel ("ein Apparat", "a programmable machine") und die Meinung der ganzen restlichen Welt.
    Dagegen siehe Turingmaschine, die ein "mathematisches Konstrukt zur formalen Beschreibung des Begriffes der Berechenbarkeit" darstellt. (Keinen Computer. Wie es der Zufall will sind Computer meistens "Turing-vollständig" (wenn man den Speicher ignoriert) (wäre ja blöd wenn sie etwas nicht berechnen könnten).)
    Man könnte also sagen ein Computer ist eine Turingmaschine, aber umgekehrt gilt das nicht.



  • @Steffo: Also ist auch das Lambda-kalkyl ein Computer? Immerhin hat es doch dieselbe Idee...



  • otze schrieb:

    @Steffo: Also ist auch das Lambda-kalkyl ein Computer? Immerhin hat es doch dieselbe Idee...

    Ist das schwedisch? 😃 ... Lambda-kalkyl => Lambda-Kalkül



  • Steffo schrieb:

    Schön, ein Mathematiker beschäftigt sich in seinem Studium auch nicht so intensiv mit dem Programmieren, wie das Informatiker tun, aber er wird sich das schnell beibringen können

    Na klar, nach max zwei Wochen kann ein durchschnittlicher Mathematiker ein zweites Facebook aufziehen..



  • Steffo schrieb:

    Ein Mathematiker oder ein Physiker wird relativ problemlos einen Informatiker ersetzen können, umgekehrt sieht das aber ganz anders aus. Ich weiß: C/C++ Programmierer halten sich für die Götter der Informatik, aber so sieht die Realität nun mal aus: Mathematiker/Physiker > Informatiker! Dazwischen sind IMHO die theoretischen Informatiker.

    Haha, und genau diese Denkweise hat schon dein erster Beitrag gezeigt.
    Wer hier wen wo ersetzen kann, ist völlig Tätigkeitsabhängig und eine solche Verallgemeinerung zeigt nur, dass du wirklich überhaupt keinen blassen Schimmer von diesen Dingen hast. Fakt ist nun mal, dass die beschäftigung mit Computern bzw. Hardware (ja, Computer sind Hardware), weder in der Physik, noch in der Mathematik, noch in der Informatik eine große Relevanz haben. Turingmaschinen sind dabei noch recht nah, aber auch diese können nur eine sehr abstrakte Sicht auf heutige Hardware bieten. Und je öfter das Wort theoretisch auftaucht, desdo mehr ist diese Aussage wahr.

    Aber um deine Denkweise mal aufzudecken:
    Theorie <- Toll
    Computer <- Toll
    Toll ist Toll und daher befasst sich die theoretische Informatik mit Computern.

    Und auch gerade das hier möchte ich noch mal hervorheben:

    Steffo schrieb:

    Ich weiß: C/C++ Programmierer halten sich für die Götter der Informatik

    Sehr interessant, und unterstützt meine These von oben. Denn diese Aussage wurde nirgendwo gemacht. Ganz im Gegenteil: Dadurch, dass man sich, um ein guter C Programmierer zu sein, (angeblich) auch mit der darunter liegenden Hardware beschäftigen muss, werden die Disziplinen der Informatik und der Programmierung weiter abgetrennt.

    Also wie kann es zu einer solchen Aussage kommen? Oder wie kann der Eindruck entstehen, dass diese Aussage gefallen wäre? Ganz einfach. Als erstes stellen wir ein passendes Weltbild auf und sortieren die betroffenen Disziplinen ihrer augenscheinlichen "Theoretischkeit" (was in diesem Fall als Güte gewertet werden kann) nach ein:

    - Mathematik
    - Physik
    - Informatik
    - Programmierung

    Das ganze folgt der Idee: Je theoretischer, desto besser. So steht die theoretische Informatik z.B. über der praktischen Physik.
    Und jetzt passiert etwas tolles, wir werfen die Aussage

    knivil schrieb:

    Die Fragen dienen dazu, das Verstaendnis ueber die Arbeitsweise des Computers zu testen.

    oder übersetzt: "Gute Programmierer sollten wissen wie ein Computer funktioniert." Zudem implizit: "Gute Programmierer sollten C können." in dem Raum.
    Jetzt möchte man natürlich ein guter Programmierer sein, und damit die Bedinung erfüllen und Ahnung von Computern haben. Man mag aber C nicht. Und hier passiert der interessante Schritt: Anstatt den (vertretbaren) Verdacht aufzustellen, dass man auch wissen kann was der Cache ist, ohne ein C-Guru zu sein, wird hier ein augenscheinlich einfacherer Weg genommen: Man bringt die Sortierung von oben zum Tragen. Denn das hat einen Vorteil: Man kann im selben Zuge noch die gehassten C-Programmier diffamieren. Eigentlich sehr schlau. Es bildet sich also die Aussage: Informatiker haben mehr Ahnung von Computern als (C-) Programmierer, weil beide irgendwie was mit Computern zu tun haben und in meiner Liste die Informatiker weiter oben stehen. Die Disziplin, die hier am meisten Nimbus (sehr schönes Wort) mit sich bringt, ist dabei natürlich die theoretische Informatik.

    Aber jetzt widersprechen diese Penner! Ok, das kann nur zwei Gründe haben:
    1. Die Disziplinen stehen einfach nebeneinander.
    2. Diese komischen C/C++ Programmierer halten sich für die besseren Informatiker.

    Nur scheidet 1. jetzt leider aus, weil dann ja das sorgsam aufgestellte Weltbild mit dieser tollen Liste zusammenklappen würde. Das geht natürlich nicht. Und -> TaDaa Wir sind wieder bei der oben gezeigten Aussage angekommen. Hip Hip, Hurra!

    Nachdem man kurz mal auf Wikipedia geguckt hat was die Informatik eigentlich so macht, musste man natürlich noch den Begriff Computer umdefinieren, damit das Ganze nicht untergeht. Passt ja auch wunderbar in das bestehende Schema:
    Computer -> Toll
    Theorie -> Toll
    => Computer -> Theoretisch.

    mit freundlichen Grüßen
    ihr Experten-Internet-Hobbypsychologenteam®



  • kraks schrieb:

    Steffo schrieb:

    Schön, ein Mathematiker beschäftigt sich in seinem Studium auch nicht so intensiv mit dem Programmieren, wie das Informatiker tun, aber er wird sich das schnell beibringen können

    Na klar, nach max zwei Wochen kann ein durchschnittlicher Mathematiker ein zweites Facebook aufziehen..

    Seit wann ist Mark Zurckerberg ein Informatiker? Und was hat Facebook mit Komplexitätstheorie zu tun?



  • @cooky: Einfach mal die Denkweise im Forum hier verfolgen. Da fallen Wörter wie "echte Programmierer" in Verbindung mit C/C++ (nicht in diesem Thread), Java wird diffamiert etc.
    Und nein: Ich bin kein C-Hasser. Mir gefällt sogar die Sprache ab C99 und aufwärts, genauso die Möglichkeit, auf Systemschnittstellen zuzugreifen und praktisch zu machen, was ich will.



  • Steffo schrieb:

    @cooky: Einfach mal die Denkweise im Forum hier verfolgen. Da fallen Wörter wie "echte Programmierer" in Verbindung mit C/C++ (nicht in diesem Thread), Java wird diffamiert etc.

    Ganz genau. Und diese Artikel behandeln ironisch Leute, die wie sture Böcke einfach auf einer Position beharren. Mich wundert ehrlich gesagt, dass du das ernst nimmst. Ich hoffe dir ist klar, dass der Artikel über die Müsli-Fresser nicht ernst gemeint ist? Oder denkst du nachher auch noch, dass die ct Redaktion wirklich so denkt? NEIN verdammt. Die machen sich genau darüber lustig.


Anmelden zum Antworten