C++ - Wo soll ich anfangen?!?!
-
Hey Oli,
aus deinem Beitrag lässt sich wohl herauslesen, dass du in der Softwareentwicklung generell fitt werden möchtest, sonst würdest du nicht davon reden, der OS-Community irgendwann etwas zurückgeben zu wollen.
Aber gerade dann ist es falsch, zu früh auf GUI-Anwendungen zu schielen. An deiner Stelle würde ich die imperativen Grundlagen inklusive objektorientierter Programmierung anhand der Konsole lernen.
Es lassen sich auch interessante Anwendungen ohne GUI entwickeln. Jede Benutzereingabe, die man in einer GUI tätigen kann, kann man auch in der Konsole eingeben. Und Hauptaugenmerk sollte schließlich auf der eigentlichen Programmfunktion und nicht auf der netten Benutzeroberfläche liegen, oder nicht?
-
Vielen dank für eure hilfreichen antworten!
Ja, es ist gewiss so, dass man an der basis anfängt und dann darauf aufbaut. Und genau da bin ich irgendwie hängen geblieben. Am letzten kursabend hat der kursleiter dann noch etwas von "deployment" und anderen fachausdrücken gefaselt und uns erklärt, dass wir noch weit davon entfernt sind, richtig brauchbare anwendungen zu schreiben. Das war schon ziemlich demotivierend, weswegen ich nicht wirklich weiter weiss. Vielleicht hilft dir das, berniebutt, zu verstehen warum ich die fragen hier stelle.
Kennt vielleicht jemand aus erfahrung ein gutes buch, welches einen aus den basics heraus ins "richtige" programmieren führt? Wie wär's z.b. mit "C++ lernen und professionell anwenden"?
Übrigens: Es war ein C++ kurs und kein C mit klassen kurs - obwohl das natürlich auch behandelt wurde, um den einstieg in objektorientierte programmierung zu erleichtern.
Oli
-
Also für die Basis fand ich den C++ Primer Plus super. Es könnte allerdings sein, dass dich dieses Buch unterfordert. Kannst ja mal im Inhaltsverzeichnis nachsehen was so behandelt wird.
Dann habe ich noch Effective C++ sehr hilfreich und interessant gefunden zum lesen. Ist ein Standardwerk, das wohl so ziemlich bei jedem professionellen C++ Progger im Bücherregal steht. Hier werden für viele Probleme Lösungsansätze vorgestellt. Es zeigt also wie man C++ richtig anwendet und nicht nur was man machen kann.
-
lambda_0 schrieb:
Aber gerade dann ist es falsch, zu früh auf GUI-Anwendungen zu schielen. An deiner Stelle würde ich die imperativen Grundlagen inklusive objektorientierter Programmierung anhand der Konsole lernen.
Objektorientierte Programmierung lernt man glaub ich einfacher mit GUI-Anwendungen.
-
Natürlich ist es demotivierend zu hören, dass man zwar jetzt schon einige Wochen für die Programmiersprache geopfert hat und man trotzdem noch nicht viel anzufangen weiß. Doch das ist zunächst leider so und das ist wie beim Lernen eines Instrumentes meistens die größte Schwierigkeit: Man darf einfach nicht aufgeben!
Das von dir erwähnte Buch "C++ lernen und professionell anwenden" habe ich auch in meinem Regal stehen und hatte damals täglich jeden Abend weitergelesen. Mir hat das Buch sehr viel gebracht und als fortführende Lektüre ist es daher sicherlich empfehlenswert.
Wenn dir das alles viel zu lange dauert, dann würde ich dir zu C# raten (In dem Fall solltest du dir aber auch dort ein Buch suchen. Ich glaube es gibt auch ein kostenloses von Galileo Computing). C# läuft jedoch leider nur auf Windows, aber du kannst damit sehr einfach eine Anwendung mit GUI entwickeln und erhältst damit vielleicht schneller ein Erfolgserlebnis.
Viele Wege führen nach Rom. Abhängig davon, was du erreichen willst, solltest du dich für einen entscheiden. Wobei du natürlich auch C# und C++ parallel angucken kannst. Die Sprachen sind ja ähnlich (aber nicht gleich!).
Viel Erfolg und nicht aufgeben (das ist wirklich das wichtigste!)
-
Schreib einfach ein paar Programme. Man lernt eine Programmiersprache nur, wenn man mit ihr auch ein paar Programme geschrieben hat. Nach den ersten Schritten mit C++ sollte man sich unbedingt Effektiv C++ durchlesen.
Effective C++ | ISBN: 9780321334879
Exceptional C++ bzw. GotW sollte man sich danach auch anschauen. So lernt man viel über die Sprache.
Wenn du unbedingt GUIs programmieren willst (ist eigentlich eine total langweilige Geschichte), dann nimm dir einfach irgend ein fertiges GUI-Framework wie Qt oder GTKmm oder wxWidgets. Man muss nur beachten, dass die meisten GUI-Frameworks kein guter Lehrmeister für C++ sind. Das Design und die Programmiertechniken sind oft ziemlich veraltet und nicht sonderlich schön. Ein guter Einstieg wäre vielleicht, wenn du einen Taschenrechner für die Konsole schreibst und dann später dafür eine GUI bastelst.
Übrigens finde ich es auch keine schlechte Idee, wenn man am Anfang versucht ein größeres Projekt zu schreiben. Das wird sehr wahrscheinlich nicht fertig. Aber das ist auch egal. Durch das größere Ziel hat man einfach eine hohe Motivation und durch die ganzen Kleinigkeiten die man für das Projekt bastelt, lernt man im Endeffekt eine ganze Menge.
Ich weiß nicht mehr genau, was mein erstes Projekt mit C++ werden sollte. Es wurde natürlich auch nicht fertig. Aber für das Projekt habe ich viel gelernt, weil ich dann so Kleinigkeiten, wie Verkettetelisten, Parser für die Konfigurationsdateien etc. geschrieben habe.
-
Vielen dank an alle, für die wertvollen inputs! Muss das jetzt alles erst einmal verdauen...
Kennt jemand die deutsche übersetzung von "Effective C++"? Taugt die was?
Hat jemand erfahrung mit dem übungsbuch zu "C++ lernen und professionell anwenden"?
-
linuxx schrieb:
Kennt jemand die deutsche übersetzung von "Effective C++"? Taugt die was?
Ja, die ist durchaus brauchbar.
linuxx schrieb:
Übrigens: Es war ein C++ kurs und kein C mit klassen kurs - obwohl das natürlich auch behandelt wurde, um den einstieg in objektorientierte programmierung zu erleichtern.
Genau diese Aussage "Um den Einstieg in die Objektorientierte Programmierung zu erleichtern." halte ich etwas für gewagt. Falls wirklich C spezifische Bestandteile, von den es C++ Entsprechungen gibt, verwendet wurden, ist das für mich ein Klassischer "C/C++"-Kurs und kein "C++" Kurs (und in der Regel mit Abstrichen im C++ Bereich).
Versteh mich nicht falsch: Man kann C++ auch ohne "merklich sichtbare" OOP anfangen (z.B. halte ich die grundlegende Verwendung der std::string-Klasse auch ohne OOP-Kenntnisse für sinnvoll möglich...). Aber falls in euren Kurs mit Dingen wie printf und char-Arrays begonnen wurde, verdient es nicht die Bezeichnung "C++"-Kurs.
-
Ich kann dir auch nur empfehlen dich noch ne Weile mit der Konsole zu beschäftigen. Ich wollte damals auch recht schnell auf GUI umsteigen, nach ein paar Versuchen mit verschiedenen Frameworks bin ich dann zur Konsole zurück, weil einem dann viel verloren geht bzw man es gar nicht lernt. Denn man muss sich nebenbei auch auf die GUI konzentrieren die oftmals je nach Framework auch nicht so richtig modernes C++ ist.
Dann lieber mit der Konsole beschäftigen, da kann man auch viele interessante Sachen machen und man beschäftigt sich mit der eigentlichen Programmlogik.Ist meine Meinung
Lg freeG
-
@linuxx
Projekt Vorschlag 1:
Programmiere doch ein ganz einfaches Puzzle Spiel, welches ein beliebiges Bild auf ein Quadrat von 3x3 Buttons mapped und ein Button als Tauschbutton zulässt. Bei einem neuen Spiel werden dann die Buttons wild durcheinandergewürfelt und der Spieler muss das Bild wieder durch Tauschoperationen mit dem Tauschbutton zusammensetzen.Projekt Vorschlag 2:
Steige doch mal in die Fraktale Welt ein und programmiere doch die Mandelbrot Menge mit visueller Ausgabe.Vorteil: Du lernst viel über Programmierung und du hast immer etwas was du deinen Kindern (wenn du welche hast) zeigen kannst.
-
---- schrieb:
Natürlich ist es demotivierend zu hören, dass man zwar jetzt schon einige Wochen für die Programmiersprache geopfert hat und man trotzdem noch nicht viel anzufangen weiß.
Hui, mehrere Wochen... wer sich Mathematik an der Uni gibt, macht das einige Jahre, bis er für sein Fach angemessene Probleme ganzheitlich lösen kann. Wenn man was wirklich will, sollte man schon ein wenig Durchhaltevermögen mitbringen.