Source lesen und verstehen lernen



  • knivil schrieb:

    Eine wichtige Frage bleibt offen: Warum willst du Sourcecode lesen und verstehen?

    manche wollen nun mal wissen, wie irgendwas funktioniert. nennt sich 'neugier'
    findest du das so ungewöhnlich?
    🙂



  • Sourcecode von besonders fähigen Programmierern zu studieren ist eine sehr gute Methode, den eigenen Codestil zu verbessern.



  • u_ser-l schrieb:

    Sourcecode von besonders fähigen Programmierern zu studieren ist eine sehr gute Methode, den eigenen Codestil zu verbessern.

    Jetzt geht es nur noch darum, zu beurteilen, wer denn ein besonders fähiger Programmierer ist und wer nicht. Das ist natürlich ein Kinderspiel, gerade wenn man am eigenen Stil zweifelt. 😃



  • Ich werd mir natürlich nicht blindwegs von irgendwelchen Codern den Stil aneignen... Aber +fricky und u_ser-l habens schon gut erfasst.

    Es geht für mich in erster Linie darum zu sehen, wie fähige leute ihre Probleme lösen und wie sie ihre Programme strukturieren.

    Und da ich Gimp für schon sehr gute Software halte, wollte ich sehen, wie die Köpfe dahinter so ticken 😉

    Ich versuche mir einfach ein Bild davon zu machen, wie große Projekte aufgebaut werden, da ich selbst bisher nur kleinere Software bzw. teile einer Software mitentwickle, ohne den groben Überblick über ein ganzes zu haben.



  • Und da ich Gimp für schon sehr gute Software halte

    😮 😮 😮



  • hustbaer schrieb:

    Und da ich Gimp für schon sehr gute Software halte

    😮 😮 😮

    Hehe, warum? Wegen dem Anti-MDI-Design? 😃



  • _matze schrieb:

    Jetzt geht es nur noch darum, zu beurteilen, wer denn ein besonders fähiger Programmierer ist und wer nicht. Das ist natürlich ein Kinderspiel,

    Dazu gibt es zwar keine 100% treffsichere Methode, aber Anhaltspunkte gibt es schon.

    z.B.

    * wer richtungweisende Software im Alleingang herstellt, ist oft auch ein besonders fähiger Programmierer, von dem man etwas lernen können wird.

    * wer es schafft, ein Programm für einen bestimmten Zweck in 1000 übersichtlichen Zeilen zu programmieren, wo alle anderen dafür 10000 Zeilen brauchen, ist wahrscheinlich ein besonders fähiger Programmierer.

    * Sourcen, die kaum Kommentar enthalten, und dennoch sofort erfaßbar sind, zeugen von einem fähigen Programmierer.

    * Sourcen, die die ganze Bandbreite syntaktischer Konstrukte einer Prog.Sprache nutzen (und nicht nur einen Teil davon), stammen oft von fähigen Programmierern.

    usw ...



  • u_ser-l schrieb:

    Sourcecode von besonders fähigen Programmierern zu studieren ist eine sehr gute Methode, den eigenen Codestil zu verbessern.

    Man kann auch ein gutes Buch drueber lesen und sich selbst an den Beispielen ausprobieren. Fuer die Beurteilung von Buechern geben genug Personen bei z.B. amazon.de Bewertungen ab, so dass man nicht die Katze im Sack kauft. Das halte ich fuer die bessere Alternative. Was bringt es einem, sich 1 Monat mit Quelltext zu befassen, nur um festzustellen, dass er Schrott ist. Auch kann man nicht von den Aeusserlichkeiten einer Anwendung auf deren Inneres (z.B. Gimp) schliessen.

    ... ganze Bandbreite syntaktischer Konstrukte einer Prog.Sprache nutzen ...

    Dafuer kenne ich genug Gegenbeispiele. Auch der Rest deiner Aussagen ist zu pauschal. Was ist "richtungsweisend", "uebersichtlich" und "erfassbar"? Diese Grenzen sind bei jedem anders, gerade wenn es um Anfaenger vs. Profis (jahrelange Erfahrung) geht. Ideen koennen auch auf abstrakter Ebene wesentlich besser verdeutlicht werden. Persoenlich schaue ich mir nur Code an, wo ich es muss. Sonst wird nur mit den bereitgestellten Interfaces und deren Beschreibung gearbeitet.

    Letztendlich geht es darum, wie man selbst guten Code/Architektur/Software produziert und nicht wie andere es erreichen. Es ist also ein Umweg, anderen Sourcecode zu studieren. In der iX 04/2009 war nen kleiner (netter) Artikel ueber Richtlinien drin, wie man seine eigene Codequalitaet verbessern kann.



  • ich denke ja nicht an so große Zeitspannen wie 1 Monat - diese Zeit ist natürlich besser in Studium von Büchern und eigene Programmieraufgaben investiert. Monatelang den Quellcode eines Großprojekts wie firefox zu studieren, würde ich auch nicht empfehlen, es sei denn, man will am Projekt teilnehmen.

    Aber mehrere Stunden oder Tage in hochwertigen Sourcen zu schmökern, oder immer mal wieder hineinzuschauen, schadet dem Codestil eines Anfängers bestimmt nicht. Macht doch auch Spaß, zu sehen, wie andere Leute bestimmte Funktionen implementieren, vor allem, wenn der Code wirklich gut ist.



  • u_ser-l schrieb:

    Dazu gibt es zwar keine 100% treffsichere Methode, aber Anhaltspunkte gibt es schon.
    ...

    * programme die perfekt funktionieren, performant sind und sich z.b. nicht durch unsinnigen input aus der bahn werfen lassen. leider kann man das am source code nicht sehen.

    u_ser-l schrieb:

    * Sourcen, die die ganze Bandbreite syntaktischer Konstrukte einer Prog.Sprache nutzen (und nicht nur einen Teil davon), stammen oft von fähigen Programmierern.

    hihi, das halte ich erstmal für kein gutes zeichen, sondern es sieht eher so aus, als ob des programmierers spieltrieb am wichtigsten war. so jemand hat aber gute chancen, irgendwann mal ein guter programmierer zu werden.
    🙂



  • kann sein. Betrifft ohnehin nur C++, die meisten anderen Sprachen sind ja nicht so umfangreich, daß man da viele Sprachelemente beiseite lassen könnte.



  • Was u_ser-l so gesagt hat, mag zwar nicht so uneingeschränkt zutreffen, aber vom ansatz her finde ich es schon richtig.

    Es geht mir vor allem auch darum, gerade als anfänger mir mal anzusehen, wie die Könner es so machen.

    Anderes Beispiel, beim Gitarre zocken höre ich mir auch lieber an was die Heros so spielen und können, nicht um es dann direkt nachzuahmen, könnte ich ja garnicht. Aber um zu sehen, in welche richtung es gehen kann und wohin ich selbst mal kommen möchte 😉

    Genauso in der Programmierung, ich bin eben noch eher Anfänger noch kein volles Jahr dabei und hab so viele Bücher, die mir zum teil immer wieder die Grundlagen durchkauen, is ja auch alles schön und gut, aber diejenigen, die diese Bücher schreiben sind auch sicher keine Hacker, die die Weisheit aus Eimern "saufen".

    Deswegen bekommt man meist auch nur Grundlagen, die kein besonderes können voraussetzen, es gibt zwar auch weiterführende Lektüren, die aber schon teils in spezielle gehen.

    Für mich war der nächste interesannte Schritt der, zu sehen wie es eben die Könner machen, die Software schreiben, die bereits einige Bekanntheit erlangt haben. Eben fast wie beim Gitarre spielen, da versucht man ja auch immer mal was zu spielen, was die Pros so verzapfen ^^



  • Die Erfahrung ist halt nicht zu unterschätzen. Man lernt immer wieder neue Sachen dazu. Wenn ich mir heute Code anschaue, den ich vor zehn Jahren geschrieben habe, dann kommt manchmal das blanke Entsetzen. Vermutlich wird es mir in zehn Jahren wieder so gehen.



  • Genau so siehts aus.
    Wenn ich mich an meine ersten Versuche erinnere, kommts mir auch hoch ^^



  • sri schrieb:

    Die Erfahrung ist halt nicht zu unterschätzen. Man lernt immer wieder neue Sachen dazu. Wenn ich mir heute Code anschaue, den ich vor zehn Jahren geschrieben habe, dann kommt manchmal das blanke Entsetzen. Vermutlich wird es mir in zehn Jahren wieder so gehen.

    da kann ich dich berihigen. ich habe heute keine probleme, meinen c++-code von 1998 zu lesen.



  • volkard schrieb:

    da kann ich dich beruhigen. ich habe heute keine probleme, meinen c++-code von 1998 zu lesen.

    aber vielleicht fällt's dir schwer, deinen code von 1988 zu lesen?
    🙂



  • +fricky schrieb:

    volkard schrieb:

    da kann ich dich beruhigen. ich habe heute keine probleme, meinen c++-code von 1998 zu lesen.

    aber vielleicht fällt's dir schwer, deinen code von 1988 zu lesen?
    🙂

    Ja. Weil ich damals Scheiß programmiert hatte. Den 90-er Code konnte ich bereits ein halbes Jahr später nicht mehr entziffern. Aber Nicht-Scheiß-Programme (und welche, die nicht betont experimentell sind) bleiben dauerhaft lesbar.



  • Lesbar schon. Aber nicht unbedingt sauber (gemessen an den heutigen Ansprüchen).



  • Es geht mir vor allem auch darum, gerade als anfänger mir mal anzusehen, wie die Könner es so machen.

    Anderes Beispiel, beim Gitarre zocken höre ich mir auch lieber an was die Heros so spielen und können, nicht um es dann direkt nachzuahmen, könnte ich ja garnicht. Aber um zu sehen, in welche richtung es gehen kann und wohin ich selbst mal kommen möchte

    Ich habe heute meine Tage: Bullshit. Du willst es wohl nicht kapieren. Programmieren ist nicht Gitarre spielen. Genausogut koenntest du dich als Schueler der 7. Klasse in eine Vorlesung fuer hoehere Mathematik setzen und wuerdest trotzdem nicht wissen, in welche Richtung es geht.

    Ausserdem gibt es genug Literatur fuer Fortgeschrittene:
    http://www.amazon.de/Effektiv-programmieren-Möglichkeiten-Programme-verbessern/dp/3827326907/ref=sr_1_1?ie=UTF8&s=books&qid=1247836856&sr=8-1
    http://www.amazon.de/Effektiv-C-programmieren-Scott-Meyers/dp/3827322979/ref=sr_1_3?ie=UTF8&s=books&qid=1247836856&sr=8-3
    http://www.amazon.de/Modern-Design-Applied-Generic-Patterns/dp/0201704315/ref=sr_1_14?ie=UTF8&s=books-intl-de&qid=1247836856&sr=8-14



  • knivil schrieb:

    Bullshit. Du willst es wohl nicht kapieren. Programmieren ist nicht Gitarre spielen.

    natürlich nicht. trotzdem haben programmieren, gitarre spielen, skateboard fahren usw. eins gemeinsam: man muss viel üben und lernen um gut zu werden. und dass man sich von meistern des fachs durchaus was abschauen kann, ist nicht so unwahrscheinlich.

    knivil schrieb:

    Ausserdem gibt es genug Literatur fuer Fortgeschrittene:
    http://www.amazon.de/Effektiv-programmieren-Möglichkeiten-Programme-verbessern/dp/3827326907/ref=sr_1_1?ie=UTF8&s=books&qid=1247836856&sr=8-1
    http://www.amazon.de/Effektiv-C-programmieren-Scott-Meyers/dp/3827322979/ref=sr_1_3?ie=UTF8&s=books&qid=1247836856&sr=8-3
    http://www.amazon.de/Modern-Design-Applied-Generic-Patterns/dp/0201704315/ref=sr_1_14?ie=UTF8&s=books-intl-de&qid=1247836856&sr=8-14

    bisschen einseitige buchtips. findeste nicht?
    🙂


Anmelden zum Antworten