# [OT]C++ lohnt das?

## hoschi

http://www.amazon.de/exec/obidos/tg/stores/detail/-/books/3826608240/reviews/ref=cm_rev_more/028-6013686-2031703#4

Ist das Buch gut, muss ich etwas beachten wenn ich für Linux/GNU Programmieren will, außer einen GNU-Compilier installiert zu haben  :Smile: 

Oder wäre es viel klüger erst mit Java zu beginnen?

Grüße

----------

## Nightwulf

Hi !

Ich denke nicht, dass diese Frage so einfach beantwortet werden kann. Es kommt (wie bei so vielen Dingen) ganz auf den Einsatzzweck an. Ich selbst verwende z.Zt. Java für Frontend-Programmierung und C++ für den dazugehörigen Backend-Bereich. Ein wenig mehr Informationen über Dein Vorwissen und was Du genau machen möchtest, würde sinnvolle Tips sehr ehrleichtern.

Gruß,

Nightwulf

----------

## elVito

Hi,

Ich finde Python relativ einfach (wenn man sowas überhaupt sagen kann) für den Anfänger zu lernen. Es gibt eine gute Seite die du dir unbedingt anschauen solltest. 

http://www.lernnetz-sh.de/kmlinux/doc/Python-Programmierung/tutindex.htm

Ich selber hab mal mit perl (angeblich auch einfach  :Smile:  ) angefangen und kann dir dazu das entsprechende Buch von Oreilly (die sind übrigens alle sehr gut) empfehlen. Google hilft dir die entsprechenden Seite zu finden. 

gruß der Vitus

P.S. Viel Spaß und Ausdauer wünsch ich dir auch noch beim Lernen   :Wink: 

----------

## CybeRDukE

ich bin auch der meinung, dass die wahl der sprache stark davon abhaengt, was du denn machen moechtest. deswegen solltest du dich ohnehin nicht auf ein sprezialisieren, aber das nur am rande.

ich find c++ sehr gut. programmiere damit jetzt seit ca einen dreiviertel jahr ernsthaft, davor hab ich ein paar jahre java programmiert (wir werden im studium dazu gezwungen, sonst haette ich das nicht gemacht *g*). meine persoenlich einschaetzung ist, dass man mit c++ mehr machen kann, aber es auch schwieriger ist, die sprache wirklich zu verstehen. 

schreib am besten mal, wieviel vorwissen du mitbringst und welche art programme du schreiben willst. dann koennen wir dir genauere ratschlaege geben, auch was literatur angeht (hoffe ich)

----------

## hoschi

ich habe kein vorwissen (ok, fast keins), und will einfach nur eine "mächtige" programmiersprache lernen die mir später ganz allgemein etwas bringt, und mit der ich auch anderen das leben etwas erleichtern könnte  :Smile: 

wobei das mit dem erleichtern, na ja, das wird sicher noch sehr langer weg werden  :Wink: 

ich habe mir delphi etwas näher angeschaut, und festgestellt:

toll gui...mehr auch nicht, mir fehlt da quasi ein inhalt im programm, oder viel mehr im source (html ist zwar keine programmiersprache, aber ich muss es eben selbst machen, das fehlt mir bei delphi total)

wenn ich was mache, dann auf die "knallharte" tour, ich habe auch nicht mit suse oder redhat viel geplänkelt, und bin gleich zu gentoo obwohl man sich als n00bie damit wohl keine gefallen tut  :Rolling Eyes: 

ich war im mathematischen-naturwissenschaftlichen zweig, bin also mathematisch kein total dau, obwohl ich jetzt wirklich in einer ganz anderen ecke gelandet bin -> geldscheine anmalen im automaten   :Razz:   :Wink: 

soweit man es mir auch inzwischen geraten hat ist java anfangs wohl nicht dumm und "relativ" einfach, werde es jetzt aber, sofern ihr jetzt hier nicht sturm gegen meine entscheidung läuft c++ anfangen (ahhh, wird das wieder toll...)

bring ich mich jetzt um 45uronen wenn ich das buch kaufe, oder habe ich damit eine chance, oder mit welchem buch habt ihr angefangen, ich muss halb immer daran denken: 

es muss von vorne anfangen

wäre halbe schade wenn ich feststellen muss das ich mir mit c++ als anfänger eine definitiv zu hohe hürde vorgenommen habe  :Sad: 

----------

## Lenz

Delphi :rofl:, gibt's das überhaupt noch...

Ich denke C und C++ lohnen am meisten.

----------

## CybeRDukE

maechtig ist c++ ohne frage und man kann es auch ohne grosses vorwissen lernen. syntax ist auch nicht schwieriger als bei anderen sprachen (v.a. im hinblick auf java)

das buch, das du angegeben hast, kenn ich nicht. ich hab gleich mit der c++ bibel ("die c++ programmiersprache - bjarne stroustrup") angefangen. das buch hat aber ganz schoenes niveau, also eher ungeeignet fuer einen anfaenger.

aber wenn du erstmal die grundkenntnisse erlangt hast, dann empfehle ich "effektiv c++" und "mehr effektiv c++" von scott meyers. die beiden buecher haben mir geholfen, die sprache wirklich zu verstehen.

was das einsteigerbuch angeht, da koenntest du mal ein paar buecher bei amazon rausschreiben, die gute bewertungen bekommen haben und in der buchhandlung ein wenig drin rumlesen, ob es deinem niveau entspricht. vorausgesetzt du hast das glueck eine buchhandlung mit mehr als 2 c++ buechern vor ort zu haben.

----------

## hoschi

genau das kann ich leider nicht:/

landei, und mehr zeit zum stöbern habe ich frühestens in zwei wochen...

<edit> ich such jetzt mal nach deinen büchern  :Smile: 

<edit²>ich glaube ich riskier das von mir ausgesuchte, aber teuer ist es schon *geldzähl*

die rezessionen und beurteilungen "für anfänger oder nicht" sind bei, dem von mir geposteten am besten

 *Quote:*   

> Schwierig, aber die Mühe ist es wert!!!, 17. September 2001
> 
> 	Rezensentin/Rezensent: peterpoier
> 
> Ich habe vorher schon mit VB und Delphi programmiert, aber noch nicht sonderlich aufseheregende Programme. Jetzt hab ich eben auch einen Blick auf die komplexe Programmiersprache C++ gewagt und mir dieses Buch gekauft.
> ...

 

gab aber unter den insgesamt 55 bewertung 3 mit einem stern, ein paar leuten ist das ganze zu komplex oder das "warum" wird nicht erklärt...ach für was gibts google  :Very Happy: 

----------

## lolli78

hallo,

also: es lohnt sich immer, eine programmiersprache zu erlernen. oder hat wissen schonmal geschadet?

du solltest nur vor jedem einsatz überlegen, welches die geeigneteste sprache dafür ist. von c ohne "++" würde ich jedoch abstand nehmen: das ist eine sprache aus den 60er-jahren. c kann z.b. keine objektorientierung. [bitte korrigieren, wenn es jemand besser weiß]jedoch lässt sich jeder c-code mit einem c++-compiler compilieren, falls du die sprachen dringend durcheinandermischen willlst.[korrigier-request ende]

für ganz blutige anfänger würde ich eine scriptsprache empfehlen. bash, php, python, perl oder was ausgefallenes. es ist schon erstaunlich, was man alles mit scriptsprachen machen kann - aber bei großen projekten wird es irgendwann mal langsam.

überlege es dir - du wirst sowas sowieso mal lernen wollen/müssen, warum also nicht _damit_ anfangen?

lorenz.

----------

## Nightwulf

 *lolli78 wrote:*   

> hallo,
> 
> du solltest nur vor jedem einsatz überlegen, welches die geeigneteste sprache dafür ist. von c ohne "++" würde ich jedoch abstand nehmen: das ist eine sprache aus den 60er-jahren. c kann z.b. keine objektorientierung.

 

Da muß ich Dir wehement widersprechen. C ist sicherlich nicht objektorientiert. Aber für Programme bei denen es auf Hardwarenähe und Geschwindigkeit ankommt ist sie immer noch unschlagbar (ausser von Assembler   :Wink:  )

Wenn ich z.B. Netzwerk-Server programmiere, verwende ich da nach wie vor lieber C als C++. Aber vielleicht bin ich ja auch schon zu angestaubt   :Laughing: 

----------

## lolli78

 *Nightwulf wrote:*   

> 
> 
> Da muß ich Dir wehement widersprechen. C ist sicherlich nicht objektorientiert. Aber für Programme bei denen es auf Hardwarenähe und Geschwindigkeit ankommt ist sie immer noch unschlagbar (ausser von Assembler   )
> 
> Wenn ich z.B. Netzwerk-Server programmiere, verwende ich da nach wie vor lieber C als C++. Aber vielleicht bin ich ja auch schon zu angestaubt  

 

hallo,

c++ bedeutet doch auch nicht, dass du alles objektorientiert schreiben musst. du kannst doch recht problemlos die geschwindigkeits-kritischen stellen mit c-code oder assembler schreiben. man sollte nur nicht malloc() mit new mischen...

aber ich bleibe dabei: c ist veraltet und sollte von neubeginnern gemieden werden. Nightwulf scheint kein neubeginner mehr zu sein, der darf auch c verwenden  :Wink: 

am allerschlimmsten finde ich jedoch leute, die steif und fest behaupten: "das ist c++", dabei aber c meinen, wie es ein professor an meiner uni regelmäßig macht   :Sad: 

mein tipp bleibt: beginne mit php, bash und python oder perl und wenn du dann was größeres machen willst, kannst du dir ja überlegen, ob c++ mit eingestreutem assembler-code oder objective-caml oder irgendwas anderem aus /usr/portage/dev-* das richtige ist.

lorenz.

----------

## MrTom

C++ ist es natürlich schon wert, das man es lernt.

Wenn es nur für dich ist. Kannst Du "fast" jede Sprache nehmen.

Speziell für Linux, den eigenen privaten Gebraucht und als Anfänger würde ich persönlich mal mit Python anfangen. 

Wenn Du damit klar kommst, kannst Du Dir c++ ansehen.

Wichtig ist ja, den Grundaufbau einer Programmiersprache zu lernen. 

Man kann zwar mit jede Sprache anfangen, aber es gab ja auch einen Grund warum Basic und Pascal so erfolgreich waren. Es sind Sprachen zum lernen. Eine aktuelle Variante davon dürfte Python sein. Sie geht "leicht" zum lernen, man kann speziell unter Linux eigentlich alles damit machen.

Du kannst auch Kylix nehmen, aber siehst mir mehr nach einer Totgeburt aus. Natürlich ist c# auch mal einen Blick wert. Es ist vor allem zum lernen sehr schön. Da es eine Mischung aus c++/java und anderen ist, ist es eine gute Basis um später andere zu lernen. C#/Mono ist aber leider noch nicht so weit unter Linux. Allerdings kann Dir das zum lernen eigentlich egal sein. Auf Console geht schon sehr viel und bis Mitte des Jahres soll der ganze GUI-Bereich fertig sein. 

Unter Linux ist C oder C++ schon die erste Wahl. Das ganze System ist fast nur in diesen beiden Sprachen geschrieben. Deshalb gibt es natürlich auch gute Software (KDevelop, Anjuta, etc) die meistens 100% C/C++ unterstützen. Andere Sprachen kommen da meistens zu kurz.

Bei C++ bekommt man nach meiner Meinung am Anfang sehr viele Hindernisse in den Weg geworfen, die es einen absoluten Anfänger nicht unbedingt leicht macht. Da C++ aber wohl eine der verbreitesten Sprachen ist, gibt es oft auf günstige Kurse von Kolping, FHS etc.

In fast jeder Programmiersprache sind Elemente drin, die es auch in anderen Sprachen gibt. Die Syntax ist meisten etwas anders. Wenn Du aber mal eine Sprache gut kannst, dann ist es sehr viel leichter eine andere zu lernen. 

Wenn ich mich so umsehe, können die meisten immer so 3 Sprachen.

Zum Beispiel: c oder c++; Java oder c#; python, php oder perl

Damit kann man dann fast alle Belange abdecken.

Denn eine perfekte Sprache für alles gibt es nicht.

Im Endeffekt musst Du dir erst im klaren sein, was Du willst. 

Dann ist die Wahl schon sehr viel einfacher...

----------

## Nightwulf

 *Quote:*   

> 
> 
> c++ bedeutet doch auch nicht, dass du alles objektorientiert schreiben musst. 
> 
> 

 

Habe ich ja auch nicht behauptet. Es gibt imho auch nur noch sehr wenige "reine" C-Compiler, die nur C-Programme compilieren können. Insofern schreibe ich die Programme natürlich mit einem C/C++ Compiler. Allerdings verwende ich dabei die "alte" Syntax und strukturierte Programmierung. Den objektorientierten Ansatz verwende ich nur bei größeren Programmen oder solchen, bei denen Sich die Verwendung von Klassen aufgrund der zu bearbeitenden Datenstrukturen geradezu aufdrängt.

Dabei verfällt man natürlich auch gerne einmal in eine Art "Misch-Masch-Programmierung", also Code der aussieht wie reines C aber z.B. Variablendeklarationen inmitten eines Blockes enthält, was ja nur bei C++ geht. Die Grenzen sind also fließend. 

 *Quote:*   

> 
> 
> man sollte nur nicht malloc() mit new mischen...
> 
> 

 

Neeee ?   :Wink:   *SCNR*

 *Quote:*   

> 
> 
> aber ich bleibe dabei: c ist veraltet und sollte von neubeginnern gemieden werden.
> 
> 

 

Und genau da gehen unsere Meinungen so deutlich auseinander. Bei C sind Anfänger noch weit mehr als bei C++ gezwungen mit Zeigern und dynamisch allozierten Speicherbereichen zu arbeiten als bei C++ (nicht falsch verstehen, Memory leaks kann man mit C++ genauso einfach produzieren   :Wink:  ). Ich sehe an "meinen" Azubi's (Fachinformatiker/Anwendungsentwicklung) hier sehr deutlich wohin das führt, wenn man keine exakte Vorstellung hat wie Daten im Speicher abgelegt sind und was ein Zeiger auf solche Daten eigentlich ist. Eine sinnvolle Aufarbeitung einer Fehlermeldung wie ein Signal 11 ist so kaum möglich. 

 *Quote:*   

> 
> 
> Nightwulf scheint kein neubeginner mehr zu sein, der darf auch c verwenden 
> 
> 

 

Ja, ja... sag doch gleich, dass ich ein alter Sack bin   :Razz: 

 *Quote:*   

> 
> 
> am allerschlimmsten finde ich jedoch leute, die steif und fest behaupten: "das ist c++", dabei aber c meinen, wie es ein professor an meiner uni regelmäßig macht  
> 
> 

 

Oh weh... wieder so einer von den Halbblinden, die versuchen Blinden das Sehen beizubringen   :Crying or Very sad: 

Da hilft nach meiner Erfahrung nur, dem Prof. in den Prüfungen das Wort zu reden und es insgeheim besser zu wissen 

 *Quote:*   

> 
> 
> mein tipp bleibt: beginne mit php, bash und python oder perl und wenn du dann was größeres machen willst, kannst du dir ja überlegen, ob c++ mit eingestreutem assembler-code oder objective-caml oder irgendwas anderem aus /usr/portage/dev-* das richtige ist.
> 
> 

 

(Back to topic   :Razz:  )

Für mich hängt die Antwort auf die Frage nach der "besten(tm)" Sprache für den Beginn stark davon ab, was das Ziel der Lernbemühungen sein soll. Soll es sein, dass man nachher in der Lage ist z.B.  GUI-Programme für KDE vom Umfang eines KMail oder KPaint zu schreiben, ist imho die Wahl einer Hochsprache vorzuziehen. Soll es bei kleinen Tools und Skripten bleiben oder geht es mehr in Richtung Web-Programmierung, wäre PHP/Perl die richtige Wahl. Alles imho natürlich.

Da hoschi aber geschrieben hat, dass er die harte Tour will, bleibe ich bei meiner Meinung:   :Arrow:  C

Gruß,

Nightwulf

----------

## EOF

Wenn du Mathematiker bist wundert es mich, dass du keinen programmierschein machen musstest. 

Willst du mathematik orientierte programme schreiben (z.b. approximationsverfahren von gleichungssystemen usw.), dann ist es sinnvoll mit maple (oder freien "alternativen", wie mupad,scilab,parigp,gap oder maxima) zu arbeiten. Da hast du direkt grosse zahlen, matrizen endliche koerper ...

Warum man c anstatt von c++ nehmen sollte weiss ich nicht  :Smile: .

Ein anfängerbuch für c++ kann ich dir leider nicht empfehlen, aber die skripte von c++ kursen diverser universitäten. 

Da java sehr viel klassen mitbekommt, man leicht fehler findet (öfter als in c++) ist es die wahl für nicht geschwindigkeitskritische aplikationen.

Bezüglich assembler. Zeig mir mal wer einen code ausschnitt (kleines programm) mit c++  & assembler, den ich in c++ alleine nicht schnell genug hinkriegen kann ...  :Smile: .

Gruss

----------

## Inte

Letztendlich muß selbst Hoschi entscheiden welche Sprache er lernen will. Da nützt es nichts, wenn die Sprache die er anfängt, noch so viele Möglichkeiten bietet. Klar sollte er kein QBASIC mehr lernen  :Laughing:  , aber ob es jetzt c, c++, python, perl, java oder sowas exotisches wie haskell ist, spielt wirklich keine Rolle. Wenn man keine 5 Leute hat, mit denen man (etwas flapsig ausgedrückt) just4fun ein bißchen rumprogrammieren kann, dann ist ein gutes Buch das A und O. Einfach mal in eine gut sortierte Bibliothek gehen, oder online ein paar Probekapitel durchforsten. Das ist meiner Meinung nach die beste Lösung Literatur zu finden, mit der man auch Spaß beim Lernen hat.

Wenn Du die Grundlagen erstmal drauf hast, kannst Du blitzschnell mit (fast) jeder beliebigen Sprache weitermachen. Hier und da eine etwas andere Syntax, ein paar andere Typzusicherungen etc. und Du bist mit einem Fingerschnippen mehrsprachig unterwegs.

Hoschi, ich will Dir ja nicht reinreden, aber einen Buchtipp bekommst u trotzdem.  :Wink: 

Ich hab vor 'nem halben Jahr bei O'Reilly ein Buch gefunden, daß in einfachem Englisch geschrieben ist und selbst erfahrenen Programmierern gute Tipps bietet. Selbst meine Freundin hat die ersten Kapitel auf Anhieb verstanden.  :Very Happy:  Schau Dir einfach mal den Link an und wirf einen Blick auf die Probekapitel.Head First Java

Sample Excerpt: A trip to Objectville (PDF)

Sample Excerpt: Serious Polymorphism (PDF)Gruß, Inte.

----------

## MrTom

@Inte: Damit hast Du ja Java empfohlen. Dachte es ist egal mit was er anfängt  :Wink: 

----------

## Inte

Nicht Java, das Buch! Wenn 's sowas für "bitteirgendeineprogrammierspracheeinsetzen" geben würde, hätte ich selbstverständlich ein Anderes empfohlen.  :Wink: 

Gruß, Inte.

----------

## hoschi

danke euch allen   :Smile: 

wenn ich jetzt sage was ich mache ist vielleicht wieder jemand bissel säuerlich auf mich oder so, deswegen verrate ich erstmal nichts  :Wink: 

----------

## Nightwulf

 *hoschi wrote:*   

> danke euch allen  
> 
> wenn ich jetzt sage was ich mache ist vielleicht wieder jemand bissel säuerlich auf mich oder so, deswegen verrate ich erstmal nichts 

 

Ach was... raus damit   :Wink: 

----------

## Inte

Egal für was Du Dich entschieden hast, es war die falsche Wahl. Wir werden Dich in Stücke reißen  :Laughing: 

Gruß, Inte.

----------

## hoschi

*ahhhhhahhhh*

*sterb*   :Mr. Green: 

----------

## trapni

 *Quote:*   

>  ... C++, C, Java, Delphi ... 

 

na ich krieg die tuer nich zu... wasn das fuern poll? naja, vielleicht bin ich etwas voreingenommen, aber Java zaehlt ja schonmal nicht wirklich dazu, es ist und bleibt designed fuer eine VM; dementsprechend mager ist deren sprachvielfalt. C ist zu spartanisch, aber deswegen nennt man deren erweiterung ja auch C++... sozusagen, das bessere C, und Delphi? ja, persoehnlich gefaellt mir recht gut.... sehr verbose syntax, jedoch in grossen projekten nicht wirklich einsetzbar...

C++.... wohl mein Favorit, ist die Sprache die ich, sagen wir mal, foermlich gefressen habe *fg*... was nicht heisst dass ich alles kenne davon, dennoch habe ich mich fuer diese entschieden, weil sie in grossen projekten sehr gut skaliert, eine klare syntax hat, die sprache als ganzes homogen erscheint, es templates gibt (sehr wichtiges kriterium fuer mich), und die objekt orientierung auch drin ist; alles im allem, eine sehr powerfule sprache  :Surprised: )

letztendlich bleibt die entscheidung jedoch bei dir, probier sie alle mal, fang aber erstmal mit einer an, wenn du sie verstehst, probier mal 'ne andere, und so weiter, irgendwann erkennst du selbst die vor und nachteile jeder einzelnen  :Wink: 

naja, vllt sollte das forum hier noch ein extra coding language support board bekommen... *g*... wuerde viele freuen...

mfg,

trapni.

----------

