Forum: Mikrocontroller und Digitale Elektronik Macht es Sinn MCU Programmierung zu lernen?


von Klaus (klaus_z)


Lesenswert?

Moin,

dumme Frage. Habe mich nur gefragt, wie sinnvoll es eigentlich 
heutzutage noch ist, die Programmierung von Mikrocontrollern in 
Deutschland zu lernen? Und welche Sprache dafür ist besser? C oder C++? 
Assembler wohl eher nicht, gell?

: Bearbeitet durch User
von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

das dürfte nur noch Sinn manchen, um später im Seniorenheim erzählen zu 
können, daß man das mal gekonnt hatte. Die dort eingestzten Fachkräfte 
aus Fernost werden es zu würdigen wissen.

Mit Assembler versteht man am ehesten, was sich innen im Mikrocontroller 
abspielt, somit lernt man die Grundlage der Grundlage, um ihn später 
eventuell in C programmieren zu können.

Wer nur C direkt lernt, wird wie bei Windows nie unter die "Motorhaube" 
schauen wollen, was da werkelt.

Man kann aber mit dem Lernen durchaus im Ausland beginnen und später 
dann nach Deutschland zurück kehren.

mfg

von Vanye R. (vanye_rijan)


Lesenswert?

Man kann auch den Sinn finden indem man meditiert und Joints raucht!

Woher sollen wir wissen was jemand als sinnvoll erarchtet?

Vanye

von Alex R. (geneo)


Lesenswert?

Christian S. schrieb:
> das dürfte nur noch Sinn manchen, um später im Seniorenheim erzählen zu
> können, daß man das mal gekonnt hatte. Die dort eingesetzten Fachkräfte
> aus Fernost werden es zu würdigen wissen.

Das dürfte so ziemlich auf jeden Job zutreffen, der halbwegs 
ortsungebunden ist. Und die Jobs, die ortsgebunden sind, sind häufig 
(natürlich nicht immer) ziemlich schlecht bezahlt. Nur darauf zu achten, 
wird meiner Erfahrung nach nicht funktionieren. Natürlich sollte man 
aber darauf schielen, wo dringend Leute gesucht werden und wo ein 
Überangebot herrscht. Viel wichtiger ist das Commitment: Such dir eine 
Sache, die dir wirklich Spaß machst, mit der du unbegrenzt viel Zeit 
verbringen kannst, ohne dass dir langweilig wird. Schaue dann, ob da 
oder in einem angrenzenden Themengebiet auch die notwendige Nachfrage 
herrscht. Und dann schau, dass du da so gut wirst, dass du aus der Masse 
herausstichst. Das ist zwar kein einfacher Weg, aber der nachhaltigste.

Klaus schrieb:
> Moin,
>
> dumme Frage. Habe mich nur gefragt, wie sinnvoll es eigentlich
> heutzutage noch ist, die Programmierung von Mikrocontrollern in
> Deutschland zu lernen? Und welche Sprache dafür ist besser? C oder C++?
> Assembler wohl eher nicht, gell?

Ich finde die Frage gar nicht so dumm. Sie setzt sich zumindest mit dem 
Thema grundsätzlich und auch technisch etwas auseinander. Das liegt gar 
nicht so weit auseinander, da das eine das andere bedingt.
Mach dir klar, dass sich MCU-Programmierung mit sagen wir mal 
"Enterprise"-Entwicklung (z.B. Java) oder Web-Entwicklung Überlappungen 
hat, aber auf so ziemlich jeder Ebene Alleinstellungsmerkmale besitzt 
(z.B. Laufzeitverhalten -> hohes Race-Conditions-Risiko, 
Resourcenverbrauch -> sehr eingeschränkt, Entwickler-Mindset -> sehr auf 
Traditionen und Status-Quo gewichtet).
Diese Merkmale sind unabhängig von der Programmiersprache grundsätzlich 
bei der Software-Entwicklung für Mikrocontroller zu beachten. Das heisst 
aber nicht, dass die Programmiersprache darauf keinen Einfluss hat, 
sondern genau das Gegenteil:

Assembler ist die wohl puristischste Programmiersprache, die in Frage 
kommt. Allerdings ist es bei ihr wie ohne Netz und doppelten Boden zu 
programmieren. Jemand, der das kann, kann vielleicht die kleinsten und 
schnellsten Programme damit programmieren. Das hat aber seinen Preis: 
Für wirklich komplexe Aufgaben ist es nicht geeignet. Aber gerade bei 
kleinen, gut abgegrenzten Stellen, bei denen es z.B. auf Geschwindigkeit 
ankommt, kommt man nicht daran vorbei. Auch wenn man in einer 
Hochsprache entwickelt, wird man immer mal wieder darauf schielen, was 
denn hinten an Assembler rauskommt, um Optimierungen machen zu können. 
Hier ist https://godbolt.org/ eine unschätzbare Hilfe.

C ist der nächsthöhere Kandidat. Gerade wenn du mit älteren Projekten zu 
tun hast, wirst du über diese Sprache stolpern. Du wirst, wenn du 
karrieremäßig diesen Weg gehst, diese Sprache vermutlich sowieso im 
Vorbeigehen lernen. Sie ist nicht so kompliziert, wie z.B. C++. Hier ist 
eher die Herausforderung, sie richtig zu verwenden. Bei C, wie auch bei 
C++, ist das Hauptproblem, dass sie eine ganze Reihe von "undefined 
bahaviour" (UB) haben. Da heißt, dass sprachlich bestimmte Ausdrücke 
möglich sind, aber nicht definiert ist, was dann passiert. In diesem 
Fall kann es von so ziemlich allem abhängen, was dann passiert. Das 
Problem ist, dass man sehr erfahren sein muss, nicht in solche Fallen zu 
tappen. Zusätzlich ist es auch noch bei C so, dass viele Datenstrukturen 
und Algorithmen, die man von anderen Programmiersprachen gewohnt ist, 
nicht existieren. Man wird also häufig selbst damit zu tun haben oder in 
anderen Projekten damit konfrontiert sein, dass das Rad neu erfunden 
wurde. Das birgt natürlich auch ein hohes Potenzial an Fehlern, die sich 
immer mal wieder in wechselnder Form einschleichen.

C++ wiederum nimmt sich zum Ziel so Systemnah wie C zu sein, aber 
gleichzeitig die Komfortabilität und Produktivität von aktuellen 
Hochsprachen, wie Java oder C# anzubieten. Das Problem von C++ ist 
allerdings das, was dessen Stärke über die letzten Jahrzehnte war: Die 
Abwärtskompatibilität. Einerseits erbt es fast alle Schwächen von C, 
weil es dazu kompatibel ist. Andererseits hat es selbst schon ein hohes 
Maß an Komplexität aufgebaut, die beherrscht werden will. C++ wird 
wahrscheinlich in immer mehr Projekten eingesetzt werden. Aber es wird 
wahrscheinlich immer ein Tanz mit C sein. Insbesondere, wenn man mit 
Hardware-Abstraction-Layern zu tun haben wird, wird man die 
Schnittstelle C<->C++ haben.

Last but not Least gibt es noch die Programmiersprache Rust. Diese ist 
noch absolut in den Anfängen und spielt im täglichen (Embedded-)Business 
noch keine Rolle. Allerdings räumt diese mit allen Altlasten auf, die C 
und C++ haben: Kein undefined behaviour mehr, keine Race-Conditions 
mehr, die die Datenintegrität zerstören, leicht zu lesende 
Fehlermeldungen, etc...
Diese Sprache hindert dich aktiv daran, viele Fehler zu machen, die 
gerade Anfänger in C und C++ gern machen. Ich denke, dass hier noch viel 
passieren wird, sodass man sich diese Sprache auch unbedingt anschauen 
sollte. Und sei es nur, um darüber zu lernen, worauf man bei C und C++ 
aktiv aufpassen muss (z.B. verhindern, dass zwei Stellen im Code 
gleichzeitig schreibend auf den selben Wert zugreifen).

Schlussendlich musst du selbst entscheiden, wie du dich dem näherst. Am 
Ende würde ich dir Empfehlen, dir mal jede dieser Sprachen soweit 
anzuschauen, dass du ein grobes Gefühl dafür bekommst und dann dort 
weiter machst, wo du dich am wohlsten fühlst. Das muss im ersten Anlauf 
auch noch nicht Embedded sein. Wenn du dann da einigermaßen sicher 
unterwegs bist schaust du dir die anderen Sprachen nochmal an und 
versuchst da nachzuziehen. Dann bist du auch flexibel einsetzbar und für 
die Zukunft gewappnet.

von Peter (pittyj)


Lesenswert?

Das macht überhaupt keinen Sinn.
Mikrocontroller haben 64KRam/Rom, sind 16 Bit breit und laufen mit max 
30MHz. Das ist alles so 80er. Das ist so, also ob du dich in Golf-1 
Motoren oder Dual Plattenspieler einarbeiten möchtest. Und wer will das 
wirklich schon?
Wobei auch die Sprachen so alt sind: C aus den 70ern, C++ aus den 80ern. 
Also wirklich alte Kamellen.

Das hat wirklich alles den Geschmack einer ZDF-Hitparade. 
Mikrocontroller tun nur Freaks und aktuell noch die Zielgruppe des ZDF.

Mach was modernes mit KI.

von Ralph S. (jjflash)


Lesenswert?

... etwas lernen macht sowieso grundsätzlich keinen Sinn! Genieß doch 
lieber das Leben mit der Kohle von Mama und Papa!

Bestell dir noch'n geilen Coktail und lade die sexy Braut an der Theke 
ein. Lerne wie du die Dame "herumbekommst", da hast du deutlich mehr 
davon als ein Stück Silizium programmieren zu können (vllt. jedoch 
programmiert das Silicon der Dame dich?)

von Rainer W. (rawi)


Lesenswert?

Alex R. schrieb:
> Natürlich sollte man aber darauf schielen, wo dringend Leute gesucht
> werden und wo ein Überangebot herrscht.

Dann braucht man nur noch das richtige Bauchgefühl, um nicht in einen 
Schweinezyklus reinzulaufen ;-)

von Alex R. (geneo)


Lesenswert?

Rainer W. schrieb:
> Alex R. schrieb:
>> Natürlich sollte man aber darauf schielen, wo dringend Leute gesucht
>> werden und wo ein Überangebot herrscht.
>
> Dann braucht man nur noch das richtige Bauchgefühl, um nicht in einen
> Schweinezyklus reinzulaufen ;-)

Guter Punkt! Ja, Marktdynamiken, wie den Schweinezyklus sollte man 
natürlich auch im Blick haben.
Am Bauchgefühl wird man wohl auch nie vorbeikommen.

von Johannes T. F. (jofe)


Lesenswert?

Peter schrieb:
> Das macht überhaupt keinen Sinn.
> Mikrocontroller haben 64KRam/Rom, sind 16 Bit breit und laufen mit max
> 30MHz. Das ist alles so 80er.
> [...]
> Mach was modernes mit KI.

Ich nehme an, derzeit 6 Menschen haben wohl die Ironie nicht bemerkt. :D

von Alexander (alecxs)


Lesenswert?

Und auch nicht, dass Klaus bald in Rente geht.

von Stefan F. (Gast)


Lesenswert?

Klaus schrieb:
> Macht es Sinn MCU Programmierung zu lernen?

Natürlich macht das Sinn, schließlich programmieren sie sich nicht von 
selbst und sie ersetzen immer mehr mechanische Lösungen. Heute bekommt 
ja nicht mal mehr einen Rasierapparat ohne Mikrocontroller.

Man sollte sich eher fragen, wo diese Dinger programmiert werden. Die 
meisten Konsumgüter kommen aus Asien, da sind wir als Deutsche raus. 
Aber hier werden Maschinen und Kraftfahrzeuge entwickelt, die ebenfalls 
programmierte Mikrocontroller brauchen.

> Und welche Sprache dafür ist besser?

Die technisch "beste" Programmiersprache schränkt gar nicht ein und 
unterstützt alles, was der jeweilige Mikrocontroller kann. Da fällt mir 
nur Assembler ein.

Allerdings beherrschen das nur wenige Programmierer. Ab einer gewissen 
Größe verliert man schnell den Überblick, insbesondere wenn die Software 
von mehreren Leuten gemeinsam entwickelt wird oder Jahre später 
verändert werden soll. Deswegen wurden Hochsprachen erfunden.

Im Mikrocontroller-Umfeld ist C der Platzhirsch, dich gefolgt von C++ 
(meist nur ein Subset davon). Aber auch diverse Basic Dialekte und für 
den Anwendungsfall spezialisierte Scriptsprachen sind durchaus 
verbreitet. Nach einigen Berufs-Jahren wirst du sehr wahrscheinlich 
mehrere Programmiersprachen gelernt haben. Aber mit einer muss man 
anfangen, klar.

Nur selten wirst im Beruf die freie Wahl haben. Da nimmt man das, was 
vorgegeben wurde. Da deine Frage offenbar auf das vorbereitende Erlernen 
einer Programmiersprache abzielt, empfehle ich dir C wegen der weiten 
Verbreitung. Viele andere Programmiersprachen wurden anfangs auch in C 
gebaut, bis sie so weit waren, sich selbst compilieren zu können. Auch 
in Python ist C tief verankert.

Diese Sprache lernst du am besten zunächst auf einem PC, nicht auf 
Mikrocontrollern. Dazu empfehle ich dir die Qt Creator IDE. Die 
Community Version ist kostenlos. Sie kann hervorragend unabhängig von Qt 
benutzt werden, auch für Mikrocontroller. Ich benutze die Qt Creator IDE 
zum Beispiel in Kombination mit dem Arduino Framework, um ESP8266 Module 
(Mikrocontroller mit WLAN) zu programmieren.

Alex R. schrieb:
> Ich finde die Frage gar nicht so dumm.

Ich bin erstaunt, dass der Alex so viele negative Bewertungen für diesen 
Beitrag bekommen hat. Ist stimme ihm durchaus zu, und ich würdige auch 
seine Mühen, die Unterschiede zwischen den genannten Sprachen zu 
beschreiben. Das hat er durchaus korrekt gemacht.

von Stefan F. (Gast)


Lesenswert?

Peter schrieb:
> Mikrocontroller tun nur Freaks und aktuell noch die Zielgruppe des ZDF.

Ja, da ist alles so 80er. Aber du willst auch nicht, dass dein Rasierer 
erst mal ein Windows booten muss, bevor er an geht. Und du willst nicht, 
dass dessen Akku nach 2 Tagen Standby schon wieder leer ist.

Wenn diese 80er Leute ausgestorben sind, wer programmiert die Dinge dann 
weiter? Da gibt es durchaus Bedarf.

Die Kollegen, die den Umgang mit den ganz kleinen Mikrocontrollern drauf 
haben, sind auch die besseren Programmierer für Backend Anwendungen im 
Enterprise Umfeld. Denn sie wissen, wie man halbwegs effizient mit 
Datenstrukturen umgeht. Computer, die von 2000 Menschen gleichzeitig 
benutzt werden, sind eine ganz andere Hausnummer, als Desktop PC.

von Alex R. (geneo)


Lesenswert?

˙ɟ uɐɟǝʇs schrieb:
> Alex R. schrieb:
>> Ich finde die Frage gar nicht so dumm.
>
> Ich bin erstaunt, dass der Alex so viele negative Bewertungen für diesen
> Beitrag bekommen hat. Ist stimme ihm durchaus zu, und ich würdige auch
> seine Mühen, die Unterschiede zwischen den genannten Sprachen zu
> beschreiben. Das hat er durchaus korrekt gemacht.

Danke!
Ich liege auch extrem häufig falsch oder habe eine falsche/zu 
eingeschränkte Perspektive. Nur dann wäre ein konkreter Kommentar sehr 
viel hilfreicher als eine einfache negative Bewertung ;-)

von Cha-woma M. (Firma: --------------) (cha-ar-196)


Lesenswert?

Christian S. schrieb:
> Mit Assembler versteht man am ehesten, was sich innen im Mikrocontroller
> abspielt, somit lernt man die Grundlage der Grundlage, um ihn später
> eventuell in C programmieren zu können.

Genau!

von Stefan F. (Gast)


Lesenswert?

Im MCU Umfeld ist es sicher eine gute Idee, Assembler zu lernen. Aber 
nicht als erste Sprache. Zudem sollte man bedenken, dass es zahlreiche 
erheblich unterschiedliche Varianten von Assembler gibt. Mit den 
Befehlen eines AVR kann man weder einen MCS51 noch einen ARM Cortex-M 
programmieren.

von Alexander (alecxs)


Lesenswert?

Die Streitfrage Assembler oder Hochsprache ist wie, kaufe ich das Brot 
beim Bäcker, oder Saatgut und bestelle den Acker.

von Rainer W. (rawi)


Lesenswert?

˙ɟ uɐɟǝʇs schrieb:
> Wenn diese 80er Leute ausgestorben sind, wer programmiert die Dinge dann
> weiter?

Die KI ...

von Stefan F. (Gast)


Lesenswert?

Rainer W. schrieb:
>> Wenn diese 80er Leute ausgestorben sind, wer programmiert die Dinge dann
>> weiter?

> Die KI ...

Träum ruhig weiter.

von Alexander (alecxs)


Lesenswert?

Rainer W. schrieb:
> Die KI ...

... kann eine LED blinken lassen.

von Alex R. (geneo)


Lesenswert?

Rainer W. schrieb:
> ˙ɟ uɐɟǝʇs schrieb:
>> Wenn diese 80er Leute ausgestorben sind, wer programmiert die Dinge dann
>> weiter?
>
> Die KI ...

Ich freue mich schon darauf, wenn der Kater nach der Euphorie einsetzt. 
Erste Zeichen sind ja schon zu sehen:

https://www.golem.de/news/klima-kuenstliche-intelligenz-boomt-co2-fussabdruck-ebenfalls-2303-172536.html
https://www.heise.de/news/KI-Euphorie-an-der-Boerse-Wie-gross-ist-die-Blase-9231430.html

Mir kommt es so vor, als ob die Welt gerade jubelt, dass ein neuer 
Ansatz eine einzige Problemstellung (erstelle mir etwas, das plausibel 
klingt) besonders toll löst. Sämtliche Fragen nach Reproduzierbarkeit 
(neu trainiert=komplett anderes Ergebnis), Transparenz (was interessiert 
es mich, welche Daten im Model zu dem Ergebnis geführt haben!?), 
Belastbarkeit (eine Hand mit sechs Fingern? Eine Firmware die nicht 
kompiliert?) oder Aufwand/Nutzen (energiehungriges Anlernen der Modelle) 
treten gerade komplett in den Hintergrund, bis man merkt, dass all diese 
Punkte nicht gelöst sind.

von Klaus H. (hildek)


Lesenswert?

Gibt es auf die Frage überhaupt eine allgemeingültige Aussage?

Steht der Frager am Anfang seines Berufslebens?
Was mach er in seinem Beruf?
Ist das eher eine Frage aus dem Bereich Hobby?

Ich habe erst relativ spät in meinem Berufsleben mit der 
µC-Programmierung begonnen - nicht für das eigentliche Produkt, aber als 
Hardwerker war es doch vielfach nützlich, mal schnell eine kleine 
Zusatzschaltung zu haben, das einen z.B. bei der Inbetriebnahme 
unterstützt. Solche Dinge kann man ggf. kaufen (Patterngenerator), mit 
konventionellen ICs aufbauen oder eben schnell und klein in einen µC 
bringen. Insbesondere, wenn Einzelstücke gefragt sind.
Und auch im Hobbybereich bin ich froh, das einsetzen zu können. Immer 
mal wieder fallen kleine Überwachungs- oder Steuerungsaufgaben an und 
fast immer ist das mit dem µC eleganter und flexibler zu lösen als in 
reiner Hardware. Auch, weil nach der ersten Implementierung oft noch der 
Wunsch entsteht, das eine oder andere könnte doch auch noch mit erledigt 
werden ...

von Peter (pittyj)


Lesenswert?

˙ɟ uɐɟǝʇs schrieb:
> Peter schrieb:
>> Mikrocontroller tun nur Freaks und aktuell noch die Zielgruppe des ZDF.
>
> Ja, da ist alles so 80er. Aber du willst auch nicht, dass dein Rasierer
> erst mal ein Windows booten muss, bevor er an geht. Und du willst nicht,
> dass dessen Akku nach 2 Tagen Standby schon wieder leer ist.
>
> Wenn diese 80er Leute ausgestorben sind, wer programmiert die Dinge dann
> weiter? Da gibt es durchaus Bedarf.
>
> Die Kollegen, die den Umgang mit den ganz kleinen Mikrocontrollern drauf
> haben, sind auch die besseren Programmierer für Backend Anwendungen im
> Enterprise Umfeld. Denn sie wissen, wie man halbwegs effizient mit
> Datenstrukturen umgeht. Computer, die von 2000 Menschen gleichzeitig
> benutzt werden, sind eine ganz andere Hausnummer, als Desktop PC.

Ich verdiene seit 30 Jahren mein Geld damit. Aber wenn du das machst, 
dann musst du Freude an den kleinen Dingern haben.
Wenn jemand aber hier erst nachfragen muss, ob da etwas für ihn ist, 
dann hat der auch keinen Spass daran. Sonst würde er es ja einfach 
machen.
Und so jemanden möchte ich nicht als neuen Kollegen.

von Peter G. (ham)


Lesenswert?

Hallo
Klaus H. schrieb:
> Gibt es auf die Frage überhaupt eine allgemeingültige Aussage?
>
> Steht der Frager am Anfang seines Berufslebens?
> Was mach er in seinem Beruf?
> Ist das eher eine Frage aus dem Bereich Hobby?

Wow

Schön zu sehen, dass es hier doch auch Leute gibt, die nachdenken, über 
ihren Horizont sehen können (sich und seine Meinung nicht als den 
Mittelpunkt der Welt sehen) und verstehen, dass es nirgendwo "die einzig 
wahre Wahrheit" gibt.

Natürlich macht es Sinn µC Programmierung zu lernen - aber nicht für 
jeden und schon gar nicht aus einer Art Zwang oder um es auf seine "Das 
kann ich" (habe allerdings nie Spaß daran oder ein echtes Interesse) 
Liste für irgendwelche AG (oder gar "Schulen") zu haben.

von Alexander (alecxs)


Lesenswert?

common sense

Beitrag #7477026 wurde von einem Moderator gelöscht.
von J. S. (jojos)


Lesenswert?

Typischer Moby Müll, bitte entsorgen.

von Arduino F. (Firma: Gast) (arduinof)


Lesenswert?

Klaus schrieb:
> Habe mich nur gefragt, wie sinnvoll es eigentlich
> heutzutage noch ist, die Programmierung von Mikrocontrollern in
> Deutschland zu lernen?

Ziel? Reich werden?
Wenn du Spaß daran hättest, bräuchtest du eigentlich nicht danach zu 
fragen.

Klaus schrieb:
> Und welche Sprache dafür ist besser? C oder C++?
> Assembler wohl eher nicht, gell?

Natürlich C++!
Damit kannst du auch im PC Bereich usw. was anfangen.
C lernt man da gleich automatisch mit.

ASM schadet nicht, ist allerdings immer wieder proprietär.

Beitrag #7477416 wurde von einem Moderator gelöscht.
von Klaus (klaus_z)


Lesenswert?

Moin,

danke für die ganzen Antworten. Ich bin staatlich geprüfter Techniker 
mit der Fachrichtung Mechatronik und gelernter Elektroniker für Geräte 
und Systeme.

Klaus H. schrieb:
> Steht der Frager am Anfang seines Berufslebens?
> Was mach er in seinem Beruf?
> Ist das eher eine Frage aus dem Bereich Hobby?

Also eigentlich habe ich erstmal gar nicht so wirklich für mich selbst 
gefragt, sondern nur im Allgemeinen, da sich das Internet relativ groß 
ausschweigt, über die Nützlichkeit eines µControllers. Ich bin noch 
ziemlich weit von der Rente entfernt aber durch die Pflege meiner 
Großmutter zusammen mit meiner Mutter jetzt etwa ein Jahr arbeitslos. 
Ich habe meinen Techniker mit über 30 gemacht, das stimmt schon, aber 
hab meine Klassenkameraden in jeder C-Programmier-Aufgabe in die Tasche 
gesteckt. Ich habe mir sogar selber Aufgaben ausgedacht, weil mir das 
Programmieren so viel Spaß macht und brauche diese auch manchmal, um 
nicht wieder bei Null zu starten.

Also ich habe ein sehr gutes mathematisches Verständnis, das ist 
tatsächlich fast meine Inselbegabung. E-Gitarre kann ich zum Beispiel 
auch sehr gut ;)

Ich sage es mal so, bis vor einigen Wochen habe ich fast immer nur 
Abends gezockt und gemerkt, dass es mir ja eigentlich nix bringt und ich 
eigentlich das Programmieren liebe und wieder angefangen in C++ (eher C) 
in Visual Studio zu programmieren und es mir einfach viel mehr Spaß 
macht logisch zu denken und Programme zu schreiben.

Ich bin handwerklich ziemlich geschickt und habe vor einem Jahr noch in 
einem Labor für Wärmepumpen gearbeitet, wo ich die verrücktesten Dinge 
gebaut habe. Musste den Job leider wegen meiner Großmutter kündigen, 
obwohl der echt cool war.

Also meine Frage, wie es wohl einige gemerkt habe, zielt wohl eher 
darauf ab, ob es Sinn macht, sich auf eine Stelle zu bewerben, wo man 
MCU programmiert, obwohl ich es noch nicht perfekt beherrsche?!

Edit: Ich habe vergessen zu sagen, dass wir in der Technikerschule immer 
nur SPS anstatt Microcontroller programmiert haben. Und ich weiß nicht 
warum ich SPS anstelle von Microcontrollern nutzen sollte? Mein 
Klassenkamerad hat immer alles geschrieben, weil es einfach eine 
Hackordnung gibt (also, der kann es, der macht es. Ich fand es etwas 
Sinnlos von einem Lehrinstitut, weil ich wirklich null über SPS gelernt 
habe. Jeder sollte die Möglichkeit haben, es zu lernen, da sollten die 
Erfahrenen eher im Hintergrund stehen)  und ich habe nur zugesehen. Ich 
habe nur einen Touchscreen programmiert, der sogar richtig gut war, aber 
nicht wirklich SPS am Ende verstanden und hasse SPS einfach.

: Bearbeitet durch User
Beitrag #7477494 wurde von einem Moderator gelöscht.
von Wilhelm M. (wimalopaan)


Lesenswert?

Stimmt, sieht schwer nach Inselbegabung aus.

Beitrag #7477513 wurde von einem Moderator gelöscht.
Beitrag #7477528 wurde von einem Moderator gelöscht.
von Alexander (alecxs)


Lesenswert?

Ich empfehle Dir es zu versuchen. Letztendlich muss der Arbeitgeber 
entscheiden ob er dich fördert.

von DSGV-Violator (Gast)


Lesenswert?

Wilhelm M. schrieb:
> Stimmt, sieht schwer nach Inselbegabung aus.

Ja, Trolle kennt man als Gabe der Insel, Island. SCNR

https://www.deutschlandfunk.de/naturreligion-auf-island-der-einfluss-von-trollen-und-elfen-100.html

von Klaus H. (hildek)


Lesenswert?

Klaus schrieb:
> Also meine Frage, wie es wohl einige gemerkt habe, zielt wohl eher
> darauf ab, ob es Sinn macht, sich auf eine Stelle zu bewerben, wo man
> MCU programmiert, obwohl ich es noch nicht perfekt beherrsche?!

Ja!
Wenn dir die Stelle und Aufgabenstellung zusagt, warum nicht? Da würde 
ich die Priorität setzen.
MCU programmieren ist ja nicht auf auf PICs oder Tinys beschränkt, im 
Embedded-Bereich gibt es viele Aufgaben auch für leistungsfähige MCUs.
Und selten macht man bei einem Stellenwechsel genau das selbe wie 
vorher.

> noch nicht perfekt beherrsche
Naja, steht nicht jedem eine Einarbeitungszeit zu?
Nach deinen Aussage bist du ja ganz gut in der Programmiersprache. Hinzu 
kommen eben noch die Hardwarerandbedingungen, die eine MCU so mit sich 
bringt - Bedienung von I/O, ADC, UART, Timern, Interrupts usw. Und als 
Elektroniker hast du durchaus eine Basis für das, was da ablaufen muss.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Klaus schrieb:
> Habe mich nur gefragt, wie sinnvoll es eigentlich
> heutzutage noch ist, die Programmierung von Mikrocontrollern in
> Deutschland zu lernen?

Das kommt stark drauf an, was du sonst noch "gscheid" kannst. Wenn du 
garnix kannst, ist's natuerlich auch besser, wenn du dann wenigstens 
noch programmieren lernst. Dann wird allerdings besser sein in einer 
moeglichst deppensicheren Hochsprache (moeglichst in einer Horde mit 
anderen Gleichgesinnten und -begabten) zu programmieren.
Und wenn du schon irgendwas anderes gut kannst, dann wird's interessant 
programmieren zu lernen, um in der Fachrichtung irgendwelche 
fachspezifischen Neuigkeiten zu entwickeln oder bestehende Probleme zu 
loesen. Und da wird sich die Programmiersprache eben nach dem Problem 
richten.

Gruss
WK

von Thomas B. (thomas2)


Lesenswert?

Klaus schrieb:
> Edit: Ich habe vergessen zu sagen, dass wir in der Technikerschule immer
> nur SPS anstatt Microcontroller programmiert haben. Und ich weiß nicht
> warum ich SPS anstelle von Microcontrollern nutzen sollte?

Mikrocontroller sind Bauteile, die man auf eine Platine lötet, sie 
werden in elektronischen Geräten eingesetzt. SPSen sind Geräte, die man 
in den Schaltschrank baut, sie werden im Maschinen- und Anlagenbau 
eingesetzt. Das solltest du als gelernter EGS aber eigentlich wissen?

> ich eigentlich das Programmieren liebe und wieder angefangen in C++
> (eher C) in Visual Studio zu programmieren und es mir einfach viel mehr
> Spaß macht logisch zu denken und Programme zu schreiben.
> [..]
> nicht wirklich SPS am Ende verstanden und hasse SPS einfach.

Dann hast du leider die Weiterbildung zum Mechatronik-Techniker arg 
unglücklich gewählt.

Programmierung in C oder C++ wird meist von Ingenieuren oder 
Informatikern gemacht, kaum von Facharbeitern oder Technikern, die lässt 
man da in den meisten Firmen nicht ran.

Zur Ausgangsfrage: "Macht es Sinn MCU Programmierung zu lernen?": Als 
Hobby: warum nicht? Als Beruf: mit deiner Ausbildung leider eher nicht, 
außer du hättest Kontakte, die dir einen Einstieg ermöglichen.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Die Hauptfrage ist, ob Du nur ein Einzelkämpfer bist oder auch im Team 
produktiv arbeiten kannst. Ich kenne Fälle, wo nach dem Weggang eines 
Kollegen seine gesamten Sourcen nach dev/null verschoben wurden. Oder 
auch Kollegen, die sich mit astyle schwertun.
Auch C&P-Codemonster machen Dir keine Freunde und längerfristig auch 
keine Freude. Ich hab das schon gesehen, wo dann in 10 gleichlautenden 
Ausgaben eine mit Schreibfehler drin war. Exzessives C&P macht den Code 
fehleranfällig und unwartbar.

Will man ein begehrter Programmierer werden, sollte man auch die 
ungeliebten Sachen beherrschen, wie Spezifikationen erstellen, 
Interfaces dokumentieren, Regressionstest schreiben. Dokumentation macht 
man nicht nur für andere, sondern immer auch für sich selber, wenn man 
mal später wieder reinschauen muß.

Ich hatte mal eine Kollegen, der war ein sehr guter Programmierer. Ich 
habe es erst gemerkt, als ich seinen 8051-Code übernommen hatte und 
mehrmals erweitern mußte. Es ging wider erwarten recht gut. Da war er 
aber schon lange weg, d.h. ich konnte nichts erfragen.

: Bearbeitet durch User
Beitrag #7477763 wurde von einem Moderator gelöscht.
von Lothar J. (black-bird)


Lesenswert?

Peter D. schrieb:
> Will man ein begehrter Programmierer werden, sollte man auch die
> ungeliebten Sachen beherrschen, wie Spezifikationen erstellen,
> Interfaces dokumentieren, Regressionstest schreiben. Dokumentation macht
> man nicht nur für andere, sondern immer auch für sich selber, wenn man
> mal später wieder reinschauen muß.

Oh ja, volle Zustimmung!
Die Kehrseite davon ist, man wird immer dann gerufen, wenn die K... am 
Dampfen ist und keiner mehr weiter weiß.

Blackbird

von Steve van de Grens (roehrmond)


Lesenswert?

Klaus schrieb:
> da sich das Internet relativ groß
> ausschweigt, über die Nützlichkeit eines µControllers

????????????? Hast du ein anderes Internet als ich?

> ob es Sinn macht, sich auf eine Stelle zu bewerben, wo man
> MCU programmiert, obwohl ich es noch nicht perfekt beherrsche

Kein Programmierer kann alles. Mein Werdegang scheint deinem ähnlich zu 
sein.

Ich habe in den 90er Kommunikationselektroniker gelernt. Da gab es nur 
ein kleines bisschen Programmierung nebenbei. Dabei habe ich gemerkt, 
dass es mir Spaß macht und dass ich dort besonders talentiert bin. 
Deswegen habe ich mich beruflich Schrittweise in diese Richtung weiter 
bewegt. Jetzt bin ich "oben" angekommen, bin Senior Entwickler mit einem 
kleinen Team unter mir, und werde bezahlt wie ein Akademiker mit 10 
Jahren Erfahrung. Die Ausbildung (Kommunikationselektroniker) nützt mir 
nur noch beim Hobby. Aber egal, ich bin so zufrieden.

Mache dich mehr mit dem Internet als Informationsquelle vertraut. Denn 
die allermeiste Doku gibt es nur noch online.

: Bearbeitet durch User
Beitrag #7478389 wurde vom Autor gelöscht.
Beitrag #7478394 wurde vom Autor gelöscht.
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.