Programmieren lernen in C++ bzw. C

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
frindly
Beiträge: 1085
Registriert: 23.10.2007 08:13:26
Wohnort: Recklinghausen

Programmieren lernen in C++ bzw. C

Beitrag von frindly » 14.05.2008 07:56:09

Hallo,
ich möchte gerne Programmieren lernen in C++ bzw. C.
Mehrere Bücher habe ich schon. Erste Erfahrungen in Pascal von früher sind auch da.
Aber den Einstieg finde ich nicht recht. Ein "Hello World" hab ich auch schon geschafft.
Mit welcher Strategie gehe ich dieses Thema am besten an??? :roll:

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Programmieren lernen in C++ bzw. C

Beitrag von Meillo » 14.05.2008 08:38:35

K&R "The C Programming Language" durcharbeiten!
Das ist das beste und einzige Buch das zu brauchst (für C).

Ich denke man sollte C und C++ klar unterscheiden. Letztendlich ist vieles gleich, aber man programmiert sehr unterschiedlich darin.
Wenn du schon etwas Pascal kannst, dann würde ich dir empfehlen mit C zu starten (dann musst du nicht auch noch gleichzeitig OO lernen).

Knackpunkte sind vor allem Pointer, Strings und malloc/free, diese Themen solltest du sorgfältig in den Büchern lesen und dann viel damit rumspielen.
Wichtig ist IMO das Verständnis was hinter den Sprachkonstrukten steht (deshalb ein _gutes_ Buch lesen ... also K&R ;) )

Schreibe kleine Programme und mach dich so mit der Sprache vertraut. Implementiere z.B. ein paar der grundlegenden Unix-Tools (tr, seq, basename).

Sinnvoll ist es sicher auch, gute kleine C-Programme zu studieren. Dazu kann ich die Projekte auf http://suckless.org empfehlen - klein, guter Code, ANSI C.

Wenn du C beherrschst, kannst du mit C++ weitermachen (falls du dann noch willst).
Use ed once in a while!

Benutzeravatar
Six
Beiträge: 8071
Registriert: 21.12.2001 13:39:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Siegburg

Re: Programmieren lernen in C++ bzw. C

Beitrag von Six » 14.05.2008 08:53:10

Ich kann mich im wesentlichen nur Meillo anschließen. Die Unterschiede zwischen C und C++ sind größer als man im allgemeinen annimmt. C ist z. B. wesentlich restriktiver als C++ und hat natürlich auch kein Klassenmodell.

In Anbetracht deiner Vorerfahrung würde ich, bevor du zu Kernigham und Ritchie greifst, empfehlen, erst mal grundsätzliche Programmierprinzipien zu erlernen. Ich kenne jetzt leider kein C-Buch, das sich hier besonders hervortun würde, aber ich schätze es gibt tonnenweise Tutorials im Netz. Empfehlenswert sind auch die Folien vieler Programmiervorlesungen für Erstsemester, wobei dort gerne Java verwendet wird. Auch ein bißchen Technische Informatik kann nicht schaden, um die Idee hinter Pointern und malloc/free besser zu verstehen. Wenn du Pointer kapiert hast, dann geben sich Strings (und alle anderen Arrays) von ganz alleine.

Danach sollte eigentlich jedes C-Lehrbuch geeignet sein, insb. natürlich auch K&R ;) Du mußt nur am Ball bleiben und alle paar Tage konsequent ein Kapitel durchnehmen, inkl. Übungen!
Be seeing you!

Benutzeravatar
frindly
Beiträge: 1085
Registriert: 23.10.2007 08:13:26
Wohnort: Recklinghausen

Re: Programmieren lernen in C++ bzw. C

Beitrag von frindly » 14.05.2008 09:03:17

Hallo
vielen Dank für die ersten Antworten! :D
Erste Erfahrungen mit Programmieren hab ich ja noch aus der Pascal Zeit. Die Frage C oder gleich C++ ist natürlich interessant. Soweit ich weiss ist C komplett in C++ enthalten, also kann man jedes C Programm mit C++ übersetzten. Vieleicht macht es aber auch Sinn direkt mit C++ zu beginnen und C zu überspringen. Das kann ich noch nicht beurteilen.
(Literaturmässig hab ich 2 x C und 1 x C++ zuhause)
Mein Problem ist unter anderem (ich hab schonmal versucht mit C anzufangen), ich nehm mir ein Kapitel vor. Dann lese ich es durch. Versuche zu verstehen und kann das Codesegment umsetzten. Aber mangels lebenden Objektes bleibt es dann bei dem Beispiel aus dem Buch. Dann hab cih mir mal vorgenommen eine kleine Datenbank zu schreiben. Hier kommt nen Bissl UserInterface, Datei operationen und auch Operationen mit Feldern und Vergleichfunktionen vor. Aber da fehlt dann das Wissen, es ist so komplex das ich gar nicht weiss wo ich anfangen soll. :(

Bei Pascal war das irgendwie leichter...

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Re: Programmieren lernen in C++ bzw. C

Beitrag von nepos » 14.05.2008 09:58:41

Dann nimm dir doch ein weniger komplexes Thema vor.

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Programmieren lernen in C++ bzw. C

Beitrag von Meillo » 14.05.2008 10:19:09

Du musst natürlich erst mal ein paar theoretische Grundlagen haben, bevor du praktisch anfängst.
Arbeite also ein Kapitel durch, mach die Übung und beginne dann das Beispiel kreativ zu erweitern. So hast du eine funktionierende Basis und kannst doch eigenen Code schreiben.

Wenn du dann ein paar Kapitel hast, versuche die einzelnen Themengebiete/Übungsprogramme zu verbinden. Und fange an, eigene Programme in der Art der Übungsprogramme zu erstellen.

Es ist anfangs oft doof so sinnlose Programme zu schreiben, aber der Sinn liegt darin, sie zu schreiben, nicht in ihrem Sinn. ( ;) )

Tipp:
Bei den ersten Programmen am besten Strings und malloc/free meiden.
Versuch mal `seq', das ist ein guter Beginn.
Ansonsten sind (einfache) Mathematische Programme immer gut. Z.B. Sieb des Eratosthenes ( http://de.wikipedia.org/wiki/Sieb_des_Eratosthenes ).

btw: Du willst C nicht überspringen, sondern lernen. Verstehe erst die Untermenge, bevor du die Obermenge (C++) und dazu noch OO anpackst. Ich kann das beurteilen.
Use ed once in a while!

Daniel_S
Beiträge: 5
Registriert: 07.04.2007 17:06:30

Re: Programmieren lernen in C++ bzw. C

Beitrag von Daniel_S » 14.05.2008 11:36:47

Hi, also ich würde nicht mit C anfangen. Das Problem ist C++ enthält zwar C aber nur um kompatibel mit den C Bibiliotheken zu sein. Das Programmieren in den beiden Sprachen unterscheidet sich aber. Zum Beispiel:

Ausgabe von Text:
in C würdest du es so machen
printf("Hallo Welt");

in C++ so
cout << "Hallo Welt" << endl


Außerdem beinhaltet C++ noch die STL die zum standard Sprachumpfang gehört, sie beinhaltet zB vectoren, listen, strings usw. Die müsstest du unter C erst selber programmieren oder auf fremde Bibliotheken zugrückgreifen.

Das Problem ist wenn du erst mit C anfängst und nachher mit C++ weiter machen möchtest, verleitet es eher dazu sich einen Programmierstil anzugewöhnen wie "C + Klassen" und kein sauberes C++

Was ich sehr gut finde für den Einstieg ist dieses EBook
http://www0.fh-trier.de/~hovenn/Vorlesu ... ferenz.pdf

Und wenn du das durch hast und ein paar Erfahrungen gesammelt hast ist das nicht schlecht
http://www.amazon.de/Effective-C%2B%2B- ... 908&sr=8-7
Es hilft einige bekannte Fehler zu vermeiden (Das gibt es auch auf Deutsch)

Und dieses hier ist eigentlich Pflicht für jeden C++ Programmierer
http://www.amazon.de/C%2B%2B-Programmin ... 071&sr=1-1
Das ist vom Erfinder von C++ geschrieben wurden. Also ich finde es richtig gut

Gruß, Daniel_S

Benutzeravatar
cirrussc
Beiträge: 6582
Registriert: 26.04.2007 19:47:06
Lizenz eigener Beiträge: MIT Lizenz

Re: Programmieren lernen in C++ bzw. C

Beitrag von cirrussc » 14.05.2008 20:30:44

Hi,
frindly hat geschrieben:Versuche zu verstehen und kann das Codesegment umsetzten. Aber mangels lebenden Objektes bleibt es dann bei dem Beispiel aus dem Buch. Dann hab cih mir mal vorgenommen eine kleine Datenbank zu schreiben. Hier kommt nen Bissl UserInterface, Datei operationen und auch Operationen mit Feldern und Vergleichfunktionen vor. Aber da fehlt dann das Wissen, es ist so komplex das ich gar nicht weiss wo ich anfangen soll. :(
Ha, so geht es mir auch immer. Jedes mal etwas zu grosses vor genommen :wink:

Im weitesten Sinne gibt es in Assembler (abhängig von der Arch) auch Pointer :D

Ich finde sowieso, man sollte das ganze auf kleinen 8Bittern anfangen, um überhaupt erst mal zu verstehen wie eine CPU funktioniert (die x86 Sind da etwas overdrive). Ohne diese Kenntnis ist das alles irgend wie Unvollständig, meine Meinung.
Meillo hat geschrieben:K&R "The C Programming Language" durcharbeiten!
Ist das zwangsläufig nur auf Englisch?
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl

Benutzeravatar
Meillo
Moderator
Beiträge: 9267
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Programmieren lernen in C++ bzw. C

Beitrag von Meillo » 14.05.2008 21:18:22

cirrussc hat geschrieben:
Meillo hat geschrieben:K&R "The C Programming Language" durcharbeiten!
Ist das zwangsläufig nur auf Englisch?
Nein, ich hab's (leider) auf Deutsch. Damals für ein paar Euro, AFAIR bei http://booklooker.de , erworben.
("leider", weil die verwendeten Begriffe z.T. recht gewöhnungsbedürftig sind. Sonst ist aber egal welche Sprache - der Code ist sowieso Englisch.)
Use ed once in a while!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Programmieren lernen in C++ bzw. C

Beitrag von Duff » 15.05.2008 10:25:27

Was ist denn mit den Büchern von http://www.galileocomputing.de/katalog/ ... 3hGN9ZGk7Q?

Habe selber mal angefangen das C++-Buch durch zuarbeiten. Habe aber vor ein paar Wochen (mangels Zeit) auf ca. Seite 500 ersteinmal Pause gemacht.

...und nun bestimmt auch schon wieder mehr als die Hälfte vergessen ;-(
Oh, yeah!

Benutzeravatar
nailuj
Beiträge: 44
Registriert: 01.01.2009 13:36:00
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Düsseldorf

Re: Programmieren lernen in C++ bzw. C

Beitrag von nailuj » 17.01.2009 16:33:58

Das Thema ist zwar schon etwas alt, aber wenn jemand ein gutes Buch zur Programmierung in C sucht kann ich "C von A bis Z" von GalileoComputing nur empfehlen. Auf der CD sind auch openBooks mit interessanten Themen wie z.B. GTK+-Programmierung usw. dabei.
Das Buch ist zwar sehr umfangreich aber trotzdem gut zu lesen, auch wenn es für komplette Anfänger vielleicht etwas schlecht geeignet ist weil man in den ersten Kapiteln viele (für den Anfänger überflüssige) Details lernt. Ansonsten aber echt toll, auch mit Kapiteln wie man Buffer Overflows vermeidet. Deckt also quasi alles ab und baut trotzdem auf Gelerntem auf.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Programmieren lernen in C++ bzw. C

Beitrag von Duff » 17.01.2009 17:09:31

Duff hat geschrieben:Was ist denn mit den Büchern von http://www.galileocomputing.de/katalog/ ... 3hGN9ZGk7Q?

Habe selber mal angefangen das C++-Buch durch zuarbeiten. Habe aber vor ein paar Wochen (mangels Zeit) auf ca. Seite 500 ersteinmal Pause gemacht.

...und nun bestimmt auch schon wieder mehr als die Hälfte vergessen ;-(
Habe nun nochmals angefangen das Buch durch zuarbeiten und bin mittlerweile schon auf Seite 700. Aber bin mal gespannt, wie es nach dem Durcharbeiten des Buches klappen wird und welches C++-Buch ich mir danach vornehme.
Oh, yeah!

Antworten