C++ Kentnisse vertiefen

SeanRenard

Cadet 4th Year
Registriert
Aug. 2015
Beiträge
87
Hey Leute :)
Bin eine Anfängerin in Programmierung (lerne C++ in meiner Ausbildung zur IT-Assistentin), aber es macht mir schon relativ Spaß und ich könnte es mir vorstellen, es später zu machen. Aber, ich habe das Problem, dass wenn ich ein Programm schreibe, mir die Befehle fehlen. Grundsachen wie if else, do while -Schleife oder die Basics in MFC beherrsche ich schon, aber das wars auch.
Könnt ihr mir sagen, wie ich meine C++ Kentnisse vertiefen kann, um normale Programme zu schreiben? Und wie ich die Befehle erlernen soll? Und welche Programmiersprachen sind noch empfehlenswer?
LG
Sean
 
Um deine Fragen mal in der Reihenfolge zu beantworten:
- Wie erlernt man weitere Kenntnisse in einer Programmiersprache?
rogrammierkenntnisse vertieft man meist durch programmieren. Es gibt zum Einen die Möglichkeit Lehrbücher durchzuarbeiten, die sich speziell mit einer Programmiersprache befassen, dabei lernt man ein paar neue Befehle. Allerdings ist es wichtig, diese Befehle auch häufiger selbst zu nutzen, sonst bleiben die nicht im Kopf. Eine andere Möglichkeit ist es, einfach viel zu programmieren und für jede neue Herausforderung zu überlegen "gibt es dafür nicht schon eine Struktur, die ich nutzen kann?". Dann kann man gezielt danach suchen.

Deine Programmierkenntnisse klingen wirklich nach Anfang. In c++ sind neben Schleifen und Bedingungen außerdem Zeiger, Strukturen und Klassen Teile der absoluten Basics. Es gibt auch ein Wikibook zum Thema c++ lernen. Das könnte man zum Beispiel durcharbeiten, auf den ersten Blick wirkt es auch recht einfach und thematisch vollständig.

- Welche anderen Programmiersprachen sind empfehlenswert?
Mit der Frage nach anderen Programmiersprachen könntest du hier einen Glaubenskrieg lostreten^^ Jeder findet seine Lieblingssprache am besten und manch einer schwört darauf, dass alle anderen Mist sind. Also solltest du Empfehlungen in diese Richtung eher kritisch betrachten. Ich persönlich programmiere sehr gerne und viel in C#. Die Sprache an sich ist objektorientiert, relativ einfach, kann aber trotzdem recht viel. "Nachteile" sind die starke Bindung an .net (daher noch überwiegend auf Windows beschränkt) und der Garbage Collector (du musst Speicher nicht selbst aufräumen, dafür macht das Programm das teilweise zu ungünstigen Zeiten für dich).
 
Es gibt Tutorials in Buchform und frei im Netz. Beispiel: https://en.wikibooks.org/wiki/C++_Programming

Ansonsten, bei der Nutzung des Computers machst du selbst ja sehr viele Dinge aufgrund derer er Rechner was macht. Das kann man abstrahieren und als Ziel setzen. Beispiele:
*Du lädst und speicherst eine Datei -> Schreibe ein Programm, welches eine Datei liest, den Inhalt ändert und wieder schreibt, machst du das ordentlich kannst du diesen Codeschnipsel wieder verwenden.
*Programme lassen sich mit Attributen starten -> Schreibe ein Programm welches Attribute beim Aufruf parst und entsprechend den Programmablauf steuert, machst du das ordentlich kannst du auch den Spaß wieder verwenden
*Ein Programm tauscht Daten über Netzwerk aus -> Schreibe ein Programm welches über Sockets Daten austauscht
*Ein Programm baut eine GUI aus -> Versuch per Hand eine GUI zu schreiben, versuch dich danach an Frameworks wie Qt...
*3D Spiel -> wieso nicht selbst mal einen rotierenden Würfel umsetzen?
*Das Telefon verwaltet irgendwie Kontakte -> Anwendung schreiben die Datenbankzugriffe enthält.

Mit so einer Herangehensweise findet sich mehr als genug. Wenn du solche Teile programmiert hast kannst du so etwas auch kombinieren oder als multithreaded Anwendung umschreiben.


Sonstige Sprachen, es gibt passende Sprachen für gewisse Probleme. Ich bewege mich zuletzt in einer Welt wo überall ne Datenbank dran hängt, also finde, dass das Lernen von SQL das Produktivste war bisher :)
 
Die Syntax an sich ist doch recht überschaubar. Die kannst du vermutlich schon und meinst eher, dass dir Erfahrung mit verschiedensten Bibliotheken fehlt. Du solltest natürlich zumindest in der Standard-Lib sattelfest sein und soweit mein C++-Halbwissen reicht, ist auch Boost eine relevante Hausnummer.

Als zusätzliche Sprache würde ich dir noch eine Skriptsprache empfehlen, denn für viele Probleme des Alltags sind diese deutlich besser geeignet, als C++. Wenn du eher Linux-affin bist, dann definitiv bash, sonst Python. Viele Tools sind darin geschrieben, es ist auf quasi jedem Linux verfügbar.

Ansonsten noch generell - üben, üben, üben und auch mit sprachunabhängigen Themen beschäftigen - clean code, design patterns, OOA/OOD, andere Paradigmen anschauen wie z.B. funktionale Programmierung.
 
Lern erstmal keine weitere Sprache!
Erstens wird dir hier jeder was anderes empfehlen bis der thread 40 Antworten hast (geht schon los mit C#, skriptsprache und SQL, die Antworten werden dann sein: "Kein SQL, noSQL ist die Zukunft, lern Javascript" etc).
Zweitens lassen sich die Konzepte der einen Sprache im Allgemeinen sehr gut in die nächste übertragen, auch wenn jede ihre Eigenheiten hat. Wenn du an einem Punkt bist, wo eine weitere Sprache sinnvoll ist, wirst du das merken.

Zur eigentlichen Frage habe ich den Vorgängern nichts hinzuzufügen, du musst einfach programmieren um Routine zu kriegen und die Herangehensweise zu lernen. Such dir dazu kleine Projekte, die erstmal auf die Grundlagen zielen und dann deine Interessen angehen, wie zum Beispiel UI, Netzwerk oder Multithreading.
 
Zuletzt bearbeitet: (Ergänzung)
Danke dir für die Antwort :) Ich werde es mir anschauen :)
Ergänzung ()

Okay, danke dir :)
Wir haben MySQL in der Ausbildung ein Semester lang durchgearbeitet :)
Ergänzung ()

Tumbleweed schrieb:
Die Syntax an sich ist doch recht überschaubar. Die kannst du vermutlich schon und meinst eher, dass dir Erfahrung mit verschiedensten Bibliotheken fehlt. Du solltest natürlich zumindest in der Standard-Lib sattelfest sein und soweit mein C++-Halbwissen reicht, ist auch Boost eine relevante Hausnummer.

Als zusätzliche Sprache würde ich dir noch eine Skriptsprache empfehlen, denn für viele Probleme des Alltags sind diese deutlich besser geeignet, als C++. Wenn du eher Linux-affin bist, dann definitiv bash, sonst Python. Viele Tools sind darin geschrieben, es ist auf quasi jedem Linux verfügbar.

Ansonsten noch generell - üben, üben, üben und auch mit sprachunabhängigen Themen beschäftigen - clean code, design patterns, OOA/OOD, andere Paradigmen anschauen wie z.B. funktionale Programmierung.
Du bringst es auf den Punkt :) Grundform verstehe ich schon langsam, hoffentlich :) Nur halt, die Bibliotheken - da kenn ich mich kaum aus :)
Ich habe auf der zweiten SSD Ubuntu Gnome, wieso fafür bash?
 
Mit bash kannst du wunderbar und mit wenig Aufwand die Wartung von Systemen automatisieren. Die Syntax ist nicht sonderlich schön, aber durch das Sammelsurium der vielen verfügbaren Standardprogramme unter Linux (besonders find, grep, sed, awk) wird dir viel geschenkt, was du in einer Sprache wie C++ aufwändig und fehleranfällig selbst programmieren müsstest.

Ich habe keine Ahnung, was eine IT-Assistentin beruflich mal macht, aber wenn du auch nur in die Nähe von Administration kommst, bist du gut beraten, da ein paar Grundlagen zu haben. Ich bin z.B. Webentwickler und in der heutigen Zeit ist es üblich, dass Entwickler ihre Programme auch selbst deployen und betreiben. Ohne bash wäre ich ziemlich aufgeschmissen, auch wenn mit Tools wie Ansible (Python :) ) vieles deutlich erleichtert wird und man nicht mehr gezwungen ist, alles selbst zu scripten.
 
SeanRenard schrieb:
[...]oder die Basics in MFC beherrsche ich schon
MFC = Microsoft Foundation Classes? Das ist ein Ding von vorgestern. Unter Visual Studio 6 war das mal state of the art, spätestens seit Visual Studio 2005 wird das nur noch aus Gründen der Abwärtskompatbilität mitgeschleift.

Wenn du GUIs programmieren willst, und es unbedingt C++ sein soll, nimm lieber QT. Wenn du GUIs unter Visual Studio programmieren willst, und es nicht unbedingt C++ sein muss, mach lieber C#, du kannst dir dann aussuchen, ob du lieber WinForms oder WPF verwenden willst. Rein theoretisch könntest du WinForms oder WPF auch in C++/CLI machen, das macht aber keinen Spaß, da ist der Umstieg auf C# 1000mal einfacher.

Noch etwas: wenn du MFC gemacht hast, dann geht es dir vielleicht so, wie es mir vor vielen Jahren einmal erging, als ich mit Delphi gearbeitet habe, nämlich dass du objektorientierte Programmierung nur in Zusammenhang mit GUIs kennengelernt hast, du also bei Objekten immer an GUI-Elemente denkst. Sollte das der Fall sein, ist es ganz wichtig, dass du dir diese Denkweise abgewöhnst, und dich dazu am besten in OOP abseits von GUIs übst. Ich weiß noch, wie ich damals einem Studienkollegen stolz von meinen OOP-Erfahrungen erzählte und davon, dass sich dieser an GUI-Elementen orientiere, und er nur mitleidig den Kopf geschüttelt und gesagt hat: "Nee, da liegst du aber total daneben!". ;)
 
Zurück
Oben