Lernen der Entwicklung eingebetteter Systeme ohne Aufsicht [geschlossen]

10

Ich habe dieses Jahr meinen Abschluss gemacht und meinen ersten Job in den Bereichen C-Programmierung, Linux-Administration und Entwicklung eingebetteter Systeme bekommen. Ich bin ziemlich zufrieden mit meinem Job, aber ich fürchte, ich werde kein erfolgreicher Programmierer auf diesem Gebiet. Ich bin jetzt ein Einzelentwickler in meinem Job. Meine Teamkollegen sind Hardware-Experten. Es gibt niemanden, der mich anleitet oder mir die eingebettete Programmierung beibringt. Ich muss alles alleine lernen.

Also hier sind meine Fragen. Ist es möglich, von einer Einstiegsposition aus ohne Aufsicht durch leitende Programmierer ein guter Entwickler eingebetteter Systeme zu werden? Wie könnte ich einer werden (vielleicht mit Hilfe von Foren, IRC-Kanälen, guten Lehrbüchern)? Wie lange würde es dauern?

UPDATE: Bisher habe ich eine Handvoll hilfreicher Antworten erhalten, aber mir wurde klar, dass ich einige spezifische Hinweise zu diesem Thema benötige.

Hier sind meine speziellen Fragen:

  1. Mit welchen guten Lehrbüchern kann man Embedded Development lernen?
  2. Welche spezialisierten Online-Communities können für einen aufstrebenden Embedded-Entwickler hilfreich sein (ohne allgemeine Dinge wie Stack Overflow, Reddit usw.)?
  3. Was sind die interessantesten Blogs für die Embedded-Entwicklung?
Olga
quelle

Antworten:

3

Sie haben Recht, dass es in Ihrem Fall etwas schwieriger wird, in Ihrem Fall zu sein. Es gibt jedoch viele Lösungen, um Ihr Problem zu lösen.

  1. Versuchen Sie zunächst, an Communities wie dieser teilzunehmen , die jedoch möglicherweise auf Ihr Fachgebiet spezialisiert sind. Durch die Teilnahme erweitern Sie Ihr Wissen und lernen vor allem andere Menschen kennen.

  2. Versuchen Sie, an Code-Camps oder Initiativen teilzunehmen, bei denen Sie andere Entwickler wie Sie in der Realität treffen. Es ist einfacher, Wissen zu teilen, wenn Sie die Person vor sich haben.

  3. Bitten Sie Ihren Chef, Ihnen mindestens 10 Trainingstage pro Jahr zu buchen . Keine Notwendigkeit, die Vorteile hier zu erklären, wenn er sich weigert, ist er dumm.

  4. Versuchen Sie, 1 bis 2 Konferenzen oder Messen zu besuchen, die sich auf Ihr Unternehmen beziehen.

  5. Versuchen Sie, alle zwei Monate ein technisches Buch zu lesen . Wenn Sie mehr lesen können, zögern Sie nicht.

  6. Holen Sie sich einen Mentor . Das ist natürlich nicht so einfach zu erreichen.

  7. Nehmen Sie sich in der Woche etwas Zeit, um zu experimentieren und Forschung und Entwicklung zu betreiben, indem Sie neue Technologien ausprobieren, die Sie in Ihren Büchern, in Ihrer Community, auf Messen, in Schulungen usw. gelesen haben. Es ist SEHR wichtig, sich die Zeit zu nehmen, um das Gelernte zu üben.

  8. Heute sind Sie der einzige Entwickler, aber dank Ihrer harten Arbeit wird das Unternehmen, in dem Sie tätig sind, wachsen und wahrscheinlich mehr Mitarbeiter Ihrer Art einstellen müssen .


quelle
3

Ich bin jetzt ein Einzelentwickler in meinem Job, und meine Teamkollegen sind Hardware-Experten

Zögern Sie nicht, sie als Ressource zu verwenden. Eines der schwierigsten Dinge für eingebettete Programmierer, die keine EEs sind, ist es, sich mit der Hardware vertraut zu machen. Es ist sehr nützlich, einen Schaltplan lesen zu können (auch wenn Sie keinen entwerfen können) und zu verstehen, wie Sie mit einem Oszilloskop Signale aus dem Mikrocontroller betrachten.

tcrosley
quelle
0

Es ist schon eine Weile her, dass Sie diese Frage gestellt haben, also hoffe ich, dass Sie auf einem guten Weg sind. Hier sind einige zusätzliche Vorschläge, von denen ich hoffe, dass sie helfen.

Stack Exchange und Blogs

Erstaunlicherweise verfügt Stack Exchange nicht über eine eigene Q & A-Site für eingebettete Systeme. Einer wurde vor ungefähr zwei Jahren vorgeschlagen, befindet sich jedoch noch in der Verpflichtungsphase und schmachtet, ohne dass sich genügend Leute anmelden, um ihn zu unterstützen. Wenn Sie etwas bewirken möchten, klicken Sie hier:

http://area51.stackexchange.com/proposals/15961/embedded-system-design-and-development

Lesen Sie den Vorschlag und klicken Sie auf "Festschreiben", um sich zu beteiligen.

Linked In hat auch eine Embedded Systems-Gruppe sowie einige eng verwandte Gruppen, die von Interesse sein könnten:

Eingebettete Systeme

Firmware

ARM

Webressourcen

EETimes bietet Funktionen für eingebettete Systeme.

http://www.eetimes.com/design/embedded

Dr. Dobbs ist ein langjähriger Freund von Programmierern aller Art und hat großartige Inhalte eingebettet.

http://www.drdobbs.com/embedded-systems

Die Arduino-Community ist groß, enthusiastisch und hat viele Eintrittsbarrieren für eingebettete Programme beseitigt, einschließlich Preis und vorheriger Schulung.

http://www.arduino.cc/

Wenn Sie eine weibliche Softwareentwicklerin oder eine nicht aufgeklärte männliche Entwicklerin sind, bei der es sich bei eingebetteten Systemen hauptsächlich um einen "Good-Old-Boys" -Club handelt, besuchen Sie diese Website. Die Autorin ist eine MIT-Absolventin, hat nervös gemacht, out of the box (oder manchmal in der Box, wie ihr iPhone-Ladegerät mit Altoids-Box), und scheint sehr produktiv beim Entwerfen, Schreiben und Bloggen von Videos zu sein.

http://www.youtube.com/watch?v=QkmtHqsYCbw&feature=player_embedded# !

http://www.adafruit.com/tutorials

Viele Anbieter verfügen über umfangreiche Sammlungen von Datenblättern, Anwendungshinweisen, White Papers und kostenlosen oder Evaluierungskopien von Entwicklungstools. Zu den Top-Unternehmen in diesem Bereich gehören ARM, Atmel, Freescale, Intel, Microchip Technologies, NXP (ehemals Phillips), TI und viele andere.

Bücher

Ich bin mir nicht sicher, ob Sie es finden können, aber ich habe ein Buch, das meiner Meinung nach einen Großteil der Geschichte für eingebettete Systeme in Bezug auf Tools (Assembler, Linker, Loader) und grundlegende Dinge erzählt, die in Mikroprozessoren passieren (Interrupts, E / A, einfach) Task-Manager und Scheduler, einfache Dateistrukturen). Systemprogrammierung für kleine Computer, Daniel Marcellus.

Eine modernere Referenz ist Embedded Linux Primer. In den ersten Kapiteln werden die Gründe für das Ausführen von Linux auf eingebetteten Systemen und einige der beteiligten Mechanismen erläutert. Kapitel 3 enthält eine ausführliche Beschreibung der Prozessoren + Support-Chipsätze und SOC-Optionen (System On a Chip), die für die Verwendung in aktuellen Designs in Betracht gezogen werden können. Tatsächlich bewegt sich das Ziel, sodass es einen Ausgangspunkt gibt, der mit der Veröffentlichung des Buches zeitgemäß ist. Kapitel 3 ist großartig, sollte aber durch weitere Recherchen im Internet und in Diskussionen mit Anbietern ergänzt werden. In der Regel wählen der Elektrotechniker und die leitenden Softwareentwickler des Projekts den Prozessor aus. Wenn Sie also in einem Unternehmen arbeiten und eingebettete Systeme erlernen, sollten Sie sich eingehend mit der von ihnen ausgewählten Hardware befassen.

In späteren Kapiteln finden Sie ausführliche Beschreibungen zu vielen praktischen Aspekten der Ausrichtung von Linux auf Hardware. Die Partnerschaft mit dem Anbieter und die Verwendung eines ziemlich standardmäßigen Referenzdesigns können den Aufwand jedoch erheblich reduzieren.

DeveloperDon
quelle
0

Es hängt hauptsächlich von dir ab. Wenn Sie bereit sind zu lernen und zu wissen, wie Sie genügend Informationen zu diesem Thema sammeln können, können Sie sich selbst alles beibringen. Aber nicht alle Menschen sind gleichermaßen erfolgreich darin:

Ich habe in einer ähnlichen Umgebung angefangen, und wenn ich sehe, wo ich jetzt bin, im Gegensatz zu vor 5 Jahren (Abschluss als Elektronikingenieur, praktisch ohne Programmierhintergrund), finde ich es erstaunlich, wozu das menschliche Gehirn fähig ist. Als ich anfing, hatte ich noch nie von Designmustern gehört, TDD, ... und hatte noch nie den Code eines echten Programms gesehen. Jetzt kenne ich diese Dinge ziemlich gut und weiß, wie man sie benutzt. Das einzige, was ich mache, ist das Durchsuchen des Netzes, das Lesen von Code aus anderen und einigen Büchern (die ich wiederum im Netz gefunden habe) und vor allem das Schreiben von Tonnen von Code, das Debuggen und das Lernen aus meinen Fehlern. Aus einem Fehler zu lernen ist imo eine viel bessere Möglichkeit, etwas zu lernen, als nur eine Probe zu lesen und das Verhalten zu replizieren. Es ist sehr seltsam, aber ich habe im wirklichen Leben nur ein paar Mal mit dem gesprochen, was ich einen guten Programmierer nennen würde.

Der einzige andere Programmierer hier ist das, was Sie als Senior bezeichnen würden (weil er seit mehr als 15 Jahren im Job ist). Er arbeitet ganz anders als ich. Und er schreibt immer noch eine verkrüppelte Form von C mit Klassen, verwendet niemals STL, hat keine Ahnung, was ein Entwurfsmuster ist usw. usw. (Ich werde wahrscheinlich bald eine Frage zu diesem Thema stellen, es fällt mir schwer, es zu versuchen Bring ihn dazu, zumindest einige meiner Methoden zu übernehmen ..)

stijn
quelle
-1 Für eine möglicherweise gut gemeinte, aber ahnungslose Eröffnung "Wenn Sie intelligent genug sind ...". Bitte, lassen Sie uns niemals die Intelligenz von jemandem in Frage stellen, insbesondere wenn es keine offensichtlichen Beweise gibt. Ich glaube nicht, dass Ihr Ziel darin bestand, unfreundlich zu sein, aber für Olga könnte es so ausgesehen haben. Sie scheint diese eine Frage gestellt zu haben und dann nichts weiter auf Stack Exchange getan zu haben.
DeveloperDon
@DeveloperDon mein Ziel war es in der Tat nicht unfreundlich zu sein, aber Sie haben Recht, wenn ich den Satz jetzt lese, klingt es so, als würde ich auf einem Turm sitzen und alle überlegen sein. Eine beschämende Sache, also habe ich sie entfernt.
stijn