Was kann ich mit C++ alles Programmieren?Und wo kann ich Anfangen?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Was kann ich mit C++ alles Programmieren?

Kurz gesagt, ziemlich viel. C++ wird zum einen in der Systemprogrammierung genutzt (für Betriebssysteme, Embedded Systems, Treiber, u.ä.) als auch in der Anwendungsprogrammierung für Desktopanwendungen, mobile Apps, Spiele, Grafikprogrammierung, usw.. Der einzige Bereich, der mir einfällt, in dem C++ eher weniger vertreten ist, ist die Webprogrammierung, auch wenn es auch hier durchaus Bibliotheken/Frameworks gibt.

Und wo kann ich Anfangen?

Wie wäre es denn bei Google oder dem GF-Suchfeld? Das, was du zuerst lernen solltest, ist die eigenständige Recherche in bereits bestehendem Material. Die meisten Probleme - wie auch dieses - wurden längst beantwortet.

Aber ich bin mir unsicher mit was ich anfangen soll und womit ich anfangen soll.

Mein persönlicher Rat: Nicht mit C++. Wenn du unbedingt diesen Weg gehen möchtest, dann beginne erst mit C, denn diese Sprache ist eine Teilmenge von C++, viele Bibliotheken wurden in C geschrieben und gegenüber C++ ist C noch einfach / einsteigerfreundlich. Als Buch würde ich dir dann das von Helmut Erlenkötter vorschlagen.

Andernfalls würde ich Processing als Einstieg empfehlen, denn die Sprache ist leicht, einsteigerfreundlich und macht von Beginn an sicherlich mehr Spaß als so manch andere Sprache, denn sie bietet statt einer tristen Konsole ein Feld an, auf dem man von Beginn an zeichnen kann. Tutorials und die Referenz finden sich auf der Webseite, als Lektüre eignet sich das Handbuch der Entwickler oder evt. auch dieses. Andernfalls kannst du genauso auch Bücher zu Java nutzen, denn an sich basiert Processing auf Java, nutzt die selbe Syntax und wurde lediglich mehr von dem objektorientierten Umfeld befreit, welches bei Java und C# ziemlich schnell abschrecken kann, denn schließlich wird man dort bereits von Anfang an mit Dingen konfrontiert, die erst viel später erklärt werden können.

Weitere Tipps und Lernquellen findest du in meiner Antwort hier.

Nach Processing könntest du dich erst Java, später C# widmen. So nimmt die Komplexität stufenweise zu, durch Java lernst du strikte, saubere Programmierung und mit C# lassen sich gelernte Konzepte mit neuen Features weiter entfalten.

Als dritte Alternative könntest du dich ebenso mit Python befassen. Lektüre siehe hier und natürlich auf der offiziellen Entwicklerseite. Letztere Referenz solltest du in jedem Fall immer nutzen.

Mir ist es egal ob ich im buch oder im Internet es lerne.

Achte hauptsächlich darauf, dass du seriöse Quellen nutzt. Dazu gehören Bücher von bekannten Verlegern (beachte die Rezensionen), offizielle Entwicklerseiten, Video-Kanäle der offiziellen Entwickler oder bekannte Seiten für Video-Tutorials wie video2brain oder Lynda. Qualitativ hochwertige Antworten auf Fragen findest du unter anderem auf Quora, vor allem aber auf StackOverflow.


fabio5959 
Fragesteller
 08.02.2018, 21:55

Nur noch eine frage an dir. Die wäre wen ich dann Java und dann C# gemacht hab dann hab ich ja einen nachteil weil wie ich die Sachen schreibe sind ja alle anders und das geht an alle wie C#,C++ und Java was hat mir dann der weg gebracht??

0
regex9  08.02.2018, 23:42
@fabio5959

Es war gerade nicht einfach, deinen Kommentar zu entziffern, den letzten Teil habe ich wohl nur zur Hälfte verstanden.

Die von mir vorgeschlagenen Wege stellen dar, wie man die Sprachen stufenweise und sehr einfach nacheinander lernen kann. Wenn du bspw. so C# gelernt hast, kannst du zurückblickend sagen, dass du bereits 3 Sprachen wirklich und in einem Zug gelernt hast. Würdest du sofort C# lernen, würdest du besondere Eigenheiten von Java oder Processing nicht kennen.

Nachdem du eine Sprache gelernt hast, ist es aber generell nicht mehr so aufwendig wie anfangs, eine Weitere zu lernen, sofern sie sich nicht allzu sehr von der bereits bekannten unterscheidet - also bestenfalls im gleichen Sprachbaum angesiedelt ist oder zumindest gleiche Paradigmen (wie OOP) verwendet. So lässt sich zwischen Sprachen wie Java, C#, JavaScript, C, C++, D oder Objective-C noch recht gut wechseln. Anders wäre es, würdest du dich nun mit einer funktionalen Sprache wie Haskell, Clojure oder Erlang befassen wollen.

1
fabio5959 
Fragesteller
 10.02.2018, 16:20
@regex9

ich bin nicht der beste in texten schreiben das tut mir leid und lieben dank das du mir so präzise geantwortet hast und danke nochmal

0

Du kannst z.B. eine Datenbank programmieren in der man seine DVD Sammlung organisieren kann.


J0eSpivy  02.02.2018, 14:04

Direkt eine Datenbank ist schon etwas viel für einen Anfänger. Das klassische Hello World ist ein guter Einstieg, dann mal IO-Streams mit selbst geschriebenen Bubble- oder Ripple-Sort.

1

Mit C++ kannst Du alles entwickeln was keine Website ist, denn da brauchst Du noch HTML/CSS und bei Bedarf auch JavaScript. Für Websites ist PHP oder C# mit ASP.NET aber die bessere Wahl, weil die komplexe Frameworks mit bringen, die genau dafür gemacht sind und in der Community weit verbreitet sind.

Für den Anfang würde ich persönlich von C++ abraten. Du kannst damit zwar sehr viel machen, aber Du kannst auch einiges kaputt machen und musst sehr viel beachten.

Besser wäre eine der neueren Sprachen. Vielen würden jetzt "Java" schreien, ich rate aber zu C#. Damit kannst Du auch alles machen, solange Du nicht direkt mit der Hardware "sprechen" musst. Und wenn Du es doch machen musst, kannst Du immer noch C++ lernen und die gebaute C++-DLL in deinem C#-Programm relativ einfach nutzen.

Außerdem musst Du bei C# sehr viel weniger beachten, da die Runtime sich um Vieles kümmert. Es will ja schon etwas heißen, wenn viele Firmen bei ihren Programmen eine eigene Art Runtime basteln, damit sie die Komplexität im Rest des Programms reduzieren.

Für C# gibt's dieses kostenlose Online-Buch:

http://openbook.rheinwerk-verlag.de/visual_csharp_2012/

Da hast Du eigentlich alles drin um eine Anwendung mit grafischer Oberfläche und Anbindung an eine Datenbank zu entwickeln.


fabio5959 
Fragesteller
 02.02.2018, 15:30

was ist dann der unterschied von C# und C++??

1
fabio5959 
Fragesteller
 02.02.2018, 15:36
@fabio5959

Wieso ich frage ist weil ich in der Zukunft und auch in den nächsten Jahren auch Roboter bauen will und auch einen guten Job machen will, du weißt was ich meine.

0
PWolff  02.02.2018, 15:58
@fabio5959

Frag lieber, was die Gemeinsamkeiten (außer des Buchstabenanteils im Namen) ist - diese Liste ist deutlich kürzer.

0
grtgrt  02.02.2018, 18:19
@fabio5959

Der wesentliche Unterschied zwischen C# und C++ ist, dass man mit C# auf etwas höherer Abstraktionsebene programmiert und daher nicht so leicht Fehler machen kann. Zudem sind Fehler, die man dann macht, sehr viel leichter zu finden, da das Laufzeitsystem zu C# dir den Aufrufkeller an der Absturzstelle des Programms zeigt.

Ein ganz gravierender weiterer Vorteil von C# ist, dass die Standardbibliothek zu C# (= .NET Library) wesentlich umfangreicher und wertvoller ist als die zu C++. Viel von jedem Programmierer benötigte Hilfsfunktionalität, die du mit C++ selbst implementieren müsstest, bekommst du mit C# schon fertig implementiert und ausgetestet geschenkt. Deswegen auch mein Ratschlag: Beginne mit C# - C++ kannst du später mal lernen.

0
Palladin007  04.02.2018, 00:15
@grtgrt

Dazu kann ich nicht mehr viel hinzufügen außer Detail-Informationen über die reichlichen Unterschiede zwischen C++ und C#, das hilft aber niemandem :D

Auf jeden Fall kannst Du mit C# die meisten Bereiche abdecken. Eine wichtige (für dich relevante) Ausnahme sind Anwendungsfälle, die direkte Hardware-Kommunikation voraussetzen.

Wenn es für deine Roboter keine Programmier Schnittstelle gibt, brauchst Du also ++. Es gibt zwar zig andere Möglichkeiten, direkt mit der Hardware zu sprechen, C++ wird aber wohl die angenehmste Option sein.

Dennoch lohnt es sich, C# zu verwenden, da es für komplexe Algorithmen angenehmer ist. Der direkte Zugriff auf die Hardware wird in C++ implementiert und von C# verwendet.

0

Mit C++ kannst du soweit alles machen.

Anfangen kannst du mit den Grundlagen und dich dann an verschiedene Algorithmen machen wie z.B. Sortierverfahren.


fabio5959 
Fragesteller
 02.02.2018, 14:48

kannst du es genauer erklären, bitte?

0