Werfen Sie zunächst einen kurzen Blick auf C, bis hin zum Schreiben einiger Übungsprogramme. C ist klein, gut definiert und die endgültige Sprachdefinition (Kernighan & Ritchie - The C Programming Language) ist nur ein paar hundert Seiten lang. Obwohl es eine Herausforderung sein kann, sich mit Zeigern und Rekursionen zurechtzufinden, ist die Sprache selbst so klein, dass es möglich ist, die Sprache vollständig zu beherrschen. Eine der Freuden beim Schreiben von C ist, dass es nicht allzu schwer ist, ein Niveau zu erreichen, bei dem man einfach nur programmieren kann, ohne ständig in der Dokumentation nachschlagen zu müssen, wie man das wenig bekannte Feature x oder die Bibliotheksfunktion y verwendet. Betrachten Sie das Erlernen von C als die Schaffung der Grundlagen.
Um jedoch tatsächlich nützliche Anwendungen zu schreiben, sollten Sie C++ oder C# verwenden. Das hängt davon ab, was Sie schreiben wollen. C# wird wahrscheinlich in den meisten geschäftsorientierten Fällen wegen der Garbage Collection und der allgemeinen Benutzerfreundlichkeit punkten, aber C++ würde für hohe Leistung, Low-Level- oder Spiel-Domänen punkten. Es gibt auch große Mengen an C++-Bibliothekscode, der relativ leicht genutzt werden kann (und auch reinen C-Code, der leicht angepasst werden kann). Wenn Sie etwas für ein bestimmtes Problem schreiben wollen, dann könnte die Verfügbarkeit von C++ den höheren Overhead, den C++ hat, wenn es darum geht, Dinge zu erledigen, höchstwahrscheinlich ausgleichen.
Als Beispiel hierfür habe ich eine gefilterte Suche nach "image" auf Sourceforge durchgeführt und die folgende Anzahl von Projekten gefunden
C# : 139
C++: 569
Und selbst mit etwas, das absichtlich geschäftsorientierter ist, schneidet C++ immer noch besser ab - "Finanzen".
C# : 12
C++: 32
Bei allem, was mathematisch oder technisch ist, ist das Ergebnis stark gegen C# gewichtet - 'fraktal'.
C# : 4
C++: 44
C : 24 <-- (C++ ausdrücklich ausgeschlossen)
Das ist natürlich eine ziemlich grobe Analyse, aber wenn ich zum Beispiel ein Programm für einen Fraktalgenerator für den Desktop schreiben wollte, würde ich mich für C++ und nicht für C# entscheiden, da der zusätzliche Aufwand, der mit der Handhabung der Benutzeroberfläche in C++ verbunden ist, durch die Fülle an Beispielcode, der in C++ verfügbar ist, leicht ausgeglichen wird. Wenn ich jedoch eine Geschäftsanwendung schreiben würde, bei der es keinen großen Vorteil gibt, Beispielcode zu haben und viel UI zu handhaben, dann würde ich mich für C# entscheiden.
Nachtrag: Ein weiterer Grund, sich zumindest mit C vertraut zu machen, ist, dass es auch Objective-C als Hauptentwicklungsumgebung auf dem Mac und iPhone gibt. Objective-C ist C mit einem sehr dünnen Wrapper und eigentlich nur ein Cousin ersten Grades von C++. Wenn Sie also vorhaben, jemals in die Lage zu kommen, Code auf den Mac zu portieren oder direkt auf dem Mac zu entwickeln, dann denke ich, dass Sie es weniger verwirrend finden würden, wenn Sie zumindest ein Gefühl dafür hätten, wie C++ (oder C#) auf C aufbaut, anstatt einen "Seitwärtsschritt" durch den Baum machen zu müssen.