STUFE 1. Training
Ich bin bewusst zu JavaRush gekommen: eine angemessene monatliche Preisliste, eine klare Struktur des Materials, viel Übung und die Präsenz meiner eigenen Community. Der erste Punkt ist klar, aber das Erlernen einer Sprache ohne Struktur ist ziemlich schwierig, und ein solches Training hinterlässt mit Sicherheit gravierende Lücken in Java Core. Die Erfahrung aus Interviews und technischen Spezifikationen zeigt, dass Fragen zum „Kern“ für alles verwendet werden können: von der bitweisen Verschiebung und dem Casting von Generika bis hin zu IO und Serialisierung. Übung ist ein Muss; Ich kann immer noch nur die Hälfte der Dinge verstehen und merken, wenn ich sie selbst geschrieben habe. Nun, die Community: Sie haben das Problem gelöst – geben Sie in den Kommentaren damit an; Wenn Sie sich noch nicht entschieden haben, können Sie gerne Fragen stellen, aber höchstwahrscheinlich wird Ihnen niemand eine fertige Lösung geben. Und selbst nach Abschluss des Kurses bin ich wieder zu benutzerdefinierten Artikeln zu kostenlosen Themen zurückgekehrt, da gibt es für den Anfang viele gute Dinge (insbesondere die ersten Erfahrungen mit Frameworks anhand von Schritt-für-Schritt-Beispielen + Fragen für Interviews). Im Allgemeinen bin ich diesem Projekt für die Basis dankbar, die ich erhalten habe, aber ich würde mich nicht nur auf JavaRush verlassen – derselbe Shildt geht am besten „überlappend“ mit dem untersuchten Thema um und enthüllt oft einige Punkte. In den Rezensionen wurde bereits viel über Aufgaben gesagt, die manchmal über die Theorie hinausgehen und einen zu Google zwingen. Für mich ist das eher ein Plus als ein Minus – und es ist keine Tatsache, dass die Situation jetzt die gleiche ist wie zu meiner Studienzeit. Sofortiger Rat für diejenigen, die wie ich „von Grund auf“ in Java einsteigen : Irgendwann kann es sein, dass Sie sich langweilen oder Schwierigkeiten haben:-
Es ist für jeden schwer, bei Null anzufangen; Gott bewahre, nur 5 % der Menschen erreichen das Ende des Kurses. Ihre Aufgabe ist es, einer von ihnen zu werden.
-
Nach ein oder zwei Monaten wurde mein Interesse geweckt, als die Aufgaben schwieriger und interessanter wurden. Sei geduldig.
- Die Hauptsache ist der wöchentliche Fortschritt. Nach zwei Wochen Ruhe ist die Rückkehr bereits schwierig und nicht jeder kann mehrere Monate hintereinander jeden Tag schreiben. Legen Sie für die Woche ein Stundenlimit fest – zum Beispiel 15. Sie können an jedem Wochentag 1,5 Stunden und an beiden Wochenenden weitere 3–4 Stunden programmieren, oder Sie können sich ein paar Abende frei nehmen, aber das „Wochenendlimit“ wird es tun Zunahme. Auf diese Weise wird der Zeitplan flexibel, aber regelmäßig sein. Natürlich wird es dann möglich sein, die Arbeit anhand von Aufgaben und Projekten zu messen, aber auf Syntax- und Kernel-Ebene reichen Stunden aus.
STUFE 2. Selbstbildung
Deshalb habe ich das Praktikum nicht bekommen: Ich hatte nur ein paar Tage Zeit, um mich mit den technischen Anforderungen zu befassen, bis ich in die Gruppe aufgenommen wurde, und hatte keine Zeit, mich mit den Anforderungen auseinanderzusetzen – es gab zu viele unbekannte Wörter. Weil Ich wollte nicht noch drei Monate warten, sondern beschloss, alleine weiterzumachen. Glücklicherweise gibt es Anleitungen und Video-Tutorials für alle gängigen Frameworks. In den nächsten Monaten beschäftigte ich mich mit Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS, beherrschte SQL und versuchte, alles zu einem Ganzen zusammenzufügen. Sechs Monate später hatte ich Projekte, die jetzt beängstigend anzusehen sind, aber ich sammelte praktische Erfahrungen im Umgang mit „erwachsenen“ Frameworks und einem GitHub, die auf Wunsch eines potenziellen Arbeitgebers gezeigt werden konnten. Hinweis :-
Je früher Sie etwas über .gitignore erfahren, desto besser. ;)
-
Viele Leitfäden enthalten mehrere Frameworks gleichzeitig; Verwenden Sie dies und fügen Sie Ihre eigenen hinzu. Wir haben einen Online-Shop mit Maven + Spring Boot + Data geschrieben – Autorisierung, Komponententests und Protokollierung hinzugefügt.
-
Für Webprojekte können Sie kostenlose Frontend-Vorlagen aus dem Internet nehmen – sie sind angenehmer zu bearbeiten, sie sehen als Screenshots in der README auf Git besser aus. Gleichzeitig können Sie sich HTML und CSS merken – wahrscheinlich möchten Sie die Stile und das Layout korrigieren.
Was mir gefehlt hat (später habe ich mich bei einem Vorstellungsgespräch verbrannt)
-
Algorithmen. Um meine Fehler zu vermeiden, empfehle ich sofort ein kurzes Buch auf Russisch, „Grocking Algorithms“. Was ist die Komplexität von Algorithmen, woraus besteht sie, warum reicht Quicksort nicht aus, eine Einführung in die Graphentheorie – alles ist da und in der verständlichsten Sprache.
-
Sammlungen „unter der Haube“. Ich kann mich nicht erinnern, ob dies in JavaRush der Fall war, aber es ist nützlich zu wissen, wie HashMap.get() funktioniert oder warum ein HashSet nicht garantiert die Elementreihenfolge beibehält. Nochmals: Welche Sammlungen sind Thread-sicher und warum?
-
SQL. Sie benötigen mindestens bis zu JOINs – was sie sind, wie sie funktionieren und die Fähigkeit, im Handumdrehen ein SELECT auf zwei Tabellen auf Papier zu schreiben. Ich empfehle www.sql-ex.ru: Es bringt Sie in ein oder zwei Tagen auf das gewünschte Niveau.
-
Spring Core: Welche Annotationen gibt es, was ist ein Kontext, wie werden Beans erstellt, welcher Bean Scope ist Thread-sicher und wie löst man die gegenseitige Injektion – alles Interviewfragen. So geben Sie eine Seite zurück, wie geben Sie JSON zurück usw. Ich lese gerade „Spring 5 for Professionals“ auf Russisch, aber im Allgemeinen empfehlen sie „Spring in Action“.
STUFE 3. Jobsuche
Tatsächlich habe ich in den ersten paar Monaten nach Abschluss meiner Heimprojekte etwa 30 Antworten auf verschiedene offene Stellen für Junior-/Trainee-Mitarbeiter gesendet (über HH, LinkedIn, Personalvermittlungsagenturen), mit nahezu null Ergebnissen. Ich konzentrierte mich nur auf offene Stellen ohne Erfahrung, gab ehrlich einen mir bekannten Stapel an und schrieb in Anschreiben über meine hohe Lernfähigkeit. Das Ergebnis sind zwei Anrufe (von denen einer sofort in meinem Vor-Mittelstufe-Englisch endete), zwei weitere Unternehmen schickten technische Spezifikationen, es gab nur ein „Treffen“ und dann war ich alleine dort und löste Probleme zu Algorithmen auf einem Blatt Papier. Danach nahm die Personalabteilung einfach die Papiere weg und sagte: „Wir rufen Sie an.“ Ich habe versucht, ein paar Praktika (unbezahlt und bedingt bezahlt) zu bekommen: Ich habe die technische Spezifikation gemacht, bin aber nicht über die endgültige Sozialversicherung hinausgekommen; Aber jetzt kann ich sagen, dass Auszubildende auf jeden Fall von T-Systems, CFT, Andersen und EPAM eingestellt werden (die Bewertungen sind gemischt, entscheiden Sie selbst). Für mich ist es ein guter Einstieg in das Feld, wenn man die Möglichkeit hat, mehrere Monate ohne Einkommen zu sitzen und nicht zu sterben =) Im Allgemeinen wurde ich nach dieser Erfahrung etwas deprimiert und habe die ganze Geschichte mit der Suche auf Eis gelegt Fast sechs Monate lang habe ich weiter am vorherigen Profil gearbeitet, einige Anwendungen nur zum Spaß geschrieben, sie aber nicht einmal auf Git gepostet. Bis ich einen Bekannten traf, dem ich beiläufig von den Misserfolgen bei offenen Stellen erzählte: Damals arbeitete er bereits als Mittelentwickler, begann aber genauso – mit dem Selbststudium. Ein Bekannter gab mir ein paar Empfehlungen , die er selbst nutzte und die mir bei meiner zukünftigen Jobsuche sehr geholfen haben. Ob Sie ihnen folgen oder nicht, liegt bei Ihnen, denn... Sie sind in gewisser Weise nicht ganz ehrlich. Also weitere Zitate:-
Sorgen Sie in Ihrem Lebenslauf auf jeden Fall für mehr als 6 Monate Berufserfahrung: Praktika, Abschlussarbeiten, freiberufliche Tätigkeit, Remote-Arbeit – was auch immer. Dies wird in der Phase der ersten Prüfung von Lebensläufen durch die Personalabteilung eine große Hilfe sein;
-
Entfernen Sie das Wort „Junior“ und das erwartete Gehalt aus Ihrem Lebenslauf. Belassen Sie es einfach beim Java-Entwickler und besprechen Sie das Geld individuell mit jedem Unternehmen.
-
Versuchen Sie, dass die Personalabteilung den „Fork“ des vorgeschlagenen Gehalts nennt, bevor Sie Ihre Erwartungen nennen. Wenn ein Unternehmen 80.000 bis 120.000 Euro anbietet und Sie 40.000 Euro oder mehr suchen, werden Sie von einigen Anbietern mit Verachtung behandelt.
-
Bewerben Sie sich auf alle offenen Stellen, die zu Ihnen passen, auch wenn diese 1–3 Jahre kaufmännische Erfahrung erfordern.
-
Fügen Sie in Ihren Lebenslauf den gesamten Stapel an Sprachen, Technologien und Frameworks ein, mit denen Sie gearbeitet haben.
-
Registrieren Sie sich auf LinkedIn – dort sind wirklich viele HR-Leute aus verschiedenen Unternehmen. Füllen Sie Ihr Profil sorgfältig aus – tatsächlich ist dies auch Ihr Lebenslauf. Um Ihr Kontaktnetzwerk auszubauen, fügen Sie LIONs hinzu, die für Ihr Profil relevant sind. Sie akzeptieren Anfragen von allen Benutzern.
-
Probieren Sie sich in kostenlosen Java-Tests aus – diese werden oft vor dem Junior-Interview auf Papier durchgeführt. Es ist besser, sich im Voraus vorzubereiten.
-
Sie fragen immer nach den Kollektionen: Welche gibt es, wie unterscheiden sie sich, wann kann man sie am besten nutzen?
-
Immer bei abstrakten Klassen und Schnittstellen – können sie Methoden und Felder haben, welche, können sie vererbt werden usw.
-
Fast immer zum Thema Multithreading – was Sie in Ihrer Arbeit verwendet haben, Schlüsselwörter, Methoden, sind Sie mit util.concurrent vertraut?
-
Bei der Arbeit mit dem Speicher kommt es häufig vor, dass der Heap und der Stapel gleich sind und ob diese Zeichenfolgen und diese Objekte gleich sind.
-
Manchmal über Algorithmen – welche kennen Sie, welche Komplexität, warum, können Sie jetzt einen Algorithmus schreiben?
-
Schreiben Sie manchmal basierend auf Mustern – welche Sie kennen, welche Sie verwenden – einen Singleton oder eine Factory.
-
Manchmal in SQL - Arten von JOINs, was eine Transaktion ist, wie man sie in JDBC durchführt, schreiben Sie eine kurze Abfrage.
-
Seite „Geschäftskontakte“ im Salesforce-Profil mit Bearbeitung und Hinzufügen neuer Datensätze;
-
Simulation eines Aufzugs in einem mehrstöckigen Gebäude mithilfe der Spring State Machine mit Konsolensteuerung;
-
Android-Anwendung basierend auf der LibGDX-Bibliothek mit zeichenweiser Textausgabe bei Tastendruck;
-
REST-Imitation von Carsharing, mit Hinzufügen von Clients über eine HTTP-Anfrage und Rückgabe von JSON;
-
Problem beim Sortieren eines ungerichteten Graphen durch eine freie Zelle;
-
Suche nach gleichschenkligen Dreiecken mithilfe von Koordinaten aus einer Datei;
-
Refactoring des fertigen Codes mithilfe der Stream-API;
-
UI-Rechner mit Unterstützung für ternäre Ausdrücke;
-
Rennen der Threads mit dem Schreiben der Ergebnisse in eine Datei.
-
Versuchen Sie nicht nur, die Aufgabe abzuschließen, sondern auch sicherzustellen, dass der Code den OOP-Prinzipien entspricht.
-
Überprüfen Sie Ihren Code auf Effizienz – ich wurde einmal abgelehnt, weil ich unter anderem PrintStream anstelle von BufferedWriter verwendet habe.
-
Planen Sie Ihre Ausführungszeit mit einer Marge von 50 % – es ist besser, früher zu beginnen und fertig zu werden, als um acht Uhr morgens nach Ablauf der Frist einen Git-Push durchzuführen.
GO TO FULL VERSION