c++ lernen

pfannkuchen2001

Aktives Mitglied
Thread Starter
Dabei seit
17.02.2006
Beiträge
2.600
Reaktionspunkte
48
Hallo programmierende macuser,

ich habe vor, eine populärere sprache zu lernen als pascal/Delphi.
Ich lerne in der Schue im Info-leistungskurs Pascal/Delpi und bekomme (relativ) viel an Algorithmus kenntnissen beigebracht.

Da man aber nun Delphi nicht/nicht wirklich auf dem Mac programmieren kann, wollt ich nun eine Sprache lernen, die 1. relativ Plattformunabhängig ist (also mindestens Windoof und Mac), 2. "zukunftsträchtig" ist und ausserdem noch so komplex ist, das man damit möglichst viele Möglichkeiten bekommt!

da kommt mir nach ein bischen rumhorchen eigendlich nur c++ in den sinn! Seh ich das richtig?
Code:
[B]C++[/B] ist eine der verbreitetsten und
industriell bedeutendsten [URL="http://de.wikipedia.org/wiki/Programmiersprache"]Programmiersprachen[/URL].
>Wikipedia
Vielleicht gibt es aber noch andere alternativen?! die von den Syntax her nocht so schwer zu erlernen sind (ist das überhaupt so -- ich hab das mal gehört)
Was für Sprachen benutzt ihr (ausser Deutsch und Englisch;))??
Welche objektorientierte Sprache würdet ihr empfehlen?
Könntet ihr gute Literatur empfehlen? (am libsten "richtig Buch";)

Grüße,
Hannes
 
ich hab zwar nur c gelernt, aber das mit dem buch "c von a bis z"*
sehr gut erklärt und auch immer mit beispielen.

hier*kann man das c und c# sich KOSTENLOS runterladen.
es ist alles wichtige darin aufgeführt.
 
oder arbeitet jemand mit Python?
ist ja ein sehr interessanter Artikel bei Wikipedia!

Hannes
 
pfannkuchen2001 schrieb:
Programmiersprachen[/URL]. >Wikipedia[/code] Vielleicht gibt es aber noch andere alternativen?! die von den Syntax her nocht so schwer zu erlernen sind (ist das überhaupt so -- ich hab das mal gehört) Was für Sprachen benutzt ihr (ausser Deutsch und Englisch;))?? Welche objektorientierte Sprache würdet ihr empfehlen? Könntet ihr gute Literatur empfehlen? (am libsten "richtig Buch";) Grüße, Hannes
Da kann man lange und ausgiebig schreiben und diskutieren. Mit Java kannst Du plattformunabhängig lernen. Es gibt 2 gute Bücher Java lernen mit Eclipse. Sonsts sehr schön zu lernen ist ruby. Eine sehr nette objektorientierte leichte Sprache. Ich steige gerade von Perl um. Richtung Spassprogrammieren kann man gut mit Realbasic. Ciao Tom!
 
Also ich finde es meiner Meinung nach immer richtig schwer, eine Programmiersprache nur für sich allein zu lernen. Daher kann ich auch keine Buchempfehlungen geben. So richtig zum Programmieren kam ich erst an der Universität, da man dort zwecks 14tägiger Abgaben sich eingehend mit der Materie beschäftigen darf. Durch konkrete Aufgabenstellungen lässt sich meiner Meinung nach viel mehr erreichen.

Wir haben damals mit Pascal angefangen, dann ein paar Minuten C "gemacht" und wurden dann innerhalb von einem Semester mit Scheme, JavaScript und C++ vertraut gemacht. Im Nachhinein kann ich sagen, dass Pascal Zeitverschwendung ist, aber Scheme ganz nett ist für ein paar Wochen. Da du ja schon ein bisschen Programmiererfahrung hast, können wir ja gleich zu deiner Zielsprache kommen.

Sicher schadet C++ nicht, aber es erfordert doch ein wenig mehr Eigeninitiative vom Programmierer (Zeiger, Referenzen, keine Garbage Collection). Daher ist Java zum Einstieg einfacher, da einem viel abgenommen wird. Nachher ist allerdings ein Switch von C++ zu Java einfacher als von Java zu C++. Für Java reicht als Nachschlagewerk das Handbuch der Java Programmierung von Krüger oder die online-Variante von "Java ist eine Insel" oder so ähnlich. Aber Lernbücher sind das glaube ich beide nicht.

Python ist auch eine sehr sehr feine Sache. Leider findet diese in unseren Projekten keinen Einklang, so dass ich gar keine Zeit habe, mich intensiver damit zu beschäftigen. Leider. Aus meiner heutigen Situation würde ich erst einmal mit Python ein paar Dinge ausprobieren, bevor es an Java oder C++ geht.

Aber viel wichtiger ist, dass man sich erst einmal wichtige Grundlagen in Sachen Datentypen, Algorithmen, Vererbung, Objektorientiertes Programmieren im allgemeinen sich aneignet. Das erleichtert einen den Einstieg in jede Sprache und ist viel wichtiger als die Programmiersprache selbst.
 
Zuletzt bearbeitet:
also wirkliche plattformunabhängigkeit bekommst du nur mir java oder python.

im gewissen maße noch mit c
doch spätestens mit betriebsystemabhängigen sachen ala prozesse oder threads oder sockets da stößt das dann an seine grenzen.

python läuft auch auf ner vm (wie java) und ist deshalb auch plattformunabhängig. außerdem hast du bei python noch 2 vorteile:
1. ist pythoncode mit einer der lesbarsten.
2. hast du einen interpreter, der das ausprobieren/testen von code sehr einfach macht.

also wenn du das wirklich lernen willst, dann würd ich dir für den anfang zu java oder python raten, wobei ich sobald du da klar kommst zu c raten würde. denn in c musst du sehr viel mehr selbst machen, z.b. den unterschied zwischen object und pointer auf object hast du hier explizit.


also mein fazit:
fang mit python oder java an und schau dir dann aber auch mal c an. denn bei python und java hantierst du mit objecten, wobei dir beim umgang nicht unbedingt klar wird ob das nun das object selber ist oder nen pointer.
 
Hi,

auch ich würde Python oder Java für den Einstieg empfehlen. In Python gehen viele Sachen schneller als mit Java, man hat hier vielleicht noch schneller Erfolge.
 
@pfannkuchen2001,

delphi und pascal haben unschlagbare vorteile für das grundsätzliche erlernen von programiersprachen. sie haben eine strenge typisierung. wenn ich in c oder c++ über pointer so alles saubere an programmierung aushebeln kann, ist das bei pascal und delphi nicht so ohne weiteres möglich. deshalb sind pascal und delphi unschlagbare lernsprachen.

wenn du die grundlagen der programmierung beherrscht, wirst du feststellen dass der umstieg zu einer andern syntax relativ einfach ist und sich bei projekten später gar nicht mehr stellt. da bekommt man dann meist eine aufgabe und macht sich erst nach der planung über die sprache gedanken. die syntax ist nur ein werkzeug, nichts weiter.
 
Hallo!

Also wenn du noch nicht angefangen hast.

Lerne zuerst C nicht C++.
Und Python ist mit eine der geilsten Sprachen.
Ich behaupte einfach mal, dass die Kombination aus C (und nacher vllt. C++) und Python so ziemlich alles abdeckt (natürlich noch Bash-/Shell-Syntax allgemein um ein paar Skripten schreiben zu können).

So, warum C und nicht C++?

- C++ basiert auf C und ist laut ANSI-Standard voll kompatibel dazu (man lernt also nix falsches).
- ich habe (leider) mit Scriptsprachen angefangen zu programmieren und hörte immer, dass einige Sachen unschön seien. Warum dies so ist, lernst du wenn du C programmierst => sehr maschinennahe (damit meine ich, du lernst mit heaps, stacks umzugehen, diese zu verstehen, warum man variablen initialisieren sollte, wie man sich mit Pointern gut in den Fuß schießen kann, etc.)

Ich möchte das Wissen, was ich durch C erlangt habe (und erlange - bin Anfänger!) nicht mehr missen, bei C++ muss man sich um einige solcher Sachen keine Sorgen mehr machen, produziert dann aber leider auch häufig leicht ausnutzbaren Code, weil man nicht genau weiß, was da auf Maschinenebene gerade passiert.

Gruß,

d@tenmaulwurf

PS: zu Java habe ich einen vllt. nicht grad aber feinen aber passenden Spruch gefunden:
Saying Java is good because it works on all platforms is like saying anal sex is good because it works on all genders.
 
com_hajo schrieb:
@pfannkuchen2001,

delphi und pascal haben unschlagbare vorteile für das grundsätzliche erlernen von programiersprachen. sie haben eine strenge typisierung. wenn ich in c oder c++ über pointer so alles saubere an programmierung aushebeln kann, ist das bei pascal und delphi nicht so ohne weiteres möglich. deshalb sind pascal und delphi unschlagbare lernsprachen.

Äh, wie jetzt?
Wieso "hebel" ich durch Benutzung von Pointern Typisierungen aus ?!
Ich kann nur wiederholen, wenn du gut C programmieren kannst, dann hast du nicht nur dein Wissen allgemein über die Maschine an sich massig erweitert, sondern es dürfte dir leicht fallen auch schön und anderen Programmiersprachen zu programmieren (vorallem dich beim Erlernen von C++ kannst du dich dann voll auf die OOP (Objektorientierte Programmierung) konzentrieren).
Das halte ich für die beste Lösung - und nebenbei halt Python :)
 
einfaches beispiel guggst du hier:
http://www.pronix.de/pronix-740.html

das ist mit pascal nicht möglich, da schon der compiler mault. in c wirst du länger suchen, weil dem compiler solche sachen völlig wurscht sind. irgendwann zur laufzeit deines programms kommt ein segmentation violation und das wars dann. als anfänger hast du keinen plan, wo du überhaupt mit dem suchen anfangen sollst. da hilft dir auch kein quellcode-debugger, weil du nicht auf die idee kommst auf adressenänderungen zu achten. zum erlernen der grundlagen des programmierens ist sowas ziemlich suboptimal!
 
datenmaulwurf schrieb:
C++ basiert auf C


:Oldno: böse Fehlannahme!

Beide teilen sich den Sprachwortschatz, aber OO-Design in C++ ist was gaaanz anderes als C-Programmieren! Gaanz andere Baustelle!
 
also ich würde dir zu Scheme und Java raten.

Für beide gibt es sehr gute Bücher. Und ich hätte auch Mitschriften aus
einer Vorlesung von mir anzubieten, darauf ist alles sehr deutlich
beschrieben.

Bein Interresse schreibst du mir einfach eine pm
 
wegus schrieb:
:Oldno: böse Fehlannahme! Beide teilen sich den Sprachwortschatz, aber OO-Design in C++ ist was gaaanz anderes als C-Programmieren! Gaanz andere Baustelle!
richtig, man kann höchstens sagen dass C ein Subset von C++ ist
 
Hmmmm...

Zitat von wikipedia - Artikel zu C++:

C++ ist eine Erweiterung der Programmiersprache C gemäß dem Stand von 1990 (ISO/IEC 9899:1990, auch kurz C90 genannt). C++ enthält C nach dem Stand C90 fast vollständig. Einige wenige C-Programme lassen sich nicht ohne weiteres als C++ kompilieren beziehungsweise haben als C++-Programme eine etwas andere Bedeutung. Dabei handelt es sich aber um Sonderfälle, die in der Praxis keine große Rolle spielen.

Die Kompatibilität mit C war eines der Hauptdesignziele bei der Entwicklung der Programmiersprache C++.

Ich mein für mich bedeutet, wenn a eine Erweiterung von b ist, a auf b basiert.
Zudem enthält C++ C fast collständig, warum soll auch hier C nicht die Basis für C++ sein?
 
Ein schönes Beispiel afür, daß auch wikipedia nicht alles weiß!

Österreicher und Deutsche benutzen auch viele gleiche Worte, trotzdem reden sie oft anneinander vorbei!

C ist imperative Programmierung
C++ ist OO Programmierung

wenn da der Entwurf gleich ist, dannn sind auch C und Java gleich! Ist dem so?

auch in Objective C ist C enthalten, sogar noch transparenter ( Objekte werden durch id-pointer referenziert). Auch hier sind die Worte gleich, daß wars dann auch schon! Nat. kann man in C++ einfach C programmieren, nur lernt man davon C++ nicht!
 
com_hajo schrieb:
einfaches beispiel guggst du hier:
http://www.pronix.de/pronix-740.html

das ist mit pascal nicht möglich, da schon der compiler mault. in c wirst du länger suchen, weil dem compiler solche sachen völlig wurscht sind. irgendwann zur laufzeit deines programms kommt ein segmentation violation und das wars dann. als anfänger hast du keinen plan, wo du überhaupt mit dem suchen anfangen sollst. da hilft dir auch kein quellcode-debugger, weil du nicht auf die idee kommst auf adressenänderungen zu achten. zum erlernen der grundlagen des programmierens ist sowas ziemlich suboptimal!

Achso, mir war nicht klar, dass wir darüber reden, wie bestimmte Compiler meckern (zudem es ja genug für die Übersetzung von c/c++ gibt).
 
wegus schrieb:
Ein schönes Beispiel afür, daß auch wikipedia nicht alles weiß!

Österreicher und Deutsche benutzen auch viele gleiche Worte, trotzdem reden sie oft anneinander vorbei!

C ist imperative Programmierung
C++ ist OO Programmierung

wenn da der Entwurf gleich ist, dannn sind auch C und Java gleich! Ist dem so?

auch in Objective C ist C enthalten, sogar noch transparenter ( Objekte werden durch id-pointer referenziert). Auch hier sind die Worte gleich, daß wars dann auch schon! Nat. kann man in C++ einfach C programmieren, nur lernt man davon C++ nicht!

Also ist der Wikipedia-Absatz grundlegend falsch? Also nicht falsch verstehen, das ist eine ernsthafte Frage, keine rhetorische.
 
d@tenmaulwurf schrieb:
Also ist der Wikipedia-Absatz grundlegend falsch? Also nicht falsch verstehen, das ist eine ernsthafte Frage, keine rhetorische.


Er ist im Sinne von minilux Aussage richtig, C ist ein Subset von C++ !
Leider wird das oft so mißverstanden, daß man erst C lernen kann und dann das Stück ++ noch oben drauf. Besser wär gewesen man hätte C++ gleich D genannt, so glauben alle C++ sei eine Subart, dem ist nicht so.
 
Zurück
Oben Unten