Zusammenfassung
Der Autor verstand, wie schwer es für Ingenieure in Russland ist, zu leben, und beschloss, zu Programmierern zu gehen. Er hat es getan. Ein Beitrag darüber, wie.
Warum schreibe ich das alles?
- Dankbarkeit . Sagen Sie der Habr-Community "Danke".
- Unterstützung und Motivation . Es ist moralisch, Ingenieure zu unterstützen, die sich ebenfalls entschlossen haben, ihre Berufung in eine neue zu ändern, sich aber nicht entscheiden können.
- Selbstmotivation . Ein kleiner Bericht und einige öffentlich gemachte Pläne sind sehr nützlich, um voranzukommen.
- Erfahrungsaustausch . Vielleicht zeigt jemand meinen Weg zu seinem eigenen Weg.
Dankbarkeit
Zu diesem Zweck wurde die Stelle konzipiert. Hier kann ich anfangen.
Mein Beitrag „ Engineer VS Programmer. Oder wohin die Ingenieure gehen “brachte viele Kommentare, ein paar persönliche Nachrichten, ein paar Interviews. Vor allem brachte er mir eine Welle der Unterstützung, Positivität und Motivation.
Vielen Dank an die gesamte Habr Community! Es war die Unterstützung der Community, die meinem Ziel den inspirierenden Kick nach vorne gab und mich zu Programmierern führte.
Besonderer Dank Ich möchte sagen, dass serenityfx , der sich ausdrücklich registriert hat, um einen Kommentar mit einem Angebot zum Austausch seiner Erfahrungen zu hinterlassen, sich die Zeit genommen hat, mit mir persönlich zu sprechen und meine Fragen zu beantworten. Er gab mir Anweisungen und half mir zu verstehen, wie und wohin ich als nächstes gehen sollte.
Danke, Habr! Du bist cool!
Zusammenfassung des letzten Beitrags
Nachdem ich 14 Jahre als Ingenieur gearbeitet hatte, einschließlich eines Entwicklungsingenieurs, entschied ich mich, zu Programmierern zu wechseln, da ein Software-Ingenieur eine gefragte Spezialität mit höheren Löhnen, großen Perspektiven und Möglichkeiten ist.
Mein Weg
Dank des Feedbacks von Habr konnte ich zwei Entwicklungspfade klar formulieren.
Das erste ist, erneut zu versuchen, sich als Entwicklungsingenieur in Russland und im Ausland wiederzufinden. Glücklicherweise kamen mehrere persönliche Kontakte direkt aus den Kommentaren, so dass wir mehrere Versuche unternehmen konnten.
Der zweite Weg, der ebenfalls klar erkennbar ist, besteht darin, die Fähigkeiten des Programmierers für Mikrocontroller und eingebettete Systeme herunterzuladen und nach Anfangspositionen (Mitte Juni) in diesem Bereich zu suchen.
Als „kluger und schöner Affe“, der Zeit hatte, versuchte ich gleichzeitig in zwei Richtungen zu gehen. Er war aktiv in der Arbeitssuche tätig, auch im Ausland, und begann, seine Fähigkeiten in Controllern zu verbessern.
Sechs Monate später wurde klar, dass der erste Weg immer noch eine Sackgasse ist. Wir müssen zu den Programmierern gehen. Zufall veranlasste mich zu entlassen. Ich habe mich auf die Controller und die Jobsuche konzentriert, aber als Programmierer.
Unerwartet für mich selbst erhielt ich ein Angebot, als Freiberufler an einem Projekt zu arbeiten, das mich gleichzeitig sowohl als Programmierer von Controllern als auch als Entwicklungsingenieur einsetzte. Mein Leben als Freiberufler dauerte 8 Monate und endete mit Zahlungen auf Bestellungen. Aber meine Programmierkenntnisse sind in dieser Zeit sehr gewachsen, und so kehrte ich auf den Arbeitsmarkt zurück und suchte einen Job als Software-Ingenieur.
Nach den Ergebnissen eines der Interviews wurde ich zuerst zu einem Praktikum, dann zu einer Probezeit eingeladen, die nach und nach in einen unbefristeten Vertrag überging. Also wurde ich Embedded Software Engineer.
Aber lassen Sie uns die einzelnen Schritte etwas detaillierter beschreiben.
Ausgangsposition
Beginnt mit einem Entwicklungsingenieur. Tatsächlich bestand meine Arbeitshälfte aus der Entwicklung und dem Testen von Algorithmen, Hardware, einem Viertel der organisatorischen Probleme - Teammanagement, Beschaffung und Dokumentation sowie einem Viertel der Programmierung entwickelter Geräte.
Als Ingenieur der alten Schule hatte ich eine Vorliebe für theoretisches Wissen, und als ich hinter meinem Rücken gefeuert wurde, hatte ich bereits mehrere Kurse mit unterschiedlichem Nutzen:
Darüber hinaus gab es interessante, aber nutzlose Kurse aus der ITMO Academy HTML (HTML / CSS / JS),
" Projektmanagement " von der HSE und " Graphentheorie " von ITMO. Und auch die Hälfte des abgeschlossenen JavaRush- Kurses, der nach der Entscheidung für Embedded abgebrochen wurde.
In der Praxis hatte ich Erfahrung mit der Modellierung und Verarbeitung von Signalen, die mit meinen Geräten verbunden sind. Erfahrung im Schreiben von Firmware für Controller der SiliconLabs C8051-Serie, Atmel Junior-Controller und einige Entwicklungserfahrung für Altera-FPGAs.
Hinter mir lag auch die Erfahrung, ein Team und eine kleine Produktion zu leiten, aber ich hielt dies für irrelevant.
Auf der Suche nach einem Job
Das Thema Interviews verdient einen eigenen Beitrag. Es gab viele, sie gingen in Wellen vorbei.
Die Interviews waren sehr seltsam. Als ich zum Vorstellungsgespräch für die Position eines Programmierers kam, fragten sie mich, warum ich mit dieser Erfahrung nicht als Ingenieur arbeiten möchte. Bei einem Interview mit einem Ingenieur wurde ich wegen Programmiererfahrung gefoltert.
Es gab kurze Treffen, bei denen ich sagte: "Hör auf, du brauchst mich nicht." Im Gegensatz dazu war eine der Positionen ein Marathon von Interviews aus fünf zweistündigen Interviews auf Englisch über Skype. Es gab getarnte Militärs, zu denen ich im Prinzip nicht gehen wollte. Es gab eine Firma, die im Wesentlichen eine Genossenschaft von Freiberuflern war, die von einem Manager geführt wurde.
Das Hauptergebnis der meisten meiner Interviews war das Fehlen von Stellenangeboten, wo ich wollte, und die Verfügbarkeit von Stellen, bei denen ich nicht arbeiten wollte.
Leben in freiberuflicher Tätigkeit
Hier habe ich mich kopfüber mit allen Vor- und Nachteilen des Freelancings befasst, die auf Habré oft diskutiert wurden. Zeit ist für mich ein großes Plus geworden. Ich lebte in meinem Stadthaus in der Natur und verbrachte keine Zeit auf der Straße. Aber ich gab dem Projekt leicht 12 Stunden am Tag die Möglichkeit, die Wissenslücken, die ich beim Programmieren hatte, zu studieren und zu schließen. Ich tauchte in die Welt von STM32 ein, einschließlich FreeRTOS. Zuerst habe ich das Projekt verspottet, das ich für Discovery brauchte, dann habe ich ein Board erstellt und es für die 10x-Serie wiederholt. Parallel dazu habe ich Git und das Entwerfen für UML als Teil der notwendigen Aufgaben herausgefunden. Leider konnte ich nicht weit von zu Hause weg, da ich das Oszilloskop, den Lötkolben und das Netzteil bei mir tragen musste.
Gleichzeitig wurden Projekte im Zusammenhang mit Antennen und Radargeräten durchgeführt. Das Haupteinkommen brachte jedoch ein Kunde. Dieses Einkommen war übrigens eineinhalb Mal höher als mein Gehalt als Entwicklungsingenieur.
Zuerst begann der Kunde jedoch, die Zahlung der Stufen zu verzögern, aber ich ertrug es. Als er völlig aufhörte zu zahlen und vom Horizont verschwand, musste er seinen Gürtel enger schnallen und wieder nach Arbeit suchen.
Ja, alltäglich bekannt - schließen Sie einen Vertrag. Ich tauschte Geld gegen Erfahrung in freiberuflicher Tätigkeit und Programmierung.
Kampftest
Ich bin zum zweiten Mal in diese Firma gekommen. Der erste Versuch, die Testaufgabe zu lösen (eine kleine Aufgabe für den Mikrocontroller), führte nicht zu einem Interview. Ich rief zurück und fand heraus, was genau meiner Lösung nicht gefiel (wenige Kommentare, nur eine Lösung wurde vorgeschlagen). Der zweite Versuch sechs Monate später war erfolgreicher.
Interview mit einem Personalvertreter mit kleinen Tests. Das Gespräch mit dem zukünftigen Kollegen ist lang und gründlich. Insgesamt mehr als 2 Stunden. Ein Vorschlag für ein bezahltes „Praktikum“ für mehrere Tage.
Während des "Praktikums" schloss er ein paar Bugs. Er erhielt das Geld in seinen Händen zusammen mit dem Angebot einer Probezeit von drei Monaten.
Wir können sagen, dass ab diesem Zeitpunkt ein echter Tauchgang begann, ein halbes Jahr lang. Kurz während dieser Zeit:
- stürzte kopfüber in den gesamten Legacy Code Lake und kämpfte mit Insekten;
- Ich verschluckte mich an dem integrierten Linux, von Treibern bis zu Bash-Skripten.
- lief schnell durch SVN;
- erlernte Unit-Tests von GTest;
- beherrschte die CI-Methodik und konfigurierte seine Aufgaben mit einer Reihe von Hudson / Ant / Python -> Kompilierung + Komponententests;
- Qt und seine Widgets herausgefunden;
- pumpte die praktische Anwendung von FreeRTOS auf STM;
- schrieb Exit-Testskripte für ein neues Gerät;
- fast aufgehört, Betrüger-Syndrom zu fühlen.
Die ersten sechs Monate waren eine sehr aktive Zeit. Sie arbeiten 8 Stunden. Dann kommst du nach Hause und versuchst für den Rest der Zeit, dein Wissen und deine Fähigkeiten schnell zu verbessern, um die täglichen Aufgaben zu lösen. Am nächsten Tag kommen Sie zur Arbeit und versuchen, ein Problem mit neuem Wissen zu lösen.
Kollegen haben sehr geholfen. Wo praktische Ratschläge, wo nur Ideen.
Wenn Sie im Modus arbeiten: Es gibt ein Problem - Sie müssen es dringend lösen, dann geht das Training viel schneller. Die Hauptsache ist, nicht zu vergessen, ein bisschen breiter auszusehen und Zeit zu haben, um zu verstehen, was genau Sie tun.
Jetzt habe ich mich etwas verlangsamt, zumal ich im Winter in einen Zustand nahe dem Winterschlaf falle, aber ich arbeite nicht nur als Programmierer, sondern fühle mich auch danach. Legacy-Code, Sprints, Design, Tests, CI / CD in vollem Wachstum. Und ich mag das verdammt!
Das Gehalt im Vergleich zum Entwicklungsingenieur hat sich mehr als verdoppelt. Keine Verarbeitung oder unklare Anforderungen. Dies ist sogar mehr als ich erwartet hatte, als ich zu den Programmierern gehen wollte.
Was weiter...
Hör nicht auf. Dies ist nicht schwierig, da die Programmierung in den Prozess hineingezogen werden kann. Nach dem Start ist es sehr schwierig aufzuhören.
Studieren. Weil es in meinem Wissen immer noch viele weiße Flecken gibt, auch theoretische. Und wie nicht genug praktisch.
Ich möchte mich wirklich mit meinem Projekt befassen, zumal ich ein paar Ideen im Kopf habe und zwei interessante Schals an den Händen habe.
Einschreibung in ein paar Kursen. Algorithmen und Datenbanken.
Ich möchte in derselben Sphäre zum Herrn gelangen, aber wir werden sehen.
Fazit
Die Hauptbotschaft dieses Textes ist, dass ich in zwei Jahren von einem Entwicklungsingenieur Softwareentwickler für eingebettete Systeme werden konnte. Wenn ich nicht in vergeblichen Hoffnungen und mit Füßen getreten hätte, hätte ich mich definitiv innerhalb von anderthalb Jahren gehalten.
Wichtig und notwendig war die Kenntnis der Theorie. Grundlegende Konzepte, Eisen, Linux, Controller.
Was eindeutig nicht genug war - üben. Jedes meiner Projekte mit dem obligatorischen schönen Code und den Kommentaren fehlte schmerzlich, wenn ich nach einem Job suchte.
Vertrauen, dass alles klappen wird. Ich hatte inspirierende Kommentare zu Habré und "starkem Rücken", die an mich glaubten.
Nochmals vielen Dank an alle!