Steve Summit / Teil1
 
StartSeite | SteveSummit/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Top Next

A Short Introduction to Programming

Eine kurze Einführung in das Programmieren
© Steve Summit (Übersetzung: HelmutLeitner und BerndLuevelsmeyer, Wertvolle Anregungen und Korrekturen: FranzFritsche, DavidSchmitt)

[1] At its most basic level, programming a computer simply means telling it what to do, and this vapid-sounding definition is not even a joke. There are no other truly fundamental aspects of computer programming; everything else we talk about will simply be the details of a particular, usually artificial, mechanism for telling a computer what to do. Sometimes these mechanisms are chosen because they have been found to be convenient for programmers (people) to use; other times they have been chosen because they're easy for the computer to understand. The first hard thing about programming is to learn, become comfortable with, and accept these artificial mechanisms, whether they make "sense" to you or not.

Im Grunde bedeutet Programmieren einfach, einem Computer zu sagen, was er tun soll, und diese wahrscheinlich seicht-klingende Erklärung ist keineswegs ein Scherz. Es gibt keine anderen wirklich fundamentalen Aspekte des Programmierens. Worüber wir sonst noch sprechen werden, sind Details besonderer - oft künstlich wirkender - Mechanismen dem Computer zu sagen, was er tun soll. Manche dieser Mechanismen werden gewählt, weil sie der Programmierer (Mensch) angenehm findet; andere, weil sie der Computer leicht verstehen kann. Die erste Hürde beim Programmieren ist, diese Mechanismen zu erlernen, sich mit ihnen vertraut zu machen und sie zu akzeptieren, egal ob sie nun "sinnvoll" erscheinen, oder nicht.

[2] In fact, you shouldn't worry if some (or even many) of the mechanisms used for programming a computer don't make sense. It doesn't make sense that the cold water faucet has to be on the right side and the hot one has to be on the left; that's just the convention we've settled on. Similarly, many computer programming mechanisms are quite arbitrary, and were chosen not because of any theoretical motivation but simply because we needed an unambiguous way to say something to a computer.

Man sollte sich auch keine Sorgen machen, wenn einige - oder sogar viele - dieser Mechanismen, die beim Programmieren verwendet werden, nicht einleuchtend sind. Es hat keine besondere Bedeutung, dass bei der Armatur der Kaltwasserhahn links und der Warmwasserhahn rechts angebracht ist; das ist nur eine Konvention, auf die man sich geeinigt hat. In ähnlicher Weise sind viele Programmier-Mechanismen nicht theoretisch motiviert, sondern willkürlich festgelegt, weil man eindeutige Wege benötigt, um dem Computer etwas zu sagen.

[3] In this introduction to programming, we'll talk about several things: skills needed in programming, a simplified programming model, elements of real programming languages, computer representation of numbers, characters and strings, and compiler terminology.

Diese Programmier-Einführung enthält Abschnitte über die beim Programmieren benötigten Fähigkeiten, ein vereinfachtes Programmiermodell, die Bestandteile echter Programmiersprachen, die Darstellung von Zahlen, Zeichen und Zeichenketten ("strings") im Computer und die Compiler-Terminologie.


Kurrekturvorschläge

Hallo, Helmut. Ich finde die Übersetzung soweit schon ganz gut (also auch in sprachlich/stilistischer Hinsicht...) - gratuliere!

Frech wie ich bin, habe ich aber unmittelbar zwei kleine (minimale) Änderungen vorgenommen, ich hoffe, das geht in Ordnung. [Einmal das "truly" in "truly fundamental" mitberücksichtigt - WENN er es doch eigens dazu sagt... und dann einmal statt "in der Programmierung" "beim Programmieren" geschrieben, weil es (an dieser Stelle) in meinen Ohren angenehmer/besser klingt.]

Das ist völlig in Ordnung, du hast völlig frei Hand. -- hl

(+) Habe noch eine kleine Veränderung angebracht: "Auf grundlegendster Ebene bedeutet Programmieren einfach, einem Computer zu sagen, was er tun soll, und diese seicht-klingende Erklärung ist kein Scherz." ---> "Auf grundlegendster Ebene bedeutet Programmieren einfach, einem Computer zu sagen, was er tun soll, und diese vielleicht seicht-klingende Erklärung ist keineswegs ein Scherz."

Klingt für mich einfach besser. (Nein?) --ff

Ja. not even direkt mit nicht einmal übersetzen, wäre etwas holperig.

(+) "simplifiziertes" durch "vereinfachtes" ersetzt. --ff

(+) M.E. wichtige Korrektur: "Characters" --> "Zeichen" (!) - nicht "Buchstaben" hier! Und "Strings" ---> "Zeichenketten" (im Hinblick auf die übliche deutsche Terminologie und auch den eigentlichen Text von Summit dann!)

(Mein Vorschlag ist übrigens, dass man nur grundlegende "Änderungsvorschläge" bzw. "Umformulierungen" ausdiskutiert. Was meinst Du?) --ff

Im Moment ist diese Seite nur ein Test. Ich verständige mich gerade mit Bernd Luevelsmeyer, der so nett war seine Mitarbeit zuzusagen (und der mit dem Wiki nicht vertraut ist) über die technischen Modalitäten. -- hl


Franz, deine Korrektur "Buchstaben -> Zeichen" ist in der Sache völlig korrekt. Trotzdem habe ich dabei genauso bedenken, wie bei meiner Variante, die ich absichtlich (als Rohfassung) so hingeschrieben habe. Teilweise habe ich sogar mit "Buchstaben und Texten" geliebäugelt. Ich bin mir ziemlich sicher, dass ein Programmieranfänger (quasi der Mann von der Straße) keine Vorstellung davon hat, was mit einem "Zeichen" gemeint ist (das Zeichen an der Wand, Zeichen der Zeit, ...). -- hl

Ja, ich verstehe das "Problem", leider hat man aber hier keine richtige Wahl aus den folgenden Gründen:

(1) Summit MEINT, wenn er "characters" schreibt, auch Zeichen! (Und keine Buchstaben!), genauso, wie er auch mit "strings" "Zeichenketten" meint und keine Texte. Das erklärt er dann ja auch noch in dem entsprechenden Unterkapitel "Characters, Strings, and Numbers" ganz genau!

(2) Dem Programmieranfänger wird m.E. auch kein Gefallen getan, wenn man hier eine "Terminologie" EINFÜHRT, die von der (auch im Deutschen) vielfach üblichen Fachterminologie abweicht: Die EDV-üblichen "Grundgrößen" sind halt nun mal Zahlen, Zeichen und Zeichenketten ("Strings")...

Und schließlich

(3) schreibt Summit dann in "Characters, Strings, and Numbers": A character is, well, a single character. If we have a variable which contains a character value, it might contain the letter 'A', or the digit '2', or the symbol '&'.

---> "Ein Zeichen ist, nun ja, ein einzelnes Zeichen eben. Wenn wir es mit einer Variable zu tun haben, die einen Zeichenwert enthält, dann könnte sie den Buchstaben 'A' enthalten, oder die Ziffer '2' oder das Symbol '&'."

Du siehst also, dass man hier zwischen Zeichen (für character) und Buchstabe (letter) unterscheiden muss, sonst tut man sich mit der Übersetzung der obigen Aussage einigermaßen schwer.

(4) Außerdem führt Summit dann auch noch den Begriff "character set" ein: "One fundamental component of a computer's handling of alphanumeric data is its character set. (...)" - Nun ja... und Du wirst mir sicher recht geben darin, dass man das KORREKT nur mit "Zeichensatz" übersetzen kann; alles andere wäre grob irreführend. Kurz: Ob es einem gefällt oder nicht "characters" muss man mit "Zeichen" übersetzen. (Und von "Texten" zu reden, wo "Zeichenketten" gemeint sind, würde ich auch für ziemlich irreführend halten.) --ff

Anmerkung: Helmut, Du hast oben noch gemeint: "Ich bin mir ziemlich sicher, dass ein Programmieranfänger (quasi der Mann von der Straße) keine Vorstellung davon hat, was mit einem "Zeichen" gemeint ist (das Zeichen an der Wand, Zeichen der Zeit, ...)"

Das mag schon stimmen; aber Du kannst das durchaus schon als ersten kleinen "Test" ansehen, ob jemand überhaupt geeignet ist fürs Programmieren; m.a.W. wenn er daran schon "scheitert", dann ist er es NICHT!

Ich sage das insbesondere auf die Eigenschaft No (4), die Summit SELBST anspricht:

"Eigenschaften, die man beim Programmieren jedenfalls braucht sind: ... (4) die Fähigkeit abstrakt und vielschichtig zu Denken."

Ich glaube auch, du hast Recht. -- hl

...keine Vorstellung davon hat, was mit einem "Zeichen" gemeint ist... - http://dict.leo.org übersetzt "character" (unter anderem) mit "Symbol" oder "Schriftzeichen". Letzteres würde näher an "Zeichen" bleiben, aber näher charakterisieren (sic!), ersteres würde nicht-druckbare Zeichen nicht ausschließen und dafür "Symbolvorrat" als Übersetzung von "character set" nahelegen.

Außerdem ist "Zeichen" ein allgemeinerer Begriff als "Symbol" - er umfasst z.B. sowohl "Symbole" als auch "Icons", etc... (Siehe Semiotik).


Anmerkungen

Eine Anmerkung zur Übersetzung, Helmut. Du hast den folgenden Textabschnitt

"...everything else we talk about will simply be the details of a particular, usually artificial, mechanism for telling a computer what to do."

so übersetzt:

"Worüber wir sonst noch sprechen werden, sind Details besonderer - oft künstlich wirkender - Mechanismen dem Computer zu sagen, was er tun soll"

Das ist zwar ein wenig frei, ABER ich finde, der Sinn dessen, was gemeint war (im ursprünglichen Text), ist ganz hervorragend getroffen. Vielleicht sogar etwas "besser", als im Original selbst... ;-)

Es gibt in bezug darauf, was eine "richtige Übersetzung" sei, ja ganz unterschiedliche Ansichten... Manche bevorzugen da eine möglichst wörtliche Transskription..., andere verweisen (m.E. zu recht) darauf, dass man möglichst versuchen muss, den "Sinn" des Gesagten beizubehalten. Es ist ja auch leicht zu sehen, dass die "wörtliche Übersetzung" Grenzen hat - manche "Redewendungen" bzw. "Bilder" machen einfach in der Zielsprache keinen Sinn - und müssen daher durch ein passende Redewendung ersetzt werden...; anderseits ist es natürlich (gerade bei einem technischen Text) durchaus auch erstrebenswert, möglichst nahe am Original zu bleiben. So gesehen halte ich die bisher von dir gegebenen Übersetzung durchaus für gelungen. --ff

Inhaltliche Diskussion

...Auf grundlegendster Ebene bedeutet Programmieren einfach, einem Computer zu sagen, was er tun soll, und diese vielleicht seicht-klingende Erklärung ist keineswegs ein Scherz. Es gibt keine anderen wirklich fundamentalen Aspekte des Programmierens. Worüber wir sonst noch sprechen werden, sind Details besonderer - oft künstlich wirkender - Mechanismen dem Computer zu sagen, was er tun soll.

Mir fallen dazu zwei Äußerungen ein, die ich mal vor einiger Zeit hier im DSE gemacht habe:

(1) "Es gibt da ein berühmtes Buch zur sog. Sprechakttheorie, mit dem Titel: "How to do things with words." - Könnte es eine treffendere Charakterisierung dessen geben, was man gemeinhin als "Programmieren" bezeichnet?"

(2) "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 ProgrammierSprache Basic 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 e b e n  d a s?"

Is also nix wirklich Neues für mich, was der gute Summit da bringt. Aber schön zu sehen, dass auch andere das so sehen...
;-) --ff

Was mir so gut an SteveSummit gefällt ist, dass es ihm ein Anliegen ist, diese grundlegenden Einsichten, wie "vieles erscheint sinnlos, aber irgendwelche Festlegungen mussten einmal getroffen werden und als Programmierer muss man sich damit abfinden" in einer ungeschönten und verdaulichen Form dem Einsteiger anzubieten. Er hat sich eine Menge Arbeit geleistet, ohne dafür viele Lorbeeren erwarten zu können. -- hl

Ja, das stimmt. Vor allem, dass hier (bei Programmiersprachen) vieles einfach *Konvention* ohne (eigentlichen) "tieferen Grund" ist, ist wohl eine wichtige Einsicht für den Programmieranfänger, imho! [Natürlich machen diese Konventionen im Gesamtkontext der Sprache und des Computersystems dann zumeist Sinn, aber das ist dann wieder etwas anderes ...] --ff


Top Next
EineKurzeEinführungInDasProgrammieren
StartSeite | SteveSummit/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 7. Juni 2002 1:37 (diff))
Suchbegriff: gesucht wird
im Titel
im Text