Was ist eigentlich "Programmieren" ? - Wie geht das ?

dino03

Aktives Mitglied
27. Okt. 2008
6.760
20
38
Sprachen
  1. BascomAVR
  2. Assembler
Hallo zusammen,

ich schreib hier mal ein wenig Text um die "Denkweise" beim programmieren
ein wenig zu erläutern und damit es Einsteigern etwas leichter fällt die
richtige Taktik einzusetzen um selber ein Programm zu schreiben.

Es wird viel über das programmieren geschrieben und gesprochen. Manche
meinen es ist super kompliziert, manche meinen es ist einfach und manche
denken dabei an Hexenwerk :D

Ich meine ... mit dem richtigen logischen Denken und der richtigen Taktik ist
es recht einfach selber ein Programm zu schreiben.

Als erstes vorweg : Ein Haus steht auch nicht einfach auf Mausklick total
fertig auf der grünen Wiese. Es wird auch Stein für Stein von der Bodenplatte
angefangen langsam aufgebaut. Genauso wie ein Programm.

Aber was ist Programmieren nun eigentlich ? Also stellt euch mal einfach
eine Schreibtischlampe vor. So eine zum Anschrauben an die Tischplatte
und mit langem Arm die man in der Gegend rumschieben kann und dahin
bewegen kann wo man Licht benötigt. Wenn man sie im Laden kauft dann
ist sie sofort auf "Mausklick" funktionsfähig da. Das ist kein programmieren.

Programmieren ist es eher, wenn man die Lampe selber bauen würde. Aber
programmieren ist nicht bauen sondern eher zerlegen.

Man kann sich das so vorstellen : Man möchte eine Schreibtischlampe haben.
Also was braucht man ?
1. Einen Fuß zum Anschrauben
2. Ein Arm den man bewegen kann
3. Etwas was Licht macht

Das wären die einzelnen Teile eines Programmes. Man hat also das Problem
(oder das was man gerne haben möchte) in kleinere Teile zerlegt. Das sind
die einzelnen Funktionsblöcke des Programms. Zum Beispiel ein Menü, die
Meßwerterfassung, die Anzeige der Werte.

Nun zerlegt man diese Funktionsblöcke weiter. Was benötigt man für den
Fuß ?
1. Eine Schraube zum festschrauben an der Tischplatte
2. Ein Halter der auf der Tischplatte aufliegt
3. eine Aufnahme für den Arm

Man hat also den Funktionsblock "Fuß" der Lampe weiter zerlegt. Beim
Programm könnte man zB den Block "Menü" weiter zerlegen in die Anzeige
der Menüpunkte, Tastensteuerung des Menüs, Aufruf der Menüpunkte.

Und die Zerlegung geht weiter ... Was kann man an der Schraube vom Fuß
weiter zerlegen ? Man benötigt
- ein Stück mit Gewinde (Gewindestange)
- einen Querstab als Griff damit man sie mit der Hand drehen kann
- und einen Teller am anderen Ende der Schraube damit man sie unter der
Tischplatte festspannen kann und nicht die Schraube in der Tischplatte
versenkt ;)

Genauso kann man die Tastensteuerung für das Menü weiter zerlegen. Man
bennötigt eine Abfrage der Tasten an den Port-Pins, eine Entprellung der
Tasten, ein hoch-/runterzählen der Menüpunkte.

Genau so wie man die Schreibtischlampe jetzt bis in ihre Atome zerlegen
kann, genauso kann man eine Aufgabe / ein Problem in kleinere Teile bis in
die Befehle der Programmiersprache zerlegen. Mehr ist es eigentlich nicht.

Das eigentliche Hexenwerk besteht jetzt im logischen Denken was man
für dieses Programm für Funktionsblöcke benötigt, wie sie am besten
aussehen damit sie mit dem Rest gut zusammenarbeiten und wie man sie
am besten zerlegt damit man am Ende bei der Größe eines Befehls landet.

Wenn man eine Programmiersprache lernt ist es meiner Meinung am
einfachsten wenn man sich eine Aufgabe stellt, die erst mal ganz
abstrakt in einzelne Blöcke zerlegt und mal in der Referenz der Sprache
nachsieht ob es einen Befehl gibt, der eine gewisse Aufgabe übernehmen
kann. Wenn die Aufgabe nicht von einem Befehl übernommen werden kann
muß man einfach weiter zerlegen. Am Ende hat man die Aufgabe in die
Sprache zerlegt/übersetzt.

So ... jetzt wißt ihr was Programmieren ist und das es eigentlich kein
Hexenwerk ist sondern nur ein systematisches zerlegen und logisches
denken :D

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)