Was jetzt nach C und C++?



  • Ich würde Assembler empfehlen. Da lernst du dann, wie alles wirklich funktioniert 😉



  • Assembler ist eine gute Übung. Interessant ist auch der eigene Einstieg in eine OS-Entwicklung, falls du dafür Kraft und Zeit hast. Es ist ein gutes Gefühl, wenn man den Rechner mit einem eigenen OS von Diskette bootet. Kleiner Einstieg:
    http://www.ysgnet.com/art/toyos_1.html
    http://www.ysgnet.com/art/toyos_2.html
    http://www.linuxgazette.com/issue82/raghu.html

    Ansonsten Compilerbau:
    http://www.drd.de/helmich/inf/comp/



  • http://www.geocities.com/SiliconValley/Vista/7184/guitool.html

    MFC und WinAPI kann ich immer nur betonen werden nicht mehr weiter entwickelt und es lohnt sich deswegen nicht wirklich sich damit intensiv zu befassen!

    Assembler und Lisp würde ich an deiner Stelle aber eher machen, vor der GUI Programmierung.



  • Wie waere es damit, irgendetwas richtig zu lernen und nicht ueberall nur reinschnuppern...?



  • OT:

    Erhard Henkes schrieb:

    http://www.ysgnet.com/art/toyos_1.html
    http://www.ysgnet.com/art/toyos_2.html

    Diese Links gehen nicht.



  • Die Links waren in Ordnung, als ich diese gepostet habe. Hoffentlich nur ein temporäres Server-Problem, denn diese beiden Artikel sind sehr gut! 😞

    Sie gehen wieder! Ich werde mir die Artikel vorsichtshalber speichern, falls diese permanent verschwinden.



  • Kingruedi hat prinzipiell Recht, die Realität sieht aber noch anders aus. Vielleicht ist C# und .NET die richtige Zukunftsorientierung, so eine Art Mix aus Java und MicroSoft Overkill. 😉



  • Ich würde mir die WinAPI nicht mehr anschauen, die liegt im Sterben. Vielleicht macht sie noch für C++ eine Zeit lang ein bisschen Sinn, aber das war's dann.
    @Shade: Ich halte mehr davon, sich erstmal mehrere Sprachen anzuschauen, speziell auch auf verschiedenen Abstraktionsebenen. Assembler und Java, um mal wirklich alles gesehen zu haben. Danach kann man sich ja eine oder zwei Sprachen raussuchen und sich dort reinsteigern.



  • Assembler (nur zum Spaß), C++ (richtig), WinAPI (Prinzip) und Java (richtig), das wäre mein Tipp. Hängt aber stark von der zukünftigen Ausrichtung ab. Wer z.B. Game-Programming machen will, sollte C++, WinAPI und DirectX bzw. OpenGL beherrschen. Wer Mikroprozessoren programmieren will, sollte Assembler, C und C++ kennen. etc.



  • @Erhard
    deine Empfehlungen sind zu allgemein. Es ist wichtiger, dass man sich ein Verständniss fürs Programmieren aufbaut.

    Was da zB. die WinAPI soll versteh ich nicht. Die API ist (selbst nach Aussagen von MS) veraltet und einen schönen Programmierstil lernt man durch die WinAPI erst recht nicht. Also lieber gleich von der Liste streichen und nur lernen, wenn man es wirklich muss (also jemand mit Scheinen winkt ;)). Sich auf APIs festzulegen ist eine schlechte Idee. APIs kommen APIs gehen...

    Und direkt nach dem man C++ gelernt hat, Java zu lernen finde ich auch nicht so sinnvoll. Man lernt dadurch kein besseres Verständniss vom Programmieren. Java kann man auch dann später mal lernen, wenn man nichts zu tun hat oder jemand mit dicken Scheinen winkt.

    Assembler halte ich da für Sinnvoller, da man ein grundlegendes Gefühl für Computer-Architekturen gewinnt. Und so Sprachen wie Lisp, Prolog etc. haben vielleicht keinen direkten Nutzen, wenn man sich um einen Job bewirbt, aber bringen einem eine Menge Know-How und neue Blickwinkel, was einem enorm hilft, wenn man zB. Software designt.



  • kingruedi schrieb:

    Was da zB. die WinAPI soll versteh ich nicht. Die API ist (selbst nach Aussagen von MS) veraltet und einen schönen Programmierstil lernt man durch die WinAPI erst recht nicht. Also lieber gleich von der Liste streichen und nur lernen, wenn man es wirklich muss (also jemand mit Scheinen winkt ;)). Sich auf APIs festzulegen ist eine schlechte Idee. APIs kommen APIs gehen...

    Verstehe ich nicht. *So* schnell ist die WinAPI auch nicht veraltet (jedenfalls hat man noch Zeit, ein paar Grundzüge zu lernen) und man lernt dadurch, auch mit krepligen C-APIs umzugehen. Da ist die WinAPI ja bei weitem nicht die einzige auf der Welt.



  • Ohne WinAPI kommt man aber im Moment noch nicht aus. In C# und Visual Basic etc. brauch man sie auch immer wieder.



  • ... schrieb:

    Ohne WinAPI kommt man aber im Moment noch nicht aus. In C# und Visual Basic etc. brauch man sie auch immer wieder.

    Es gibt auch noch interessante Bereiche jenseits von M$ 😉

    Zum Thema. Ich bin ebenfalls wie einige Andere hier auch der Meinung dass man mal in verschiedene Sprachen reinschnuppern sollte. Er hat sich nun ne prozedurale Sprache und ne Objektorientierte angeschaut. Da wirds doch evtl. Zeit für was Funktionales oder Imperatives. Eben neue Konzepte und neue Wege.

    Assembler ist ne feine Sache um eine tieferes Verständnis für die Funktionsweise des Rechenknechts zu gewinnen. Einfach mal alles anschauen.

    Und wenn er sich mal mit allem so ein bisschen beschäftigt hat, bleibt ja noch Brainfuck 😉



  • prolog schrieb:

    Und wenn er sich mal mit allem so ein bisschen beschäftigt hat, bleibt ja noch Brainfuck 😉

    wobei ich auch nur betonen kann, dass ich BrainFuck jedem Programmierer nur empfehlen kann. Das bringt einem irgend wie ein gewisses Verständniss



  • kingruedi schrieb:

    Assembler halte ich da für Sinnvoller, da man ein grundlegendes Gefühl für Computer-Architekturen gewinnt.

    Das Argument habe ich ehrlich gesagt noch nie verstanden. Warum sollte man etwas über "Computer-Architekturen" erfahren, wenn man einen Assembler lernt. Wo wird man denn da zum Beispiel mit Dingen wie Pipelining oder der Funktionsweise eines Caches konfrontiert? Naja, vielleicht habe ich mich bisher auch einfach nur zu wenig mit Assembler auseinandergesetzt, um das zu sehen. Ich bin mal auf die Erklärung gespannt.



  • Konzepte und grundlegendes Verständnis ist wichtig. Daher halte ich es immer noch für wichtig, den inneren Ablauf einer klassischen Windows-Anwendung (Nachrichtenerzeugung, Nachrichtenpumpe und -Schlange, Reaktionen auf Nachrichten) zu verstehen, denn das ist bei MFC oder auch bei Java bzw. C# das gleiche System, sobald man es mit Mausklicks zu schaffen hat. Vielleicht kann man Assembler und Windows kombinieren. 🙂
    http://www.deinmeister.de/wasmtut.htm

    Eine neuere Entwicklung sind "DNS-Rechner":
    http://www.wisdom.weizmann.ac.il/~kobi/



  • Vielleicht kann man Assembler und Windows kombinieren.

    Sehr sinnvoll.



  • @User20034: In welche Richtung gehen deine Interessen nun?



  • Gregor schrieb:

    Das Argument habe ich ehrlich gesagt noch nie verstanden.

    Es ist auch ein komisches Argument.

    Der Grundgedanke ist wohl der, dass wenn du dich mit ASM abgibst du recht oft mehr ueber die Funktionsweise von alle dem erfahren willst. Zwingen tut dich allerdings keiner. Insofern kann man sich auch ein gutes Buch genehmigen - das tut es auch 🙂



  • Ich würde sagen, dass auch hier gilt: reinschnuppern schadet nicht.


Anmelden zum Antworten