Programmieren Lernen anhand des Quellcodes

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
BabaX
Beiträge: 393
Registriert: 20.10.2006 13:35:09
Lizenz eigener Beiträge: GNU General Public License

Programmieren Lernen anhand des Quellcodes

Beitrag von BabaX » 09.08.2010 19:07:47

Hallo,

ich suche gerade ein paar Argumente, weswegen es sinnvoll ist, das Programmieren anhand des Quellcodes zu lernen und üben.
Bastle da gerade an nem paper und habe bestimmt einige Punkte übersehen.

Hier gibbet doch jetzt sicherlich einige Anregungen, oder ??? Würde mich über zahlreiche Tips/Schlagwörter und Diskussionen sehr freuen.

gmax
Beiträge: 16
Registriert: 17.05.2010 23:09:28
Lizenz eigener Beiträge: GNU General Public License

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von gmax » 10.08.2010 05:53:27

Anhand des Codes lernen, geht ja per Definition nur, wenn der Code offen ist. Da wären wir also bei Open Source Software.
Der Hauptvorteil in punkto programmieren Lernen ist dabei, dass sich dort qualitativ hochwertiger Code befindet. Schlechter Code wird von der Open Source Community natürlich verbessert und deshalb gibts meist nur guten Code, von dem man noch was lernen kann. Man bedenke einfach was für Leute dort mit programmieren, dass sind zum Teil die Besten der Welt ^^
Dann natürlich die Möglichkeit an freiem Open Source Code Änderungen vorzunehmen und zu schauen was diese bewirken. Man zieht da halt eigene Schlüsse, wie was funktioniert und liest dass dann nicht nur in einem Buch nach ;)
Zudem sitzt man dann direkt an einem kompletten Beispiel, in Tutorials/Büchern ... werden oftmals sehr einfache Minimalbeispiele erklärt - für den ein oder anderen sicher auch ein Vorteil mal ein größere Beispiel zu sehen

Mehr fällt mir spontan nicht ein :lol:

123456
Beiträge: 6126
Registriert: 08.03.2003 14:07:24

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von 123456 » 10.08.2010 06:01:21

gmax hat geschrieben:Der Hauptvorteil in punkto programmieren Lernen ist dabei, dass sich dort qualitativ hochwertiger Code befindet. Schlechter Code wird von der Open Source Community natürlich verbessert und deshalb gibts meist nur guten Code, von dem man noch was lernen kann. Man bedenke einfach was für Leute dort mit programmieren, dass sind zum Teil die Besten der Welt ^^
und da bist du dir sicher? :)

@BabaX nenn doch einfach mal die Stichpunkte die du schon hast, dann fällt es leichter das zu ergänzen.

brummer
Beiträge: 182
Registriert: 19.02.2007 19:21:23

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von brummer » 10.08.2010 06:20:42

gmax hat geschrieben: Der Hauptvorteil in punkto programmieren Lernen ist dabei, dass sich dort qualitativ hochwertiger Code befindet. Schlechter Code wird von der Open Source Community natürlich verbessert und deshalb gibts meist nur guten Code, von dem man noch was lernen kann. Man bedenke einfach was für Leute dort mit programmieren, dass sind zum Teil die Besten der Welt ^^
Na, ich weiß auch nicht . . .
Das trifft bestimmt auf die Kernel Sourcen zu, aber an denen Programmieren zu lernen ist vieleicht für den Anfang etwas hoch-gegriffen. :lol:
Ansonsten dürfte es dem Programieranfänger schwer fallen guten von schlechten Code zu unterscheiden, zumal da ja auch noch viel im Auge des betrachters/verfassers liegt.
Formatierungen z.b. . . .
Vorteil beim lernen durch die Sourcen ist klar die Möglichkeit ein schon funktionierendes Programm editieren zu können um zu schauen was passiert, das ist etwas leichter als mit einem leeren Blatt anzufangen.
Nachteil ist, wenn man es nicht besser weiß, kann man sich schnell einen schlechten Still einfangen.
So oder so ist es immer besser (als Anfänger) seine Sourcen einem Erfahrenen Programmierer vorzulegen, mit der bitte um Revision, nur so kann man verhindern das sich Fehler einschleichen.
Also letztlich lernt man am besten unter humaner Mithilfe. :THX:

Benutzeravatar
schorsch_76
Beiträge: 2609
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von schorsch_76 » 10.08.2010 06:58:42

Das Problem als Anfänger und einem bestehendem großen Projekt ist es die Konzepte dahinter zu verstehen. Sprich wie funktioniert das? Designpattern, die ganzen API's (Beispiel Linux Kernel: Reentry fähiger Code).

Vorteil für einen Anfänger ist das meiner meinung nach nur, wenn er bei jemanden erfahrenen Mitmachen und mitlernen kann der das große Projekt programmiert.

EDIT: Was aber ein Anfänger nutzen kann bei OpenSource sind bsp. die Sourcen von tar, ls und co. Dort kann man hervorragend sehen wie in C die ganzen Programmoptionen genutzt werden und umgeschalten werden.

Gruß

schorsch

Benutzeravatar
hikaru
Moderator
Beiträge: 13928
Registriert: 09.04.2008 12:48:59

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von hikaru » 10.08.2010 09:00:43

Geht es hier um "Programmieren lernen mit Hilfe des Quellcodes" oder um "Programmieren lernen ausschließlich anhand des Quellcodes"? Ersteres halte ich für einen guten Ansatz, letzteres nicht.
Viel zu oft erhalte ich bei der Frage nach der Dokumentation die Antwort: "Der Code ist die Dokumentation." Sebstredend ist dieser Code meist frei von Kommentaren, denn er kommentiert sich ja selbst. :?

Benutzeravatar
BabaX
Beiträge: 393
Registriert: 20.10.2006 13:35:09
Lizenz eigener Beiträge: GNU General Public License

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von BabaX » 10.08.2010 19:07:30

Es geht hierbei um "Programmieren lernen mit Hilfe des Quellcodes".
Grundlegende Kenntnisse (Theorie) sollen zuvor vermittelt werden.

Das mit den Kommentaren könnte durchaus auch ein Punkt sein.
Wahrscheinlich könnte man auch erkennen das ein Quelltext ohne Kommentare ziemlich schwer zu verstehen ist :-)

Milbret
Beiträge: 827
Registriert: 26.05.2008 12:04:54
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Nörten-Hardenberg
Kontaktdaten:

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von Milbret » 11.08.2010 10:32:24

Hallo,
als beruflicher Softwareentwickler kann ich dir folgende Strategie empfehlen.

Als Anfänger lohnt es sich nicht irgendwelche Quelltexte zum lernen anzuschauen.
Dies schafft nur Frust da du vieles nicht verstehen wirst.
Lern erst einmal den Einstieg mit der Hilfe von guten Einsteigerbüchern.

Ich habe z.B. direkt mit C++ für Dummies angefangen.
Damit lernt man ganz gut C++ von Grund auf.
Natürlich wird einem nicht alles vermittelt aber für den Anfang reicht es..

Dann sollte man sich mit Themen wie Objektorientierter Programmierung (OOP), wenn man C++, C# oder Java entwickeln möchte, außerinander setzen.
Wenn man diese Themen drin hat, natürlich auch etwas praxis Übungen gemacht hat, dann kann man sich an ein kleines Projekt wagen und kann auch Quelltexte zum lernen verwenden.

Aber erst ab diesem Punkt sollte man mit dem lesen von einfachen Code anfangen.
Mit der Zeit kannst du dann den Code, den du dir anschauen willst, auch auf komplexere Ebenen ausweiten.
So lernst du mit der Zeit immer komplexeren Code zu lesen um auch deine eigene Programmierung etwas zu verbessern.

Aber insgesamt solltest du lernen mit Quelltexten erst einmal außen vor lassen solange eine gewisse Grundlage noch nicht vorhanden ist.

Martin
Es gibt keine if Schleife -> http://www.if-schleife.de/
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever :D

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von startx » 11.08.2010 11:58:40

ich finde das klappt nur anhand sehr kleiner software projekte. bei grossen projekten ist es oft voellig unmoeglich zu verstehn was vorgeht, besonders dann wenn es ein ein personen projekt ist.

ich denke auch, dass es hier zwei verschiedene dinge sind: 1) lernen der syntax einer sprache und 2) lernen wie man eine sprache in einem grossen projekt handhabt.

was durchaus sinn macht ist sich ganz konkrete problemfaelle in anderen sourcen anzuschauen.
Schlechter Code wird von der Open Source Community natürlich verbessert und deshalb gibts meist nur guten Code, von dem man noch was lernen kann.
das halte ich fuer ein geruecht ... schoen wenn es so waere.

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von roli » 11.08.2010 13:05:51

startx hat geschrieben:
Schlechter Code wird von der Open Source Community natürlich verbessert und deshalb gibts meist nur guten Code, von dem man noch was lernen kann.
das halte ich fuer ein geruecht ... schoen wenn es so waere.
Stimmt, dem kann ich aus eigener Erfahrung nur beipflichten.
Wenn ich fuer mein seit 2006 bei Sourceforge gehostetes Projekt (ca. 200 Downloads/Monat) pro Quartal 1x Feedback bekomme ist's viel. Wenn ich dann mal nur die betrachte, bei denen jemand direkt zum Code beitraegt (Verbesserung/Erweiterung) dann ist's nicht mal 1X pro Jahr. Was ich allerdings sagen muss, ist das die Qualitaet dessen was dann da kommt sehr gut ist.
Das ich mit Unmassen an "Code verbesserungen" zugeschuettet werde liegt mit Sicherheit nicht daran, das der Code Perfekt waere, da habe ich den Userern schon noch was Luft gelassen fuer Verbesserungen. Perl-Critic meintz.B. x mal "Code structure is deeply nested" :mrgreen:

Zum eigentlichen Thema, wenn ich eine mir unbekannte Sprache versuche zu lernen, dann suche ich mir auch sehr gerne kleine funktionierende (!) Codebeispiele, da ich da dann aber die Qualitaet nicht beurteilen kann, muessen die Schluesse die ich daraus ziehe dann auch nicht die 101% des Wissens sein.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
startx
Beiträge: 3165
Registriert: 07.12.2002 19:29:48
Wohnort: london

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von startx » 11.08.2010 16:12:09

@BabaX

ein argument fuer dein paper koennte auch sein, dass man anhand von negativen Beispielen auch viel lernen kann ;)

Benutzeravatar
format_c
Beiträge: 188
Registriert: 23.01.2008 14:24:17
Kontaktdaten:

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von format_c » 11.08.2010 17:24:56

startx hat geschrieben:@BabaX

ein argument fuer dein paper koennte auch sein, dass man anhand von negativen Beispielen auch viel lernen kann ;)
Das impliziert aber die Fähigkeit die Qualität des Codes unterscheiden zu können, was ich gern in Frage stellen würde.

Gruß Alex

dragon2222
Beiträge: 35
Registriert: 01.02.2009 18:24:15

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von dragon2222 » 11.08.2010 20:49:17

Für mich steh eher learning by doing im Vordergrund.

Programmier"sprachen" sind Sprachen!
Sprechen lernt man nur durch sprechen.
Die Grundkenntnisse muß man sich aneignen, aber danach muß man sprechen.

Man kann sich vieles abgucken, sicherlich, aber richtig lernt man nur durch eigenes Tüfteln.

Erinnert sich noch jemand an die alten DOS3.0 Zeiten? Da gab es die ersten (vernünftigen) Anfänge der OOP.
Es ist so lange her, dass ich mich nicht mehr an den Vorgänger von "Delphi" erinnern kann.
Es war ein Pascal-Derivat, das die ersten "Windows"-Objekte ermöglichte, alle mit ASCI-Zeichen.

Die ersten versuche mit der damals für mich neuen OOP, waren desaströs. Ich hatte keine Ahnung wie Vererbung, Signal-Slot Mechanismen etc. funktionierten....

Der erste Schritt war sich anzulesen, was das neue eigentlich ist....
Inzwischen schreibe ich u.a. OO-Strömungssimulationen.

Jetzt versuche ich die Datenbank des openerp anzuzapfen, um damit shop-floor-Simulationen zu erstellen.
An sich ziemlich spaßig, nur habe ich mir mein postgresql zerschossen....

Lange rede kurzer Sinn:
Jeder fängt klein an, aber nur durch zugucken lernt man nicht, man muß etwas machen!

gruß
Dragon

p.s.: Ich will nicht damit sagen, dass ich jetzt der Übermensch bin...
Ich kann programmieren, ich liebe Linux, aber mit den einfachsten Linux-Krams komme ich auch nicht zurecht.
Tja: Think c++ ist etwas anderes als: Think-Linux...
In jede Sprache muß man sich reinarbeiten, Linux ist im Grunde ja auch "nur" eine....

Benutzeravatar
BabaX
Beiträge: 393
Registriert: 20.10.2006 13:35:09
Lizenz eigener Beiträge: GNU General Public License

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von BabaX » 16.09.2010 22:46:27

kennt jemand vielleicht einfache C++ Programme, an denen sich auch Anfänger üben können.
Kann bei sowas wie "Hello World" in der Konsole anfangen und dann nach und nach weiterführen.

dragon2222
Beiträge: 35
Registriert: 01.02.2009 18:24:15

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von dragon2222 » 26.09.2010 22:16:27

Nein, nein und nein!!!

siehe Antwort da drüber.


Erstens: C++ ist object-orientiert.
Zweitens: Sprechen lernt man nur durch sprechen.

Wir bauen jetzt ein Programm, dass es einem Vogel ermöglicht, einer Katze
zu entkommen.


Wir übergehen jetzt "Hello World" und kommen zu Aufgabe 1:

Erstelle bitte ein Object (Vogel),
das auf das Kommando (procedure fly() ) ausgibt: "ich fliege...."
"dicker Vogel" fly() ---> "ich fliege...... plumps"


(Ich bin nicht immer in diesem Forum, wenn jmd. häufiger Hilfe braucht, finden wir einen Weg, dann bitte posten, oder pm)

Gruß
Dragon

brummer
Beiträge: 182
Registriert: 19.02.2007 19:21:23

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von brummer » 27.09.2010 06:36:19

ich nutze gerne die cplusplus reference die auch ein Tutorial enthalt welches mit "Hello World" losgeht
http://www.cplusplus.com/doc/tutorial/

Die Vögel/Katzen kommen dann später :lol:

Benutzeravatar
BabaX
Beiträge: 393
Registriert: 20.10.2006 13:35:09
Lizenz eigener Beiträge: GNU General Public License

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von BabaX » 12.10.2010 12:58:44

haha, muss mal gucken, ob die freien Code verwenden.....
Das wäre natürlich noch interessanter.

Suche natürlich auch nach Referenzprojekten.

.... und die Danksagung habe ic hauch schon das Debianforum ....... GEIL :idea:

LG,
Baba-X

Benutzeravatar
BabaX
Beiträge: 393
Registriert: 20.10.2006 13:35:09
Lizenz eigener Beiträge: GNU General Public License

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von BabaX » 12.10.2010 13:20:19

Hmmm...
Irgendwie denke ich gerade LPI-Zertifizierungen (Linux-Administration) --- gibbet da auch was vergleichbares für Softwareentwickler ?

Benutzeravatar
bmario
Beiträge: 1257
Registriert: 05.09.2007 12:15:47
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von bmario » 12.10.2010 14:35:59

Von Zend gibt's sowas für PHP, bei Java sicher auch was von SUN/ Oracle.
Im C++ Bereich würde mir nur QT einfallen...
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse

Benutzeravatar
ralli
Beiträge: 4383
Registriert: 02.03.2008 08:03:02

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von ralli » 13.10.2010 07:20:36

Ich bin gerade dabei ein kleines Portal für Qt und C++ aufzubauen. Guckst Du hier: http://www.rgsoftware.de. Ich hatte aber vorher schon Erfahrungen in Objektpascal (Delphi und Lazarus) sammeln dürfen. Learning by doing ist absolut richtig! Anfangs habe ich mich täglich stundenlang mit der Qt Dokumention beschäftigt, die allererste Sahne ist. Dann habe ich mir selber kleinere Aufgaben gestellt, an denen ich gewachsen bin. Mit dem SDK Kit werden eine ganze Menge gute Beispiele mitinstalliert und bereitgestellt. Studieren, ausprobieren und aus Fehlern lernen. Ich habe mir einige größere Projekte wie zum Beispiel den Sqlitebrowser heruntergeladen und immer wieder den Quellcode studiert, das ist ergänzend sinnvoll und unumgänglich. Im übrigen dauert es ca. 10 Jahre, bis Du ein wirklicher Könner bist, das ist wissenschaftlich belegt. Programmieren lernt niemand in 21 Tagen, geschweige denn in wenigen Monaten, wie uns viele unseriöse Publikationen weis machen wollen.
Zuletzt geändert von Anonymous am 13.10.2010 08:27:43, insgesamt 1-mal geändert.
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

123456
Beiträge: 6126
Registriert: 08.03.2003 14:07:24

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von 123456 » 13.10.2010 07:43:15

ralli hat geschrieben:Vielleicht ist das hier geschriebene nützlich und hilfreich
da der Text über das Zitatrecht "etwas" hinausragt lässt es die Lizenz hoffentlich zu den zu verwenden?

EDIT:
habe mir die Seite mal kurz angesehen.
wenn bei den meisten Punkten "Content notieren ..." steht, klickt der geneigte User schnell weg - also besser die Unterpunkte erstmal gar nicht erst auftauchen lassen, sondern nur die schon gefüllten.

Benutzeravatar
ralli
Beiträge: 4383
Registriert: 02.03.2008 08:03:02

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von ralli » 13.10.2010 08:06:29

Ach ja, es ist natürlich noch eine Baustelle und das wird sich nun täglich ändern. Natürlich hast Du Recht, wenn es rechtliche Bedenken geben sollte bei den von mir zitierten Tipps, dann lösche ich das einfach. Ich wollte nur etwas Nützliches beitragen, das ist mir ja gründlich mißlungen :oops: .
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

123456
Beiträge: 6126
Registriert: 08.03.2003 14:07:24

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von 123456 » 13.10.2010 08:11:55

sorry für Kummer am Morgen. ;)
die Frage mit der Lizenz musst du selber rausfinden. Vielleicht ist das ja auch ok. Im Zweifel beim Autor (Übersetzer) nachfragen.

ps: ich finde den Text schon nützlich.

Benutzeravatar
ralli
Beiträge: 4383
Registriert: 02.03.2008 08:03:02

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von ralli » 13.10.2010 08:32:33

Da ich unsicher bin, habe ich vorsichtshalber den Text mal entfernt. Was meine Homepage angeht, die wird auf absehbare Zeit auch eine Baustelle bleiben, vielleicht ist es kein guter Stil, aber ich will kein Perfektionist sein und in 14 Tagen wird das schon ganz anders sein. Mir war es überhaupt wichtig, etwas ins Leben zu rufen, was sich von elitären Seiten abhebt, denn wirklich gute Seiten für Einsteiger und Anfänger in deutsch habe ich bis heute nicht gefunden. :THX:
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

123456
Beiträge: 6126
Registriert: 08.03.2003 14:07:24

Re: Programmieren Lernen anhand des Quellcodes

Beitrag von 123456 » 13.10.2010 08:40:49

wie gesagt, ich finde es allgemein besser wenn man eine kleine Seite hat, die gefüllt ist als eine grosse bei der die Hälfte fehlt. Die Menupunkte kannst du doch nach und nach einblenden, wenn der Inhalt da ist. Ansonsten sieht das wirklich aus wie eine Baustelle.

hier:
http://de.wikibooks.org/wiki/Qt_f%C3%BC ... %C3%A4nger
gibts was für Qt Anfänger. Eng verbandelt mit dem geistigen Bruder C++

Antworten