C++ erlernen

xoxoonex

Newbie
Registriert
März 2020
Beiträge
6
Hallo Zusammen,

ich möchte unbedingt das Programmieren erlernen. Ich denke der beste Weg ist ein kleines Projekt.
Mein Ziel.
Eine kleiner Passwortmanager. Dieser soll eine Tabelle anzeigen. Diese kann man bearbeiten und entsprechend mit Daten befüllen. Beim markieren eines Datensatzes kann man mit Shortcuts die entsprechenden Daten in die Zwischenablage kopieren.
Welche Sprache ist hier am geeignetsten. Stichwort WPF?
Wie fange ich am besten an?
 
Zuletzt bearbeitet:
Scheinbar hast du dich schon auf eine Sprache festgelegt....
Ich persönlich würde ja zum lernen etwas tiefer stapeln und ggf auch ne Sprache wählen die einsteigsfreundlicher ist (Python, Java , C#)
 
  • Gefällt mir
Reaktionen: p4cx, Lawnmower und Dalu
  • Gefällt mir
Reaktionen: LieberNetterFlo, maxpayne80, Departet und 3 andere
Keine Ahnung, welche Vorkenntnisse Du hast, aber ich würde mir für den Anfang nicht gleich so ein komplexes Projekt aussuchen.
Was die Sprache betrifft: Sofern es erst einmal nur um's Programmieren geht, würde ich persönlich sogar eine der "alten" Sprachen vorziehen. Mit Pascal bspw. lernt man gut strukturiertes Programmieren. Aber natürlich gibt es eine Fülle von Sprachen. Da musst Du dich selber etwas einlesen, bzw. Tutorials durcharbeiten, um zu sehen, was für dich am besten passt.
 
Hi,

Fang besser an mit der reinen objektorientierten Sprache C#. Dann bewegst du dich im .NET Framework, wo du auf zigtausende Klassen Zugriff hast und dir Schnittstellen für dein Anliegen bereit stehen.
Wenn du noch ganz am Anfang stehst, solltest du dich mit den üblichen Werkzeugen wie Schleifen, Datenkapselung, Klassen beschäftigen. Wie man Objekte erstellt, was null bedeutet usw.
 
  • Gefällt mir
Reaktionen: new Account()
Die erste Sprache soll einem auch dabei helfen die grundlegenden Konzepte des Programmierens zu verstehen. Also was ist eine Schleife, Bedingungen, etc. - hier würde ich eine Sprache mit einer sehr einfachen Syntax wählen, damit hier nicht unnötige Frustration entsteht. Python ist hier schon erwähnt worden und ich würde auch damit anfangen. Hast du die Grundkonzepte mal verstanden und verinnerlicht, dann kannst du darauf aufbauend eine Sprache mit einer komplexeren Syntax und erweiterten Funktionen erlernen. Erst ab hier kann man dann auch über ein komplexeres Projekt (wie dein Passwortmanager) nachdenken. Davor ist es erstmal Kleinkram auf der Konsole, Taschenrechner, Sudokugenerator, etc. - Schritt für Schritt, dann steht dem Erfolg nichts im Wege!
 
Für den Einstieg würde ich auch Python vorschlagen. Ist sehr einfach zu lernen, man kann damit auch recht leicht GUI Anwendungen entwickeln.
Damit kann man sich sehr einfach die wichtigsten Grundlagen aneignen und man wird nicht gleich mit einen riesigen Framework erschlagen, welches am Anfang eher abschreckt als hilfreich ist.
 
  • Gefällt mir
Reaktionen: p4cx
... offenbar hast Du Dich ja bereits festgelegt, WPF läuft fast zwangsläufig auf das Visual Studio und die entsprechenden (Lizenz-)kosten hinaus. Schön auch daß Du bereits ein konkretes Ziel vor Augen hast, auch wenn dieses für den absoluten Anfang recht anspruchsvoll ist. Aber, ja ..
Sei Dir aber bewußt daß Du Dich damit auf die MS/Windows 'Galaxie' festlegst und dies nicht die einzig existierende ist. Der Vor-, aber gleichzeitig auch Nachteil der WPF ist daß Du auf eine riesige Zahl an 'vorgefertigten' Modulen zurückgreifen kannst, welche Dir viel Programmierarbeit abnehmen (also genau das (nicht), was Du eigentlich lernen willst), Dich aber in ein (MS-spezifisches) Korsett zwängen. Falls Du diesen Weg gehen willst lernst Du zwangsläufig eher 'Modulbaukasten zusammenstecken' und verwalten als echtes programmieren. Wird aber so gemacht weil man damit viel produktiver im Sinne eines schnellen, für Windows fertigen Produkts ist.
Wie die anderen schon meinten ist C++ nicht gerade einfach. Vielleicht beginnst Du erst einmal mit C; C++ (C#) mit ihrer Objektorientierung bauen letzlich darauf auf. Probiere es und wenn es Dir nicht zusagt: probiere etwas anderes. Aber probieren ist am Anfang alles ...
Auch in der LINUX-Ecke kann man komfortabel programmieren wobei die benötigten Pakete dazu im Gegensatz zu M$ frei verfügbar sind.
Und: vieel Zeit einplanen :)
 
Zentorno schrieb:
Visual Studio und die entsprechenden (Lizenz-)kosten
Naja, die kann man ja wohl vernachlässigen. Die kostenlose Communty-Edition für VS reicht ja locker aus. Lizenzkosten fallen erst an wenn man min 2mio im Jahr umsetzt und dann auf die Professional Edition umsteigen muss.
 
  • Gefällt mir
Reaktionen: new Account(), bananen_admiral und tollertyp
Na ja, es gibt zwei Richtungen aus denen man anfangen kann, entweder von ganz "oben" oder von ganz "unten".

Sprich Objektorientiert und stark abstrahiert mit einfach lesbarem code oder direkt eine Ebene über dem Maschinencode bei Assembler und C. Ich nenne es liebevoll "Bit schubsen".

Bei Assembler und C ist der Umfang relativ beschränkt. Heißt, du kannst innerhalb weniger Wochen die gesamte Sprache lernen. Nachteil ist, dass du hier als Anfänger effektiv nur sehr simple Programme schreiben kannst. Dafür verstehst du grundlegend, was Programmieren ist und wie es im Detail funktioniert. Wenn mans wirklich ernst meint, schadet das meiner Meinung nach nicht, zumindest das ganze mal gemacht zu haben. Wobei ich bei C nem Anfänger nicht zum Selbststudium raten würde, da es viele Dinge gibt, die man beachten sollte und die man sonst nicht zu 100% verstehen wird bzw. schlichtweg komplett übersieht, auch wenn der Code "läuft".
Assembler und C erfordern trotz ihrer beschränkten Möglichkeiten schon ein tiefes Verständnis von Datenverarbeitung.

Python hingegen ist objektorientiert und hat ne deutlich einfachere Syntax als C oder auch C++, auch einfacher als Java.
Damit kannst du als Anfänger relativ schnell die Konzepte des Programmierens erlernen und verstehen. Du verstehst dann wie Code schreiben/entwickeln funktioniert, blendest dabei jedoch ziemlich stark aus, wie dein PC funktioniert und was er genau mit dem Code tut, da Python eben sehr viele Dinge stark vereinfacht, über die du dir als Anfänger in anderen Sprachen den Kopf zerbrechen kannst.

Wenn du direkt mit C++ einsteigen willst, dann liegst du irgendwo in der Mitte und musst praktisch gleichzeitig beide Richtungen meistern, um die Sprache zu verstehen. Du musst verstehen, wie der Rechner tickt und zugleich die Konzepte der höheren Sprachen verstehen und das alles vereinen. Finde ich vor allem für den Anfang eigentlich zu anspruchsvoll und wenig zielführend. Auch im Alltag für einfache Programme leidet mit C++ wohl die Effektivität, da weniger übersichtlich.


Meine Empfehlung wäre daher auch: Python (oder was vergleichbares). Es wird dich ziemlich schnell ans Ziel bringen und ist relativ einfach zu lernen. Es ist dabei mächtig genug, dass du damit alles realisieren kannst, was du dir wohl vorstellst. (außer Performancekritische Anwendungen wie Spiele, dafür bräuchtest du idealerweise C++)

Da du das wahrscheinlich in deiner Freizeit machst und Zeit begrenzt ist, ist das aus meiner Sicht die effektivste Herangehensweise.


Noch ein kleiner Tipp von mir. Verabschiede dich komplett von dem Gedanken, dass "Programme" etwas "Visuelles" sind.
Ein Programm besteht aus dem Quellcode den du schreibst. Dieser Quellcode verarbeitet anhand deiner vorgegebenen Logik eingaben und gibt entsprechende Ausgaben aus.
Stell dich darauf ein, dass du mit deinen Programmen erstmal nur in der Kommandozeile interagieren wirst.

Eine GUI, also eine Benutzeroberfläche ist was komplett eigenständiges, das du dann quasi als Extra Part an dein Programm ranflanschst.

Es kommt leider sehr häufig vor, dass Leute die komplett falsche Vorstellung haben und sich wundern, warum in den 1000 Tutorials, die sie gesehen haben nur fünf mit einer GUI arbeiten.

In erster Linie gehts eben darum, die Logik zu entwickeln und Daten zu verarbeiten. Das ist eben einfach nur Quellcode schreiben. Die GUI ist nur dazu da, neue Eingaben aufzunehmen und Ausgaben dem Nutzer entsprechend darzustellen. Und vor allem ist sie rein optional (daher erstmal am Anfang uninteressant). Es ist nur die grafisch aufbereitete Version deiner Kommandozeile/Terminals. Das muss dir wirklich klar werden.
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: p4cx und adAstra
Die erste Frage ist:
soll dein Programm auf einem Desktop laufen (Windows/ Linux) oder auch im Browser? Browser hat den Vorteil dass du von überall darauf zugreifen kannst.

Für ein Programm mit Oberfläche in Windows würde ich eher in Richtung C# oder C++ (unbedingt mit QT) gehen.

Wenn du in Richtung Client / Server willst - also dein Programm soll im Browser laufen sind die Möglichkeiten dann viel breiter - C++ ist dann aber praktisch raus.

Der Anfang ist immer ein HelloWorld Programm. Ein Programm das nur "Hello World" anzeigt. Das meine ich ernst damit hast du einen großen Schritt gemacht. Je nach obiger Wahl erscheint in einem Fenster "Hello World" oder im Browser.
Jedes Tutorial in jeder Sprache beginnt damit. z.b.: https://docs.microsoft.com/de-de/windows/uwp/get-started/create-a-hello-world-app-xaml-universal
oder
https://doc.qt.io/archives/3.3/tutorial1-01.html
oder im browser mit python:
https://medium.com/python-pandemoni...api-with-python-and-flask-part-1-fae9ff66a706
 
Immer dieses Hello World :rolleyes:.
Warum möchtest du denn c++ erlernen ? Was möchtest du programmieren? Wo soll die Reise hingehen?
Nur Basics erlernen?
Microcontroller programmieren?
Datenbanken auslesen und füttern?
UI gestalten?
Backend implementieren?
Bigdata-Analyse ?
........

Ich würde dir empfehlen deine Anfangsschritte an dein Ziel anzulehnen. Die Grundlagen kommen durch die Übung so oder so.
Daher kann man dir nur schwer eine Sprache oder ein Framework empfehlen finde ich, ohne zu wissen wohin die Reise geht. Es ist meiner Erfahrung nach befriedigender wenn jeder Schritt einem Zweck dient.

Dennoch wie viele vorgeschlagen haben schadet es nicht, grundlegende Denkweisen zu verstehen. Auch wenn objektorientierte Prorammierung als der Heiland gesehen wird, wenn du Richtung Skripting und Embedded ode sogar FPGAs möchtest, solltest du dir andere Grundlagen zuerst ansehen.

Uneingeschränkt empfehlen kann ich dir jedoch Stackoverflow und W3schools als Lektüre. Bei w3Schools findest du sehr gute Grundlagen nach Lehrplan und bei Stackoverflow sehr gute Lösungen für Aufgaben aus dem echten Leben.
 
Wobei man darauf hinweisen sollte, dass immer die Gefahr besteht, bei einer Sprache hängenzubleiben.
Grad Leute, die mit Java/C# angefangen haben, rümpfen später oft die Nase, wenn sie C++ Code sehen.
Selbst an der Uni sind mir in der Informatik Mitarbeiter begegnet, die irgendwann mit Python angefangen haben, und dann nie die Lust entwickelten, sich davon nochmal wegzubewegen.

Ich würd‘ tatsächlich auch mit C# anfangen.
Man kann aber auch durchaus mit C++ loslegen... haben wir alten Klabauter früher schließlich auch gemacht.

Ich mochte die Heads First / Von Kopf Bis Fuss Buchreihe immer gern.
Leider ist das letzte C# Buch uralt (2014) und angeblich voller Fehler. (Dir mir damals nicht aufgefallen sind)
Die neue Version kommt erst im Dezember raus.
https://www.oreilly.com/library/view/head-first-c/9781491976692/
Ich fand‘s aber ganz cool um mir verständlich und schnell beizubringen, kleine Fensteranwendungen zu schreiben.
Jedes Kapitel ist ein kleines Projekt und man kriegt immer Aufgaben, die man selbst lösen soll.

Du lernst dann halt auch recht viel über Fensterprogrammierung in C#.
Keine Ahnung, ob Du das möchtest.

Ich würd‘ Dir aber auf jeden Fall raten bei Windows und Visual Studio zu bleiben.
Mit Linux und QT wird‘s gleich deutlich komplizierter.





Mein ultimativer Tipp wenn der Start doch mit C++ geschehen soll, ist jedoch dieses Buch hier:
https://www.amazon.de/C-für-Spieleprogrammierer-Heiko-Kalista/dp/3446446443/ref=sr_1_2?__mk_de_DE=ÅMÅŽÕÑ&crid=3TI517GO9FBVE&dchild=1&keywords=heiko+kalista&qid=1601022486&sprefix=heiko+kalista,digital-text,150&sr=8-2

Er fängt wirklich bei 0 an, hat eine flotte Schreibe und das ganze ist für mich eher ein C++ Buch mit Game-Kontext als eine Anleitung zum Spieleprogrammieren.
Man ist dort auch, soweit ich das erinnere, anfangs nur in der Konsole unterwegs... Fensterchen werden da gar nicht programmiert. Drum ist das Buch auch (trotz 2016) sehr zeitlos.

Ein tolles Buch um wirklich nur programmieren ohne Ballast zu lernen.
Und wenn Du C++ kannst, kannst Du Dir Python an einem Wochenende beibringen. In C# biste dann auch ratzfatz drin.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Buggi85
Mit Visual Studio 2019 Community Edition hast du gleich alles was du brauchst und bei den Desktop Apps (alt Windows Forms) Projekten kannst du direkt mit Fenster durchstarten. Je nachdem wie du was vor hast kannst du auch dein Frontend in C# entwickeln, dein Backend dann über ein Visual C++ /CLI Projekt, dort kannst du nativ C++ programmieren und über CLI die Brücke von unmanaged zu managed Code schließen. Ist eine schöne Sache um bspw. reine C und C++ Bibliotheken in eine .NET Anwendung zu implementieren.
Mit C# machst du nichts verkehrt und bekommst einen guten Unterbau für Anwendungen gestellt. Datenzugriffe per LINQ mit Lambda Ausdruck sind sehr mächtig.
 
B3nutzer schrieb:
Python eben sehr viele Dinge stark vereinfacht, über die du dir als Anfänger in anderen Sprachen den Kopf zerbrechen kannst.
gilt aber imho nicht bei C# und Java


Ansonsten:
  • Vermeide C oder C++ - weder sind sie für deinen Zweck notwendig noch besonders hilfreich.
  • WPF ist ein GUI-Framework für C# - wenn du speziell was für Windows entwickeln willst, keine schlechte Wahl.
  • PW-Manager mit Python an andere Leute zu verteilen ist nicht trivial
 
xoxoonex schrieb:
ich möchte unbedingt das Programmieren erlernen.

Das erinnert ein wenig an "Ich werde Feuerwehrmann". Aber jeder hat mal klein angefangen. Bei mir wars das klassische Telefonverzeichnis - auch nicht viel anders als Dein Passwortmanager aber noch ohne Clipboard.

[...] Wie fange ich am besten an?

Programmiersprache wählen - hast Du.
Betriebssystem wählen
Entwicklungsumgebung passend zum Betriebssystem wählen
"Hello World" schreiben und compilieren
Daten in Files schreiben und wieder lesen
 
Ich kann mich ja manchmal des Eindruckes nicht erwehren, das (insbesondere unter Anfängern) C++-Programmierung als die Königsdisziplin gilt. Und natürlich will man selbst das können und nicht irgendwie eine Dumpfbacke sein, die irgendwie mit Python und Co rumkrebst. :-)
 
  • Gefällt mir
Reaktionen: kuddlmuddl
@dermoritz und teilweise die anderen die QT schreiben....
Prinzipiell hast du recht. Aber das Beispiel zu Qt (Achtung: nicht QT, das ist was anderes...Quicktime) ist 15 Jahre alt. Na ja. Ausgesprochen wird es übrigens "cute", was niedlich bedeutet.
Ergänzung ()

@andy_m4

Vielleicht ist C++ auch die Königsdisziplin.:p Wie dem auch sei, für Anfänger gibt es leichtere Sprachen. Es kann sehr verwirrend sein, weil gerade so viel möglich ist/sein kann. C++ ist übrigens eine Multiparadigmensprache., also in gewisser Sicht sehr flexibel was die Herangehensweise an eine Problemstellung betrifft.
 
Zuletzt bearbeitet:
Xonical schrieb:
C++ ist übrigens eine Multiparadigmensprache.
Es kann alle Pardigmen, aber keines richtig. :-)

Xonical schrieb:
also in gewisser Sicht sehr flexibel was die Herangehensweise an eine Problemstellung betrifft.
Nichtsdestotrotz würde ich heutzutage kein C++ mehr einsetzen, wenn es sich irgendwie vermeiden lässt. Und zum Glück ist man auch kaum noch darauf angewiesen.
 
  • Gefällt mir
Reaktionen: Xonical
Zurück
Oben