Wie habt ihr C/C++ gelernt?



  • Ich programmier auch schon seit über 10 Jahren in C++, als Teen nur zum Spaß, neben dem Studium zum Dazuverdienen und jetzt beruflich und glücklicherweise immernoch mit Spaß. 😉
    Trotzdem würd ich nicht sagen, dass ich "es drauf habe". Ich lern ständig irgendwelche neuen Sachen dazu oder bemerke, wie blöd ich manche Dinge bisher gemacht habe. Das würd ich aber gar nicht so mit C++ selbst in Verbindung bringen. Ich vermute, dass man in anderen Sprachen ähnliche Erlebnisse macht.
    Rückblickend kann ich sagen, dass ich direkt anfangs mit guten Büchern (oder meinetwegen gleichwertigen Tutorials) hätte lernen sollen. Zunächst habe ich jedoch fast nur durch Rumprobieren und mal zwischendurch googlen meine Sachen irgendwie hinbekommen und dementsprechenden Mist gebaut. Zwar finde ich es jetzt nicht schwer, mir den schlechten Stil abzugewöhnen und hübschen (erweiterbarer, wartbarar, verständlicher, sicherer, blablariger) code zu schreiben. Allerdings hätte ich das schon viel früher haben können.



  • Skotchy schrieb:

    WOW und wie 'gut' kann man nach 10 jahren Programmieren 🙂 ?

    Das ist eine gute Frage. Grundsätzlich lernt man immer dazu. Ich habe z.B. mit 11 angefangen zu programmieren, mit etwa 20 auch beruflich [Erst neben dem Studium als HiWi], was inzwischen mehr als 10 Jahre her ist - Auslernen werde ich wohl nie.

    Man lernt immer etwas neues, es sei den die Arbeit beschränkt sich darauf in der Zeit stehen zu bleiben (und irgendwann dann dumm aus der Wäsche zu schauen wenn das Programm auf einer neuen OS-Version nicht mehr läuft). Gerade die Softwareentwicklung ist nun einmal eine der schnelllebigsten Bereiche.



  • Zu dem Punkt mit 'immer wieder etwas dazulernen', ist die Sprache so umfangreich oder wird die immer weiter erweitert? Denn irgendwann muss das ja ein ende haben oder?

    Dobi schrieb:

    ...fast nur durch Rumprobieren...

    Kann ich mir kaum vorstellen, ich hab das auch so versucht aber bei mir kam da nicht raus. Ich brauch da meine Tutorials (und demnächst auch ein Buch!?), so hab ich es bis jetzt dazu geschaft einfache und kleine Programme(z.B. ein Taschenrechner) zu schreiben(allerdings gehen mir die Tutorials aus 😣 ).

    asc schrieb:

    ...mit 11 angefangen...

    War das C++ oder eine andere Sprache?

    -Skotchy



  • Skotchy schrieb:

    Zu dem Punkt mit 'immer wieder etwas dazulernen', ist die Sprache so umfangreich oder wird die immer weiter erweitert? Denn irgendwann muss das ja ein ende haben oder?

    C++ ist vielleicht schon etwas umfangreicher als manch andere Sachen, aber ich denke auch, dass ein Python-Programmierer, ein Kunstturn-Trainer, ein Pianist, ein Bodybuilder und ein Gärtner noch nach 10 Jahren dazulernt. Zumindest wenn er dazulernen möchte.
    Bei mir lags vielleicht speziell auch noch daran, dass ich einiges an Zeit verschwendet hab, und schon weiter sein könnte.



  • Skotchy schrieb:

    War das C++ oder eine andere Sprache?

    C++ habe ich mit etwa 18 "gelernt", vorher waren es prozedurale Sprachen, der Groschen für OO viel so richtig eigentlich erst mit 21. C++ habe ich bis heute nicht so detailliert gelernt das ich den C++ Standard herunter rasseln könnte, aber gut genug um in den Firmen die ich bislang mitgemacht zu haben zu denen zu den "Besseren" bezüglich der Sprachkenntnis zu gehören. Und ich habe beispielsweise die Templatemetaprogrammierung bis heute nur am Rande betrachtet.

    Und ja, ich lerne auch C++ immer noch. Es gibt immer mal wieder neue Sachen die man lernt. Und der kommende Standard wird weiteres lernen nach sich ziehen.



  • Skotchy schrieb:

    pumuckl schrieb:

    ...dann irgendwann mit C++ angefangen (ohne C vorweg)...

    Und meinst du dass das von vor- oder nachteil war?

    Mit dem Ziel C++ zu lernen von Vorteil. Ich musste nicht umlernen. Von C++ auf C umzustellen geht meist relativ unkompliziert, wenns nicht zu tief in irgendwelche Pointerschlachten geht.

    pumuckl schrieb:

    Am Anfang nur wenig Code geschrieben, viel gelesen und vieles sehr theoretisch durchgenommen und gelernt.

    Ich schreibe zur Zeit auch wenig Code, weil ich mitlerweile alles doppelt geschrieben habe, was ich meinem 'Können' bzw. 'Wissen' zutraue.

    Dann gibts nur eins: Horizont erwitern 😉 Ich hab relativ früh hier im Forum mitgelesen, parallel aber diverse C++-Bücher durchgearbeitet (nicht einfach nur gelesen! Viele denken einmal rüberlesen reicht...)

    pumuckl schrieb:

    Ich behaupte, gerade durch die recht umfangreiche Theorie, die ich vor der Praxis gelernt hab (Effective C++, Exceptional C++,...) viele Fehler von Anfang an vermieden zu haben und mir einige schlechte Angewohnheiten (auch C-Style) garnicht erst zugelegt zu haben.

    Also soll ich mich auf C++ beschrenken und erst das lernen, damit ich nicht im 'C-Style' arbeite, richtig?

    Es gibt viele Gemeinsamkeiten. Aber eben auch Unterschiede. Das, was beide Sprachen gemeinsam haben, lernst du auch, wenn du gleich mit C++ anfängst.

    Was die Frage "kann ich nach XY Jahren gut C++" angeht: kommt drauf an, was man an Vorkenntnissen (andere Sprachen, etc.) hat. Kommt drauf an, ob man die entsprechende "Denke" auch nebenbei trainiert. Kommt drauf an, wie talentiert man ist. Kommt drauf an, wie ernsthaft man die Sache angeht...

    Ich bin nach ca. 7 Jahren C++, Vorkenntnissen, "Denke"-Training (Physikstudium) so weit, dass ich behaupte, auch ein wenig C++ zu können. Wenn ich die C++-Entwickler in der Firma als Vergleichsgruppe nehme vielleicht auch ein wenig mehr. Ausgelernt hab ich nicht, werd ich auch nie (hoffentlich) 😉



  • Ich weiß noch, dass ich mal als kleiner Bub irgendwann mal Microsoft QuickC ausprobiert habe. Das war mir dann aber zu hoch und bin deswegen eine Weile bei QuickBasic geblieben. Später kam dann Turbo Pascal in der Schule und Java im Studium dran. Irgendwo dazwischen machte ich auch einen Delphi-Abstecher. Erst nach dem Abschluss des Informatikstudiums habe ich mich intensiv mit C++ auseinander gesetzt. Ich kaufte mir innerhalb der letzten 4 Jahre folgende Bücher:
    1. Die C++ Programmiersprache (deutsche übersetzung der englischen Special Edition)
    2. Modern C++ (englisch)
    3. Effective C++ (3. Edition, englisch)
    4. C++ Coding Standards (englisch)
    5. C++ Templates: The Complete Guide (englisch)
    6. The Design and Evolution of C++ (englisch)
    Ich fand alle dieser Bücher sehr erhellend. Im Nachhinein würde ich (1), (3), (5), (6) als sehr wertvoll einschätzen. Vom Programmierstil hatte ich eigentlich erwartet, dass da wieder so etwas Pascal-ähnliches rauskommen wird, da ich mich noch daran erinnerte, dass man da auch per new/dispose Objekte manuell auf dem Heap anlegen und löschen musste. Ich war dann aber sehr positiv von den Destruktoren überrascht und dem Bestreben von C++, die Grenze zwischen eingebauten und selbstdefinierten Typen so stark wie möglich aufzuweichen.

    Das C++0x Vorhaben habe ich auch immer verfolgt und diverse Nxxxx.PDFs regelrecht verschlungen. Es hat aber eine Weile gedauert, bis ich den "Standardsprech" verstanden habe.

    Ich kann nur jedem empfehlen, der "richtig" C++ lernen will, sich auch mit der Literatur auseinanderzusetzen, die es dazu gibt. Ich habe immer wieder den Eindruck, dass das, was solche Bücher zu bieten haben, stark unterschätzt wird.

    Vor kurzem habe ich Hobby-mäßig mit Python angefangen. 😃

    kk



  • Ok, dann ist für mich also Bücher lesen und ewig weiterlernen angesagt 😃 .

    -Skotchy



  • Skotchy schrieb:

    Ok, dann ist für mich also Bücher lesen und ewig weiterlernen angesagt 😃 .

    Ich würde es so sagen: Sofern man nicht gerade durchgehend (z.B. beruflich) programmiert, sollte man bei C++ davon ausgehen das man nach einem Jahr die Grundlagen kann, nach 2 Jahren einen relativ festen Stand hat (Hier empfehle ich u.a. Effective C++ / Exceptional C++ für Aha-Effekte) und danach sich etwas mit den Tiefen (z.B. fortgeschrittene Templatetechniken, nichts zwangsweise Metatemplateprogrammierung) auseinander setzt.

    Die Materie lässt aber in jeder Richtung Vertiefungsmöglichkeiten zu, und man lernt daher nicht aus, auch wenn die Aha-Effekte vielleicht mit der Zeit seltener werden.

    Wirklich "gute" und einigermaßen umfassende C++ Kenntnisse erwarte ich von niemanden, der sich weniger als 3 Jahre intensiver mit C++ auseinander gesetzt hat.



  • Was auch immer wieder lehrreich ist: Fragen hier im Forum lesen, selber Gedanken drüber machen und am Ende mit den Lösungsvorschlägen der anderen vergleichen.


Anmelden zum Antworten