Stellt sich die Frage, ob er mit Systenmprogrammierung anfangen will oder warum man die Grundlage der Systemprogrammierung lernen sollte, wenn man gar nicht Systemprogrammierung betreiben will.
...
Darum sagte ich ja, dass man die Frage (wie auch die immer wiederkehrenden Diskussionen mit welcher Sprache man "am besten" anfangen sollte) nicht pauschal beantworten kann.
Mir ist klar, dass man auch mit c++ Systemprogrammierung betreiben kann. C ist aber in diesem Bereich sehr weit verbreitet, nach meiner persönlichen Beobachtung mehr als c++, was ich aber nicht belegen kann.
Der Anlass für meinen Beitrag war, dass Du nach einem Grund gefragt hattest, C zu lernen. Wenn man sich für systemnahe Programmierung im Unix Umfeld interessiert, wäre das meiner Ansicht nach einer. Wenn man sich dafür nicht interessiert greift der logischerweise auch nicht.
Ich persönlich finde C außerdem eine gute, wenn auch nicht zwingende, Grundlage für Objective C, weil man einiges was man in C gelernt hat in Objective C sinnvoll nutzen kann und manches auch braucht. Kann man aber selbstverständlich auch gleich für Objective-C lernen.
Wege zum Programmieren gibt es mE viele. Sicher sind manche sind steiniger als andere, aber welcher nun der beste ist, hängt auch von vielen persönlichen Faktoren ab. Da kann man nur teilweise von der Erfahrung anderer profitieren.
Was ich persönlich nicht so gut finde, ist die Tatsache, dass immer wenn jemand schreibt "Ich fange gerade an, diese oder jene Sprache zu lernen, und habe hier ein kleines Einsteigerproblem (... oder suche eine gutes Buch dafür)", jemand schreibt "Bist Du sicher dass Du diese und nicht lieber jene Sprache lernen möchtest, weil die doch viel besser/einfacher/logischer/schöner/sicherer oder aus einem anderen Grund zu bevorzugen ist."
Sofort entspinnt sich dann eine Diskussion unter den Fachleuten, welches nun die beste Programmiersprache oder die am einfachsten zu lernen ist. Der Anfänger kann mit den ganzen Argumenten meist wenig bis gar nichts anfangen. Er möchte i.d.R. einfach mal anfangen und sehen, wie er zurecht kommt. Er hat eine konkrete Frage, die er beantwortet haben möchte, um den nächsten Schritt gehen zu können oder den vorangegangenen zu verstehen.