Ideen "lernen"



  • Hallo Forum,

    ich beschäftige mich ja nun schon länger mit C++, und habe dabei vor allem zwei Probleme. Das erste Problem ist, dass mir ganz oft das Durchhaltevermögen fehlt. Ich bin ein paar Wochen begeistert dabei, dann mache ich wieder wochenlang Pause, und das macht es mir schwer, wirklich "drin" zu bleiben. Das Problem muss ich allerdings natürlich ganz allein angehen.

    Für das zweite Problem erhoffe ich mir hier ein paar Tipps. Ich komme mit den allermeisten Aufgaben in meinem Lehrbuch zurecht, das heißt, auch wenn es hier und da ziemlich lange dauert, komme ich meistens zu einer Lösung, die das tut, was sie tun soll. Allerdings ist die Lösung meistens weder elegant noch schön. Wenn ich mir dann die Musterlösung anschaue, habe ich so gut wie keine Probleme damit, den Ansatz nachzuvollziehen. Das heißt, ich verstehe, was der Autor tut und *warum* er es so und nicht anders tut. Selbst komme ich aber irgendwie nie auf solch clevere Lösungen.

    Habt ihr Tipps für mich, wie man neben den reinen Programmiertechniken solche "Ideen" schulen kann? Würde es vielleicht helfen, neben der Beschäftigung mit C++ sich generell mit Puzzles und Rätselaufgaben zu beschäftigen? Diese ganzen "Gehirnjogging"-Dinger regelmäßig zu machen? Habt ihr eigene Strategien?



  • dennis.cpp schrieb:

    Habt ihr Tipps für mich, wie man neben den reinen Programmiertechniken solche "Ideen" schulen kann?

    Codes von anderen Lesen, aber dann auch möglichst nur den guten Code.



  • Selbst komme ich aber irgendwie nie auf solch clevere Lösungen.

    Das kommt automatisch mit wachsender Erfahrung.

    Würde es vielleicht helfen, neben der Beschäftigung mit C++ sich generell mit Puzzles und Rätselaufgaben zu beschäftigen?

    Nur, wenn es dir Spaß macht. Ansonsten solltest du dich auf das Lösen von direkt programmierbezogenen Problemen beschränken - darin willst du ja besser werden.

    Habt ihr Tipps für mich, wie man neben den reinen Programmiertechniken solche "Ideen" schulen kann?

    Schreibe eigene Programme. Du kannst zwar durch Bücher einige Techniken und Konzepte lernen, auf die du selbst nicht so schnell gekommen wärst, aber sehr viel kommt aus eigener Erfahrung.
    Auch einen Blick auf Code von anderen kann ab und zu neue Ideen geben.
    Sofern du die Standardlektüre ("Effective C++" usw.) schon hinter dir hast, fang also gleich an.

    Damit dein erster Punkt nicht zum Problem wird, solltest du dir natürlich Projekte aussuchen, die dich interessieren. Ich hatte da nie ein Problem mit, da ich alles mal ausprobiert haben wollte (einen eigenen Datenkompressionsalgorithmus, eine virtuelle Maschine, einen Compiler für eine eigene Sprache, ein eigenes Textverarbeitungsprogramm, einen eigenen HTTP-Server...), aber das könnte dir natürlich anders gehen.
    Vielleicht ist die Spieleprogrammierung was für dich, daran hatte ich auch immer viel Spaß (selbst heute noch).



  • dennis.cpp schrieb:

    Diese ganzen "Gehirnjogging"-Dinger regelmäßig zu machen?

    "Gehirnjogging" ist für den Popo.



  • Üben, Üben, Üben.
    Anders gehts nicht.

    Dummerweise ist das kein endlicher Prozess. Es wird immer jemanden geben der die Sprache deiner Wahl eleganter anwendet und Dich wie ein Anfänger aussehen lässt.



  • dennis.cpp schrieb:

    Für das zweite Problem erhoffe ich mir hier ein paar Tipps.

    Hier im Forum gammeln und für Studenten Hausaufgaben erledigen.


  • Mod

    cooky451 schrieb:

    dennis.cpp schrieb:

    Für das zweite Problem erhoffe ich mir hier ein paar Tipps.

    Hier im Forum gammeln und für Studenten Hausaufgaben erledigen.

    Und dabei ruhig unnötig komplizierte(=abstrakte) Lösungen für einfache Probleme versuchen. Und von anderen Lösungen inspirieren lassen. Du willst Streams lernen? Guck die Werner Salomons Lösungen an und versuche zu imitieren, was er macht? Du möchtest die algorithms besser verstehen? Kommt auch immer ein zweizeiliger Beitrag von einem der alteingesessenen Forenmitglieder. Du möchtest TMP versuchen? Wenn möglich versuche ich solche Lösungen zu schreiben, oftmals auch Bashar. Du möchtest eine elegante, leicht verständliche und (oftmals) effiziente Lösung? Guck die volkards Codes an.

    P.S.: Entschuldigung an Leute die ich vergessen haben mag. Es gibt so viele gute Beiträge, Lösungsansätze und Diskussionen im C++-Forum.


Anmelden zum Antworten