PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C(++) für Anfänger?


Undertaker
2005-10-10, 09:05:23
hi

ich wollte mich in meiner freizeit bis zu meinem informatikstudium nächstes jahr sinnvoll beschäftigen und c/c++ lernen... dazu nun meine fragen:

1. ist c++ für mich im selbststudium zu erlernen? mehr als html, etwas php und die programmierung meines gtr habe ich bis jetzt noch nicht gemacht...

2. was bracuhe ich alles an programmen? gibt es hier für den anfang auch freeware?

3. könnt ihr mir ein gutes buch für anfänger empfehlen?

mfg undertaker

Hucke
2005-10-10, 10:46:48
Wirf mal nen Blick in den Tutorials Thread. Da gibts z.B. den Link auf Thinking in C++. Ich persönlich find das recht gut gemacht und denke für den Anfang kann man gut damit leben.

Und zur C/C++ Programmierung (mach selber nur sehr wenig) benutz ich Bloodshed Dev-C++. Nettes IDE, das gcc als Compiler nutzt. Gibts bei www.bloodshed.net

Gast
2005-10-10, 11:22:32
Entscheide dich am besten für eine Sprache und mach kein Mischmasch.

ZapBee
2005-10-10, 11:30:50
wichtig ist, daß du es von anfang an richtig lernst. C ist insofern geeignet, als es keine Fehler verzeiht, allerdings ist es (deswegen) auch schwieriger als z.B. VisualBasic. Du solltest Dir ein bißchen was zu strukturierter Programmierung anlesen, das hilft später beim Analysieren eines Problems ungemein. Nimm Dir leichte Aufgaben vor, lerne es von der Pike auf richtig, mach nichts nur "irgendwie, daß es läuft".

Zap

Hucke
2005-10-10, 11:36:10
wichtig ist, daß du es von anfang an richtig lernst. C ist insofern geeignet, als es keine Fehler verzeiht, allerdings ist es (deswegen) auch schwieriger als z.B. VisualBasic. Du solltest Dir ein bißchen was zu strukturierter Programmierung anlesen, das hilft später beim Analysieren eines Problems ungemein. Nimm Dir leichte Aufgaben vor, lerne es von der Pike auf richtig, mach nichts nur "irgendwie, daß es läuft".

Zap

Ich weiß ja nicht. Die große Toleranz des C Compilers in Sachen Fehler ist für mich kein Vorteil. Die Suche nach dummen Runtime Fehlern kann einen schonmal in den Wahnsinn treiben. Da ist Java deutlich freundlicher (weil strenger in der Syntax), wenn auch nicht perfekt. Echte Profis bekommen in Java auch schöne Runtime Fehler hin. :D

Aber mit der strukturierten Programmierung hast Du recht. Von daher gefällt mir grad das Thinking in C++ Tutorial. Zu Beginn werden die Grundlagen der objektorientierten Programmierung z.B. erklärt.

Baalzamon
2005-10-10, 12:50:46
Für eine gescheite IDE schau doch mal hier (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=252820) rein, da wurde schon der ein oder andere Vorschlag gemacht.

Avalox
2005-10-10, 14:03:27
hi

3. könnt ihr mir ein gutes buch für anfänger empfehlen?



Seit einiger Zeit gibt es eine gut übersetzte Version des Buches
"C++ in 21 Tagen" ISBN: 3827268893

Ist eigentlich das Buch um sich mal einzulesen.

ZapBee
2005-10-10, 14:06:43
Seit einiger Zeit gibt es eine gut übersetzte Version des Buches
"C++ in 21 Tagen" ISBN: 3827268893

Ist eigentlich das Buch um sich mal einzulesen.

Auf der beiliegenden CD ist das Buch "Visual C++ in 21 Tagen" (hat mit dem Original nichts zu tun) als Datei enthalten.
Ohje. Unser Programmierdozent hat immer gesagt: "Würden Sie jemandem zutrauen, ein Haus zu bauen, weil er das Buch 'Hausbau in 21 Tagen" gelesen hat?" :D

Undertaker
2005-10-10, 14:11:49
was haltet ihr von dem buch?

http://www.amazon.de/exec/obidos/ASIN/3446403329/qid=1128946198/sr=8-6/ref=pd_ka_6/028-8916690-3278144

die kommentare bei amazon klingen ja nicht schlecht...

Avalox
2005-10-10, 14:12:51
@ZapBee

Hat er sich in seiner Zunft auf dem Schlips getreten gefühlt?

Es ist nach wie vor ein gutes Buch. Über den Titel lässt sich streiten, aber wie immer zählt erstmal auffallen.

Obwohl ja heute in einen Erguss kreativen Mangels, jedes zweite Einführungsbuch im Titel mit "in 21 Tagen" endet. Das o.g. Buch ist halt das Original und es hält ja auch was es verspricht.

Avalox
2005-10-10, 14:15:36
was haltet ihr von dem buch?



Da wird sich aber dein zukünftiger Informatik Prof. freuen, wenn du Spiele unter Windows programmieren kannst. Oder dessen Assistent (der wohl noch eher).

Undertaker
2005-10-10, 14:21:56
darum geht es mir aber nicht... sondern das buch soll sehr ausführlich die anfänge von c++ behandeln und einen anfänger wie mich nicht ins kalte wasser werfen - und ob es den schwerpunkt auf programme oder spiele legt dürfte dabei doch eigentlich egal sein, oder?

zitat:

"Ich habe schon sehr viele Bücher über C++ gelesen und ich muss sagen, dass "C++ für Spieleprogrammierer" von Heiko Kalista das einsteigerfreundlichste von allen ist."

"Dieses Buch sollte eigentlich für Spieleprogrammierer sein. Ist es auch sicherlich, aber nicht nur."

"Gerade für Einsteiger mit wenig bis keiner Programmiererfahrung eignet sich dieses Buch besonders. Anhand von Beispielen die aus der Spieleprogrammierung kommen erklärt der Autor schrittweise die grundlegenden Funktionen von C++."

Senior Sanchez
2005-10-10, 16:38:20
Ich habe vom mitp-Verlag das Buch "C++ - lernen und professionell anwenden". Ist urst cool, vor allem auch vom Layout.

ZapBee
2005-10-10, 16:59:46
Zu dem C++ für Spieleprogrammierer:
Die ersten 200 Seiten (Variablen, Schleifen, ...) kannst Du auch aus dem Internet kriegen, und die sind bei fast jeder modernen Sprache gleich oder sehr ähnlich. Und für 100 Seiten, die ein doch eher spezielles Thema behandeln, 35€ auszugeben...?
Ich möchte diese Fähigkeit mal mit Autofahren vergleichen:
Allein vom Lesen des Handbuchs lernt man nicht fahren, sondern nur, indem man es übt und aus Erfahrungen lernt. Wenn Du erstmal fahren kannst, ist es egal, mit welchem Auto, das eine hat vielleicht Automatik, das andere Sitzheizung, und das dritte ist Blaumetallic
Schreib ein Programm, das Dir eine eingegebene Zahl (Sekunden) in Tage, Stunden und Minuten umrechnet. Mach das nicht irgendwie, sondern schreib eine Funktion für die Eingabe, eine für die Berechnung und eine für die Ausgabe.
Dann schreib das nächste Programm, etwas schwieriger (Wochentag aus Datum ermitteln?) usw.
Aufgaben findest Du genug im Netz. Laß jemanden rübergucken, der programmieren kann, vorzugsweise einen, ders richtig gelernt hat, keine Autodidakten, die machen viel "Quick&Dirty".
Übung macht den Meister.

Gruß und viel Erfolg
Zap

PS: programmieren lernen ist nicht wie eine Fremdsprache lernen, sondern eher wie "denken lernen", algorithmisch nämlich. Die Programmiersprache dann, das ist die Fremdsprache, die hilft Dir aber nicht, wenn Du Dein Problem nicht ausdrücken und lösen, also nicht "denken" kannst
Bitte versteh mich nicht falsch, ich weiß natürlich, daß Du denken kannst. Es ist nur ein Vergleich.

Undertaker
2005-10-10, 17:15:25
hmm...

dav133
2005-10-10, 17:36:47
Hi,

ich bin in der 11ten Klasse im Fachbereich Datentechnik (wird hier auf der Schule angeboten). Unser Lehrer hat ein 260 Seitiges, perfekt strukturiertes Werk verfasst und dies zur allgemeinen Verwendung freigegeben. Ich sag' mal so... Steig' auf keinen Fall in C++ ein, nur weil du später mal unbedingt in der Spielebranche arbeiten willst. Die Chancen sind sehr gering und der Großteil der programmierenden Leute da draußen macht sich die Illusion.

Ich würde mit DOS-bezogenem Kurs anfangen also 'cout << "bla\n";' etc. :) Hat zwar noch nicht wirklich viel mit echten Programmabläufen zu tun, es geht ja nur darum, eine gewisse Sicherheit beim Programmieren zu erlangen. PHP als Grundlage ist schonmal sehr gut, es ist wichtig, dass du die Syntax drin hast. Für den Anfang würde ich an Compilern den "Cygwin" und den "Borland Builder" empfehlen (letzterer wartet mit einer sehr guten Hilfe auf).

Man sagt ja immer 'Lern programmieren, der Rest ist Sytax'. Ich kann diesen Satz zwar nicht voll unterschreiben, aber wenn du PHP wirklich beherrschst und mit den Grundlegenden Programmabläufen vertraut bist, sollte es kein Problem sein. Sicher ist es immer schwierig, sich Sachen selbst beizubringen. Es gibt im Internet auch zahlreiche, sehr gute Kurse, die den käuflich erwerblichen Büchern in nichts nachstehen (Volkards C++ Kurs). Täte aber wirklich die Abhandlung meines Lehrers empfehlen (Theorie & Praxis auf 260 Seiten, 1,3MB .doc datei).

Ich hab' hier noch ein Buch, das sich "C++ für Kids" schimpft. Ist eigentlich speziell für Total-Einsteiger gut geeignet, allerdings könnten vllt. die "Hasen und Möhren-Bilder" etwas stören, wenn man über 10 ist :). Erstmal ein sehr lobenswerter Ansatz, deine Zeit nicht mit warten und "chillen" zu vergeuden, sondern was aus dir zu machen. Darf man fragen, in welche unterrichtung du gehst oder ob du die 'reine Informatik' studieren willst? Hab ja deinen Thread im OT mitverfolgt :).

/edit: Noch ein kleines Update bzgl. des 'Spieleprogrammierungsbuchs': Also da Game-programming so mit die höchste Stufe der angewandten Programmierung sein dürfte, ist es wohl trotz noch so guter Erklärung keine gute Idee, damit einzusteigen. Darüberhinaus wird sehr viel an Software (Bildbearbeitung) gefordert, was eigentlich garnix mit deinem eigentlichen Ziel zu tun hat. Also von daher, fang klein an und wenns Spaß macht und du erste Fortschritt siehst und auf dein Können aufbaust, dann kannste dir das Buch ja immernoch holen.

maximAL
2005-10-10, 19:12:26
Ich hab' hier noch ein Buch, das sich "C++ für Kids" schimpft. Ist eigentlich speziell für Total-Einsteiger gut geeignet, allerdings könnten vllt. die "Hasen und Möhren-Bilder" etwas stören, wenn man über 10 ist :).
das buch hatte ich anno dazumal auch. allerdings ist es nicht wirklich sinnvoll um C++ zu lernen, da es sich sehr auf den C++ builder und dessen GUI-kit bezieht.
Also da Game-programming so mit die höchste Stufe der angewandten Programmierung sein dürfte
ähm,also...nicht wirklich :|

dav133
2005-10-10, 19:19:57
das buch hatte ich anno dazumal auch. allerdings ist es nicht wirklich sinnvoll um C++ zu lernen, da es sich sehr auf den C++ builder und dessen GUI-kit bezieht.

Naja, es baut auf dem BCB1 auf (1995 oder so :D). Klar, es wird viel über Zuweisungsoperatoren (Label1->Caption) und Case Sensitivity geredet, aber der groben Überblick bekommt man. Hab ja nicht gesagt, dass es das einzig wahre Einsteigerbuch ist.

ähm,also...nicht wirklich :|

Es ist zumindest das komplexeste (Programmierung moderner Spiele von grund auf, also eigene Physik-Enginge, eigenes Sound-System, eigene Grafik-Engine...), was mir so auf die schnelle eingefallen ist. Sicher gibt es mittlerweile viele "zusammenbastel-Komponenten", aber der Aufwand ist immernoch sehr hoch. Ich hab nie bestritten, dass es noch andere sehr komplexe programmierbereiche gibt :). So ein OS zu fabrizieren stell' ich mir schwer vor.

SethGecko
2005-10-10, 19:44:13
Wie schon mehrfach angedeutet ist C++ lernen harte Arbeit. Man kann noch so viele Bücher lesen und trotzdem scheitert man erst mal mit dem eigenen Programm.

Habe zB das C / C ++ Kompendium, ISBN 3827268125 gelesen (allerdings nicht damit angefangen). Fand das allerdings ganz gut.

Wenn man die Grundlagen schon etwas kann, würde ich etwas lesen, wo damit auch etwas sinnvolles programmiert wird, zB 3D Spieleprogrammierung von David Scherfgen, wobei in dem Buch auch sehr viel Mathematik steckt.

mfg Seth

The Tank
2005-10-11, 09:24:52
Schliesse mich ZapBee an.
Es ist vor allen dingen wichtig es 'richtig' zu lernen.
Keine Abkürzungen, keine Faulheit.

Ich hatte damals mit Pascal angefangen und finde es noch die beste Anfängersprache.
Zum einen wird man einem guten Style-Guide aufgezwungen, zum anderen kann die Sprache recht viel ohne dabei, wie C, sauereien zuzulassen.
Von da aus dann C und Java gelernt.

Viele Bücher und Tutorials vermitteln schlechte Angewohnheiten.
'a' ist keine Variablenbezeichnung und foo() nur als Pseudofunktion akzeptabel.
Wenn man es autak lernt interessierts sicherlich keine Sau wie du deine Variablen oder Funktionen benennst. Möchtest du aber später auch professionell Programmieren solltest du dir gleich nen guten Stil zulegen. Denn irrgendjemand wird dann deinen Code lesen müssen und dieser sollte dadurch schnell verständlich sein, auch wenn die von den Details keine Ahnung haben müssen/werden.

Was gut an Pascal oder C ist das man gezwungen wird, hinter sich aufzuräumen.
Das zwingt auch gleich nen guten Style auf.
Auch wenn jemand nur Java programmieren tut, sollte er/sie davon wissen.

HTH

ZapBee
2005-10-11, 10:52:24
Viele Bücher und Tutorials vermitteln schlechte Angewohnheiten.
'a' ist keine Variablenbezeichnung und foo() nur als Pseudofunktion akzeptabel.
Wenn man es autak lernt interessierts sicherlich keine Sau wie du deine Variablen oder Funktionen benennst. Möchtest du aber später auch professionell Programmieren solltest du dir gleich nen guten Stil zulegen. Denn irrgendjemand wird dann deinen Code lesen müssen und dieser sollte dadurch schnell verständlich sein, auch wenn die von den Details keine Ahnung haben müssen/werden.
:up:
gerade wieder so ein Beispiel erlebt: Kollege ist im Urlaub, hat ein Programm zum Adressabruf aus der DB geschrieben, für Mailings.
Er hat für jedes Problem einen Knopf (PLZ-Bereich, Erfassungsdatum, letzter Kauf usw.). Will man aber zwei Kriterien kombinieren, gehts nicht weiter. Habe mich also in seinen Code eingelesen. Oder besser: es erfolglos versucht...
Seine Variablen heißen alle etwa so:

kexec
kex1
kex2
kex3
kexh1
kexh2
kdat1
kth
...
:eek:
auskommentiert hat er ein bißchen, leider auch die nicht mehr benötigten Programmzeilen, super zu lesen...#

- Schreibe den Code so, daß Du ihn auch in einem halben Jahr noch verstehst
- Schreibe den Code so, daß ihn ein anderer in möglichst kurzer Zeit versteht (Kommentare!!!)
- Schreibe strukturierten Code: jede Funktion hat genau eine Aufgabe, und sie heißt so, wie sie arbeitet (function summe(a, b), ...)
- Verwende selbsterklärende Variablennamen (anz(ahl), name, tel(efon))
...

Zap

PS: Es sei denn, Du willst ein echter Programmierer werden, dann lies das hier (http://www.leo.org/information/freizeit/fun/pascal.html) ;D
PPS: Und hier eine kritische Betrachtung des vorherigen Textes: klick (http://www.bernd-leitenberger.de/echte-programmierer-neu.html)