Frage von CakeLP, 66

Ist die Programmiersprache C für Anfänger gut?

Hallo zusammen

Ich wollte fragen ob die Programmiersprache C für Anfänger gut sei und wie lange ihr gebraucht habt um sie zu lernen. Ich habe noch keine Erfahrungen gemacht und wollte jetzt aber mit dem Programmieren beginnen.

Expertenantwort
von TeeTier, Community-Experte für programmieren, 17

Da dir alle bisherigen Antworter von C abraten, möchte ich mal ein Gegengewicht formulieren:

Falls du dich dafür interessierst, wie Computer, Betriebssysteme, Bibliotheken und allgemein Interna funktionieren, kommst du um C gar nicht drum rum, und dann solltest du ohne weiteres Nachdenken auch mit dieser Sprache anfangen.

Wenn du hingegen auf den schnellen und sichtbaren Erfolg bei grafischen Oberflächen oder Spielen aus bist, dann nimm lieber Java, C#, Python oder ähnliche moderne Sprachen auf höchstem Niveau.

In einer anderen Antwort war von C++ die Rede, aber - ohne da jetzt näher drauf eingehen zu wollen - waren die meisten angesprochenen Punkte leider nicht korrekt. Trotzdem ist C++ deutlich mächtiger als C und damit kann man (fast) alles machen, was man auch mit den anderen genannten sprachen machen kann. Allerdings ist C++ m. M. n. auch mächtiger als z. B. Java und damit umfangreicher und schwerer zu lernen.

Wenn du also Anwendungen mit Fenstern und Animationen programmieren willst, nimm C# oder Java. Das geht zwar auch mit C und vor allem mit C++, aber - wie gesagt - ist die Lernkurve dabei steiler.

Sei dir aber auch darüber bewusst, dass viele Java-Programmierer, die selbst glauben, sie verstünden ihre Sprache, nicht erklären können, wie so einfache Dinge wie "new Object()" oder "try { } catch { }" intern realisiert werden. Die meisten interessiert das vermutlich auch nicht. Leute, die sich hingegen tatsächlich dafür interessieren, haben mit Sicherheit auch irgendwann mal "C" gelernt.

Ich glaube nicht, dass der durchschnittliche Java-Programmierer ohne C Kenntnisse weiß, wie eine Objektinstanziierung eigentlich arbeitet. Aber egal ...

Mit einer Programmiersprache verhält es sich genauso, wie mit jedem anderen Werkzeug auch: Der Anwendungsfall entscheidet, wann man es einsetzt, und wann man lieber ein anderes wählt.

Ohne zu wissen, WAS du eigentlich programmieren möchtest, wird man dir hier keine sinnvollen Hinweise geben können.

Ich persönlich halte besonders C gerade WEGEN der Hardware-Nähe für vermutlich DIE beste Lern-Programmiersprache überhaupt, weil man danach wirklich weiß, wie etwas funktioniert. Leider interessieren sich viele junge Leute nicht mehr dafür, WIE etwas funktioniert, sondern nur noch dafür, DASS es funktioniert. Und dazu noch möglichst VIEL und EINFACH. Für solche Leute ist C#, Java oder Python vermutlich besser geeignet.

Wie gesagt ... was du jetzt lernst, musst du selbst entscheiden! Wenn du mit C anfängst, wird der Anfang schwer und es wird seine Zeit dauern, bis du die Früchte deines Lernens genießen kannst. Langfristig wirst du mit C aber mehr lernen, als mit Java, C# und Co.

Da C zum größten Teil mit C++ kompatibel ist, und C++ sehr schicke Sprachfeatures bietet, halte ich aber C++ für den Anfang noch besser als reines C. Vom Umfang her ist C eine relativ kleine Schnittmenge von C++, und letzteres ist wesentlich komplexer, aber auch mächtiger und vielseitiger.

Also dann, viel Spaß beim Lernen, wofür auch immer du dich entscheidest! ;)

PS: Im Übrigen bleibt eigentlich niemand bei nur einer einzigen Programmiersprache stehen, sondern lernt im Laufe der Zeit mehrere. Aber gerade als Anfänger sollte man sich nicht überfordern, und erst mal mit einer einzigen anfangen. Womit du letzendlich anfängst, ist mehr oder weniger egal, aber wenn du mit C anfängst, wirst du später bei Java und C# sehr davon profitieren. Umgekehrt ist das nicht der Fall, und theoretisch müsstest du dadurch vieles doppelt lernen.

Allein schon aus diesem Grunde wäre C++ die ideale Startsprache. Wohlgemerkt aber auch die schwierigste aller bisher genannten! :)

Antwort
von Zuck3r, 49

C halte ich für einen fiesen Einstieg in die Programmierwelt. Sie ist zwar hardwarenah, bringt allerdings viele Eigenheiten mit sich, um die du dich als anfänger nicht unbedingt kümmern möchtest. Zb Pointer, Speicherverwaltung usw.

Java und Python sind da deutlich angenehmer als erste Sprachen.

Antwort
von MisterRobot, 48

Visual Basic ist für Anfänger und das Verständniss beim Programmieren besser geeignet. Auch von der Bedienbarkeit angenehm.

C# basiert wie Visual Basic auf dem .NET Framework und sollte man sich auch mal angucken. Der Syntax ist ähnlich wie bei C, java, C++ [...] die ähneln sich da schon.

Aber wenn du unbedingt mit C anfangen willst, dann rate ich dir dringend, mit C++ anzufangen, wegen der Objektorientiertheit.

Antwort
von TheQ86, 29

Man kann als Anfänger C lernen, ob das sinnvoll ist, weiß ich nicht. Denn C kann sehr schnell verwirrend werden, wenn es um systemnähere Themen wie Speicherallozierung, Pointer, Syscalls usw. geht. Manchmal braucht man eben auch das Hintergrundwissen über die Funktion der Hardware.

Objektorientiertes Programmieren wird durch C leider auch gar nicht abgedeckt. Und das ist schade, da OOP in der Anwendungsentwicklung bereits Gang und Gäbe ist.

Bessere Alternativen:

C++ wäre eine Obermenge von C, die OOP unterstützt und gleichzeigig voll C kompatibel ist. Ist allerdings auch mit ner steilen Lernkurve verbunden

Java ist relativ einfach zu erlernen und weit verbreitet. 

Antwort
von kordely, 12

C ist eine schwere Sprache. Mit C muss man mehr lernen, um genauso programmieren können, wie zum Beispieln in Python und einige andere Sprachen. Vorteil ist, dass du erfahren kannst, wie der Rechner arbeitet.

Antwort
von FooBar1, 29

C ist ne super.. genau wie Souffle... aber beides nicht unbedingt für Anfänger geeignet

Antwort
von Masterman431, 38

Beliebtere Anfängersprachen wären Java und c#

Kommentar von FooBar1 ,

Zumindest wenn man nach den Lehrbüchern geht.

Leider fängt es in der realität meistens mit php oder so an

Kommentar von Masterman431 ,

naja, wenn man sich nen Job in der Web-Entwicklung sucht, dann schon^^

Keine passende Antwort gefunden?

Fragen Sie die Community