Liebe Embedded Software-Entwickler, ich habe ein interdisziplinäres Unistudium mit Nebenfach "Informatik" absolviert und arbeite seit 5 Jahren als Software-Entwickler. Entwickelt habe ich überwiegend High-Level (Java, J2EE, Enterprise-Service-BUS, Web-Services, SOAP/XML, OOP, bisschen C/C++). Nun hat sich ein kleiner Interessenwandel vollzogen (andere Geschichte). Ich möchte mich in Richtung Embedded Software-Entwickler verändern. Mich interessiert der Einsatz von Mikroprozessoren/Controllern in technischen Systemen zur Steuerung und Bedienung von Geräten. Jedoch schätze ich, dass es schwierig wird, wenn ich mich aus meiner jetzigen Position heraus auf eine Stelle als "Embedded Software-Entwickler" bewerbe. Mein Abschlusszeugnis habe ich zudem von der "Philosophischen Fakultät". Deswegen vermute ich, ich muss im Bewerbungsgespräch deutliche Fachkenntnisse vorweisen können. Kenntnissse, die in den Stellenangeboten gefordert werden, sind meistens: Mehrjährige Erfahrung in der C/C++-Programmierung, Assemblerprogrammierung, Kenntnisse in Mikrocontroller-Architekturen (ARM-Controller-Architekturen- z.B. Cortex M3, A8), Bussysteme I2C, SPI, CAN, Embedded OS-Kentnisse und Architektur von Embedded Systemen). Es gibt zu Hauf Bücher über Embedded Systeme: http://www.amazon.de/s?ie=UTF8&field-keywords=embedded&index=blended&link_code=qs&sourceid=Mozilla-search&tag=firefox-de-21 Es gibt auch Kurse von der Fernuni-Hagen: Anwenundgsorientierte Mikroprozessoren: https://vu.fernuni-hagen.de/lvuweb/lvu/app/Kurs/1706/ Aber mir ist nicht klar, wie ich mich auf eine Stelle als Embedded Software-Entwickler vorbereiten sollte. Würde es reichen, ein derartiges Buch durchzuarbeiten? Würde es helfen, wenn ich ein privates Projekt durchführe und dokumentiere? Ist eine formale Weiterbildung (Fernuni Hagen?) notwendig? Master draufsetzen? Grundsätzlich schätze ich mich so ein, dass ich gute analytische Fähigkeiten habe. Ich kann C++-Programme objektorientiert schreiben, mir sagt Zeigerarithmetik etwas und kann auch Bibliotheken zusammen linken um größere Tools zu entwickeln (naja, wer kann das nicht?). Ich kann mit Lötkolben umgehen und habe auch schon mal ein Schaltungslayout erstellt (Ausbildung). In meinem Nebenfach-Studium der Informatik hat unser Prof. die MIPS-Architektur auseinandergenommen: Aufbau und Arbeitsweise der CPU erklärt, Steuerwerk, Rechenwerk und Pipelining erklärt (das müsste ich auffrischen). Ich habe mal mit einem Atmega128 ein paar Versuche gemacht und per I2C einen Aktor angesteuert (rudimentär). Jedoch befürchte ich, dass das insgesamt nicht reicht, um im Bewerbungsgespräch zu überzeugen. Ich bin äuußerst technikbegeistert und möchte auf kurz oder lang auf jeden Fall mein Arbeitsgebiet wechseln. Für Ratschläte und Hinweise wäre ich dankbar. LG, Coffee++C PS. Stimmt es, dass in der Fernbedienung von Autos kleine Atmegas eingebaut sind?
Im Embedded-Umfeld würde ich dich nicht einstellen. Da bringt Bücherlesen oder Basteln auch nichts. Du bist ein Softwareentwicklung und hast scheinbar Ahnung von High-Level-Webzeug. Daran wirst du mittelfristig (und vielleicht auch langfristig) nichts ändern können. Nochmal was Technisches studieren ist ziemlich sinnlos. Die Chancen, dass du einen Job bekommst sind gering. Die Chancen, dass du einen guten Job, der dann auch Spaß macht, bekommst sind sehr gering. Die Chancen, dass der gute Job auch noch gut bezahlt ist sind quasi nicht vorhanden. Dass du hier überhaupt so eine seltsame Frage stellst lässt tief blicken. Ich nehme nicht an, dass die "technische Vertiefung" dein wirkliches Problem ist.
Schlag dir das aus dem Kopf. Selbst wenn du in reinen Embeddedumfeld fit bist brauchst du noch E-Technikwissen dazu, das geht in dem Bereich immer Hand in Hand, da hängt immer noch Elektronik dran, so Spielkram wie Sensoren auswerten, bekommst du auch noch so hin aber in der Praxis wo nicht Arduionomässig gebastelt wird läuft das anders. Deshalb hocken auf entspr. Stellen E-Techniker oder TIs. Bleib in deinem Feld, ist eh besser bezahlt und bessere Wechsel- Aufstiegsmöglichkeiten. Selbst E-Techniker wechseln eher in deinen Bereich als umgekehrt weils dort eher mau aussieht, da ist die Dienstleister'karriere' vorgezeichnet, in deinem Bereich kannst du wenigstens noch als Freelancer arbeiten, mit reinem Embeddedgekaspere ist das utopisch, wie gesagt dir fehlt der E-Technikbackground, die Embeddedprogrammiererei ist eher Kleinkram und lästiges notwendiges Übel das man sich nebenbei anliest und dann eben gleich in die passende Hardware. Diese Kurse sind deshalb alle fürn Arsch, ausser man noch gar keinen Plan und noch nie eine Zeile programmiert, das ist ja bei dir nicht der Fall. Wenn dir die fixe Idee nicht aus dem Kopf geht dann Studium in E-Technik, solche Pillepallekurse in reiner Embeddedprogrammierung ohne E-Technikbezug sind wertlos.
Hallo Coffee++C, ich sehe da leider keine Chance, das hast du wohl einfach zu spät im Leben gemerkt. Du brauchst unbedingt einen profunden elektrotechnischen Hintergrund, sonst wird das nichts. Noch mal an die Uni für E-Technik ist sicherlich nicht dein Plan, außerdem wärst du am Ende bestimmt zu alt für einen Anfänger in diesem Bereich. Verdienstausfall plus anschließende Arbeitslosigkeit sind ja auch nicht so dolle. Die Kenntnisse, die du aufzählst, sind vielleicht ganz nett für ein Hobby, aber mehr auch nicht. Einen Arbeitgeber beeindruckst du damit nicht. Tut mir leid, ich möchte nicht deine Träume zerstören, aber das ist nur eine ehrlich Einschätzung, von jemandem, der in der Branche seit vielen Jahren unterwegs ist.
Hör nicht auf die Quatschköpfe/Schwarzmaler; wo ein Wille ist, ist ein Weg. Aber Tatsache ist, dass du dir das Thema nicht mit einem Buch oder einem kleinen Projekt erschließen kannst. Da musst du schon deutlich mehr Energie und viel Zeit (Jahre) reinstecken. Das hängt natürlich auch von deiner Person ab. Bist du jemand der sich jeden Nachmittag hinsetzt und 6 Stunden an Hobby-Projekten arbeitet und sich die Themen selbst erschließen kann? Oder brauchst du jemanden, der dir erklärt wie es geht? Ob sich das karrieremäßig dann für dich lohnt, oder du überhaupt einen Job in dem Bereich bekommst ist eine ganz andere Sache. Vielleicht gibt es ja irgendwas in der Mitte, das dir gefällt - Applikationen für RTOS entwickeln oder so... Wenn du einen guten Job hast, dann setz den nicht auf's Spiel und betreibe die Elektro- und Embedded-Bastelei lieber als Hobby, macht eh mehr Spaß :D
Dr. Knast schrieb: > Hör nicht auf die Quatschköpfe/Schwarzmaler; wo ein Wille ist, ist ein > Weg. Mein Tipp: Hör besser nicht auf jemanden, der sich im Forum Dr. Knast nennt. Ich habe den TO so verstanden, dass er eine ehrliche Einschätzung wünscht, warum sollte er diese nicht bekommen? Auch wenn es nicht das ist, was er vielleicht gerne hören möchte, das gehört zur Ehrlichkeit dazu. Wo ein Wille ist, ist eben nicht immer ein Weg, bzw. der Weg ist schon da, aber leider mit sehr hoher Wahrscheinlichkeit zum Scheitern verurteilt.
Lerne mal anständiges Software Design, zum Beispiel in dem Du mal ein komplexeres Problem in Assembler löst, dann wärst Du da sehr gut geeignet. Das Problem, dass ich sehe ist, das Du aus der C++-Ecke kommst. C++ hat einige furchtbare Eigenschaften die viele Programmierer verderben. Besonders erzeugt C++ die Illusion, dass Komplexität nichts kostet... zumindest bis zu dem Punkt an dem mal was nicht funktioniert. Wenn Du mal ein größeres Projekt in Assembler gemacht hast, lernst Du Komplexität zu vermeiden, denn in Assembler tut jede Schleife und jede Verzweigung weh. Dadurch lernst Du die Software so zu gestalten, dass Du möglichst wenig Komplexität drin hast. Das führt schneller zu Ergebnissen, die danach auch noch wartbarer sind. Und wenn Du dafür keine Zeit hast, ließ "The Art of UNIX Programming". Das gibts im Internet, da kannst Du viel davon lernen.
Christian Berger schrieb: > Lerne mal anständiges Software Design, zum Beispiel in dem Du mal ein > komplexeres Problem in Assembler löst, dann wärst Du da sehr gut > geeignet. > [.....] Als ob es darauf bei ihm ankäme, vom Rest der grob falsch ist und noch am Thema vorbei geht, gehe ich gar nicht weiter ein, da der Hauptschwachpunkt bei ihm der fehlende E-Technikbackground ist. Das ist der Knockoutpunkt schlechthin, selbst wenn er die jeweiligen MCs in und auswendig kennen würde. Reine Programmierer auf MCs braucht so gut wie keiner und wenn dann kann er damit in einer kleinen Frickelbude anfangen wo er einen Bruchteil seines heutigen Geldes verdient, falls er überhaupt was findet, solche Typen gibts schon mehr als genug, das macht heute schon der Lehrling und Praktikant. Selbst wenn er nur programmiert fehlt ihm Hintergrundwissen, wie z.B. Regelungstechnik die er in ein Programm einfliessen lassen kann, ein paar Sensoren abfragen und Bytes hin und herschieben ist zu wenig, zum Basteln reicht das aber für einen Job wo er ähnlich verdient wie in seinem jetzigen? No way! Wenn er schon mehrere Jahre im Javaumfeld und typischerweise mit JEE,... zu tun hatte, da kann er mit der Embeddedschiene nur absteigen. Es ist einfach völliger Unsinn was er vor hat, eine völlig naive Sichtweise die zeigt dass er keinen blassen Schimmer von dem Bereich hat, weder fachlich noch vom Berufsalltag.
Ich habe die letzten 10 Jahre freiberuflich Embedded SW entwickelt (Dipl.Ing. ET Uni) und die Stellen waren gut bezahlt (seit 5 Jahren 60€). Vermutlich aus Altersgründen (ca. 45) bekomme ich jetzt gar nichts mehr. Einige Interviews über Gulp und Hays, aber der "Kunde" entscheidet sich für einen anderen oder löst die Aufgabe intern. Keine Ahnung was das schiefläuft. Nie ein Projekt abbrechen müssen, oder Aufgabenstellen nicht erfüllt. Die "Kunden" waren alle zufrieden. Ich würde sagen: Wenn man einen Job bekommt, dann kann man froh sein über interessantes Aufgabenfeld und gute Bezahlung, aber die Firmen selektieren sehr.
Nürnberger schrieb: > Ich würde sagen: Wenn man einen Job bekommt, dann kann man froh sein > über interessantes Aufgabenfeld und gute Bezahlung, aber die Firmen > selektieren sehr. Ja das ist eine Folge der Fachkräfteschwemme.
Coffee++C schrieb: > Liebe Embedded Software-Entwickler, > > ich habe ein interdisziplinäres Unistudium mit Nebenfach "Informatik" > absolviert und arbeite seit 5 Jahren als Software-Entwickler. Entwickelt > habe ich überwiegend High-Level (Java, J2EE, Enterprise-Service-BUS, > Web-Services, SOAP/XML, OOP, bisschen C/C++). Nun hat sich ein kleiner > Interessenwandel vollzogen (andere Geschichte). Ich möchte mich in > Richtung Embedded Software-Entwickler verändern. Mich interessiert der > Einsatz von Mikroprozessoren/Controllern in technischen Systemen zur > Steuerung und Bedienung von Geräten. Jedoch schätze ich, dass es > schwierig wird, wenn ich mich aus meiner jetzigen Position heraus auf > eine Stelle als "Embedded Software-Entwickler" bewerbe. Mein > Abschlusszeugnis habe ich zudem von der "Philosophischen Fakultät". > Deswegen vermute ich, ich muss im Bewerbungsgespräch deutliche > Fachkenntnisse vorweisen können. Kenntnissse, die in den > Stellenangeboten gefordert werden, sind meistens: Mehrjährige Erfahrung > in der C/C++-Programmierung, Assemblerprogrammierung, Kenntnisse in > Mikrocontroller-Architekturen (ARM-Controller-Architekturen- z.B. Cortex > M3, A8), Bussysteme I2C, SPI, CAN, Embedded OS-Kentnisse und Architektur > von Embedded Systemen). Kommt mir vertraut vor, die Erkenntniss, das Vorlesungen nicht wirklich auf Embedded Entwickler vorbereiten. Schau mal nach Hilfsassi-tätigkeiten an der Uni/FhG. Da gibt es zuweilen embedded programmier-jobs. Ein Bekannter hat mal für eine Kameraentwicklung an der FhG in Assembler ein Speicherroutine für PCMCIA- Karten (ATA-2 Interface, FAT16) geschrieben. Das macht sich gut im Lebeslauf weil überprüfbar. Bei Hobbyprojekten kann man alles mögliche erzählen was man gemacht haben will. Abschlussarbeit in diesem Bereich wäre auch gut. Im Job war mal die Mitarbeit im Amateurfunkclub eine Möglichkeit sich in Richtung Hardware weiterzuentwicklen. Wichtig ist den Respekt vor der Hardware zu verlieren. Also uC-Platine auf Lochraster selber bauen statt Arduine kaufen. Passend dazu finde ich Bücher wie 978-3-89721-601-3 Untertitel: "Testen, frickeln, ausprobieren - respektlos lernen!" MfG
Coffee++C schrieb: > Liebe Embedded Software-Entwickler, > > ich habe ein interdisziplinäres Unistudium mit Nebenfach "Informatik" > absolviert Ich kann mir darunter irgendwie nichts vorstellen?
Troll schrieb: > Coffee++C schrieb: >> Liebe Embedded Software-Entwickler, >> >> ich habe ein interdisziplinäres Unistudium mit Nebenfach "Informatik" >> absolviert > > Ich kann mir darunter irgendwie nichts vorstellen? Aber ich bin ja natürlich auch nur ein erbärmlicher Troll.
Wann meldet sich der Thread-Opener eigentlich mal wieder zu Wort?
Jojo schrieb: > Wann meldet sich der Thread-Opener eigentlich mal wieder zu Wort? Der hat wohl gemerkt wie sch***e das Berufsforum hier ist und bereut es sicher schon, diesen Thread eröffnet zu haben.
Troll schrieb: > Troll schrieb: >> Coffee++C schrieb: >>> Liebe Embedded Software-Entwickler, >>> >>> ich habe ein interdisziplinäres Unistudium mit Nebenfach "Informatik" >>> absolviert >> >> Ich kann mir darunter irgendwie nichts vorstellen? > > Aber ich bin ja natürlich auch nur ein erbärmlicher Troll. Mhm jemand klaut mir meinen Namen ....
Troll schrieb: > Troll schrieb: >> Troll schrieb: >>> Coffee++C schrieb: >>>> Liebe Embedded Software-Entwickler, >>>> >>>> ich habe ein interdisziplinäres Unistudium mit Nebenfach "Informatik" >>>> absolviert >>> >>> Ich kann mir darunter irgendwie nichts vorstellen? >> >> Aber ich bin ja natürlich auch nur ein erbärmlicher Troll. > > Mhm jemand klaut mir meinen Namen .... Achtung! Dieser Beitrag stammt von FAKE Troll!
>Nürnberger schrieb: >> Ich würde sagen: Wenn man einen Job bekommt, dann kann man froh sein >> über interessantes Aufgabenfeld und gute Bezahlung, aber die Firmen >> selektieren sehr. >>Ja das ist eine Folge der Fachkräfteschwemme. Nicht nur. Wenn man als +40 freiberuflich unterwegs ist, dann signalisiert das, dass man schlecht ist, da keiner einem in eine Festanstellung genommen hat. Ich werde oft danach gefragt, warum ich keine Festanstellung habe, aber irgendwie scheinen die Antworten nicht überzeugend.
Nürnberger schrieb: >>Nürnberger schrieb: >>> Ich würde sagen: Wenn man einen Job bekommt, dann kann man froh sein >>> über interessantes Aufgabenfeld und gute Bezahlung, aber die Firmen >>> selektieren sehr. > >>>Ja das ist eine Folge der Fachkräfteschwemme. > > Nicht nur. Wenn man als +40 freiberuflich unterwegs ist, dann > signalisiert das, dass man schlecht ist, da keiner einem in eine > Festanstellung genommen hat. Ich werde oft danach gefragt, warum ich > keine Festanstellung habe, aber irgendwie scheinen die Antworten nicht > überzeugend. Darf ich fragen wieso du nicht versucht hast ein eigenes Ingenieurbüro aufzubauen? Freiberufliche Tätigkeit wäre für mich der erste Schritt für eine Unternehmensgründung? Danke Gruß
Ich seh das jetzt nicht so problematisch wie die anderen. Du darfst halt nicht erwarten, dass du als Java Entwickler sofort irgendwelche totalen Low Level Dinge machen wirst. Arbeite dich langsam nach unten ;-) Wir haben in der Firma unsere Hardware selbst entwickelt, darauf läuft Linux, also ein ganz "normales" OS. Wir programmieren die Software in C++. Wenn jemand gut C++ programmieren kann, hat er bei uns auch ohne embedded Erfahrung eine Chance. Er macht halt dann eher High Level Dinge, die aber auch interessant sind. Und wenn derjenige zeigt, dass er sich Richtung Low Level weiterentwickeln will, so besteht dazu auch die Chance. Letztlich haben diverse Mikrocontroller nicht nur eine Schnittstelle zu irgendeiner Elektronik, sondern auch zu unseren "High Level" Programmen. Und davon haben die Elektroniker wieder keine Ahnung. Ein "man in the middle" ist da nicht schlecht, einer, der die HW als auch die SW Leute versteht. Beschreite deinen Weg Schritt für Schritt: besorg dir einen Job, bei welchem du High Level Dinge auf firmeneigener Hardware programmierst, da hast du mit Java und C++ Kenntnissen auch eine Chance, genommen zu werden. Und dann sieh zu, dass du dich nach unten vorarbeitest. In solchen Firmen fällt nämlich auch ziemlich oft Low Level Arbeit an. Ein Tipp noch: Ich hab schon oft C++ Code von Java Leuten gesehen. Das ist teilweise echt schlimm. Merk dir zwei Dinge: Objekte wenn irgendwie möglich NICHT mit new anlegen, auch wenn man das in Java dauernd macht. Und NICHT wegen jeder Kleinigkeit eine Exception werfen. Das ist vor allem im embedded Bereich ein großes Problem, weil ein throw ENullPtrException viel mehr Performance frisst wie ein einfaches if(ptr!=0){...}
Besten Dank für die zahlreichen Beiträge. Vielleicht gibt es ja tatsächlich Abstufungen von High-Level nach Low-Level, bei denen man nicht unbedingt voll-blut E-Techniker sein muss. Was ist z.B. mit einer modernen Kaffee-Maschine? Wird da Regelungstechnik verwendet ? Wird das digitale Signalverarbeitung verwendet (typische E-Technik-Themen)? Reichen nicht vielleicht in mehreren Fällen Finite-State-Maschine aus, um den Zustand zu beschreiben? Je nach gedrücktem Knopf, ändert sich der Zustand der Maschine. Alles läuft in einer Hauptschleife, in der der Zustand aktualisiert wird? Anderes Beispiel: Elektronische Zeiterfassung. Ich buche mich mit meine RFID-Chipkarte ein etc.. Wenn ich dafür Software entwickeln müsste - was bräuchte ich aus einem typischen E-Technik-Studium? Wie gesagt, ich gehe davon aus, dass die Hardware schon von einem E-Techniker in der Firma entwickelt wurde. Es gibt wohl auch Geräte, die via TCPIP remote konfiguriert und gewartet werden. Da läuft im Gerät ein Mini-Web-Server. Je nach Leistungsfähigkeit der Hardware, läuft da vielleicht sogar ein Apache-Http-Server, der halt für ARM kompiliert ist. Nehmen wir z.B. den Industrie- und Anlagenbau. Es gibt Firmen, die Stellen optische Kontrollsysteme her. Die Hardware hängt an 220 V, da wird vielleicht nicht um jeden Takt gefeilscht? Aber die Software wird sehr wohl nach Echt-Zeit-Kriterien entwickelt. Was auch immer die Situation wäre: Die Hardware müsste schon da sein. Ich kann auf keinen Fall innerhalb von 3 Jahren lernen, nach welchen Kriterien man elektrische Bauteile wählt, verschaltet und wie man ein Platinenlayout dafür herstellt. Die Hardware-Plattform müsste also tatsächlich schon existieren und ich dürfte nur für die Software zuständig sein. Dann denke ich, könnte ich bestehende Embedded-Software pflegen, weiter entwickeln und auch neue Architekturen für neue (ähnliche) Geräte erstellen. Wie gesagt, dabei keine Regelungstechnik, keine Signalverarbeitung (Filter, etc.), keine mathematisch-physischen Modelle, kein Simulink und kein Matlab. Dann würde ich mir das zutrauen. Wobei eine Differenzengleichung würde ich wohl noch implementieren können in C. Aber FFT, da geht's wieder zu tief. Ist ja interssant. Wie ist das überhaupt mit Anbindung von Sensoren? Ja, ist vielleicht eine Dumme Frage. Wenn ich einen Sensor kaufe, hat der nicht schon eine Elektronik inkl. I2C-Schnittstelle? Oder muss ich tatsächlich Analog-Digital-Wandlung und das Auslesen irgendwie selbst übernehmen? Da würde ich dann wieder passen. Ein anderer Aspekt, der von den Beiträgen aufgegriffen wurde, ist die Arbeitsmarktlage. Ist der ETechnik-Arbeitsmarkt gefährlicher als der IT-Arbeitsmarkt. Es sei angemerkt, dass ich Familienvater bin. @ dsfdsgfdgfdgdf Danke für die konkreten Tipps. Also, klar, bei new() geht das Objekt auf den Heap. Wird denn bei Mikrocontrollern der Heap und der Stack auf zwei verschiedenen Speicherchips abgelegt oder worum geht es ? Letztendlich für new() doch auch zu malloc() oder ? Sorry, ist schon länger her bei mir. Bei wenig Speicher (z.B. 256KB) wird man vielleicht gar keinen C++-Kompiler verwenden? Würde man überhaupt noch eine Hochsprache benutzen oder direkt Assembler programmieren? Zu den Vorschlägen, die aktuelle Stelle zu behalten: Ich bin jetzt 5 Jahre auf der aktuellen Stelle. Machte sich das nicht irgendwie schlecht im Lebenslauf, mehr als 7 Jahre bei einer Stelle zu bleiben? Personaler werfen einem dann mangelndes Engagement zur Weiterentwicklung vor? Sorry, wieder nur Halbwissen und hören-sagen. Also, danke für hilfreiche Ratschläge und schönen Abend. Coffee++C
Coffee++C schrieb: > Wie gesagt, dabei keine Regelungstechnik, > keine Signalverarbeitung (Filter, etc.), keine mathematisch-physischen > Modelle, kein Simulink und kein Matlab. Dann würde ich mir das zutrauen. > Wobei eine Differenzengleichung würde ich wohl noch implementieren > können in C. Aber FFT, da geht's wieder zu tief. Wenn du die mathematischen Grundlagen hast, dann kannst du dir Grundlagen-Kenntnisse in allen genannten Themen im Selbsstudium in ca. einem Jahr locker beibringen. Bist dann halt kein Vollblut-Profi, aber wenn du Differenzialgleichungen und lineare Algebra drauf hast, dann sind Regelungstechnik und FFT auch kein großes Problem, zumal man praktisch immer ähnliche Konzepte zum Einsatz bringt. Coffee++C schrieb: > Ist ja interssant. Wie ist das überhaupt mit Anbindung von Sensoren? Ja, > ist vielleicht eine Dumme Frage. Wenn ich einen Sensor kaufe, hat der > nicht schon eine Elektronik inkl. I2C-Schnittstelle? Oder muss ich > tatsächlich Analog-Digital-Wandlung und das Auslesen irgendwie selbst > übernehmen? Da würde ich dann wieder passen. Kommt auf den Sensor an. Coffee++C schrieb: > Es sei angemerkt, dass ich Familienvater bin. Dann hast du eh keine Zeit für solche Spielereien, schlag dir die Idee ganz schnell aus dem Kopf. Coffee++C schrieb: > Wird denn bei Mikrocontrollern der Heap und der Stack auf zwei > verschiedenen Speicherchips abgelegt oder worum geht es ? Kommt auf den Controller an. Speichermanagement ist immer ein Problem bspw. wegen Contention oder Fragmentierung. Besser alles Statisch machen und den Heap nur benutzen wenn es gar nicht anders geht. Coffee++C schrieb: > Bei wenig Speicher (z.B. 256KB) wird man vielleicht gar keinen > C++-Kompiler verwenden? Würde man überhaupt noch eine Hochsprache > benutzen oder direkt Assembler programmieren? Du kannst auch Controller mit 1kb mit C++ programmieren. Coffee++C schrieb: > Zu den Vorschlägen, die aktuelle Stelle zu behalten: Ich bin jetzt 5 > Jahre auf der aktuellen Stelle. Machte sich das nicht irgendwie schlecht > im Lebenslauf, mehr als 7 Jahre bei einer Stelle zu bleiben? Personaler > werfen einem dann mangelndes Engagement zur Weiterentwicklung vor? > Sorry, wieder nur Halbwissen und hören-sagen. Scheiß auf die Personaler, wichtig ist, dass dir der Job Spaß macht und du damit deinen Lebensunterhalt bestreiten kannst. Wenn du was anderes Probieren willst, oder andere Gehaltsvorstellungen hast, dann bewirb dich doch einfach auf ähnliche Stellen bei anderen Unternehmen. Vielleicht ist ja was dabei, das die gefällt. Da du schon eine Stelle hast, hast du ja auch keinen großen Druck wie manch anderer Arbeitssuchender.
Hi, Coffee++C schrieb: > Besten Dank für die zahlreichen Beiträge. > > Vielleicht gibt es ja tatsächlich Abstufungen von High-Level nach > Low-Level, bei denen man nicht unbedingt voll-blut E-Techniker sein > muss. Ja, die gibt es durchaus... > Was ist z.B. mit einer modernen Kaffee-Maschine? Wird da > Regelungstechnik verwendet ? Wird das digitale Signalverarbeitung > verwendet (typische E-Technik-Themen)? Reichen nicht vielleicht in > mehreren Fällen Finite-State-Maschine aus, um den Zustand zu > beschreiben? Je nach gedrücktem Knopf, ändert sich der Zustand der > Maschine. Alles läuft in einer Hauptschleife, in der der Zustand > aktualisiert wird? > > Anderes Beispiel: Elektronische Zeiterfassung. Ich buche mich mit meine > RFID-Chipkarte ein etc.. Wenn ich dafür Software entwickeln müsste - was > bräuchte ich aus einem typischen E-Technik-Studium? Wie gesagt, ich gehe > davon aus, dass die Hardware schon von einem E-Techniker in der Firma > entwickelt wurde. Hier verstehe ich deinen Grundgedanken, aber deine Beispiele sind eher schlecht gewählt. Sicher kommt es auf die Firma an, aber diese "einfachst" Anwendungen macht dann meist ein E-Techniker im Rahmen der Hardwareentwicklung nebenbei. Selbst wenn der nicht ganz so fit sein sollte wie ein reiner Informatiker der den ganzen Tag nichts anderes macht, durch die fehlenden Reibungsverluste gleicht sich das wieder aus. Denn so wie in vielen Informatik Studiengängen auch auch Vorlesungen zu GDE & Digitaltechnik (meist dieselben wie für E-Techniker, vlt. nicht bis ganz zum Schluss, also nur die ersten Zwei statt drei Semester) enthalten sind, so hat der E-Techniker auch ein paar Vorlesungen in Informatik, Mikroprozessortechnik usw. Interessant für einen Informatiker wird es dann erst wenn es komplexer wird. Aber da ist man dann auch schnell wieder in den Bereichen wo man wieder mit Betriebssystemen auf dem µC Arbeitet, wenn nicht gleich mit einem ganzen Industrie-PC. Je nach Komplexität der Software im Vergleich zur Hardware kann es dann sogar sein das hier dann ein umfassend ausgebildeter Informatiker (der dann auch die ET Grundlagenvorlesungen nicht nur überlebt sondern da auch was gelernt hat) das Projekt komplett alleine durchziehen kann und gar keinen E-Techniker braucht. > Es gibt wohl auch Geräte, die via TCPIP remote konfiguriert und gewartet > werden. Da läuft im Gerät ein Mini-Web-Server. Mini-Web Server sind heute selbst auf kleinen 8Bittern nichts exotisches Mehr. Dank den von den meisten HAlbleiterherstellern bereitgestellten Frameworks und AN setze ich dir eine Einfachen Webserver der nur ein paar über i2c eingelesene Sensordaten darstellt in einem Nachmittag auf. Kommen dann natürlich umfangreiche Prozesse zum Tragen sieht es völlig anders aus. Aber dann landet man auch schnell wieder bei einem System mit Betriebssystem oder gar Industrie-PC. > Nehmen wir z.B. den > Industrie- und Anlagenbau. Es gibt Firmen, die Stellen optische > Kontrollsysteme her. Die Hardware hängt an 220 V, da wird vielleicht > nicht um jeden Takt gefeilscht? Aber die Software wird sehr wohl nach > Echt-Zeit-Kriterien entwickelt. Kommt so durchaus vor... Aber auch so ziemlich jede andere Anwendung. > Was auch immer die Situation wäre: Die Hardware müsste schon da sein. > Ich kann auf keinen Fall innerhalb von 3 Jahren lernen, nach welchen > Kriterien man elektrische Bauteile wählt, verschaltet und wie man ein > Platinenlayout dafür herstellt. Die Hardware-Plattform müsste also > tatsächlich schon existieren und ich dürfte nur für die Software > zuständig sein. Dann denke ich, könnte ich bestehende Embedded-Software > pflegen, weiter entwickeln und auch neue Architekturen für neue > (ähnliche) Geräte erstellen. Wie gesagt, dabei keine Regelungstechnik, > keine Signalverarbeitung (Filter, etc.), keine mathematisch-physischen > Modelle, kein Simulink und kein Matlab. Dann würde ich mir das zutrauen. > Wobei eine Differenzengleichung würde ich wohl noch implementieren > können in C. Aber FFT, da geht's wieder zu tief. Und genau das ist hier ja der Knackpunkt. Es gibt ziemlich viele Vorraussetzungen. Für eine Karriere in echten Low-Level Segment einfach zu viele! Natürlich gibt es Stellen wo du mit diesen Vorraussetzungen gut zurechtkommen wirst. Aber das sind im allgemeinen nur wenige Stellen in echten Konzernen. Der ganze Bereich KMU bricht dir als möglicher Arbeitsplatz damit weg. Und selbst wenn du zu denen gehörst die sagen das man im KMU Bereich zu wenig verdient: Wenn man beim Konzern fliegt sind 50K/Jahr beim KMU selbst für hocherfahrene "TopPerformer" ganz plötzlich sehr erstrebenswerte Verhältnisse wenn sonst H4 drohen würde. Wie weiter oben schon jemand anderes schrieb: Eine Orientierung auf eine weiter unter Liegende Schicht der komplexität sehe ich durchaus als Möglich an. Aber halt nicht bis hinab auf die "BareMetal" Programmierung. Für den Bereich µC Systeme mit Betriebssystem oder ähnliches könnte durchaus eine realistische Chance bei dir bestehen. Aber ganz sicher auch nicht übers Knie gebrochen. Selbst da muss jemand der von der reinen PC-Anwendungsebene kommt noch einiges Dazulernen. Aber mit der Richtigen Arbeitsstelle wo er neben seinen tatsächlich schon vorhandenen Fähigkeiten auch mal damit konfrontiert wird... > Ist ja interssant. Wie ist das überhaupt mit Anbindung von Sensoren? Ja, > ist vielleicht eine Dumme Frage. Wenn ich einen Sensor kaufe, hat der > nicht schon eine Elektronik inkl. I2C-Schnittstelle? Oder muss ich > tatsächlich Analog-Digital-Wandlung und das Auslesen irgendwie selbst > übernehmen? Da würde ich dann wieder passen. Es gibt sowohl als auch! Aber auch wenn der Sensor I2C, SPI o.ä. hat ist es damit dann noch lange nicht getan. Denn du musst ja auch igendwie noch den Layer 1 Realisieren. Da kommen dann so Dinge wie Spannungen, Impedanzen, Leistungsbilanz und ganz besonders EMV ins Spiel. Und wehe du hast etwas schnelleres, dann kann es ganz abgefahren werden das wirklich betriebssicher zu bekommen... Einfach zusammenstecken und draufloscoden geht nur im Hobbybereich unter Nutzung vorgefertigter Baukastensysteme (Arduino & Co.) > Ein anderer Aspekt, der von den Beiträgen aufgegriffen wurde, ist die > Arbeitsmarktlage. Ist der ETechnik-Arbeitsmarkt gefährlicher als der > IT-Arbeitsmarkt. Es sei angemerkt, dass ich Familienvater bin. Das ist Ansichtssache. Die jammernden ET-ler hier werden sagen das im ET bereich alles Scheisse ist, die jammerndern IT-ler hingegen werden sagen das im IT Bereich alles Scheisse ist. Die große Masse -also die mit einigermaßen brauchbaren Fähigkeiten und natürlich besser- aus beiden Bereichen hat eine Anstellung für Gehälter von denen sich MINDESTENS gut Leben lässt und wo es selbst als Einzelverdiener mit Frau und Kindern noch für einen guten Urlaub im Jahr und vernünftiger Rücklagenbildung reicht. Ja nach Unternehmen und Stellung auch viel mehr. > Bei wenig Speicher (z.B. 256KB) wird man vielleicht gar keinen > C++-Kompiler verwenden? Würde man überhaupt noch eine Hochsprache > benutzen oder direkt Assembler programmieren? Hier musste ich gerade etwas Schmunzeln ;-) 256 kB und "wenig Speicher"... Klar gibt es mittlerweile nicht wenige Mikrocontroller die 256kB bzw. 512kB haben, Selbst mit 2MByte gibt es noch µC die ich als "Mikrocontroller" durchgehen lassen würde, aber im echten LowLevel Bereich wirst du eher so 8 bis 64kByte als vorherrschende Größe an Programmspeicher antreffen. Vor ein paar Wochen habe ich noch ein Design (beruflich) mit einem µC fertiggestellt der 448 Byte Programmspeicher und 64Byte RAM hat. URsprünglich vorgesehen war sogar nur 375Byte Flash und 16Byte Ram, aber der "neue" µC kann für mehr Anwendungen eingesetzt werden, reduzierung der Typenvielfalt. Solche Winzigst-µC mit wenigen Bytes programmiert man natürlich in ASM, ab einigen kByte Flash ist dann C die heute übliche Sprache. Im Moment dürfte in meinem Bereich kein µC mit mehr als 4kByte Flash im Einsatz sein der noch nicht in C geschrieben ist. Evtl. mit ein paar Zeilen Inline ASM. Die ersten Jahre meiner Berufslaufbahn habe ich aber ausschließlich ASM geschrieben. C++ ist im µC Bereich aktuell noch ein Nischenphänomen. Es gibt zwar schon einiges an Compilern auch für kleinere µC, aber im Vergleich zu C führt das ein echtes Schattendasein. Das wird dann erst wieder ab einer gewissen Leistungsklasse wirklich interessant... > Zu den Vorschlägen, die aktuelle Stelle zu behalten: Ich bin jetzt 5 > Jahre auf der aktuellen Stelle. Machte sich das nicht irgendwie schlecht > im Lebenslauf, mehr als 7 Jahre bei einer Stelle zu bleiben? Personaler > werfen einem dann mangelndes Engagement zur Weiterentwicklung vor? > Sorry, wieder nur Halbwissen und hören-sagen. Vergiss den ganzen Schmarrn mit "Die Personaler Denken...". Der eine denkt das tatsächlich, der nächste sieht darin dann wieder positives Zeichen für Spass am Job und verbundenheit zum Arbeitgeber. Liest du zwei Ratgeber zu dem Thema erhälst du drei Meinungen. Das ist noch schlimmer als bei Anwälten! Natürlich kommt es auch etwas auf die angestrebte Laufbahn an. Für jemanden der unbedingt in die höheren Führungsetagen will ist das natürlich etwas anderes als für jemanden dessen persöhnliches Ziel bei Teamleiter schon Erfüllt ist und der jede weitere Stufe dann nur noch als "Bonus" sieht -falls er die überhaupt haben will-. (Bei all dem darf man ja auch nicht vergessen das je höher man kommt um so schneller ist man ggf. abgesägt. Vom restlichen Leben das immer mehr dem Job untergeordnet werden muss ganz zu schweigen) Aber in den unteren Bereichen kommt es sicher mehr darauf das du fachlich auf der Höhe der Zeit bist und nicht irgendwann im Laufe der Jahre mit dem Lernen aufgehört hast. Ob du das nun durch regelmäßige Wechsel oder (belegbare) Weiterbildungen realisierst ist da eher Zweitrangig. Gruß Carsten P.S.: Weiter oben wurde ja schon gefragt was denn dein "Interdisziplinäres Studium" nun genau bedeutet. Dazu hast du noch nichts geschrieben. ICh denke es ist schon recht essentiell für die Beantwortung der Frage zu wissen was denn Teil des Studiums war. Also Beispielsweise ob du ET vorlesungen hattest oder nicht. usw. usf.
Coffee++C schrieb: > Anderes Beispiel: Elektronische Zeiterfassung. Ich buche mich mit meine > RFID-Chipkarte ein etc.. Wenn ich dafür Software entwickeln müsste - was > bräuchte ich aus einem typischen E-Technik-Studium? Wie gesagt, ich gehe > davon aus, dass die Hardware schon von einem E-Techniker in der Firma > entwickelt wurde. normalerweise werden die Chipkartenleser ja nicht selbst entwickelt, sondern zugekauft. Die hängen dann seriell oder per USB dran und du steuerst diese über eine vorgegebene Programmierschnittstelle. Oder etwas konkreter: haben hier Linux am Laufen und haben an unsere Hardware einen Chipkartenleser angebunden. Für die Anbindung war die HW Abteilung zuständig. Den Rest hat die SW Abteilung erledigt. Wir in der SW Abteilung haben definiert, welche Datenblöcke wo auf der Karte gespeichert werden, wie diese verschlüsselt werden, und wie diese mit Prüfsummen gesichert werden können. Da ist also schon einiges SW technisch zu tun gewesen. Gerne eingesetzt im embedded Bereich wird Linux. Wenn du dich gut mit Linux auskennst, so kannst du den Sprung wohl leichter schaffen. Und Linux kann man gut von daheim aus lernen. Einfach installieren oder zumindest in der VM laufen lassen und ein wenig rumspielen (vor allem mit der Shell solltest du umgehen können). Hier mal die Anforderungliste von einer Stellenanzeige im Bereich embedded Linux: -------- Abgeschlossene technische Ausbildung (HTL/FH/TU) Einschlägige Berufserfahrung von mindestens 3 Jahren erforderlich Sehr gute Kenntnisse in C/C++, Qt-Crossplattform Framework (GUI & Netzwerk), Softwarekonfigurationsmanagement (SVN) Kenntnisse in objektorientierter Analyse und Design, UML, hardwarenaher Programmierung, embedded Linux, SW-Testing (statisch und dynamisch), Shellscripting (DOS, bash), Python, Netzwerktechnik Ausgezeichnete Deutsch- und Englischkenntnisse Team- und Kommunikationsfähigkeit, eigenverantwortliche Arbeitsweise, proaktive Persönlichkeit Reisebereitschaft -------- So ähnliche Anforderungslisten findet man immer wieder, wenn es sich jetzt nicht gerade um komplette Low Level Dinge handelt wie uC Programmierung. Und wie du siehst, sollte die Liste für dich durchaus auch schaffbar sein. Da ist schon wichtiger dass du mit C++ und Linux und dessen Skriptsprachen gut zurecht kommst. Dann als Bonus eben noch Qt und Netzwerktechnik.
Ich sehe überhaupt kein Problem darin, dass du dich ein Stück in die Embedded Welt bewegen kannst. Ich kenne Informatiker und Mathematiker, die FPGA entwickeln. Und das ist ja eigentlich in Wirklichkeit Hardwareentwicklung. Es wurde ja schon erwähnt, dass viele eingebettete Systeme sich nicht mehr wesentlich von einem PC unterscheiden. Da gibt es oft ein Betriebssystem (auch wenn es vielleicht statt Windows eher Linux oder QNX oder irgend ein anderes RTOS ist). Normalerweise wird die Hardware auch von einem anderen Team entwickelt (oder zugekauft), außer vielleicht in Kleinbetrieben. Allerdings wird sich die Arbeit dann von deinem jetzigen Job vermutlich auch nicht so sehr unterscheiden! Wenn du Glück hast, findest du eine Abteilung die sowohl High-Level als auch Low-Level arbeitet. Dann kann es schon sein, dass man "nebenbei" mal ein kleines Mikrocontrollerprogramm schreiben muss. Du kannst bei der Bewerbung ja deine High-Level-Erfahrung gut verkaufen. Du solltest dich mit der Strukturierung einer komplexen Softwarearchitektur und mit Design Patterns auskennen. Das sind Schwächen, die ET-Ingenieure in der Softwareentwicklung häufig haben. Vor allem ältere Ingenieure, die keinerlei Informatikvorlesungen an der Hochschule hatten und deshalb nicht mal die Grundlagen kennen. Da tut ein Informatiker, der solches Wissen mit einbringt, ganz gut. Man hat zwar dann einen sehr gefährlichen Job, weil man sich unter Umständen mit den alt eingessenen anlegt, aber man kann viel dabei lernen. Zur eigentlichen Fragestellung: Es schadet natürlich nie, wenn du dich außerhalb des Jobs weiter bildest. Egal ob du jetzt ein Bastelprojekt startest oder einen Hochschulkurs belegst (für letzteres würde ich dir empfehlen, den Master IEMS der Uni Freiburg anzuschauen). Du könntest auch an einem Open Source Projekt teilnehmen, damit würdest du nebenbei noch einen echten gesellschaftlichen Mehrwert schaffen.
Ich glaube der OP überschätzt das Niveau auf den in der Industrie hier in Deutschland entwickelt wird gewaltig. Bei der Kaffeemaschine ist das oft nur eine Pumpe die für x-Sekunden eingeschaltet wird. (so ist das zumindest bei einfachen Pad-Maschinen) Im kompliziertesten Falle muss ein wenig GUI und ein bisschen geregelt werden... aber auch nur simple Zweipunktregler. Zumindest in der Industrie verbringst Du die meiste Zeit damit, auf Spezifikationen zu warten und zugelieferten Code zu debuggen. Wenn Du weißt was ein Zustandsautomat ist, und wenn Du einen mit einer Tabelle bauen kannst, dann bist Du schon hochqualifiziert im Embedded-Bereich.
Christian Berger schrieb: > Ich glaube der OP überschätzt das Niveau auf den in der Industrie hier > in Deutschland entwickelt wird gewaltig. Bei der Kaffeemaschine ist das > oft nur eine Pumpe die für x-Sekunden eingeschaltet wird. (so ist das > zumindest bei einfachen Pad-Maschinen) Im kompliziertesten Falle muss > ein wenig GUI und ein bisschen geregelt werden... aber auch nur simple > Zweipunktregler. Solche Pille-Pallejobs machen aber auch keine Ing, da reicht ein Industrielektroniker mit Ausbildung. Da verschlechtert er sich finanziell nur, was will er in solchen "Handlangerjobs"? > Wenn Du weißt was ein Zustandsautomat ist, und wenn Du einen mit einer > Tabelle bauen kannst, dann bist Du schon hochqualifiziert im > Embedded-Bereich. Das kennt auch schon der Industrieelektroniker. Wenn du dich auf diesem Level bewegst und noch nie was anderes gesehen hast heisst das noch lange nicht dass das das oberste Level in dem Bereich ist. Wenn die Sonne tief steht werfen nat. auch Zwerge lange Schatten. Was hier für ein Müll gepostet wird, unglaublich. Man kann dem Ursprungsposter nur raten sich von dieser fixen Idee zu verabschieden.
Ehrlich gesagt kann man nach einem Studium genau soviel wie davor auch, learning by doing.
Troll schrieb: > Ehrlich gesagt kann man nach einem Studium genau soviel wie davor auch, > learning by doing. Boah, jetzt verrate doch nicht alles! Wo sollen denn die billigen Praktikanten, Diplomanden und Werkstudenten herkommen, wenn keiner mehr studiert? Und die ganzen Hiwis für die Unis?
wurstmacher schrieb: > Was hier für ein Müll gepostet wird, unglaublich. Man kann dem > Ursprungsposter nur raten sich von dieser fixen Idee zu verabschieden. nenn einen Grund warum er nicht im Embedded Bereich arbeiten kann! Ich wäre froh wenn bei uns im Team mehr Leute arbeiten würden, die gute "High Level" Kenntnisse haben und wissen, wann man std::vector und wann man std::list verwendet. Der typische Embedded Programmierer kennt ohnehin nur vector. Bist wohl eher einer, der glaubt er sei unersetzbar und man muss ein Halbgott sein, um embedded systems programmieren zu können.
Steinigt mich.. aber ich denke die Software auf Embedded Systems wird in 5-10 Jahren ungeahnte Komplexität erreichen ;)
Hallo noch mal, ich habe ein bisschen recherchiert. Ich sage, Software spielt in den einen Embedded Systems weniger eine Rolle und in manchen Embedded Systems eine größere Rolle. Es gibt Embedded Systems, die setzen Betriebssysteme ein. Wieso tun sie das? Ich schätze, weil das Betriebssystem Mechanismen für Multithreading zur Verfügung stellt. Manche ES sind scheinbar komplexer was die Software angeht. Da laufen mehrere Prozesse gleichzeitig. Z.B. -DSL-Modem -Modernes Oszilloskop mit Gui -Infotainment-Systeme im Auto -Smart-TV -Medizinische Diagnosegeräte mit Gui Natürlich kann ich nicht sagen, wie groß der Anteil dieser Geräte am gesamten Anwendugnsbereich von Embedded Software-Entwicklung ist. Aber es scheint so zu sein, als gäbe es auch Geräte, in denen komplexere Software eingesetzt wird. Da geht's von der Hight-Level-Software-Ebene halt ein bisschen tiefer, nicht ganz tief nach unten, aber halt ein bisschen tiefer. Viele Grüße Coffee++C
Es gibt sehr viele Tools im Embedded-Bereich, die auf Eclipse basieren. Eventuell wäre das ja ein Einstiegpunkt für dich mit Javabackground. Beispielsweise die Tasking IDE, EB Tresos usw usf. Da wirst du zwangsläufig was mit Embedded zu tun haben und kannst dich vielleicht Schritt für Schritt in die Materie einarbeiten. Vector Informatik sucht z.B. auch Javaentwickler. Beste Grüße
Weiß jemand, was aus dem Threadersteller geworden ist?
Beitrag #6483685 wurde von einem Moderator gelöscht.
Qwertz schrieb: > Weiß jemand, was aus dem Threadersteller geworden ist? @Qwertz-Troll: Bitte keine Thread-Leichen ausbuddeln.
Senf D. schrieb: > @Qwertz-Troll: Bitte keine Thread-Leichen ausbuddeln Ein weiterer überflüssiger Beitrag von dir. Hier geht es darum, ob sein Umstieg auf Embedded erfolgreich war.
Redet hier jetzt der echte Qertz mit dem Qwertz Troll?
Ben S. schrieb: > Redet hier jetzt der echte Qertz mit dem Qwertz Troll? Bist du betrunken oder einfach nur ein erbärmlicher Troll der interessante Threads zerstört?
Qwertz schrieb: > Hier geht es darum, ob sein Umstieg auf Embedded erfolgreich war. Ach, und du denkst wirklich, dass du dazu nach 6,5 Jahren noch eine ernsthafte Rückmeldung bekommst? Du bist doch bekifft oder besoffen (oder beides).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.