C C lernen mit Arduino?

MetroFun

Lt. Junior Grade
Registriert
Feb. 2010
Beiträge
257
Hallo Leute,

ich schreibe regelmäßig MATLAB-Programme, außerdem habe ich VB-Grundkenntnisse. Nun würde ich mir auch gerne Grundkentnisse in C aneignen. Die üblichen Tutorials langweilen mich aber leider ziemlich, deshalb würde ich die Sprache gerne direkt anhand einfacher Projekte erlernen.

Nun habe ich gesehen, dass Arduinos üblicherweise mit einer C-ähnlichen Sprache programmiert werden, allerdings etwas vereinfacht.
Meint ihr trozdem, dass sich Arduinos dazu eignen C zu lernen oder sind die Vereinfachungen zu stark, alsdass die hierfür geeinget sind?

Danke für eure Tipps!
 
Die Arduinos passen ganz gut. Die Programmiersprache dort ist C++, das schluckt aber auch reinen C Code.
 
Die Arduinos sind vereinfacht gesagt nichts anderes als ein Atmel AVR-Microcontroller mit etwas Beiwerk, du kannst das Ding auch in Assembler programmieren. für Visual Studio gibt es ein Plugin namens Visual Micro falls du damit was anfangen kannst, alternativ auch Eclipse oder das Atmel Studio.

Möglichkeiten gibt's viele. Ressourcen auch.
 
Nutz einfach den Matlab auf c converter
 
Um wirklich C zu lernen halte ich das Arduino Zeug für ungeeignet. Den kann man nutzen um in die Mikrocontroller Welt einzusteigen. Aber um C zu lernen eher weniger.
 
MetroFun schrieb:
ich schreibe regelmäßig MATLAB-Programme, außerdem habe ich VB-Grundkenntnisse. Nun würde ich mir auch gerne Grundkentnisse in C aneignen. Die üblichen Tutorials langweilen mich aber leider ziemlich, deshalb würde ich die Sprache gerne direkt anhand einfacher Projekte erlernen.

Ich sehe das so wie Dödel. Wenn Du Arduino-Programmierung *und* C lernst, hast Du zwei Probleme gleichzeitig. Du hast bei Arduino-Programmierung, wenn es sich nicht um triviale copy/paste-Sachen handelt, genug Probleme mit dem Arduino selbst, seinem begrenzten Speicher und seiner Performance zu lösen, ein paar solide Grundkenntnisse in C/C++ sind da schon eine gute Voraussetzung.

Versuch mal, ein hinreichend komplexes C/C++-Programm in blankem C oder C++ zu schreiben (im Texteditor mit GCC oder LLVM auf Windows, Mac oder Linux). Dann bekommst Du ein Gefühl dafür, wie das Ganze läuft. Bitte nicht zu viel von IDE-"Unterstützung" am Anfang. Da lernst Du einfach weniger.
 
Naja, die Grenzen sind da ein bisschen fließend. Direkt in MS Editor programmiert vermutlich wirklich niemand. Aber ein einfacher Editor mit Syntax Highlighting ist für den Anfang absolut i.o.
 
The Ripper schrieb:
Inwiefern?
​Ohne IDE ist einfach anstrengend, frustrierend und dauert ewig.

Inwiefern? Das ist doch das allerwichtigste am Lernen. studere: "sich um etw. bemühen, etw. betreiben, nach etw. streben, trachten"

Keiner programmiert mehr in einem reinen Texteditor :freak:

Um zu programmieren, muss man erst mal programmieren lernen. Und Fachidioten, die meinen, dass "Programmieren" vor allem der Bedienung einer IDE bedarf, gibt es schon genug. Wichtig ist meines Erachtens nach, die einzelnen Schritte, die einem die IDE abnimmt, erstmal grundlegend zu verstehen.
 
Inwiefern? Das ist doch das allerwichtigste am Lernen. studere: "sich um etw. bemühen, etw. betreiben, nach etw. streben, trachten"
Um zu programmieren, muss man erst mal programmieren lernen.
​Kommen da auch mal Argumente?
Und Fachidioten, die meinen, dass "Programmieren" vor allem der Bedienung einer IDE bedarf, gibt es schon genug.
​Die IDE ist ein enorm wichtiger Bestandteil beim Programmieren, bzw. ein enorm wichtiges Werkzeug.
Wichtig ist meines Erachtens nach, die einzelnen Schritte, die einem die IDE abnimmt, erstmal grundlegend zu verstehen.
​Wieso?
​Man kann sich auch aufs wesentliche konzentrieren und die Tools erst einmal als Blackbox betrachten. Wenn ich Interesse habe, kann ich das später auch nachholen.
​Ein Autofahrerer muss auch kein Auto zusammenbauen können.

​Vor allem wie weit will man es dann treiben? Man kann nicht alles verstehen, was man verwendet. Man wäre sein ganzes Leben damit beschäftigt. Manche meinen einem weis machen zu müssen, dass man (z.B. für die Nutzung von Linux) erst einmal das Betriebssystem verstehen solle, bevor man es verwendet. Ich will mein Betriebssystem verwenden und sonst garnichts, genauso wie mit der IDE, dem Auto, meinem Ebookreader.

​Ich sage nicht, dass es einem nicht schadet, oder auch tatsächlich Vorteile bringt. (Im Gegenteil) Aber am Anfang gibt es wichtigeres.
 
The Ripper schrieb:
​Kommen da auch mal Argumente?
Mal sehen

​Die IDE ist ein enorm wichtiger Bestandteil beim Programmieren, bzw. ein enorm wichtiges Werkzeug.
Bei C?

Ein Autofahrerer muss auch kein Auto zusammenbauen können.
Ein Programmierer ist aber ein Autobauer und nur in zweiter Linie ein Autofahrer. Ein Anwender des fertigen Programms ist ein Autofahrer. Klar kann ein auf eine IDE fixierter Programmierknecht für andere Leute einen Nutzen bringen, aber ob das seinen eigenen Bildungsziel entspricht, wage ich zu bezweifeln.

​Vor allem wie weit will man es dann treiben? Man kann nicht alles verstehen, was man verwendet. Man wäre sein ganzes Leben damit beschäftigt. Manche meinen einem weis machen zu müssen, dass man (z.B. für die Nutzung von Linux) erst einmal das Betriebssystem verstehen solle, bevor man es verwendet. Ich will mein Betriebssystem verwenden und sonst garnichts, genauso wie mit der IDE, dem Auto, meinem Ebookreader.

​Ich sage nicht, dass es einem nicht schadet, oder auch tatsächlich Vorteile bringt. (Im Gegenteil) Aber am Anfang gibt es wichtigeres.
Und was soll am Anfang wichtiger sein als zu verstehen, was ein Compiler macht, welche Dateien er wie benötigt, wie er zu steuern ist und was ein Linker mit den Dateien macht, die der Compiler ausspuckt?
 
Ein Programmierer ist aber ein Autobauer und nur in zweiter Linie ein Autofahrer.
Er ist Autofahrer der IDE.
​Oder er ist Autobauer (Softwareentwickler), muss aber trotzdem nicht wissen wie ein Schlagschrauber (IDE) funktioniert...

Und was soll am Anfang wichtiger sein als zu verstehen, was ein Compiler macht, welche Dateien er wie benötigt, wie er zu steuern ist und was ein Linker mit den Dateien macht, die der Compiler ausspuckt?
Die Syntax von C kennenzulernen. Lernen, was Pointer sind. Den Heap kennenlernen, etc.
 
Danke für die vielen Antworten!
Ich werd mir das nochmal druch den Kopf gehen lassen. Es geht mir, wie gesagt, in erster Linie um Grundkenntnisse. Damit ich zB einen C-Code halbwegs verstehen, ggf auch debuggen oder erweitern kann.
 
Falls du mit englischen Videos was anfangen kannst, empfehle ich dir den wie ich ihn nenne "C-Casey Crashkurs" um die Grundlagen einzufangen (Compiler, Translation Units, Linker, Variablen, Funktionen, Speicher, Debugger usw.):
https://www.youtube.com/watch?v=F3ntGDm6hOs

Besorge dir vorher Visual Studio 2017 -> gibts als Community Edition kostenlos.

Und nein, ich teile nicht die Meinung das ein reiner Texteditor mit Syntaxhighlighting ausreicht. Alleine die Tatsache dass ich in IDE´s mit der Maus über eine Funktion fahren kann und sofort deren Signatur sehe oder darin reinspringen kann ist Gold wert. Auch umbennen ist dank Refactoring nahezu schmerzfrei heutzutage - was früher nur mit "Suchen und Ersetzten" funktionierte. Noch dazu ist Debuggen ohne visuelle Unterstützung fast schon unmöglich. Ich muss auch kein Trabbi als erstes Auto gefahren sein nur ums zu lernen... Ein bischen komfort muss schon sein...

Aber man sollte wissen, was die IDE macht damit am Ende eine ausführbare Datei herauskommt.
 
Zuletzt bearbeitet:
Hallo Finalspace,

aus der Perspektive von jemandem der großen Code programmiert sind das natürlich prima Features und du hast Recht. Hast du selbst mit einer so großen IDE angefahren?

Meiner Meinung nach ist es halt am Anfang viel Ablenkung und man lernt nicht soviel oder eben anderes, wie wenn man zu Fuß beginnt, zumindest was elementarere Dinge angeht (sich Gedanken über Compilerflags, Code Optimierung, Makefiles... machen). Aber das kann man natürlich auch anders sehe und sich freuen, dass das nicht nötig ist.

Ich persönlich fahre einen Mittelweg und benutze ein stark aufgebohrtes Emacs als "IDE", wo man viele Komfortfeatures bekommt, aber dennoch eine leichtgewichtige, modulare open source Lösung mit großer Community hat. Damit ist man auch unabhängiger von der aktuellen Sprache - versuch z.B.mal eine IDE zu finden, die noch Fortran 77 supportet (nicht dass ich das als lernenswerte Sprache zum Einstieg empfehlen würde :D ).

Grüße,
​DEFCON
 
Meiner Meinung nach ist es halt am Anfang viel Ablenkung und man lernt nicht soviel oder eben anderes, wie wenn man zu Fuß beginnt,
Sehe ich nicht so: Nur weil Features da sind, muss man sie nicht zwangsläufig nutzen. Wobei Vorschläge, Signatur etc. von Anfang an helfen.
​Anders ja, nicht so viel: nein

zumindest was elementarere Dinge angeht (sich Gedanken über Compilerflags, Code Optimierung, Makefiles... machen).
mMn sind das Dinge, die gerade Anfängern egal sein können :p
​Anfänger sollen programmieren lernen ;)
​Ich wette, dass ziemlich viele Programmierer noch nie ein Makefile geschrieben haben.
 
DEFCON2 schrieb:
Hallo Finalspace,

aus der Perspektive von jemandem der großen Code programmiert sind das natürlich prima Features und du hast Recht. Hast du selbst mit einer so großen IDE angefahren?

Grüße,
​DEFCON

Ich habe mit Basic auf dem C64 angefangen + einem dünnen Basic-Buch als Leitfaden.
Jahre später war ich aber dann schon mit der Delphi IDE und ObjectPascal unterwegs und habe mir alles über die mitgelieferte Hilfe-Datei beigebracht. So war es früher. Heute geht es deutlich einfacher.
 
Zuletzt bearbeitet:
Zurück
Oben