Was Ist Programmieren
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Veränderung (zum vorhergehenden Autor)
(Änderung, Normalansicht)
Verändert: 21c21
:Die Formulierung passt nun, das weiter oben gesagte m.E. nicht: Auch ein (noch so) kurzes Programm IST ein Programm: zumal doch auch [Grün]PRINT "Hello World."] von einer Basic-Maschine (also einem Computer auf dem ein Interpreter läuft, der die SpracheBasic beherrscht) als ein eben solches angesehen wird, und schlussendlich zur Ausführung von Maschinenbefehlen führt, die in der Ausgabe von "Hello World" auf dem Bildschirm resultieren. Was soll Programmieren (als Tätigkeit) anderes sein, als eben das?
|
:Die Formulierung passt nun, das weiter oben gesagte m.E. nicht: Auch ein (noch so) kurzes Programm IST ein Programm: zumal doch auch [[Grün]PRINT "Hello World."] von einer Basic-Maschine (also einem Computer auf dem ein Interpreter läuft, der die SpracheBasic beherrscht) als ein eben solches angesehen wird, und schlussendlich zur Ausführung von Maschinenbefehlen führt, die in der Ausgabe von "Hello World" auf dem Bildschirm resultieren. Was soll Programmieren (als Tätigkeit) anderes sein, als eben das?
|
Was ist Programmieren?
Ist das Verwenden von Befehlen wie PRINT "Hello World." schon programmieren? IMO nein.
- Wenn man die Sache wirklich "genau" nimmt und sehr eng sieht, dann ja!
Oder beginnt Programmieren dort, wo in Programmen neue Sprachelemente in Form neuer Datenstrukturen, neuer Funktionen oder Methoden, neuer Objekte entstehen? IMO ja.
- Ich glaube, was Du meinst, ist, dass man, um sich mit fug und recht "Programmierer" nennen zu können/dürfen, a) erst eine Sprache beherrschen und b) sich darin auch entsprechend "ausdrücken" können muss - wozu zweifellos eben auch Datenstrukturen, spezielle Methoden und Algorithmen gehören... - Dem stimme ich natürlich zu. Hier noch ein schönes "Zitat" dazu: "Algorithms + Data Structures = Programs" (N. Wirth)
Man könnte das Ganze auch vom Endprodukt her betrachten:
- Beim Hausbauen entsteht ein Haus. Vom Hausbauen kann man nicht sprechen, solange nicht irgendeine Form von Gebäude entsteht, das bewohnt oder anderweitig genutzt wird. Zumindest potentiell. Ein paar Ziegel aufeinandermörteln genügt nicht.
- Beim Programmieren entsteht ein Programm. Vom Programmieren kann man nicht sprechen, solange nicht ein Programm entsteht, das vom Benutzer direkt oder indirekt nutzbringend verwendet wird. Zumindest potentiell. Ein paar Befehle in einen File schreiben genügt nicht.
Andererseits habe ich schon viele nützliche, nichttriviale Zehnzeiler gesehen. Könnte man nicht folgendes sagen? Auch ein kurzes Programm ist ein Programm. Auch das Erstellen eines kurzen Programms ist Programmieren. Zum Programmierer werde ich aber nicht dadurch, das ich ein Programm geschrieben habe, sondern dadurch, daß ich beliebig komplexe Programme schreiben kann, wenn man mir nur genug Zeit gibt.
- Die Formulierung passt nun, das weiter oben gesagte m.E. nicht: Auch ein (noch so) kurzes Programm IST ein Programm: zumal doch auch PRINT "Hello World." von einer Basic-Maschine (also einem Computer auf dem ein Interpreter läuft, der die SpracheBasic beherrscht) als ein eben solches angesehen wird, und schlussendlich zur Ausführung von Maschinenbefehlen führt, die in der Ausgabe von "Hello World" auf dem Bildschirm resultieren. Was soll Programmieren (als Tätigkeit) anderes sein, als eben das?
- Aber eben: zum "Programmierer" im engeren Sinne wird man dadurch sicherlich noch nicht, indem man triviale Programme [also Einzeiler; oder lediglich eine Folge von einfachen Anweisungen] schreibt. (So ist ja auch ein Schulkind das gerade die Arithmetik zu beherrschen lernt, oder auch Student, der sich mit den Anfangsgründen der Integral- und Differenzialrechnung herumschlägt, deshalb noch lange kein "Mathematiker"... ;-)
- Noch eine Anmerkung dazu... Man sollte m.E. (auf "theoretischer Ebene") nicht zwischen langen und kurzen Programmen unterscheiden, sondern zwischen "trivialen" und "nicht-trivialen". Als "trivial" sehe ich hier alle einfachen Abfolgen von einfachen "Anweisungen" bzw. Kommandos an: auch wenn ich 1000-mal PRINT "Hello World." hintereinander schreibe wird das Programm dadurch auch nicht wirklich "komplexer". (Mal etwas überspitzt gesagt... ;-) - In dem Augenblick aber, wo ich eine Verzweigung, oder eine Schleife mit in das Programm aufnehme, wird's m.E. "nicht-trivial" (denn wie jeder Programmierer weiß, hat man hier schon die erste Möglichkeit, um einen schweren logischen Fehler in ein Programm einzubauen: nämlich es in eine Endlos-Schleife zu schicken...) - ob man Verzeigungen da auch schon hinzunehmen mag, sei jedem selbst überlassen: sicherlich erklimme ich damit aber eine neue "Komplexitätsstufe", was das Programmieren bzw. das Programm anbelangt... Nach bzw. neben den "Kontrollstrukturen" kommen dann natürlich noch die einfachen und "komplexen" Datentypen bzw. Datenstrukturen...; und spätestens dann haben wir es mit ausgewachsenen Programmen zu tun... ;-)
Das aber nur als Anmerkung...
- P.S. Mir ist klar, dass das bisher Gesagte sich mehr oder weniger direkt auf "algorithmische" (genauer "prozedurale" bzw. "imperative") Programmiersprachen bezieht. Aber dies soll ja hier auch kein Kursus in Philosophie werden, oder? ;-)
- P.P.S. Um als (Berufs-)Programmierer allerdings reale Probleme lösen zu können, braucht es schon noch ein wenig mehr, als das bloße Beherrschen der Sprache und der Vertrautheit mit ein paar Datenstrukturen... ;-)
Gleichwohl will man aber den Anfängern den Spaß nicht verderben. Ein kleiner Einführungskurs, einige (einfache) Beispielprogramme, das längste vielleicht 100 Zeilen. Man sagt Ihnen: "Nun könnt Ihr programmieren". Aber jeder, der das beruflich macht, weiß: Bis dorthin ist noch ein weiter Weg. Aber was ist das für ein Weg und was macht das Programmieren aus?
- Hier versucht jemand, das Thema ein wenig zu behandeln: http://www.netzmafia.de/skripten/ad/ad1.html#1.3
Kennt jemand ProgrammierKurse? im Netz?
- Ein sehr bemerkenswertes Buch (zum Download) zu diesem Thema gibt es hier:
- http://www.algorilla.de/download.html
- Joachim Zieglers systematischer Grundkurs mit Perl. Ein Grundlagenkurs, der sich an absolute Anfänger richtet. Die verwendete Programmiersprache ist Perl. Das Buch versteht sich aber nicht als eine Einführung in Perl. Perl ist nur die Sprache der Wahl, um einfache Algorithmen ausdrücken zu können, obwohl ein Leser natürlich automatisch auch in Perl eingeführt wird.
- Dieses Buch ist im Rahmen der vom Autor abgehaltenen Programmierkurse entstanden und wird von ihm als Unterrichtsmaterial und Leitfaden eingesetzt.
Kennt jemand LernUmgebungen?, die ProgrammierenLernen? unterstützen?
- Ja, die SpracheLogo hatte genau dies zum Ziel - Hier eine Implementierung unter Windows (auf der Page findet sich auch eine umfangreiche Linkliste!):
- http://www.softronix.com/logo.html
- (Leider scheint die Luft etwas raus zu sein aus diesem sehr interessanten Ansatz, der seinerzeit von SeymourPapert? initiiert wurde.)
Siehe auch EinführungInDieProgrammierung | EineKurzeEinführungInDasProgrammieren
KategoriePhilosophie KategorieDiskussion
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 12. Juni 2002 10:03 (diff))