spin.de · die Community: Diskussions-Forum und Chat - Lern nette Leute kennen!

» Kostenlos anmelden
Sitemap
: C++ lernen
Gesperrter_Nutzer
01. Mär 2012 19:49

C++ lernen

Ich will nächstes jahr nächstes semester c++ lernen und brauche dazu noch die passende literatur.
ich kenn mich schon ein wenig mit c aus (ausreichende kenntnisse), könntet ihr mir vlt ein passendes buch empfehlen.
ich studiere richtung elektrotechnik, ich brauch also nicht ganz so die tiefe wie ein informatiker



Möchtest du mitreden?     Kostenlos Anmelden

01. Mär 2012 20:45

Mhm

Als erste Referenz finde ich dieses Tutorial eigentlich recht hilfreich, vor allem wenn du schon Vorkenntnisse hast.



sellibitze
01. Mär 2012 20:51

Empfehlungen

Antwort auf C++ lernen von Gesperrter_Nutzer

The Definite C++ Book Guide and List:
http://stackoverflow.com/questions/388242

Es gibt von Prof. Ulrich Breymann noch das Buch "Der C++ Programmierer", was auch gut sein soll.

Ich habe C++ mit B. Stroustrup's "Die C++ Programmiersprache" kennengelernt und mit anderen Büchern wie "Effective C++" und "C++ Templates – The Complete Guide" vertieft. "Accelerated C++" hatte ich aber auch schon in den Händen und das machte einen guten Eindruck. Es ist eine kompante, moderne Einführung in C++, wo es gleich mit High-Level Bausteinen (im wesentlichen die Container aus der Standardbibliothek) losgeht und später dann darauf eingeht, wie man sich solche High-Level-Bausteine selbst bauen kann. Das ist meiner Meinung nach ein toller Ansatz, da man anfangs recht produktiv ist und nicht alle möglichen Räder neu erfinden muss.



sellibitze
01. Mär 2012 20:54

Für-Lau-Tutorial versus gutes Buch

Antwort auf Mhm von ineffizient

MMn lohnt sich kein Für-Lau-C++-Tutorial. Die Qualität solcher Tutorials ist meist viel schlechter als das, was man mit einem guten Buch bekommt. Wenn man da ein bisschen investiert, kann man sich später viel Ärger und Zeit ersparen.



01. Mär 2012 21:33

Mhm

Es kommt drauf an, finde ich. Wenn man schon prinzipiell programmieren kann, dann reicht wirklich eine Referenz, in der man sprachspezifische Sachen einfach nachschlagen kann. Das reicht zumindest für den Start. Wenn man sich weiter mit der Sprache befasst und in tiefere Bereiche eindringt, stimme ich dir ansonsten vorbehaltlos zu. Aber nur um prinzipiell zu verstehen, wie C++1 funktioniert, braucht man kein Geld in die Hand zu nehmen. Man merkt ja dann bei der Anwendung durchaus selbst, wann man mit dem vorhandenen Material an die Grenzen stößt.



sellibitze
01. Mär 2012 22:47

re

> Wenn man schon prinzipiell
> programmieren kann, dann reicht wirklich eine Referenz,
> [...]

Das sehe ich ganz und gar nicht so. Die Konzepte der Sprache sollte man schon richtig erklärt bekommen. Wenn Leute, die Programmiererfahrung haben, sich nur eine "C++ Referenz" angucken, dann versuchen sie in dem ihnen bisher bekannten Stilen weiter zu programmieren, statt "modernes C++". Dabei kommt fast nie etwas "Gutes" raus.

So gut wie jeder erfahrene C++ Programmierer empfiehlt Dir nach dem Kennenlernen der Sprache noch das Buch "Effective C++" zu lesen, weil es so wertvoll an nützlichen Tipps ist.



02. Mär 2012 00:26

Mhm

Du hättest ruhig meinen Beitrag bis zum Ende lesen können. ^^

Es ist in der Realität niemals so, dass man eine Sprache mit all ihren Feinheiten im Detail lernt und es dann anwendet. In der Realität hat man ein konkretes Problem und möchte es aus welchen Gründen auch immer in einer neuen Sprache lösen. Also fängt man einfach mal an zu programmieren, so wie man sich das eben vorstellt. Dabei kommt neben einigen hoffentlich motivierenden Ergebnissen auch eine ganze Menge Schund raus. Man merkt mit der Zeit dann, dass die Sprache mehr hergibt und fängt an, gezielt nach Features zu suchen, weil man erkennt, wo man Dinge noch nicht so ganz richtig macht. An dieser Stelle fängt man nun an, sich mit wirklicher Literatur zu befassen und die Dinge dann quasi auf die nächste Stufe zu bringen. An dieser Stelle fängt man an, sich über Stil Gedanken zu machen. Kein Mensch arbeitet doch ein 700-Seiten Buch durch, ohne sich schon vorher ins Getümmel zu stürzen.



02. Mär 2012 20:35

re

Antwort auf re von sellibitze

> Das sehe ich ganz und gar nicht so. Die Konzepte der
> Sprache sollte man schon richtig erklärt bekommen. Wenn
> Leute, die Programmiererfahrung haben, sich nur eine "C++
> Referenz" angucken, dann versuchen sie in dem ihnen bisher
> bekannten Stilen weiter zu programmieren, statt "modernes
> C++". Dabei kommt fast nie etwas "Gutes" raus.

Dem wuerd ich auf jeden Fall widersprechen ... ein guter Informatiker / Programmierer kann idR weiter genug abstrahieren um auch neue Konzepte sinvoll zu erlernen.

Ich bring auch ein paar Jahre Programmiererfahrung mit und konnt mir innerhalb von 3 Tagen Objective-C beibringen um damit eine doch mittelmaessig komplexe iOS App zu schreiben.

Die Konzepte einer Sprache versteht man nomalerweise in dem man sich die Einfuehrung durchliest.



sellibitze
02. Mär 2012 20:56

Hmmmm....

Ich werde das Gefühl nicht los, dass ihr beide kaum C++ Erfahrung habt und nur extrapoliert. Liege ich damit falsch?



02. Mär 2012 20:58

re

C++ nicht nicht sehr viel das ist korrekt ... aber auch die Sprache ist nicht so grundlegend anders verschieben als es andere Sprachen auch sind als dass man da mMn nicht sinnvoll extrapolieren koennte.



sellibitze
03. Mär 2012 11:37

aha

Was glaubst Du wohl, warum ich auf die Wichtigkeit von schlauen Büchern bei C++ hinweise? Ich mache das, weil die Sprache von vielen unterschätzt wird. Du bist einer von vielen. ;-) Lass Dich nicht von einer bekannt aussehenden Syntax fehlleiten. Ich weiß wovon ich rede; denn ich habe den Umstieg schon hinter mir (*).

(* Ich habe diverse andere Sprachen im Rahmen des Informatikstudiums und auch vorher schon angefasst, inklusive 7 Jahre Java., bin danach für HPC (high performance computing) auf C++ umgestiegen und das ist jetzt auch schon fast 5 Jahre her. Mein Fazit: C++ "lernen" ohne schlaue(s) Buch/Bücher ist Zeitverschwendung. Das rechnet sich vorne und hinten nicht.)



03. Mär 2012 11:54

re

Und was unterscheidet C++ nun konkret von anderen sprachen? Sry aber mir hat für ein wie ich glaube recht brauchbares C++ auch C, ein paar OOP-kenntnisse und ne referenz gereicht.



sellibitze
03. Mär 2012 12:41

re

C++ bietet ein sehr breites Abstraktionsspektrum. Es ist größtenteils C-kompatibel, bietet aber für viele Sachen, die man in C aufschreiben würde, bessere Alternativen. Es ist eine mächtige Sprache. Das macht es nicht so einfach, ohne gute Hilfe einen ordentlichen Überblick zu darüber bekommen, wie man die Sprache effektiv einsetzen kann.

Ich glaube Dir jedenfalls, dass Dein C++ Code für Dich brauchbar aussieht. Ob er das wirklich ist, ist eine andere Frage. Möglicherweise hast Du die Sprache nicht effektiv eingesetzt. Beurteilen könntest Du das in dem Fall leider nicht, weil Du es ja dann nicht besser wüsstest. Es sieht so aus, als würdest Du C++ auf "C mit Klassen" reduzieren und das macht mich ein bisschen skeptisch. Ich hoffe mal, dass Du weißt, wie man Ausnahme-sicher Ressourcen verwaltet, dass Dir "Ownership" bzgl Ressourcen ein Begriff ist, dass Du die vorhandene und seit 2011 gewachsene Standardbibliothek zu schätzen weißt und vorhandene Räder nicht neu erfinden willst, etc etc etc.



03. Mär 2012 12:42

Bücher

Antwort auf re von XMArtist

> Und was unterscheidet C++ nun konkret von anderen
> sprachen?

Das würde mich allerdings nun auch mal genauer interessieren. Mit leeren Behauptungen kann ich nix anfangen.

Ich hatte vor längerem schon C++ programmiert. Will demnächst auch mal wieder intensiver damit arbeiten. Wieso genau sollte ich mich dazu entscheiden, in Literatur zu investieren? Bitte keine pauschalen Aussagen, ich möchte es ganz konkret C++ spezifisch wissen.



03. Mär 2012 12:48

re

Antwort auf re von sellibitze

und inwiefern unterscheidet das C++ nun von sprachen wie Ruby, Python, Ocaml ...... ?

ich bin mir im übrigen sicher daß mein C++ eher nicht irgendwelchen sehr hoch gegriffenen standards genügt, einfach weil ich nur damit arbeite wenn ich muss, ich bin einfach eher der funktionale typ.

Andererseits halte ich aber deinen schluß daß dieses "mit vorkenntnissen und referenz lernen" nur bei c++ nicht ginge für nicht haltbar. Cpp ist nur eine sprache unter vielen, nicht mehr. Zumindest hab ich noch kein besonderes Argument dagegen gehört. Oder hast du hier irgendwelche besonderen argumente was C++ in allen feinheiten komplexer zu erfassen macht als die o.g. sprachen oder diverse andere? Also mir fielen da noch genug beispiele an sprachen ein denen ich eine zumindest C++-äquivalente komplexität zugestehe.



03. Mär 2012 12:54

nicht einzigartig

> Also mir fielen da noch genug beispiele an
> sprachen ein

Bei Perl z.B. hat man auch nach längerer Zeit intensiven Lernens immer wieder mal Ahaeffekte, daß man bis dahin viel zu viel programmiert hat.



sellibitze
03. Mär 2012 12:57

re

Antwort auf Bücher von QuasimodosKlon

> Bitte keine pauschalen Aussagen, ich möchte
> es ganz konkret C++ spezifisch wissen.

Wenn Du es konkreter haben willst, zeig mir Deinen C++ Code und ich sage Dir, ob und, falls ja, wo/wie Du die Sprache nicht effektiv eingesetzt hast und wie man es besser machen könnte. Am häufigsten ist mir in Foren glaub'ich die Ressourcenverwaltung aufgefallen. Das Ownership-Konzept und die Möglichkeit, Verantwortung an Objekte abzutreten, ist oft nicht bekannt. Viel zu oft sehe ich Code, wo der Autor vielen Klassen selbstgeschriebene Kopieroperationen und einen Destruktor verpasst, was nicht nötig gewesen wär, hätte er/sie die Klasse aus Datenelementen anderer, besser passender Typen zusammengesetzt. Aber auch der umgekehrte Fall kommt oft vor (Verletzung der Dreierregel). Viel zu oft sehe ich Leute, die Räder neu erfinden und nicht wissen, was man mit der Standardbibliothek alles anstellen kann. Wie gesagt, wenn es noch konkreter werden soll: Zeig mir Deinen C++ Code.



03. Mär 2012 12:57

re

Naja perl hätte ich als beispiel nicht gebracht, ich meinte programmiersprachen und nicht ein stück menschenschreibbaren RSA-verschlüsselten plaintext :D

Aber ich mag perl auch, wenngleich ich damit nie was komplexeres als arbeitsskripte < 200 zeilen und "kunst" gebaut habe^^



sellibitze
03. Mär 2012 13:08

Re:

Antwort auf re von XMArtist

> ich bin
> einfach eher der funktionale typ.

Schön! Übrigens ist mit C++2011 ist die Unterstützung für einen funktionalen Stil gestiegen.

Bevor ich mir die Finger fusselig tippe, hier ein paar Referenzen, die vielleicht interessant für Euch sind:
http://www2.research.att.com/~bs/bs_faq.html
http://www2.research.att.com/~bs/bs_faq2.html
http://www2.research.att.com/~bs/new_learning.pdf
http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Keynote-Bjarne-Stroustrup-Cpp11-Style



sellibitze
03. Mär 2012 13:10

und nicht zu vergessen:



Möchtest du mitreden?     Kostenlos Anmelden