Hi,
Kernfrage vorweg:
Kennt jemand einen Online- oder Fernkurs für die Softwareentwicklung in
C?
Hintergrund meiner Frage:
Mein jetziger Arbeitsgeber verkauft Hardwareprodukte, dessen
Kernkomponente aus Leistungselektronik besteht (Audioverstärker),
allerdings auch einen uC beinhaltet. Die Aufgabe der uC ist
hauptsächlich die Kommunikation zum Kunden, aber auch (je nach Produkt
und Anforderungen) digitale Regelungen unseres Leistungselektronik
auszuführen und Strom/Spannung zu überwachen. Der Code wird in C
geschrieben, ist also embedded C Entwicklung.
Ich bin in der Hardwareentwicklung tätig und habe kaum Kontakt zum
eigentlich Code bzw. dessen Entwicklung (lediglich im Laufe des
Hardwaredesigns, dass ich mich mit dem Code beschäftigen muss, wenn er
nicht das tut, was er soll. Kann ich das Problem nicht selbst lösen,
kommt unser Softwareentwickler zur Hilfe).
Wir sehen im Unternehmen, dass das Thema "Software" in unseren Produkten
mehr und mehr an Wichtigkeit gewinnt, speziell für zukünftige Produkte.
Ich spiele deshalb mit dem Gedanken, im Bereich embedded Entwicklung fit
zu werden. Zuzüglich zum Lesen eines C Buches (autodidaktisches Lernen)
und Youtube Videos würde ich gerne eine Fortbildung/Ausbildung in C
machen - gerne als Fern- oder Onlinekurs. Einen mehrtägigen Präsenzkurs
ziehe ich nicht in Erwägung, da ich bezweifle, dass man in dieser kurzen
Zeit sonderlich viel Wissen vermitteln kann.
Ich finde hauptsächlich Kurse zu C++, aber nicht zu C.
Gibt es hier jemanden, der einen Online- oder Fernkurs in C
Programmierung (Softwareentwicklung) kennt oder selbst vielleicht solch
einen Kurs belegt hat?
Um Missverständnisse zu vermeiden:
Ich rede nicht von einem Kurs in embedded C, da jeder uC Hersteller
seine eigene Toolchain, IDE etc. hat. Mir geht es rein um die
Programmiersprache von C.
Danke.
Ich würde empfehlen C mit kleinen Projekten zu lernen, in Kombination
mit einem guten Buch. Displays ansteuern, Sensoren auslesen, etc..
Theoretisch programmieren können ist das Eine, praktisch programmieren
das Andere.. Zudem lernt man praktisch meist auch schneller und findet
selbst Lösungen für die Problemchen.. Als zweiten Schritt dann noch ein
Buch über allgemeine Algorithmen, dann kannst so langsam mit
professionellen Projekten losgehen
al3ko schrieb:> Ich bin in der Hardwareentwicklung tätig und habe kaum Kontakt zum> eigentlich Code bzw. dessen Entwicklung (lediglich im Laufe des> Hardwaredesigns, dass ich mich mit dem Code beschäftigen muss, wenn er> nicht das tut, was er soll. Kann ich das Problem nicht selbst lösen,> kommt unser Softwareentwickler zur Hilfe).
Weiß das dein Chef und hat der sich dahin gehend schon wohlwollend
geäußert dich mit diesen Kompetenzen zu beauftragen? Nein?
Dann vergiss es. Die wollen einen nämlich nur da haben, wo man ist.
Ansonsten bringst du die ganze Struktur des Unternehmens durcheinander
und abhängig will man sich zu dir auch nicht machen. Da stellt man
lieber einen Programmierer für diese Tätigkeit ein.
Die Chefs lieben es, dass du von Ihnen abhängig bist, nicht umgekehrt.
Deswegen finden auch so wenig betriebliche Fortbildungen statt.
Ich habe das zichmal erlebt, habe mich Fortgebildet und bin dann
auf die Fresse gefallen, weil ich glaubte ich tue was Gutes für die
Firma und festige meine Position. Denkste, das Gegenteil ist der Fall,
nicht nur bei mir, sondern auch bei Kollegen.
Die Chefs bekommen da eher Angst, du willst dich Unverzichtbar und
Teurer machen und das ist etwas, was die als Letztes wollen.
Also schlag dir das lieber aus dem Kopf.
Übrigens wer C++ lernen will muss erst mal C lernen, weil das eine
auf das andere aufbaut. Daher werden die C++ Kurse wohl erst mal
die Basics von C mit vermittelt.
Wenn du das machen willst um zu Wechseln, ist es sicher nicht der
verkehrteste Weg. Mit einem C++ Kurs ist man trotzdem auf der
richtigen Schiene. Der Unterschied ist da nicht so groß.
Hi Alexander - vielen Dank!
Alexander S. schrieb:> Online Kurs "Introduction to Programming in C Specialization"> https://www.coursera.org/specializations/c-programming
Coursera habe ich auch bereits in Betracht gezogen. Es gibt auch noch
eine C Serie auf EDX.
Dachte (bzw. hatte gehofft), dass es etwas vergleichbares als
Fernstudium im Deutschsprachigen Raum (Einige Unis bieten
Fernstudien/Fernkurse an).
Dr.Who schrieb:> Weiß das dein Chef und hat der sich dahin gehend schon wohlwollend> geäußert dich mit diesen Kompetenzen zu beauftragen? Nein?
Im Vorstellungsgespräch wurde ein wenig darauf eingegangen, ob ich mir
projektweise auch den Bereich embedded vorstellen könnte, denn da
mangelt es im Moment an Personal. Das Thema kam dann auch noch mal kurz
innerhalb meines Mitarbeitergespräches dran, ob man lieber
Softwareentwickler einstellen sollte oder intern die Entwickler im
Bereich Software fit machen sollte, damit die dann sowohl die Hardware
als auch die Software kennen und vielseitig einsetzbar sind.
> Ansonsten bringst du die ganze Struktur des Unternehmens durcheinander
Wir sind ein 40 Mann Betrieb - die Strukturen sind recht schwammig. ;)
> und abhängig will man sich zu dir auch nicht machen. Da stellt man> lieber einen Programmierer für diese Tätigkeit ein.
Das wäre vielleicht sogar die beste Lösung, einen Fachmann auf diesem
Gebiet zu haben.
al3ko schrieb:> Coursera habe ich auch bereits in Betracht gezogen. Es gibt auch noch> eine C Serie auf EDX.
Udemy lohnt sich manchmal auch. Ich fand “embedded: shape the world" auf
edx recht gut gemacht. Und im Ami-Stil erklärt, so dass es jeder
Hauptschüler versteht, sofern er denn Englisch kann.
Dr.Who schrieb:> Übrigens wer C++ lernen will muss erst mal C lernen, weil das eine> auf das andere aufbaut.
Keineswegs. Wer erst C lernt und dann C++, muss erst alle schlechten
C-Angewohnheiten wieder un-lernen. Wenn das Ziel also C++ ist (was sehr
sinnvoll ist, weil C++ alles kann was C kann und noch viel mehr), sollte
man direkt C++ lernen. Wenn man dann doch mal C braucht, muss man nur
schauen auf was man alles verzichten muss (und die 3 Kleinigkeiten
ansehen die es nur in C gibt).
al3ko schrieb:> Es gibt auch noch> eine C Serie auf EDX.
Hallo al3ko,
von der edX C Serie habe ich mal den ersten Teil gemacht. Der war sehr
rudimentär und hpts. für Leute ohne jegliche Vorkenntnisse gedacht.
Keine Ahnung, ob die weiteren Teile etwas tiefer gehen.
> Keineswegs. Wer erst C lernt und dann C++, muss erst alle schlechten> C-Angewohnheiten wieder un-lernen.
C ist eine andere Programmiersprache; was heißt denn hier un-lernen?!
Dann bleib bei einer Programmiersprache und perfektioniere diese.
Zuviele ähnliche Sprachen sind tödlich bzw. führen zur
Allmachtsphantasie diese gleichermaßen gut zu beherrschen.
> Wenn das Ziel also C++ ist (was sehr sinnvoll ist, weil C++ alles kann was > C
kann und noch viel mehr),
das ist Deine Meinung, weil Du Dich auf C++ spezialisiert hast und C
vielleicht höchstens noch beiläufig machst die Feinheiten aber nicht
mehr beherrschst wegen des 'un-lernens' ?!
Mal eben switchen zwischen zwei oder drei Sprachen geht nur
oberflächlich.
Das Ergebnis ist meistens eine Katastrophe.
> sollte man direkt C++ lernen.> Wenn man dann doch mal C braucht, muss man nur> schauen auf was man alles verzichten muss (und die 3 Kleinigkeiten> ansehen die es nur in C gibt).
Englisch und Deutsch haben grammatikalisch auch Ähnlichkeiten und was Du
hier propagierst ist Denglisch!
Vergiß es, Du bist offenbar einer dieser Multitalente, die 10 Sprachen
fließend beherrschen und am Ende eben doch nur den oberflächlichen
Standard beherrscht, der für die Blendung von Chefe natürlich reicht ):