Einstieg zu C

bf3_4amer

Commander
Registriert
Jan. 2012
Beiträge
2.586
Hallo liebe community ich würde gerne mal anfangen C oder C++ zu lernen aber ich weis einfach nicht wo ich anfangen soll?! kann mir evtl jemand einen Tipp geben auf welcher internet seite oder so man mal anfangen kann?
 
Zuletzt bearbeitet:
Mein Tipp ist, kauf die ein gutes Buch und arbeite es durch:

Viele Tutorials sind nicht umfangreich genug und teils ungunstig beschrieben (aber ich schaetze die Arbeit der Autoren sehr!).

Mein Tipp fuer C:
Go To C-Programmierung von Guido Krüger

Fuer C++:
Einführung in die Programmierung mit C++ von Bjarne Stroustrup (Quasi der Erfinder von C++)
C++ von A bis Z von Jürgen Wolf


Ich an deiner stelle wuerde mit C++ anfangen, es stimmt zwar das C++ letzendlich ein erweiteres C ist, aber in C gehst du manche Proleme anders / nicht modern an.

Falls du gar keine Ahnung von Programmieren hast, wuerde ich nicht umbedingt mit C++ anfangen, sondern ehr mit Python C# oder Java
Da findet man einen leichteren einstieg (besonders in python)
 
Speedrat schrieb:
Mein Tipp ist, kauf die ein gutes Buch und arbeite es durch:

Viele Tutorials sind nicht umfangreich genug und teils ungunstig beschrieben (aber ich schaetze die Arbeit der Autoren sehr!).

Ich an deiner stelle wuerde mit C++ anfangen, es stimmt zwar das C++ letzendlich ein erweiteres C ist, aber in C gehst du manche Proleme anders / nicht modern an.


Sehe ich auch so, ein gutes Buch mit Uebungen halte ich fuer wesentlich sinnvoller. Aber da musst du dich natuerlich auch selbst einschaetzen. Bzw. mal Ausschnitte ansehen, aber dort wird meist einfach sehr oberflaechlich gelernt und du musst oft immer und immer wieder selben Passagen anschaun/hoeren um es zu kapieren.


Ich lerne C, wie auch von unseren Profs empfohlen mit diesem Buch: http://www.amazon.de/C-Programmiere...0749/ref=sr_1_1?ie=UTF8&qid=1326908743&sr=8-1

Das ist super wenn du gerade NULL Vorkenntnisse hast, da alles schoen Schritt fuer Schritt geht und zu jedem Unterpunkt Uebungen mit Loesungen.


PS: Bei der Wahl zwischen C und C++, wuerde ich allerdings auch auf C++ gehen. Einige Funktionen fand ich gerade am Anfang logischer und einfacher zu erlernen, aber gut is auch Geschmackssache.
 
Zuletzt bearbeitet:
Hi :)

Ich nehme mal an, du bist Programmieranfänger.

Ich würde dir raten einfach ein gutes Buch zu kaufen für Programmieranfänger :) Siehe Amazon, aber vergiss nicht die Bewertungen zu lesen, denn viele Bücher sind zwar sehr gut aber setzen eine gewisse Programmiererfahrung voraus. Also beachten dass du dir wirklich eins kaufst wo du bei 0 anfängst. So hab ich es auch gemacht damals.

Klar, es gibt Unmengen von internetseiten und Tutorial-videos die du dir durcharbeiten und angucken kannst, aber ich persönlich finde es deutlich angenehmer ein Buch vor mir zu haben, denn Bücher sind meist geschrieben durch Profis vom Fach. Denn programmieren ist nicht gleich programmieren! Es gibt viele Tips und Tricks und man sollte sich am besten einen guten "Programmierstil" angewöhnen. Aus meiner Erfahrung geht das nur mit ein gutes Buch.
 
Würde im Gegensatz zu den Anderen hier zu C raten. Denn C ist immer noch deutlich weiter verbreitet als
C++. Für eine aktuelle Statistik, siehe beispielsweise hier: http://heise.de/-1405610

Gerade als Anfänger ist es besonders wichtig, dass man auf möglichst viel Wissen zurückgreifen kann. Hier
ist eine verbreitetere Programmiersprache natürlich vorteilhafter. Auch später, wenn man andere Leute an
einem Projekt mitarbeiten lassen möchte, findet man mehr Entwickler, die C können als C++.

€: Für weitere Argumente: http://yosefk.com/c++fqa/defective.html

€2: Und nein, das computerbase.de-Forum ist nicht repräsentativ für die Verbreitung einer Programmiersprache.
 
Zuletzt bearbeitet:
Ich stimme asdfman zu das es Sinn macht eine weit verbreite Sprache zu lernen.

Doch C ist wirklich schon alt! Viele Moderne Ansaetze der Software Entwicklung wurden damals nicht beruecksichtigt.
C ist weit verbreite in legay Programmen und Hardwarenahe bzw. sehr performanter Programmierung, darueber hinaus sehe ich heute keinen Grund noch neue Software Projekte mit C an zu gehen (wenn es wirklich nur um Anwendersoftware geht).

Der mehr Aufwand moderne Programme mit C statt mit einer anderen Programmiersprache zu schreiben ist einfach zu gross!
Aber es macht durchaus Sinn ein Kern Teil der Software in C zu schreiben um ihn zu beschleunigen.


Ausserdem, wenn du C++ kannst, kannst du quasi auch C (umgekehrt leider nicht!)



Aber ich glaube zu genau diesen Thema gibs hier sicherlich schon zig Threads ;-)



Edit: Kein Komplexer Programmiersprache ist perfekt, ich habe mich schon sehr oft ueber Seiteneffekte unter C++/C#/Java aufgeregt, bestes Beispiel Java Generics ;-)
 
Zuletzt bearbeitet:
Speedrat schrieb:
Ausserdem, wenn du C++ kannst, kannst du quasi auch C (umgekehrt leider nicht!)

Weder so, noch umgekehrt. C und C++ sind sehr unterschiedliche Sprachen, die oberflächliche
Gemeinsamkeiten haben. C ist keine "Untermenge" von C++ und das war auch noch nie so.

Code:
typedef enum { rogue, warrior, sorceror } class;
 
Naja theoretisch kannst du aber doch mit einem C++ Compiler auch C-Code kompilieren oder nicht?

Natürlich hat in sauberem C++ Code C nicht wirklich viel zu suchen aber theoretisch möglich ist es ja schon.
 
Das, was in seinem spoiler steht, wird in C wohl kompilieren, in C++ jedoch nicht, weil class ein keyword ist.
 
Das mag ja sein aber das bedeutet ja nicht, dass man in C++ keine C-Syntax und C-Befehle mehr verwenden kann. Dass da ein paar Keywords dazugekommen sind sehe ich eher als sehr schwaches Argument.
 
Es gibt auch andere inkompatibilitäten. Und sich einschränken zu müssen was Bezeichner angeht, ist doch
wohl Argument genug, dass man nicht einfach beliebigen C-Code mit einem C++ Compiler übersetzen kann.

€:Auch wenn es nur ein Beispiel ist: malloc()-Rückgabewert prüfen!
Code:
#include <stdlib.h>

int main(void) {
    int i, *j;

    if((j = malloc(10 * sizeof(int))) == NULL)
        return EXIT_FAILURE;

    for(i = 0; i < 10; i++)
        j[i] = i;

    return j[0];
}
 
Zuletzt bearbeitet:
Man sollte ja auch nicht C und C++ in ein Programm mixen!

Das ist ein ganz eckliger Style und fuehrt nur zu Problemen!

und C ist nicht gleich C++ es gibt klar unterschied (deshalbs gibs ja C++ erst ;-) ).
Aber was ich eigentlich Urspuenglich mit meiner Aussage das C quasi C++ aussagen wollte ist,
das eine Starke aehnlichkeit der Sprachen besteht. Wenn man C++ kann dann kann man auch C Programme schreiben, weil einfach viele Grundlegende Sachen identisch sind und man sich nur noch eben die C Ansaetze/Libs angucken muss.

Soll heissen: Wenn du C++ kannst, schnappst du dir eine C Referenz und programmiert dann halt C
(plump ausgedruckt!, eigentlich braucht man wohl schon 1-2 Wochen bis man sich dann daran gewoehnt hat, aber das steht zu keinen Zeitverhaeltnis als ob man eine ganz neue Sprache lernen wuerde!)
 
Speedrat schrieb:
(deshalbs gibs ja C++ erst ;-) )

hä? O_o

Speedrat schrieb:
Doch C ist wirklich schon alt! Viele Moderne Ansaetze der Software Entwicklung wurden damals nicht beruecksichtigt.

C++ ist auch nur ein paar Jahre jünger, als C ...
C erschien 1972 und C++ 1979.

Speedrat schrieb:
Ich an deiner stelle wuerde mit C++ anfangen, es stimmt zwar das C++ letzendlich ein erweiteres C ist, aber in C gehst du manche Proleme anders / nicht modern an.

Ja, OOP bringt den Weltfrieden, wir wissen es ...
OOP ist auch nicht modern. Das Paradigma gibt es auch schon seit den 50ern.
Es hat sich aber mittlerweile zum bekanntesten Paradigma etabliert. Die erste Objektorientierte Programmiersprache war Smalltalk, welche 1972 erschien. Schon LISP besaß sowas, wie Objekte. LISP stammt aus dem Jahr 1958.
 
Zuletzt bearbeitet:
Mhh irgendwie kommt es mir so vor als ob echt jedes meiner Worte auf die Goldwage gelegt wird.

Eigentlich wollte ich nur den Threadersteller helfen und nicht nur meine rausgefluecken Aussagen erklaeren, die dabei noch an das Eigentliche was ich sagen wollte vorbei gehen, irgendwie schade!

Deshalb lasse ich es nun auch und zitiere noch mal worum es hier eigentlich gehn sollte:
Hallo liebe community ich würde gerne mal anfangen C oder C++ zu lernen aber ich weis einfach nicht wo ich anfangen soll?! kann mir evtl jemand einen Tipp geben auf welcher internet seite oder so man mal anfangen kann?
 
Gab ja auch bezeichnend viel Rückmeldung vom Threadersteller. War wieder einer der wöchentlichen Rohrkrepierer, die sich dachten - "hey, warum nicht mal Programmieren lernen?! Ach ja und ich habe mal gehört C/C++ sind das non-plus-ultra, also schauen wir mal wie ich das am besten lerne, ohne mir viel Mühe zu machen".
Zugegeben, eine Unterstellung, aber so läuft es nun mal oft und jedes Mal wird hier ein Fass an Grundsatzdiskussionen aufgemacht, obwohl der TE längst das Interesse verloren hat. :)
 
Sind wir hier die Diener des Threaderstellers und weitergehende Diskussion ist verboten sobald er X Stunden
nicht mehr reingeguckt hat? Wenn es noch etwas zu besprechen gibt, warum es dann nicht tun? Manchmal
entwickelt sich ein Thread halt in eine andere Richtung als man ursprünglich gedacht hat.

Außerdem ist es natürlich sehr ignorant, hier "C/C++" zu sagen, wo es doch gerade darum geht, dass man die
beiden Sprachen nicht so in einen Topf werfen sollte.
 
Das fiktive Zitat war ja auch explizit aus der Sicht eines Einsteigers formuliert, der diesen Unterschied eben nicht kennt. Allerdings bezweifle ich auch, dass es einem solchen hilft, hier mit Spitzfindigkeiten zu argumentieren, warum C und C++ nicht identisch sind.
Und natürlich kann und soll man weiterhin diskutieren. Nach meinem Empfinden sollte das aber entweder nach der Beratung des TE stattfinden, d.h. wenn er sagt, ihm wurde bei seiner Entscheidung geholfen, oder es sollte ein separater Thread dazu eröffnet werden. Das ist ja nun keine neue Erscheinung hier, dass sämtliche Threads off-topic geführt werden. In der Regel von Unwissenden eröffnet und dann von erfahrenen Programmierern mit Grundsatzdiskussionen weit von der Fragestellung weggeführt.

So sehe ich das zumindest, aber das muss ich wohl der Moderation überlassen. Für mich ist das "Shreddern" von Threads, auch wenn es Spaß macht.
 
Zurück
Oben