| Autor |
Nachricht |
linuxx
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.09.2010
Beiträge: 3
|
linuxx Mitglied
17:28:52 02.09.2010 Titel: |
C++ - Wo soll ich anfangen?!?! |
Zitieren |
Hallo liebe forumsmitglieder!
Bin neu hier, deswegen kurz meine „eckdaten“...
- Oli aus der Schweiz, verheiratet, familie
- Technik freak (besonders aviatik)
- Grosser verfechter von open source
- Linux (momentan ubuntu) und window$ user
Vor etwa 4 monaten habe ich einen 20 abende dauernden kurs abgeschlossen, in welchem die C++ basics vermittelt wurden. Habe also ne grobe ahnung davon, wie ein C++ programm aussieht. Nur leider beschränkt sich mein wissen (welches z.t. in kursunterlagen und nicht ausschliesslich in meinem kopf „gespeichert“ ist) darauf, progrämchen zu schreiben, welche bestenfalls auf der konsole laufen.
Nun möchte ich das gelernte aber anzuwenden beginnen und zwar im rahmen von software mit richtigen GUIs. Klar, am anfang sollen es kleine projekte sein. Später hoffe ich, durch beiträge an open source projekte etwas zurückgeben zu können – und natürlich meine eigene erfahrung mit anderen zu teilen. Ich fände es echt toll, wenn ihr aus eurem erfahrungsschatz berichten, und mir zeigen würdet, wie ihr angefangen habt! Vielleicht ging es euch ja auch mal wie mir heute, nämlich dass ihr keine ahnung hattet, wo ihr anfangen sollt. Vielleicht hattet ihr aber auch jemanden, der euch ganz viel gezeigt hat – was ich leider nicht behaupten kann; da kommt ihr ins spiel...
Als einstieg habe ich das buch „Cross-Platform GUI Programming...“ von Julian Smart angeschaft, weil mir wxWidgets ne gute sache zu sein scheint und ich programme für linux und window$ schreiben möchte. Überdies hat mich code::blocks ziemlich überzeugt (wohl eher aus subjektiven gründen).
Die diskusion sei hiermit eröffnet. Vielen dank jetzt schon, für euer sehr geschätztes feedback!!!
Oli
PS: Ist dieser thread überhaupt am richtigen ort angesiedelt? |
|
|
|
 |
berniebutt
Mitglied
Benutzerprofil
Anmeldungsdatum: 12.11.2007
Beiträge: 2219
|
berniebutt Mitglied
19:39:07 02.09.2010 Titel: |
|
Zitieren |
Hallo! Ich habe das gelesen und weiss nicht viel mit der Frage anzufangen. Ich denke, man fängt stets immer ganz unten an der Basis an, die man versteht. Welche Basis das sein soll, sollte ein gutes Buch liefern. |
_________________ http://berniebutt.npage.de
|
|
 |
SeppJ
Moderator
Benutzerprofil
Anmeldungsdatum: 10.06.2008
Beiträge: 13597
|
SeppJ Moderator
20:02:20 02.09.2010 Titel: |
|
Zitieren |
1. Stell sicher, dass du auch C++ gelernt hast und nicht C mit Klassen. Das ist leider bei vielen Abendkursen der Fall. Kannst du uns vielleicht mal ein kleines Progrämmchen zeigen wie du es anstellen würdest, ein paar Namen einzulesen und alphabetisch sortiert auszugeben?
2. Such dir ein Framework aus. WxWidgets ist sicherlich eine gute Wahl. Such dir ein Tutorial (sollte viele geben), mit diesen kannst du sehen, wie ein GUI-Programm ungefähr aussieht und kannst ein paar einfache Fenster auf den Bildschirm zaubern mit ein bisschen Basisfunktionalität.
3. Und dann heißt es üben: Typische Übungsprogramme sind im Prinzip die gleichen die man auch auf der Konsole machen würde, zum Beispiel Taschenrechner, Fahrkartenautomat, usw. Versuch dabei erstmal mit den einfachen Mitteln aus dem Tutorial auszukommen um ein Gefühl für die Sache zu bekommen.
4. Versuch nach und nach den Stil (nicht die volle Funktionalität!) existierender Anwendungen nachzumachen. Zum Beispiel Menüleisten oder grafische Elemente hinzufügen. Versuche selbstständig anhand der Doku des Frameworks rauszufinden wie das geht, damit du ein Gefühl für diese bekommst.
5. Wenn du einigermaßen sicher in den Grundlagen bist, überflieg die Doku des Frameworks, was es sonst so alles bietet. Versuch alle Dinge mal auszuprobieren, um mal zu sehen wie sie funktionieren und wozu sie gut sind.
6. Profit! |
|
|
|
 |
lambda_0
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.09.2010
Beiträge: 15
|
lambda_0 Mitglied
20:03:58 02.09.2010 Titel: |
|
Zitieren |
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? |
|
|
|
 |
linuxx
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.09.2010
Beiträge: 3
|
linuxx Mitglied
11:24:06 04.09.2010 Titel: |
|
Zitieren |
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 |
|
|
|
 |
icarus2
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.09.2009
Beiträge: 1162
|
icarus2 Mitglied
11:33:07 04.09.2010 Titel: |
|
Zitieren |
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. |
Zuletzt bearbeitet von icarus2 am 11:34:39 04.09.2010, insgesamt 1-mal bearbeitet |
|
 |
axxyy
Unregistrierter
|
axxyy Unregistrierter
13:59:06 04.09.2010 Titel: |
|
Zitieren |
| 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. |
|
|
|
 |
----
Unregistrierter
|
---- Unregistrierter
14:24:17 04.09.2010 Titel: |
|
Zitieren |
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!) |
|
|
|
 |
rüdiger
Moderator
Benutzerprofil
Anmeldungsdatum: 11.07.2001
Beiträge: 22820
|
rüdiger Moderator
15:18:21 04.09.2010 Titel: |
|
Zitieren |
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.
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. |
_________________ .
|
|
 |
linuxx
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.09.2010
Beiträge: 3
|
linuxx Mitglied
08:52:45 07.09.2010 Titel: |
|
Zitieren |
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"? |
|
|
|
 |
asc
Mitglied
Benutzerprofil
Anmeldungsdatum: 13.01.2007
Beiträge: 5282
|
asc Mitglied
09:17:38 07.09.2010 Titel: |
|
Zitieren |
| 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. |
_________________ in theory there's no difference between theory and practice. in practice there is. (yogi berra)
In der Theorie gibt es kein Unterschied zwischen Theorie und Praxis. In der Praxis sehr wohl.
|
|
 |
fr33g
Mitglied
Benutzerprofil
Anmeldungsdatum: 07.01.2010
Beiträge: 803
|
fr33g Mitglied
12:05:32 10.09.2010 Titel: |
|
Zitieren |
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 |
|
|
|
 |
Bitte ein Bit
Mitglied
Benutzerprofil
Anmeldungsdatum: 24.10.2007
Beiträge: 828
|
Bitte ein Bit Mitglied
12:37:18 10.09.2010 Titel: |
|
Zitieren |
@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. |
|
|
|
 |
lambda_0
Mitglied
Benutzerprofil
Anmeldungsdatum: 02.09.2010
Beiträge: 15
|
lambda_0 Mitglied
10:40:54 11.09.2010 Titel: |
|
Zitieren |
| ---- 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. |
|
|
|
 |