Ich habe einen Abschluss in ECE (Electric Computer Engineering) mit den Schwerpunkten Logikdesign und digitales Design. Direkt nach dem Studium nahm ich einen EDA-Softwarejob (Electronic Design Automation) für eine Firma an, die an einem Synthesetool arbeitete, weil ich damals das Geld brauchte (Schuldarlehen aufgenommen, ich habe keine Familie). Ich arbeite im Silicon Valley.
Ich bin zu der Erkenntnis gekommen, dass EDA wahrscheinlich eine sterbende Industrie ist, und das ist das Problem. Ich bin ein "Software-Ingenieur" mit absolut keinen marktfähigen Fähigkeiten. Ich kann eigentlich kein RTL-Designer mehr sein. Ich bin auch nicht wirklich ein Software-Ingenieur, weil ich nur genug Software kenne, um das EDA-Tool zu vervollständigen und zu entwickeln. Ich habe ein schlechtes Wissen über Datenstrukturen und Algorithmen außerhalb der Arbeit. Ich sage es nur ungern, aber ich kann die hochrangigen Konzepte, die erforderlich sind, um ein vollwertiger Softwareentwickler zu werden, nicht wirklich verstehen. Der größte Teil meiner Codierung besteht nur aus einfachen Arrays, einfachen for/nested for-Schleifen und if-Anweisungen. Ich habe 6 Monate lang versucht, alleine zu programmieren, und mache jetzt Algorithmen, ich kann das Konzept einfach nicht verstehen.
Jetzt bin ich in einem Trott, weil ich 20 Jahre zu spät geboren bin, im Vergleich zu meinen Kollegen stark unterbezahlt bin und höchstwahrscheinlich in einer sterbenden Branche arbeite. Welche Möglichkeiten habe ich? Die einzige Option, die ich sehe, ist, dass ich für den Rest meiner Karriere bei meiner aktuellen Firma bleibe oder versuche, zu einem der Top-3-EDA-Unternehmen wie Cadence, Synopsys oder Mentor zu wechseln, um eine kleine Gehaltserhöhung zu bekommen und dort für den Rest meiner Karriere zu bleiben Leben.
Es fühlt sich an, als hätte ich mich wirklich sehr vermasselt. Ich suche nur nach Ratschlägen oder Erfahrungen von anderen.
TLDR ; „Software-Ingenieur“ in der Elektronikdesign-Automatisierung, der über einige Registertransfer- und Softwarekenntnisse verfügt, aber nicht weiß, was zu tun ist, und Rat benötigt
Nur weil Sie etwas jetzt nicht können, heißt das nicht, dass Sie es in Zukunft nicht können werden. Auch wenn es den Anschein haben mag, dass Ihr Hochschulabschluss und Ihre aktuellen Fähigkeiten Ihre Fähigkeiten in ein paar Jahren bestimmen werden, ist dies nicht der Fall.
Vielleicht sind die Art der Fähigkeiten, die Sie gerade erwerben möchten, nicht das geeignete Niveau, das Sie benötigen, um voranzukommen, oder vielleicht die Kurse/Bücher/usw. die Sie verwenden, sind nicht für Ihren Lernstil geeignet.
Haben Sie etwas Geduld. Erlernen Sie vielleicht einige andere Fähigkeiten (Führung, Management, Gitarre, Tauchen) und wenden Sie sich dann vielleicht wieder den Fähigkeiten zu, die Sie heute lernen möchten, oder entdecken Sie vielleicht, dass sich Ihre eigenen Werte oder der Markt geändert haben und ein anderer Weg jetzt attraktiver ist .
Klingt so, als ob ein Gig mit System Verilog eine vernünftige Lösung wäre, und es gibt eine Menge Verifizierungsarbeit da draußen.
Software-Ingenieure sind im Allgemeinen schlechte Hardware-Designer (die Denkweise ist zu unterschiedlich, besonders wenn man sich dem Register-Transfer-Level-Design (RTL) zuwendet[1]), aber jedes ernsthafte Chip-Design erfordert riesige Schwaden von Simulationstestumgebungen, Schreiben und System Verilog scheint das moderne Werkzeug der Wahl zu sein. Das Schöne für Sie ist, dass der Großteil dieser Art von Code ziemlich einfach ist, ohne dass tiefes Wissen über Datenstrukturen erforderlich ist, und das EE-Wissen wird sehr relevant sein.
Ich bezweifle, dass Hardware Design Languages (HDLs) und ihre Testbenches in absehbarer Zeit verschwinden werden.
Ich bin ein Elektronikingenieur, aber ich habe mich auf rauscharmes Analog-, Mixed-Signal- und Hochgeschwindigkeitsdesign spezialisiert, wo sich herausstellt, dass es Arbeit gibt, da nur noch sehr wenige Schulen es unterrichten.
[1] Eine Verallgemeinerung, aber Software-Ingenieure neigen dazu, dem Chip zu sagen, was er tun soll, Hardware-Designer, dem Chip zu sagen, was er tun soll, es ist mehr eine Unterscheidung, als Sie vielleicht erwarten.
Ich habe ein schlechtes Wissen über Datenstrukturen und Algorithmen außerhalb der Arbeit. Ich sage es nur ungern, aber ich kann die hochrangigen Konzepte, die erforderlich sind, um ein vollwertiger Softwareentwickler zu werden, nicht wirklich verstehen. Der größte Teil meiner Codierung besteht nur aus einfachen Arrays, einfachen for/nested for-Schleifen und if-Anweisungen. Ich habe 6 Monate lang versucht, alleine zu programmieren, und mache jetzt Algorithmen, ich kann das Konzept einfach nicht verstehen.
Dies scheint in der Tat das Kernproblem zu sein, und die Antwort ist ganz einfach: Es auf eigene Faust zu tun, ohne eine solide Grundlage, ist eine Sackgasse. Sie erfinden im Grunde die gesamte Branche neu. Ich würde vorschlagen, was ich dieses Jahr getan habe: Lesen Sie ein gutes, praktisches Buch zu diesem Thema . Der entscheidende Punkt hier ist, nicht in der Theorie zu ertrinken – die mathematischen Feinheiten von Hash-Tabellen und Hamilton-Pfade sind eine bodenlose Leere. Was Sie brauchen, ist 1) eine grundlegende Vorstellung davon zu bekommen, wann Sie was verwenden, 2) eine ähnlich grundlegende Vorstellung davon zu bekommen, wo Sie die Details nachschlagen können, wenn Sie sie brauchen.
Der gesamte Prozess, einschließlich der Übungen, wird einige Monate Abend-/Wochenendübungen erfordern. Außerdem lernen Sie die Grundlagen einer Programmiersprache Ihrer Wahl kennen, denn so testen Sie Ihre Lösungen. Was das Buch selbst betrifft, hat Cracking the Coding Interview von Gayle Laakmann McDowell für mich funktioniert. Jetzt erhalten meine Lösungen für Codierungsherausforderungen, die auf Websites mit Codierungsherausforderungen als „schwierig“ gekennzeichnet sind, konsistent hohe Punktzahlen.
Natürlich ist das nicht alles, was ein Softwareentwickler in seinem Werkzeuggürtel haben muss. Aber wenn es um Datenstrukturen und Algorithmen geht, ist es das.
Bernhard Bärker
Bernhard Bärker
Seth R
Mawg sagt, Monica wieder einzusetzen
Thomas Owens
teego1967
pmf