Frage von mAin0x, 25

Welches Buch sollte ich für den Einstieg in C++ kaufen?

Ich habe C# und Ruby gelernt, habe C und Python Kenntnisse und einige Wage Grundkenntnisse in Java und einigen anderen Sprachen.

Ich möchte nun C++ lernen, da es so gut wie alle Vorteile von C nimmt und dann viel gutes drauf packt.

Ich habe durch #Google und einige Tutorials schon eine grobe Vorstellung der Programmierung.

Ich habe keine Probleme mit OOP, Pointern (Ich verstand noch nie, weshalb alle Pointer hassen) und anderen grundlegenden Themen.

Ich suche nun ein Buch, welches auf die meisten der folgenden Punkte eingeht:

  • Multithreading

  • OOP (Delegaten, Ereignisse, ...)

  • Gui Programmierung (Softwareentwicklung)

  • Non- Pc- Programmierung (Mikrocontroller wie RPi, Smartphones)

  • Sicheres & Ram- sparendes Programmieren

(Es geht also um alles, was über simple IO- Anwendungen hinaus geht) (Ich habe mit Xamarin schon einige Erfahrung mit Smartphoneentwicklung) (In C#, Java & Python(Tkinter) habe ich bereits Gui- Anwendungen geschrieben)

Ich weiß nicht, ob ein solches Buch überhaupt existiert & habe schlechte Erfahrungen mit Programmieranfängerbüchern, in welchen zu 80% nur Sachen drin stehen, die sowieso jeder weiß, deshalb hoffe ich, jemand kann mir ein kompaktes, simples Buch empfehlen! (simple = ich überfliege Texte kurz und weiß was drinne steht und muss nicht auf Grund von Gelertensprache jedes Wort genau lesen)

Antwort
von Fuchsi2001, 16

So ein Buch wirst du nicht finden... da du C# und C beherrscht hast du nur nich probleme mit wenigen Kleinigkeiten in C++ aber zum Thema OOP glaube ich wäre es am besten sich mal SFML anzusehen dies ermöglicht gleich um einiges mehr möglichkeiten...

Antwort
von mrlilienweg, 25

Ich fürchte dass alle Einsteigerbücher deinen Ansprüchen nicht gerecht werden, da du ja alles bereits kennst, bist du eigentlich kein Einsteiger,  du solltest du dir spezielle Bücher für Experten kaufen.

Wenn ich da in meinen "Grundkurs C++ von Jürgen Wolf - Galileo Computing" reinschaue, wird zwar etwas auf Multithreading eingegangen, die anderen Punkte findet man im Index leider nicht. 

Es gibt wohl hier auch keine eierlegende Wollmilchsau.

Kommentar von mAin0x ,

Haha, es ist mir bewusst, das es ein solches Buch nicht geben kann.

Es ist eben wie bei der Suche nach der Traumfrau: Wenn sie auch nur annähernd meinen Anforderungen entspricht nehme ich auch eine wolllose Milchsauggans :D

Antwort
von MarkusGenervt, 21

Du kannst C und C#, aber kein C++ ???

Wie hast Du das denn hin bekommen?

Zum Begriff "Pointer" kann ich Dir nur sagen, dass Daten in bestimmten Speicher-Adressen gespeichert werden und Pointer sind "Zeiger", die auf diese spezielle Adresse zeigen.

Also wenn Du das nicht verstanden hast, dann kannst Du eigentlich auch den Rest von C nicht verstanden haben.

Also mit Englischkenntnissen bist Du beim Programmieren schon klar im Vorteil.

Beschäftige Dich am Besten erst mal mit ganz einfacher Informatik für Anfänger: Binär- und Hexadezimal-Systeme, Prozessor-Architektur, Assembler, etc.

Das sind die Grundlagen für alles Andere. Ohne fundierte C-Kenntnisse wirst Du hier auch nicht weiter kommen.

Kommentar von mAin0x ,

1. Ich liebe es, neue Sprachen zu lernen. Ich habe mit C angefangen und suchte dann nach einer guten Programmiersprache für Softwareentwicklung und lernte nach den Tipps vieler Programmierer C#

2. Ich habe geschrieben, das ich schon immer mit Pointern klar kahm, um zu verdeutlichen, das ich nicht bei den Grundlagen starten muss.

3. Haha ähm nun ja ich kann das nur bedingt bestätigen, da sich das Englisch doch auf einen sehr kleinen Wortschatz bezieht.

Kommentar von MarkusGenervt ,

2. Ich habe geschrieben, das ich schon immer mit Pointern klar kahm, um zu verdeutlichen, das ich nicht bei den Grundlagen starten muss.

Ups! Meine Mustererkennung hat mal wieder versagt x-)

Also eigentlich ist C++ die Weiterentwicklung von C und C# die Weiterentwicklung von C++ (für Windows). Daher war mir jetzt nicht klar, wie Du den 3. Schritt vor dem 2. machen konntest.

Ich habe meine Kenntnisse durch Hilfs-Texte und Beispiel-Codes aus dem Internet erlangt. Mein Basis-Wissen in Assember hatte ich mal vor sehr langer Zeit aus einem Buch zum ersten Intel 8086er entnommen. Das war aber noch sehr viel einfacher als heute, weil der wirklich, wirklich winzig war im Vergleich zu heutigen CPUs.

Allerdings wird Dir Assembler die Augen öffnen. Da wirst Du wahrscheinlich ohnehin nicht dran vorbei kommen, wenn Du all das vorhast. C# ist eigentlich nur eine Makrosprache speziell für Windows. Bei andern Architekturen wird es evtl. Übersetzungen (ähnlich wie Java) geben, aber effektiv geht anders.

Im Prinzip ist aber jedes Derivat von "C/C++ für Dummies" gut genug, denn aus Büchern wirst Du kein Programmieren lernen. Das kann lediglich die Theorie vermitteln, aber erst die Praxis bringt das Verständnis. Daher habe ich dann auch immer erst mal probiert, um zu scheitern, um zu lernen ;-)

Kommentar von mAin0x ,

Nun ja ich vertrete die Meinung, man muss für jeden Zweck die richtige Sprache kennen.

Ich schreibe Konsolenanwendungen nun fast ausschließlich in Ruby, Windows Forms Anwendungen in C#, Systemnahes in C, Apps in C# (Xamarin) und portable Ui- Anwendungen in Java 8.

Ich möchte nur die mächtige Sprache C++ lernen, die aber so Nutzerfreundlich ist, das man OOP programmieren kann.

Kommentar von MarkusGenervt ,

Also ein Programm ist immer nur so "nutzerfreundlich", wie es der Programmierer gestaltet. Das beinhaltet nicht nur das Design, sondern auch die Fehlertoleranz.

Wenn Du allerdings "programmiererfreundlich" gemeint haben solltest, dann wirst Du von C++ recht bald enttäuscht sein. Man muss eben jeden eventuellen Maschinen-spezifischen Furz im Voraus planen und das erfordert eine ganze Menge Prä-Prozessor-Programmierung. Das ist mühsam und nervig, vor Allem wenn sich immer wieder der gleiche Mist wiederholt.

Was das betrifft, ist – natürlich nur für Windows-Anwendungen – Visual Basic sehr viel bequemer, weil man hier sehr viel aus Bibliotheken abrufen kann und die müssen sich dann um Prä-Prozessor-Fragen kümmern ;-P Allerdings ist man dann nur auf Windows beschränkt. Das Abrufen geht zwar auch unter C++ und C#, aber der Overhead bleibt Dir trotzdem nicht erspart.

So gesehen ist Java dann schon einfacher und universeller einsetzbar, aber eben nicht so schnell und leistungsfähig wie VB, geschweige denn C/C++.

Na ja, bisher hat eben noch keiner eine Programmiersprache erfunden, die universell einsetzbar, schnell, stabil und Programmierer-freundlich ist. Aber das wird wohl auch einfach nicht gehen.

Kommentar von mAin0x ,

Ich meinte schon Nutzerfreundlich.
Und in C# kann man mit dem Forms Creator sehr schnell nutzerfreundliche Programme schreiben.

Antwort
von grtgrt, 5
Antwort
von Swiss99, 18

Es gibt viele Bücher, aber ob es genau das gibt was du suchst, weiss ich nicht.

Aber offenbar bin ich nicht der einzige, der mit Tutorials und Videos irgendwann eine Grenze erreicht hat und etwas will, dass man in den Händen halten kann. :-)

Kommentar von mAin0x ,

Oh ja, bei C# war das Aufgrund von msdn anders.

Jedoch ist entgegen meiner anfänglichen Hoffnung die Google Suche nach C++ Problemen und neuem wie Qt schwierig!

Keine passende Antwort gefunden?

Fragen Sie die Community