mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik BuchEmpfehlung Programmieren


Autor: HyperText (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
 int i; // integer Variable
sondern
  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:
int main(void)
{
  data_einlesen(&daten);
  data_verarbeiten(&data, &ergebnisse);
  data_ausgeben (&ergebnisse);
}

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....

Autor: HyperText (Gast)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.