Forum: Mikrocontroller und Digitale Elektronik BuchEmpfehlung Programmieren


von HyperText (Gast)


Lesenswert?

Hi

Ich hatte bis vor einigen Monaten mit Programmieren nix am Hut und 
arbeitete als Radio & TV-Techniker. In der letzten Zeit hab ich mich 
jedoch etwas eingearbeitet (AVRs und PICs, nur C)  und es macht auch 
Spaß. Ein wesentliches Problem ist allerdings, dass ich ohne große Pläne 
einfach anfange zu programmieren. Nach einiger Zeit läuft das Programm 
auf dem PIC oder AVR auch aber ähnelt mehr einem schlecht geratenen 
Picasso. Ein Außenstehender hätte beim Lesen Null Ahnung was das 
Programm denn eigentlich macht...

Gibts da irgendwelche interessante Bücher die mir dahingehend 
weiterhelfen könnten?

von micha (Gast)


Lesenswert?

Willkommen im Reich der Coder ;-)

Was Du beschreibst hat eigentlich fast jeder durchlebt. Und jeder 
entwickelt so mit der Zeit seinen eigenen Programmierstil. Dafür gibt es 
eigentlich keine Bücher. Wenn es Dir um die Frage geht, wie ein 
"ordentliches" Programm auszusehen hat, schau Dir verschiedenen Code 
(aus Lehrbüchern) an und versuche ein paar Grundregeln einzuhalten:

Code sollte für einen Menschen lesbar sein (sonst kannst Du gleich in 
Maschienensprache schreiben), d.h. gut strukturiert und kommentiert. 
Gerade Kommentare sind extrem wichtig. Beschreibe die Idee hinter dem 
Alogrithmus und nicht was da steht.

Versuche eine konsistente Art und Weise zu entwickeln,  Bezeichner und 
Funktionen etc. zu benennen (Stichwort "ungarischen Notation"*) etc. 
hier eventuell (für C) mal in den Kerningham und Ritchie "The C 
Programming Language" reinschauen. Oft ist ein geschickt gewählter Name 
schon genug Kommentar.

Also nicht
1
 int i; // integer Variable
sondern
1
  int TimerTicks; // Anzahl Timer Ticks nach drücken von Taste X

Für die Frage "wie entwickle ich ein Programm?" gibt es auch 
verschiedene Ansichten. Oft wird eine "Top-Down" Entwicklung gemacht. Am 
Anfang steht eine Überlegung, was das Prgramm machen soll und wie man es 
aufteilen kann. Hier kann amn tolle Flow-Diagramme zeichen. Wenn das 
Konzept steht geht es darum, dass in ein richtiges Programm umzuwandeln. 
D.h. Du fängst beim großen Problem und teilst das in kleine Stückchen 
auf (idialer Weise hast Du das schon im Struktugramm gemacht!). Beim 
programmieren solltest Du aber immer nur eine Ebene/Zweig abarbeiten, 
damit Du dich nicht verzettelst. Ein typischer Ansatz wäre z.B. mit der 
"main" anzufangen:
1
int main(void)
2
{
3
  data_einlesen(&daten);
4
  data_verarbeiten(&data, &ergebnisse);
5
  data_ausgeben (&ergebnisse);
6
}

In der nächsten Ebene definierst Du dann die einzelnen Funktionen. Damit 
Du zwischendurch kompilieren kannst, ist es aber wichtig dass die alle 
Funktions-Rümpfe vorhanden sind.

Zur Realität: die sieht meistens anders aus ;-)


P.S.: Es gibt nur 10 Arten von Menschen: die die programmieren können 
und die die es nicht können...
*) Jehowa-Jehowa....

von HyperText (Gast)


Lesenswert?

Danke für den ausführlichen Beitrag. Werd mir einige zu Herzen nehmen in 
Zukunft!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.