Mein Name ist Sergey, ich bin 40 Jahre alt und arbeite jetzt als Java-Entwickler in einer deutschen Firma. Wir entwickeln Software für Brauerei Einschätzung von Finanz- und Kreditrisiken. Dies ist mein erster Job als Entwickler. Zuvor war ich im Bereich IT-Support und Systemintegration tätig. Am 1. Februar 2019 endete meine sechsmonatige Probezeit und ich habe einen unbefristeten Vertrag. Ich möchte meine Erfahrungen darüber teilen, wie man Java unabhängig lernt, um einen Job zu bekommen.

Das ist mein Desktop. Wir dürfen während der Arbeitszeit Bier trinken, wir sind in Deutschland.
Mein erster Artikel: „ IT-Auswanderung mit der Familie. Und vor allem die Jobsuche in einer kleinen Stadt in Deutschland, wenn Sie schon da sind. “
Mein zweiter Artikel: " In Deutschland einen Job zu finden wird einfacher ."
Haftungsausschluss
Ich sage sofort, dass alle Arten von "Lernen, in 10 Tagen zu erscheinen" (21 Tage, 30 Tage usw.) Utopie sind. Es gibt keine rote Pille, um schnell in die Matrix zu gelangen. Aber für ein oder zwei Jahre parallel zum Hauptarbeitsplatz - es ist ziemlich real.
Was ich in meinem Vermögen hatte, bevor ich anfing, Java zu lernen
Zuerst wollte ich den Artikel „Wie man in 1,5 Jahren von Grund auf Java-Entwickler wird“ nennen, aber ich habe es mir anders überlegt. Ich bin nicht aus einem ganz anderen Bereich zum Programmieren gekommen, sondern aus der IT. Aber ich habe nicht in der Entwicklung gearbeitet, sondern in der Unterstützung. Es ist wahrscheinlich, dass es für einen Trucker nicht einfach sein wird, meine Schritte zu wiederholen, um Programmierer zu werden. Wenn es meiner Frau mit 34 gelingt, von den reinen Geisteswissenschaften zu einem Entwickler (oder Tester) zurückzukehren, werde ich einen weiteren Artikel schreiben.
Es ist erwähnenswert, dass ich bereits wusste, als ich mich entschied, Entwickler zu werden.
An der Universität haben wir 2 Semester lang Programmieren in C und C ++ studiert. Nichts Besonderes oder tiefes Wissen. Übergeben - vergessen. Außerdem habe ich als Student einige einfache Delphi-Programme für mich geschrieben. Und alle. Das war vor über 20 Jahren.
Dann sah meine Karriere so aus:
- Systemadministrator
- Systemingenieur
- Stellvertreter Abteilungsleiter
- Supervisor
- Ingenieur von denen. Unterstützung
Ich habe nicht direkt programmiert.
Mein Weg
Online-Kurse.
Ich habe mit den folgenden Spezialisierungen auf coursera.org begonnen :
Grundlagen der Java-Programmierung und Softwareentwicklung - 4 Monate
Ich habe folgende Online-Kurse besucht:
Nach dieser Spezialisierung war ich mehr oder weniger mit der Sprache vertraut, aber das Programm selbst zu schreiben war immer noch unrealistisch. Das letzte Schlusssteinprojekt habe ich nicht gemacht. Es war schwer für mich. Und um ehrlich zu sein, habe ich meine Begeisterung verloren. Ich machte eine Pause.
Objektorientierte Java-Programmierung: Datenstrukturen und darüber hinaus - 5 Monate
Nach einem Monat beschloss ich, wieder in den Unterricht zurückzukehren. Ich habe mich aus fünf Kursen spezialisiert:
Ich habe auch das letzte Schlusssteinprojekt nicht gemeistert. Der vorletzte Kurs auf der Liste der Mastering the Software Engineering-Interviews hat mir jedoch geholfen, mich gut auf das nächste Interview vorzubereiten. Und ich konnte meinen ersten unprätentiösen Parser einer einfachen Site in reinem HTML schreiben. Es war schon gut, aber nicht beeindruckend.
Wie man codiert - 3 Monate
Der nächste Schritt waren diese beiden seltsamen Kurse auf edx.org :
Ich habe "komisch" geschrieben, weil es überhaupt nicht um Java geht. Die Kursautoren verwenden die spezielle Programmiersprache Beginning Student Language (BSL). Ich habe irgendwo gelesen, dass sie sehr nützlich sind. Vielleicht haben mir diese beiden Kurse geholfen, einige der Tricks zum Schreiben von Programmen besser zu verstehen, und wurden zu einer guten Hilfe beim Schreiben von Unit-Tests in der realen Arbeit. Aber um ehrlich zu sein, können Sie sie überspringen.
Datenstrukturen und Algorithmen - 2 Monate
Dann kehrte ich wieder zu coursera.org zurück und begann eine neue Spezialisierung, die aus den folgenden vier Kursen bestand:
Aber nur die ersten beiden gemeistert. Der Rest hat sich nicht einmal angemeldet. Parallel zu diesen Kursen begann ich, das OCA-Buch zu lesen, das später besprochen wird.
Auf der Stelle stampfen
In diesem Moment wurde mir klar, dass ich herummarschierte. Das Bestehen neuer Kurse brachte nicht so viel neues Wissen hervor wie die ersten. Das heißt, Wissen scheint hinzugefügt zu werden, aber das bringt mich dem Job nicht näher. Ich habe nicht verstanden, wie man mit solchen Kenntnissen im Allgemeinen einen Job finden kann. Ich konnte immer noch nichts schreiben, was komplizierter wäre als der Parser. Nun, wie ist das?!?!? Ich habe sogar versucht, meinen Site-Parsing-Service mit Blackjack und Nutten zu schreiben, aber nach einer Woche der Entwicklung wurde mein Projekt zu einem Durcheinander von Klassen. Und ich selbst konnte nicht mehr herausfinden, was ich dort schrieb. Außerdem habe ich einige Aspekte der Funktionsweise der Sprache immer noch nicht verstanden. Und das ist, nachdem ich schon ungefähr ein Jahr mit all diesen Kursen verbracht habe !!! Zwölf Online-Kurse und ein ganzes Jahr Zeit, Carl, du denkst nur darüber nach. In der Tat war es ein Misserfolg. Ich war mir sicher, dass ich dank dieser Kurse in einem Jahr Entwickler werden könnte. Ich habe mich geirrt Ich brauchte einen Plan B.
Alternative
Ich begann nach Kursen zu suchen, die mir helfen würden, einige praktische Fähigkeiten zu erwerben, die in der realen Arbeit gefragt sind. Aber es gab nichts Vernünftiges oder es war anständiges Geld wert. Die gleichen Kurse von otus kosten sechs Monate lang 50.000 und die Bewertungen sind widersprüchlich. Auf solche Ausgaben war ich nicht vorbereitet. Ich war bereit, mich selbstständig zu machen und suchte nach Möglichkeiten, wie dies kostenlos oder sehr kostengünstig durchgeführt werden kann. Infolgedessen wurden alle Online-Kurse, auf die ich gestoßen bin, in zwei Kategorien unterteilt:
- Die erste ist für Anfänger oder Personen ohne Training konzipiert. Mit ihrer Hilfe erreichen Sie die Stufe "Drei mit Minus". Das bin ich! Hier geht es um mich!
- Die zweite ist für „gute Jungs“ mit Berufserfahrung, die „exzellente Studenten“ werden wollen. So: "Wie schreibe ich Microservices in Java für Hochlastprojekte mit WildFly Swarm?" Worum geht es hier ???
Und zwischen ihnen eine klaffende Leere. Nun, wo bin ich und wo sind all diese Microservices ??? Es stellte sich heraus, dass es für die „Trochiks“ überhaupt nichts gibt. Oder gibt es, aber für gutes Geld. Und wie man ohne Registrierung und SMS kostenlos ein „guter Kerl“ wird, ist im Allgemeinen unklar.
Oracle-Zertifizierung
Dann habe ich mich entschlossen, zertifizierter Java-Entwickler zu werden. Denn der Satz "Ich bin ein professioneller Java-Programmierer" klingt sehr cool und sollte den zukünftigen Arbeitgeber sofort besiegen !!! Auf jeden Fall dachte ich dann so naiv.
OCA: Oracle Certified Associate Java SE 8-Programmierer - 2 Monate
Dafür habe ich ein Buch gekauft:
OCA: Oracle Certified Associate Java SE 8 Programmierer I Studienhandbuch: Prüfung 1Z0-808 Ich habe ungefähr 2 Monate gebraucht, um dieses Buch zu beherrschen. Sie öffnete mir wirklich die Augen für viele Aspekte und ließ mich verstehen, wie die Sprache im Detail funktioniert. Es war ein guter Schritt vorwärts. Aber nicht bei der Jobsuche, sondern beim Verstehen der Java-Sprache. Ich ging mit der Zuversicht zur Prüfung, dass ich sie gut bestehen würde, und ich bestand sie. Ich habe 84% mit den erforderlichen 65% erzielt. Ich war sehr stolz auf mich.
Die Kosten für die Prüfung betragen 245 US-Dollar. In Russland kostet es etwas billiger.
Schätzen Sie die Kosten für eine offizielle Schulung von Oracle zur Vorbereitung auf diese Prüfung OCP: Oracle Certified Professional Java SE 8-Programmierer - 4 Monate
Ich habe mich begeistert für das zweite Buch der gleichen Autoren entschieden:
OCP: Oracle Certified Professional Java SE 8 Programmer II-Studienhandbuch: Prüfung 1Z0-809 Für die Entwicklung des zweiten Buches habe ich bereits 4 Monate verbracht. Und es stellte sich als sehr schwierig heraus. Zweimal machte ich eine Woche Pausen, weil es für mich wirklich schwierig war, Lambda-Ausdrücke oder Multithreading zu verstehen. Auch die Fülle an Klassen für Input und Output hat mich umgebracht. All diese NIO und NIO2, die so ähnlich sind und die Sie wissen mussten. Was ist eine Basisklasse, die abgeleitet hat? Es war ein wahrer Albtraum. Infolgedessen habe ich den Prüfungstermin auf einen Monat festgelegt und ihn dann auf zwei Wochen und dann auf zwei weitere verschoben. Mir ging die Zeit davon, ein Interview zeichnete sich am Horizont ab. Und ich brauchte dieses Zertifikat. Ich habe die Prüfung nicht ein drittes Mal abgelegt und bin mit dem gegangen, was ich hatte. Im Gegensatz zur ersten Prüfung war ich mir eines guten Ergebnisses nicht mehr sicher. Ich war mir überhaupt nicht sicher, ob ich es schaffen konnte. Es gab keine Spur von vergangenem Stolz. Die Menge an Informationen zum Verstehen und Erinnern im zweiten Buch ist fünfmal höher als im ersten. Aber ich habe diese Prüfung auch bestanden. Glücklicherweise erwiesen sich Testaufgaben in Büchern als schwieriger als die Prüfungsaufgaben. Aber es war ein Durchbruch ... für mich. Ein Durchbruch in Bezug auf Wissen und Verständnis darüber, wie die Sprache funktioniert und welche Tools sie bietet.
Die Kosten für die Prüfung betragen ebenfalls 245 USD.
Ich kann sagen, dass diese beiden Bücher mir mehr gegeben haben als all die Online-Kurse, die ich zuvor besucht habe. Aber ich weiß nicht, ob ich diese Prüfungen überhaupt bestehen könnte, wenn ich vorher nicht an den Kursen teilgenommen hätte. Mit Hilfe dieser Prüfungen bin ich auf die Stufe „drei plus“ übergegangen. Und das war schon was. Aber ich konnte auch kein interessantes Projekt eigenständig umsetzen. WTF ????
Mir wurde klar, dass ich das Maximum erreicht hatte, was ich selbst erreichen konnte, und das weitere Erlernen der Sprache war sinnlos. Außerdem habe ich verstanden, dass mein Wissen, das ich so schwer zu erlangen hatte, ohne Übung schnell verschwindet. Es war unmöglich zu ziehen, und ich begann mich auf das Vorstellungsgespräch vorzubereiten und die Fähigkeiten zu erwerben, die bei der Bewerbung um einen Job erforderlich sein könnten.
Was brauchst du, um einen Job zu bekommen?
Müssen ein Interview und ein technisches Interview durchlaufen! Ich werde nicht über die Vorbereitung des Interviews schreiben. Dies ist ein Thema für einen separaten Artikel. Ich werde nur über das Wissen schreiben, das erforderlich ist, um ein technisches Interview zu bestehen.
Vorbereitung auf das Interview - 1 Monat
Ich habe folgendes Buch gekauft:
Cracking the Coding Interview, 6. Ausgabe: 189 Programmierfragen und -lösungen Ich kann es nur empfehlen. Sie wird helfen, sich auf den technischen Teil des Interviews vorzubereiten. Ich habe ungefähr einen Monat damit verbracht. Viele Aufgaben waren unverständlich, deshalb fand ich eine weitere Kopie auf Russisch, und als sie für mich völlig unverständlich war, habe ich sie mir angesehen.
Zusätzliche Fähigkeiten
Zu diesem Zeitpunkt habe ich den Arbeitsmarkt in meiner Stadt bereits aktiv überwacht und das Unternehmen ausgewählt, in dem ich arbeiten möchte. Sie hatten eine freie Stelle als Java Developer. Zu den gewünschten Fähigkeiten in der Stelle gehörten Kenntnisse in Oracle SQL, GWT, Eclipse, SVN, Maven und Jenkins. Ich brauchte keine gründlichen Kenntnisse über all diese Technologien, ich brauchte ein einfaches Verständnis dafür, was es ist und wie es funktioniert. Damit man beim Interview sagen kann, ja, ich weiß, aber nicht tief.
Oracle SQL - 1 Woche
Ich kannte SQL bereits recht gut, da ich aus Pflichtgründen viele willkürliche Berichte für das Management erstellen musste. Aber es war T-SQL von Microsoft, und hier war SQL von Oracle erforderlich. Ich musste ein Buch kaufen, um mich an die wichtigsten Punkte zu erinnern und den Unterschied zu verstehen.
OCA Oracle Database SQL-Prüfungshandbuch (Prüfung 1Z0-071) Ich habe dieses Buch schnell in einer Woche veröffentlicht. Und mir wurde klar, dass ich zu 70% bereit bin, eine weitere Prüfung zu bestehen. Aber ich war nicht mehr dazu bereit.
SVN - 1 Woche
SVN verteiltes Versionskontrollsystem. GIT oder SVN wird in den meisten Softwareentwicklungsunternehmen verwendet. Da ich keine SVN-Kurse gefunden habe, habe ich mich für einen kurzen Kurs über GIT entschieden: „ Versionskontrolle mit Git “, um über das Thema auf dem Laufenden zu bleiben. Ich dachte sogar, wenn sie nach SVN fragen, werde ich sagen, dass ich es mit GIT zu tun habe. Und dann werde ich mich sofort orientieren. Wenn plötzlich etwas nicht mehr klar ist, kann man immer sagen, dass es in GIT etwas anders ist. Und das hat übrigens funktioniert.
GWT - 3 Tage
Die nächste Technologie auf der Liste ist GWT. Nachdem ich mehrere Tage nach Informationen gesucht hatte, stellte ich fest, dass ich dieses Google Framework einfach nicht herausfinden kann. Wenn vereinfacht, können Sie komplexe Websites in Java schreiben. Dieses Framework konvertiert Ihren Code in HTML + JavaScript und zeigt ihn im Browser ohne Add-Ons oder Add-Ons an. Zu cool. GWT Ich habe mich entschieden zu überspringen.
Sonnenfinsternis - 3 Tage
Eclipse ist eine Entwicklungsumgebung, das wichtigste Entwicklertool, mit dem ich mich jeden Tag beschäftige. Ich habe keine speziellen Kurse besucht. Ich habe mehrere Videos auf Youtube gesehen und die grundlegenden Techniken verstanden. Ich habe alles selbst mit meinen Händen versucht.
Maven, Jenkins - 15 Minuten.
Für diese beiden Dinge bleibt einfach keine Zeit mehr. Das Interview war bereits am Morgen, also habe ich gerade 2 Wikipedia-Artikel gelesen und bin ins Bett gegangen.
Zusammenfassung
Zeit
Ich brauchte ungefähr 18 Monate, 2 Wochen, 6 Tage und 15 Minuten, um das Wissen und die Fähigkeiten zu erlangen, die erforderlich waren, um einen Entwicklerplatz zu bekommen. Ich habe das abends gemacht und an Wochentagen 1-3 Stunden verbracht. Und ungefähr 5-6 Stunden am Wochenende.
Geld
Ich war bereit, meine Zeit zu verbringen und war nicht bereit, Geld auszugeben. Aber ich musste sie trotzdem ausgeben.
Kurse:
- Alle Online-Kurse, die ich kostenlos besucht habe . Kostenlos . Wie das auf coursera.org geht, habe ich hier geschrieben .
Bücher:
Prüfungen:
Zusätzliche Kosten:
- Reisen Sie in eine andere Stadt für Prüfungen, als In meinem gibt es keine Zertifizierungsstellen - 120 €.
Gesamt: 702 €
Leider hat es nicht ganz kostenlos funktioniert. Ich habe Bücher auf Englisch gekauft, weil Die Prüfung ist auch in Englisch.
Ergebnis
Dieses Wissen reichte aus, um ein Interview zu führen und einen Vertrag mit einem ausreichend coolen deutschen Unternehmen zu unterschreiben. Ich würde sogar sagen, dass sie mit einem Rand genug waren.
Sie reichten auch aus, um eine sechsmonatige Testphase zu durchlaufen und einen festen Platz im Personal der Entwickler zu bekommen.
Während dieser 6 Monate als Entwickler habe ich mehr als 200 Anwendungen für die Entwicklung, Vervollständigung und Korrektur von Fehlern im Code völlig unterschiedlicher Subsysteme und Module geschlossen. Und ich habe keinen einzigen Antrag abgelehnt, "weil ich nicht konnte". Ja, ich musste und muss jetzt neue Dinge verstehen, nach Informationen suchen, mich mit den Details befassen. Ich mache etwas langsam, aber es ist interessant für mich und der Prozess geht weiter. Und sie zahlen gut dafür !!!
Aber denke nicht, dass ich sehr schlau bin. Ich bin der einfachste Typ, der gerade beschlossen hat, sein Leben zum Besseren zu verändern. Ich bin genau wie du. Und wenn ich könnte, dann kannst du es auch!
Express ist der Weg
Um Entwickler zu werden, habe ich nicht 1,5 Jahre gebraucht, sondern zwei. Aber das liegt an meiner eigenen Dummheit (lesen Sie darüber in meinem Telegrammkanal ). Direkt in der Realität habe ich 1,5 Jahre verbracht. Es ist jedoch nicht notwendig, meine Fehler zu wiederholen. Ich denke, dass es möglich ist, das gleiche Ergebnis in kürzerer Zeit zu erzielen. Wir werfen den ganzen Überschuss weg und bekommen so etwas:
Teil eins - 5 Monate
Wir absolvieren die folgenden Spezialisierungskurse für objektorientierte Java-Programmierung: Datenstrukturen und darüber hinaus auf dem Cursor:
Parallel dazu lesen wir ein Buch:
Basierend auf den Ergebnissen bestehen wir die Prüfung.
Teil zwei - 2 Monate
Wir nehmen an folgenden Spezialisierungskursen für Datenstrukturen und Algorithmen teil:
Parallel dazu lesen wir ein Buch:
Teil Drei - 4 Monate
Wir lesen das Buch:
Basierend auf den Ergebnissen bestehen wir die Prüfung.
Teil vier - 1 Monat
Wir schauen uns genau an, was der Arbeitgeber von den Arbeitssuchenden erwartet, und verbringen eine Woche mit jeder der 4 am meisten benötigten Technologien, Programme oder Frameworks (Git, Eclipse, Maven, Spring usw.). Außerdem untersuchen wir den Themenbereich, in dem der Arbeitgeber arbeitet, seine Produkte, falls vorhanden usw.
Gesamtjahr. Für ein Jahr - es ist ziemlich real.
Bleiben Sie in Kontakt
Wie ich mein Leben im Alter von 40 Jahren verändert habe und mit meiner Frau und drei Kindern nach Deutschland gezogen bin, schreibe ich in meinem Telegrammkanal @LiveAndWorkInGermany . Ich schreibe darüber, wie es war, was in Deutschland gut und was schlecht ist und was für die Zukunft geplant ist. Kurz und geschäftlich. Mach mit - es wird interessant.