JavaRush /Java-Blog /Random-DE /Der Trick, oder wie man ohne Java-Erfahrung einen Job als...
Юрий
Level 30
Москва

Der Trick, oder wie man ohne Java-Erfahrung einen Job als mittlerer Java-Entwickler bekommt

Veröffentlicht in der Gruppe Random-DE
Grüße an alle Java-Studenten und -Profis. Vielleicht ist meine Geschichte für einige ein Beispiel dafür, wie man es macht, und für andere – wie man es nicht macht. Es ist der 19. Oktober 2021 und heute habe ich eine Probezeit (3 Monate) als Java-Mittelentwickler in einem großen Unternehmen absolviert. Ich hatte keine Erfahrung in der Java-Entwicklung. Bis zum 4. Juni 2020 wusste ich nichts über Java. Als ich als Javaist eingestellt wurde, versprach ich, dass ich eine Erfolgsgeschichte schreiben würde, wenn ich die Probezeit bestehe. Dieser Artikel wird in zwei logische Teile unterteilt: Beruflicher Hintergrund ( Kapitel 1-5, nicht mit Java verbunden)., in dem Sie aber Wissen über Ihren beruflichen Werdegang erwerben können). Javaist werden (Kapitel 6-9 – Java lernen, Vorstellungsgespräche, einen Job finden, erste echte Erfahrungen). <h3>Kapitel 1. Wirtschaftswissenschaftler</h3>Um zu verstehen, mit welchem ​​Wissensstand ich zu JavaRush gekommen bin, muss ich eine biografische Anmerkung zu meiner Person machen. 2013, November, 8 Uhr. Ich sitze in einem Café auf Taganka und wiederhole SQL-Anweisungen. In einer Stunde habe ich ein Vorstellungsgespräch für die Position des führenden Ökonomen in der Finanzabteilung der Bank. Dies ist das einzige Interview, zu dem ich eingeladen wurde, und ich muss 100 % geben. Ihm zuliebe bin ich aus St. Petersburg geflogen und habe bei Verwandten in der Küche übernachtet, um meine ohnehin schon geringen Ersparnisse nicht auszugeben. 30 Minuten vergehen, die Pfannkuchen mit Schinken und Käse sind gegessen und wir müssen uns unserem geliebten Traum nähern. Aber alles wackelt. Was passiert, wenn ich das Vorstellungsgespräch nicht bestehe? Okay, das war es nicht. Ich gehe zur Bank, hole mir einen Passierschein und warte im Besprechungsraum auf meine Interviewpartner. Die Zeit vergeht sehr lange. Ein etwa 35-jähriger Mann und eine gleichaltrige Frau kommen herein. Sie stellen sich vor und bitten Sie, etwas über sich zu erzählen: „Juri, es ist mir eine Freude.“ Ich bin 21 Jahre alt, studiere Teilzeit an einer Universität in St. Petersburg und habe drei Monate als Kassiererin in einer Bank gearbeitet. Mir wurde klar, dass das nicht das ist, wofür ich studiert hatte, ich begann mich auf dem Arbeitsmarkt umzusehen und sah, dass in Moskau Wirtschaftswissenschaftler SQL als Voraussetzung haben. Also habe ich es studiert, Kurse besucht (MS SQL-Administration – das hatte ich, dafür habe ich mich entschieden), und Sie haben mich angerufen. Sie sprechen über das Unternehmen, was es tut (die meisten Wörter sind unverständlich) und bitten Sie dann, einen Test zu machen. Der Test besteht aus drei Fragen zu SQL: 1. Ziehen Sie bei einer gegebenen Tabelle alle Datensätze mit der ID = 10 heraus. 2. Verbinden Sie bei zwei gegebenen Tabellen diese und zeigen Sie jeweils eine Spalte an. 3. Gruppieren Sie die Abteilungen und geben Sie die Anzahl der Mitarbeiter für jede Abteilung an. Es ist eine große Schande, dass ich diese Anfragen schreibe. Anschließend erfolgt ein Gespräch über meine Erwartungen an die Stelle. Und sie sagen mir den Zauberspruch: „Vielen Dank für das Interview, wir rufen Sie zurück.“ Eine Woche vergeht und sie bieten mir an, mit ihnen zur Arbeit zu kommen. Euphorie, Schock, Freude! Und für welches Geld: 70.000 Rubel in der Hand! Ja, ich werde reich sein! Ich komme nach Moskau, lebe mich ein, miete ein Zimmer im Zentrum. Die ersten Tage sind euphorisch. Nach 10 Tagen beginnt die Erkenntnis: Wo bin ich nur hingekommen? Ich verstehe überhaupt nichts! Ich musste jeden Monat Managementberichte für die gesamte Bank erstellen. Für mich war es natürlich das Gleiche wie für Sie, lieber Leser. Ich empfand die Begriffe Interbankkredit, Swaps, Kostenverteilung, Kosten usw. als lateinische Zaubersprüche. Nebenbei musste ich die technische Seite des Problems beherrschen: MS Access (alle Berichte wurden dort über VBA erstellt), MS SQL (als neuer Speicher anstelle von Access), Oracle (das ich ursprünglich Oracle nannte, was Hysterie auslöste). unter Programmierern). Und plötzlich begreife ich, dass die technische Seite für mich viel interessanter ist. Es gibt Versuche, komplexe Abfragen zu erstellen (was dazu führt, dass die Datenbank in meinen Skripten hängen bleibt und wütende Administratoren herumlaufen und versuchen herauszufinden, wer das getan hat). Aber die Hauptaufgabe ist die Finanzen, was mich gerade langsam nervt. Nach anderthalb Monaten schreibe ich ein Kündigungsschreiben, da ich keine Ergebnisse vorlegen kann (und man ehrlich gesagt auch nicht wirklich welche von mir erwartet hat). Der Leiter der Finanzabteilung zerreißt es und sagt: „Kümmern Sie sich nicht um Mist.“ Einen Monat später schreibe ich erneut eine Erklärung, und der über diese Unverschämtheit schockierte Abteilungsleiter (der spätere Vorstandsvorsitzende der Bank) unterschreibt mit äußerster Verwirrung: Der Typ ist 21 Jahre alt, ohne höheres Einkommen Bildung, sie erhielten sowohl ein Gehalt als auch Vertrauen, aber er verhält sich so. Die Gründe für die Entlassung waren zwei weitere Faktoren: der Chef, auf dessen Arroganz ich nicht gelassen reagieren konnte, und der unbequeme Stuhl, von dem aus mein Rücken zu schmerzen begann. Das ist unglaublich lustig, aber hier ist das Motiv. Als ich aufhörte, dachte ich, dass ich es jetzt noch bequemer haben würde. Aber es war nicht da. <h3>Kapitel 2. 70 Interviews</h3>Als ich die Bank verließ, holte ich tief Luft. „Ich werde es so arrangieren, alle werden fassungslos sein.“ Es wurden Vorstellungsgespräche vereinbart, die Gehälter dafür waren höher und es schien, dass es keinen Bedarf geben würde, sich mit der Berichterstattung zu befassen. Es gibt 4 Vorstellungsgespräche und niemand stellt mich ein. 5, 6 Interviews – das Gleiche. Ich lebte mit einem Mädchen in einem gemieteten Zimmer, und sie bekam einen Job und konnte mein fehlendes Einkommen decken. Aber ich hatte immer noch keine Ahnung, wie lange ich kein Einkommen haben würde. Ich nahm an Vorstellungsgesprächen teil (Stellenangebote à la Analyst) und sie fragten hauptsächlich nach SQL und VBA. Für diejenigen, die es nicht wissen: VBA ist eine Programmiersprache in Excel, Access und anderen MS Office-Produkten. Es werden 10 Vorstellungsgespräche geführt – nichts. 20, 30 - nichts. Jeder schämt sich für den Mangel an Erfahrung und höherer Bildung (was mir wie eine Kleinigkeit vorkommt). 40 Interviews, und schon macht sich Verzweiflung breit. Im Zeitraum von 55-60 Vorstellungsgesprächen beginne ich mit dem Studium von 1C. Das Mädchen, das bereits verheiratet ist, bittet um die Ausreise nach St. Petersburg, da sie dort zumindest eine eigene Wohnung hat. Und beim 70. Interview wurde ich eingeladen, für 50.000 Rubel 1C-Datenbankadministrator (mit der Aussicht, 1C-Entwickler zu werden) in einem kleinen Unternehmen im Industriegebiet von St. Petersburg zu werden. Das ist Karrierewachstum! <h3>Kapitel 3. Rückkehr der Legende</h3>Als ich aus dem Fenster eines Kleinbusses (Firmentransportmittel) auf das graue Industriegebiet von St. Petersburg blickte und eine Stunde und 40 Minuten zurücklegte, wurde mir klar, dass ich das nicht konnte lebe so. Das Interesse an 1C verschwand mit der ersten Berührung des selbstgeschriebenen Systems. Es brauchte einen Plan. Und er ist gereift: Abends lernte er SQL und überwachte gleichzeitig die bekannte Baustelle. Der letzte Auslöser für die Entlassung war die Situation: Der Generaldirektor wollte mich nicht in einen geplanten Urlaub fahren lassen, obwohl bereits Tickets gekauft waren. Nach meinem Urlaub schreibe ich eine Bewerbung und versende erneut meinen Lebenslauf für offene Stellen in Moskau. Wieder einmal wird mir ein Vorstellungsgespräch bei einer großen Bank in Moskau angeboten. Wieder komme ich in die Küche meiner Verwandten und gehe zu einem Vorstellungsgespräch. Als die Personalabteilung die Adresse schrieb, traute ich meinen Augen nicht – das war das Gebäude, in dem ich arbeiten wollte (zur Zeit meines letzten Wohnsitzes in Moskau befand es sich gerade im Bau). Die Position wurde als Chief Information Systems Support Specialist bezeichnet. Ich gehe ins Büro Ich werde von einem etwa 30-jährigen Mann in modischer Jacke und Jeans begrüßt. Wir gingen in den 15. Stock, und als ich das Panorama der Stadt sah, verschlug es mir den Atem: Alle stalinistischen Hochhäuser waren zu sehen. Der gesamte Stil des Gebäudes war sehr modern: Im Büro des Chefs gab es Weinkühlschränke, modische Aquarien und ein Gemälde einer nackten Frau im Schwarz-Weiß-Stil. Dies löste einen „Wow“-Effekt aus. Das Gespräch mit dem Chef verlief nicht wie üblich: Etwa 40 Minuten lang erzählte er, was in der Bank passierte. Ich verstand nichts, nickte aber. Als ich fragte: Wann fängst du an, mich zu fragen? Er hat nicht aufgepasst. Auf meine Frage „Wann ist das technische Vorstellungsgespräch?“ lautete die Antwort erneut: „Ja, wir stellen Sie trotzdem ein. Wenn Sie damit nicht klarkommen, entlassen wir Sie.“ Es wurde mit einem Lächeln gesagt, und mir wurde klar, dass alles, der Traum, wieder wahr geworden war! <h3>Kapitel 4. Sich in der IT wiederfinden</h3>Als ich am neuen Arbeitsplatz ankam, verstand ich sofort, warum sie mich eingestellt hatten. Ich werde ein typisches Porträt eines Abteilungsmitarbeiters beschreiben: Durchschnittsalter 55 Jahre, Moskowiter, Ausbildung an der Moskauer Staatsuniversität, Arbeit in einem Verteidigungsforschungsinstitut zu Sowjetzeiten und Übergang in den Bankensektor in den 90er Jahren, arbeitet seit 20 Jahren hier Jahre. Die Hälfte sind Männer, die andere Hälfte sind Frauen. Sie gerieten in völlige Dissonanz mit den umliegenden Innenräumen. Wir waren an der Pflege von Reportingprogrammen für die Buchhaltung beteiligt. Natürlich geschah dies alles in alten VBA- und SQL-Skripten, die von Entwicklern Ende der 90er und Anfang der 2000er Jahre geschrieben wurden. Es war 2015 und die Automatisierung erfolgte über MS Access. Das heißt, es sah extrem schlecht aus. Aber es gab eine Nuance: Sie lieferten, was der Kunde (Buchhaltung) wollte. Und zwar pünktlich und in der gewünschten Form. Nur sie wussten, wie es funktionierte, und selbst Onotole konnte sich die Komplexität ihrer Entwicklungen nicht vorstellen. Und jeder IT-Manager konnte sie nicht entlassen, selbst wenn er den größten Wunsch hatte – der Hauptbuchhalter ging zum Vorstand der Bank und verteidigte jeden Mitarbeiter, der den Interessen der Buchhaltungsabteilung diente. Der Manager wollte, dass ich die Rolle eines Trojanischen Pferdes spiele: Ich habe alle Entwicklungen studiert und dann die Daten in das neue System migriert. Dann können die alten Mitarbeiter entlassen werden und ich kann in ein neues System überführt werden. Zuerst habe ich mich mit ihren Prozessen befasst und mir den VBA-Code angeschaut. Nach und nach lernte ich, VBA-Code zu lesen. Ein Jahr später wusste ich bereits, wie man den Code selbst schreibt. Typische Aufgabe: Ausgehend von einer Datenbank Daten daraus extrahieren und in einem bestimmten Format in Excel einfügen. Nun, wie Zadornov sagte, atmen Sie tief durch: Die gesamte Berichterstattung der Abteilung (und das sind 50 Tages- und 20 Monatsberichte!) wurde manuell erstellt! Karl, verstehst du, dass Menschen in 50 Berichten jeden Tag mit ihren Händen Datumsangaben auf +1 ändern? Sie sitzen da, warten 1–10 Minuten auf das Ergebnis eines Berichts und starten dann einen anderen! Darüber hinaus müssen tägliche Berichte zu einer bestimmten Zeit veröffentlicht werden, und Gott bewahre, dass Sie zu spät kommen! Sie erstellen nicht nur Berichte, sondern führen auch manuell Prozeduren in der Datenbank aus, ohne Variablen zu verwenden! Das heißt, anstatt die Variable @startDate = '2015-01-01' zu verwenden, ändern sie dasselbe Datum manuell an 20 Stellen! Nachdem ich mir das alles angeschaut hatte, fing ich an, Python zu lernen. und zusammen mit VBA, SQL und Taskplaner habe ich das alles in zwei Jahren automatisiert. Nicht nur automatisiert, sondern auch beschleunigt viele Berichte: Wenn Sie auf MS Access + VBA zugunsten von MS SQL + TSQL verzichten, können Sie eine mehrfache Produktivitätssteigerung erzielen. Mein Rekord ist die Beschleunigung der Berichtserstellung in100einmal! Aber meine Kollegen waren mit einer solchen Automatisierung äußerst unzufrieden, sodass ich zum Volksfeind erklärt wurde (sie wollten bis zur Rente still sitzen). Die Zeit verging und die Datenmigration war erfolgreich. Der Vorgesetzte schätzte mich sehr: Wenn ich zu Beginn meiner Karriere um 8 Uhr morgens zur Arbeit kam, konnte ich nach einer Weile jederzeit bis 12 Uhr kommen, ständige Gehalts- und Positionserhöhung, Bezahlung der Wochenendarbeit höher als das Doppelte, Taxi nach Hause, wenn man zu spät zur Arbeit kommt, Mobilfunk, kurzum: die Elite! <h3>Kapitel 5. Der goldene Käfig</h3>Plötzlich, nach 3,5 Jahren, kommt das neue IT-Management und sagt, dass das System, auf das ich die Daten migriert habe, nicht mehr benötigt wird. Aber das alte System bleibt bestehen. Mein Vorgesetzter steigt auf der Karriereleiter auf und lädt mich ein, in eine fortschrittlichere Abteilung zu wechseln. Bei einem Treffen mit dem Leiter der progressiven Abteilung erfuhr ich, dass mir der Technologie-Stack dieser Abteilung unbekannt ist: Oracle, .net, C#, Linux usw. + Abneigung gegenüber dem potenziellen Chef. Ich sage meinem Manager, dass ich kein Interesse an der progressiven Abteilung habe, und er vergisst mich bequemerweise. Und dann stellt sich die Frage: Was ist als nächstes zu tun? Das Einkommen war bereits anständig, der Junior-Entwickler würde mich für dieses Gehalt nicht einstellen. Nachdem ich über meine Fähigkeiten nachgedacht hatte, wurde mir klar, dass ich mich mit maschinellem Lernen befassen musste. Alles war interessant bis zur ersten Begegnung mit der mathematischen Statistik, die im Institut nur Ekel hervorrief. Das war's, Stupor für sechs Monate! Die Zeit verging und eines Tages dachte ich beim Gehen über eine Website nach, die gute Restaurants auf einer Karte von Moskau anzeigen würde. Begann, HTML, CSS, JS zu lernen. Ich habe drei Monate lang studiert; ich hatte nicht die Kenntnisse, um eine vollwertige Website zu erstellen, aber ich konnte es bei der Arbeit üben. Die Idee war geboren: ein Portal für Buchhalter zu schaffen, damit diese über einen Button jeden Bericht selbst herunterladen können. Die Erstellung des Portals dauerte zwei Monate und die SPA-Webanwendung (Single Page Application) wurde in React js mit einem Node.js-Backend geboren. Back führte SQL-Skripte aus (ich wusste nichts über Frameworks wie Hibernate), startete Python und speicherte zusätzliche Informationen in MongoDb (z. B. über Site-Benutzer). Äußerlich sah die Seite sehr anständig aus (Bootstrap 4, modische Animation). Ich bin immer noch stolz auf dieses Projekt. Aber als ich den Webentwicklern der Bank meinen Code zeigte, waren sie fassungslos. KEINE EIGENE KLASSE! Nur Features, nur Hardcore! Sie lobten mich, sagten aber, dass ich noch viel lernen müsse, um ein mittlerer Full-Stack-Entwickler zu werden. Ich habe versucht, einen Job als Analyst zu bekommen, aber es gab keine Sonderangebote. Ich denke: Ich war nicht dabei, ich werde meinen Lebenslauf eines Full-Stack-Entwicklers veröffentlichen. Die Anrufe kamen, aber während der Interviews flog ich wie Sperrholz über Paris: Ich wusste zum Beispiel nicht, was HashMap und HashSet sind und warum sie benötigt werden. Es gab nicht die geringste Ahnung von OOP, Programmiermustern, Algorithmen, Tests und Git. Ich erinnerte mich an längst vergessene Schamgefühle aufgrund der Unkenntnis grundlegender Dinge. Plötzlich kommt ein Angebot für eine Stelle als Leiterin der Kundenanalyse bei einem Finanzunternehmen. Eine Woche bevor das Land wegen der Pandemie geschlossen wurde. Ich bekam einen Job in einem Finanzunternehmen, hatte aber ein doppeltes Gefühl: Einerseits war das hohe Gehalt warm, andererseits würde es auf der technischen Seite nur minimale Weiterentwicklungen geben. Nach der Installation des Geräts und der Einführung der Fernarbeit verging eine Woche. Da im Finanzsektor keine arbeitsfreien Tage galten, arbeiteten wir wie gewohnt. Der neue Chef erwies sich als sehr verrückter Mensch: Er bot an, Facebook zu durchsuchen und eigene neuronale Netze zu erstellen, um Kunden zu untersuchen (ohne einen Datenwissenschaftler im Team). Neuen Mitarbeitern wurde angeboten, in einer Woche Python zu lernen usw. Unbezahlte freie Tage wurden zur Norm. Es war dumm, aufzuhören: Wo bekommt man während einer Pandemie einen Job? Doch nach zwei Monaten endete die Geduld, als bekannt wurde, dass es keine vierteljährlichen Boni geben würde. Die Nuance besteht darin, dass die Personalabteilung bei der Einigung über das Gehalt zum Zeitpunkt der Einstellung gesagt hat, dass das Gehalt in Gehalt (60 %) und einen vierteljährlichen Bonus (40 %) aufgeteilt ist, der immer gezahlt wird. Es wurde klar, dass die falsche Wahl getroffen worden war und wir uns auf die Suche nach einem neuen Job machen mussten. <h3>Kapitel 6. Beginnen Sie mit der Beherrschung von Java</h3>Eines schönen Tages im Mai erhielt ich eine Einladung zu einem Vorstellungsgespräch für die Stelle „Entwickler“. Ein Unternehmen in der Versicherungsbranche braucht eine Person, die Versicherungsprodukte entwickelt. Programmiererfahrung ist erforderlich, da es sich jedoch um eine „einzigartige“ Entwicklung des Unternehmens handelt, ist keine bestimmte Sprache erforderlich. Git und so weiter werden ebenfalls benötigt. Ich habe in zwei Tagen ein Vorstellungsgespräch vereinbart und in meiner Freizeit die Grundlagen von Git studiert. Während des Interviews wurde ich nach Python, JS, Git und SQL gefragt. Ich habe alles außer dem Konzept der „Methodenüberlastung“ beantwortet und wurde innerhalb von zwei Wochen zur Arbeit eingeladen. Es stellte sich heraus, dass das Unternehmen das System schon vor längerer Zeit gekauft hatte. geschrieben in Java (Vorder- und Rückseite), mit dem Sie Geschäftsprozesse erstellen können, ohne eine Programmiersprache zu kennen (genauer gesagt, mit der integrierten Programmiersprache Jelly). Es klingt gut, aber tatsächlich war alles verzerrt. Lyrischer Exkurs: Jede Technologie hat ihre eigene Ära und ihren eigenen Maßstab. Es ist cool, alle Berichte im Jahr 2000 nur in Excel zu erstellen. Das Gleiche im Jahr 2021 zu tun, ist nicht sehr gut. Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellen Auf der technischen Seite wird es hingegen nur minimale Weiterentwicklungen geben. Nach der Installation des Geräts und der Einführung der Fernarbeit verging eine Woche. Da im Finanzsektor keine arbeitsfreien Tage galten, arbeiteten wir wie gewohnt. Der neue Chef erwies sich als sehr verrückter Mensch: Er bot an, Facebook zu durchsuchen und eigene neuronale Netze zu erstellen, um Kunden zu untersuchen (ohne einen Datenwissenschaftler im Team). Neuen Mitarbeitern wurde angeboten, in einer Woche Python zu lernen usw. Unbezahlte freie Tage wurden zur Norm. Es war dumm, aufzuhören: Wo bekommt man während einer Pandemie einen Job? Doch nach zwei Monaten endete die Geduld, als bekannt wurde, dass es keine vierteljährlichen Boni geben würde. Die Nuance besteht darin, dass die Personalabteilung bei der Einigung über das Gehalt zum Zeitpunkt der Einstellung gesagt hat, dass das Gehalt in Gehalt (60 %) und einen vierteljährlichen Bonus (40 %) aufgeteilt ist, der immer gezahlt wird. Es wurde klar, dass die falsche Wahl getroffen worden war und wir uns auf die Suche nach einem neuen Job machen mussten. <h3>Kapitel 6. Beginnen Sie mit der Beherrschung von Java</h3>Eines schönen Tages im Mai erhielt ich eine Einladung zu einem Vorstellungsgespräch für die Stelle „Entwickler“. Ein Unternehmen in der Versicherungsbranche braucht eine Person, die Versicherungsprodukte entwickelt. Programmiererfahrung ist erforderlich, da es sich jedoch um eine „einzigartige“ Entwicklung des Unternehmens handelt, ist keine bestimmte Sprache erforderlich. Git und so weiter werden ebenfalls benötigt. Ich habe in zwei Tagen ein Vorstellungsgespräch vereinbart und in meiner Freizeit die Grundlagen von Git studiert. Während des Interviews wurde ich nach Python, JS, Git und SQL gefragt. Ich habe alles außer dem Konzept der „Methodenüberlastung“ beantwortet und wurde innerhalb von zwei Wochen zur Arbeit eingeladen. Es stellte sich heraus, dass das Unternehmen das System schon vor längerer Zeit gekauft hatte. geschrieben in Java (Vorder- und Rückseite), mit dem Sie Geschäftsprozesse erstellen können, ohne eine Programmiersprache zu kennen (genauer gesagt, mit der integrierten Programmiersprache Jelly). Es klingt gut, aber tatsächlich war alles verzerrt. Lyrischer Exkurs: Jede Technologie hat ihre eigene Ära und ihren eigenen Maßstab. Es ist cool, alle Berichte im Jahr 2000 nur in Excel zu erstellen. Das Gleiche im Jahr 2021 zu tun, ist nicht sehr gut. Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellen Auf der technischen Seite wird es hingegen nur minimale Weiterentwicklungen geben. Nach der Installation des Geräts und der Einführung der Fernarbeit verging eine Woche. Da im Finanzsektor keine arbeitsfreien Tage galten, arbeiteten wir wie gewohnt. Der neue Chef erwies sich als sehr verrückter Mensch: Er bot an, Facebook zu durchsuchen und eigene neuronale Netze zu erstellen, um Kunden zu untersuchen (ohne einen Datenwissenschaftler im Team). Neuen Mitarbeitern wurde angeboten, in einer Woche Python zu lernen usw. Unbezahlte freie Tage wurden zur Norm. Es war dumm, aufzuhören: Wo bekommt man während einer Pandemie einen Job? Doch nach zwei Monaten endete die Geduld, als bekannt wurde, dass es keine vierteljährlichen Boni geben würde. Die Nuance besteht darin, dass die Personalabteilung bei der Einigung über das Gehalt zum Zeitpunkt der Einstellung gesagt hat, dass das Gehalt in Gehalt (60 %) und einen vierteljährlichen Bonus (40 %) aufgeteilt ist, der immer gezahlt wird. Es wurde klar, dass die falsche Wahl getroffen worden war und wir uns auf die Suche nach einem neuen Job machen mussten. <h3>Kapitel 6. Beginnen Sie mit der Beherrschung von Java</h3>Eines schönen Tages im Mai erhielt ich eine Einladung zu einem Vorstellungsgespräch für die Stelle „Entwickler“. Ein Unternehmen in der Versicherungsbranche braucht eine Person, die Versicherungsprodukte entwickelt. Programmiererfahrung ist erforderlich, da es sich jedoch um eine „einzigartige“ Entwicklung des Unternehmens handelt, ist keine bestimmte Sprache erforderlich. Git und so weiter werden ebenfalls benötigt. Ich habe in zwei Tagen ein Vorstellungsgespräch vereinbart und in meiner Freizeit die Grundlagen von Git studiert. Während des Interviews wurde ich nach Python, JS, Git und SQL gefragt. Ich habe alles außer dem Konzept der „Methodenüberlastung“ beantwortet und wurde innerhalb von zwei Wochen zur Arbeit eingeladen. Es stellte sich heraus, dass das Unternehmen das System schon vor längerer Zeit gekauft hatte. geschrieben in Java (Vorder- und Rückseite), mit dem Sie Geschäftsprozesse erstellen können, ohne eine Programmiersprache zu kennen (genauer gesagt, mit der integrierten Programmiersprache Jelly). Es klingt gut, aber tatsächlich war alles verzerrt. Lyrischer Exkurs: Jede Technologie hat ihre eigene Ära und ihren eigenen Maßstab. Es ist cool, alle Berichte im Jahr 2000 nur in Excel zu erstellen. Das Gleiche im Jahr 2021 zu tun, ist nicht sehr gut. Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellen Erstellen Sie Ihre eigenen neuronalen Netzwerke, um Kunden zu untersuchen (ohne einen Datenwissenschaftler im Personal). Neuen Mitarbeitern wurde angeboten, in einer Woche Python zu lernen usw. Unbezahlte freie Tage wurden zur Norm. Es war dumm, aufzuhören: Wo bekommt man während einer Pandemie einen Job? Doch nach zwei Monaten endete die Geduld, als bekannt wurde, dass es keine vierteljährlichen Boni geben würde. Die Nuance besteht darin, dass die Personalabteilung bei der Einigung über das Gehalt zum Zeitpunkt der Einstellung gesagt hat, dass das Gehalt in Gehalt (60 %) und einen vierteljährlichen Bonus (40 %) aufgeteilt ist, der immer gezahlt wird. Es wurde klar, dass die falsche Wahl getroffen worden war und wir uns auf die Suche nach einem neuen Job machen mussten. <h3>Kapitel 6. Beginnen Sie mit der Beherrschung von Java</h3>Eines schönen Tages im Mai erhielt ich eine Einladung zu einem Vorstellungsgespräch für die Stelle „Entwickler“. Ein Unternehmen in der Versicherungsbranche braucht eine Person, die Versicherungsprodukte entwickelt. Programmiererfahrung ist erforderlich, da es sich jedoch um eine „einzigartige“ Entwicklung des Unternehmens handelt, ist keine bestimmte Sprache erforderlich. Git und so weiter werden ebenfalls benötigt. Ich habe in zwei Tagen ein Vorstellungsgespräch vereinbart und in meiner Freizeit die Grundlagen von Git studiert. Während des Interviews wurde ich nach Python, JS, Git und SQL gefragt. Ich habe alles außer dem Konzept der „Methodenüberlastung“ beantwortet und wurde innerhalb von zwei Wochen zur Arbeit eingeladen. Es stellte sich heraus, dass das Unternehmen das System schon vor längerer Zeit gekauft hatte. geschrieben in Java (Vorder- und Rückseite), mit dem Sie Geschäftsprozesse erstellen können, ohne eine Programmiersprache zu kennen (genauer gesagt, mit der integrierten Programmiersprache Jelly). Es klingt gut, aber tatsächlich war alles verzerrt. Lyrischer Exkurs: Jede Technologie hat ihre eigene Ära und ihren eigenen Maßstab. Es ist cool, alle Berichte im Jahr 2000 nur in Excel zu erstellen. Das Gleiche im Jahr 2021 zu tun, ist nicht sehr gut. Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellen Erstellen Sie Ihre eigenen neuronalen Netzwerke, um Kunden zu untersuchen (ohne einen Datenwissenschaftler im Personal). Neuen Mitarbeitern wurde angeboten, in einer Woche Python zu lernen usw. Unbezahlte freie Tage wurden zur Norm. Es war dumm, aufzuhören: Wo bekommt man während einer Pandemie einen Job? Doch nach zwei Monaten endete die Geduld, als bekannt wurde, dass es keine vierteljährlichen Boni geben würde. Die Nuance besteht darin, dass die Personalabteilung bei der Einigung über das Gehalt zum Zeitpunkt der Einstellung gesagt hat, dass das Gehalt in Gehalt (60 %) und einen vierteljährlichen Bonus (40 %) aufgeteilt ist, der immer gezahlt wird. Es wurde klar, dass die falsche Wahl getroffen worden war und wir uns auf die Suche nach einem neuen Job machen mussten. <h3>Kapitel 6. Beginnen Sie mit der Beherrschung von Java</h3>Eines schönen Tages im Mai erhielt ich eine Einladung zu einem Vorstellungsgespräch für die Stelle „Entwickler“. Ein Unternehmen in der Versicherungsbranche braucht eine Person, die Versicherungsprodukte entwickelt. Programmiererfahrung ist erforderlich, da es sich jedoch um eine „einzigartige“ Entwicklung des Unternehmens handelt, ist keine bestimmte Sprache erforderlich. Git und so weiter werden ebenfalls benötigt. Ich habe in zwei Tagen ein Vorstellungsgespräch vereinbart und in meiner Freizeit die Grundlagen von Git studiert. Während des Interviews wurde ich nach Python, JS, Git und SQL gefragt. Ich habe alles außer dem Konzept der „Methodenüberlastung“ beantwortet und wurde innerhalb von zwei Wochen zur Arbeit eingeladen. Es stellte sich heraus, dass das Unternehmen das System schon vor längerer Zeit gekauft hatte. geschrieben in Java (Vorder- und Rückseite), mit dem Sie Geschäftsprozesse erstellen können, ohne eine Programmiersprache zu kennen (genauer gesagt, mit der integrierten Programmiersprache Jelly). Es klingt gut, aber tatsächlich war alles verzerrt. Lyrischer Exkurs: Jede Technologie hat ihre eigene Ära und ihren eigenen Maßstab. Es ist cool, alle Berichte im Jahr 2000 nur in Excel zu erstellen. Das Gleiche im Jahr 2021 zu tun, ist nicht sehr gut. Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellen <h3>Kapitel 6. Beginnen Sie mit der Beherrschung von Java</h3>Eines schönen Tages im Mai erhielt ich eine Einladung zu einem Vorstellungsgespräch für die Stelle „Entwickler“. Ein Unternehmen in der Versicherungsbranche braucht eine Person, die Versicherungsprodukte entwickelt. Programmiererfahrung ist erforderlich, da es sich jedoch um eine „einzigartige“ Entwicklung des Unternehmens handelt, ist keine bestimmte Sprache erforderlich. Git und so weiter werden ebenfalls benötigt. Ich habe in zwei Tagen ein Vorstellungsgespräch vereinbart und in meiner Freizeit die Grundlagen von Git studiert. Während des Interviews wurde ich nach Python, JS, Git und SQL gefragt. Ich habe alles außer dem Konzept der „Methodenüberlastung“ beantwortet und wurde innerhalb von zwei Wochen zur Arbeit eingeladen. Es stellte sich heraus, dass das Unternehmen das System schon vor längerer Zeit gekauft hatte. geschrieben in Java (Vorder- und Rückseite), mit dem Sie Geschäftsprozesse erstellen können, ohne eine Programmiersprache zu kennen (genauer gesagt, mit der integrierten Programmiersprache Jelly). Es klingt gut, aber tatsächlich war alles verzerrt. Lyrischer Exkurs: Jede Technologie hat ihre eigene Ära und ihren eigenen Maßstab. Es ist cool, alle Berichte im Jahr 2000 nur in Excel zu erstellen. Das Gleiche im Jahr 2021 zu tun, ist nicht sehr gut. Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellen <h3>Kapitel 6. Beginnen Sie mit der Beherrschung von Java</h3>Eines schönen Tages im Mai erhielt ich eine Einladung zu einem Vorstellungsgespräch für die Stelle „Entwickler“. Ein Unternehmen in der Versicherungsbranche braucht eine Person, die Versicherungsprodukte entwickelt. Programmiererfahrung ist erforderlich, da es sich jedoch um eine „einzigartige“ Entwicklung des Unternehmens handelt, ist keine bestimmte Sprache erforderlich. Git und so weiter werden ebenfalls benötigt. Ich habe in zwei Tagen ein Vorstellungsgespräch vereinbart und in meiner Freizeit die Grundlagen von Git studiert. Während des Interviews wurde ich nach Python, JS, Git und SQL gefragt. Ich habe alles außer dem Konzept der „Methodenüberlastung“ beantwortet und wurde innerhalb von zwei Wochen zur Arbeit eingeladen. Es stellte sich heraus, dass das Unternehmen das System schon vor längerer Zeit gekauft hatte. geschrieben in Java (Vorder- und Rückseite), mit dem Sie Geschäftsprozesse erstellen können, ohne eine Programmiersprache zu kennen (genauer gesagt, mit der integrierten Programmiersprache Jelly). Es klingt gut, aber tatsächlich war alles verzerrt. Lyrischer Exkurs: Jede Technologie hat ihre eigene Ära und ihren eigenen Maßstab. Es ist cool, alle Berichte im Jahr 2000 nur in Excel zu erstellen. Das Gleiche im Jahr 2021 zu tun, ist nicht sehr gut. Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellen Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellen Eine Unternehmenswebsite in reinem HTML war 1999 cool, aber nicht mehr im Jahr 2021. Die Technologie, die das Unternehmen zum Zeitpunkt seiner Gründung (2005) verwendete, war also sehr cool – Java war sowohl für den Server- als auch für den Client-Teil (die sogenannten Java-Servlet-Seiten) verantwortlich. Wenn Sie darüber hinaus einen neuen Geschäftsprozess erstellen (der über eine eigene Benutzeroberfläche verfügt), wird dieser in der Datenbank und nicht im Code in einer Datei gespeichert. Um zu verstehen, wie umständlich das ist, stellen Sie sich vor, Sie schreiben Java-Code in Intellij Idea, speichern ihn in der Datenbank und dann. Wenn Sie Ihren Code ausführen möchten, geht der Programmkern zur Datenbank und liest Ihren Code von dort. Dementsprechend können Sie Ihre Anwendung nicht vollständig debuggen. Tipp Nr. 1: Wenn Sie Code an die Testbench senden möchten, müssen Sie ihn erstellenSQL скрипт, das Ihren Code enthält. Unangenehm, aber erträglich? Highlight Nr. 2: Die Datenbank besteht aus mehr als 200 Tabellen, die miteinander verbunden sind. Das bedeutet, dass Sie wissen müssen, in welche Tabellen Sie Ihren Code einfügen und welche Entitäten in anderen Tabellen erstellt werden müssen. Die Ausgabe ist ein SQL-Skript mit einer Länge von ~ 1000 Zeilen. Das ist wirklich widerlich. Hüten Sie sich vor Altlasten. Kurz gesagt, als mir klar wurde, dass alles in Java war, ging ich zu JavaRush (endlich kamen wir zum Thema der Website!). Juni-Juli 2020. Die ersten 10 Level wurden schnell (vielleicht einen Monat) geschlossen, da es nichts grundsätzlich Neues gab. Dann verlangsamte sich die Geschwindigkeit. Juli-Oktober 2020. Ebenen 10–20 geschlossen. Oktober-März 2021. Ebenen 20-30 geschlossen. Jetzt beginnt der Spaß: Im März 2021 begann ich mit der Suche nach Java-Stellenangeboten und stellte fest, dass dort viele unbekannte Wörter vorkamen. Eine Art Spring, SpringBoot, Hibernate, JUnit. Nachdem ich Videokurse auf einer bekannten Website gekauft hatte, berührte ich einfach Spring und dachte, dass ich jetzt alles weiß und tun kann. Danach bin ich auf den TopJava-Kurs von Grigory Kislin gestoßen. Auf seiner Website können Sie versuchen, eine Testaufgabe zu lösen, und wenn Sie erfolgreich sind, können Sie den Kurs absolvieren. In diesem Kurs erstellen Sie eine vollwertige Webanwendung und veröffentlichen diese sogar im Internet. Für dieses Geld erhalten Sie ein Review (Überprüfung des Codes durch einen erfahreneren Programmierer), Feedback und Tipps bei Problemen. Ich habe Hausaufgabe 3 gemacht und aufgehört. Der Grund ist einfach: Sie verlangen viel von Ihnen, vermitteln Ihnen aber kein Wissen. Die Hausaufgabenanforderungen sind sehr verwirrend. Die Informationen werden äußerst inkonsistent dargestellt. Meiner subjektiven Meinung nach wird dieser Kurs von ziemlich erfahrenen Entwicklern benötigt, die aus anderen ähnlichen Sprachen kommen. Denn in seinem Kurs gibt es praktisch keine Erklärung der Technologien, die er einsetzen möchte. Außerdem müssen Sie Git gut kennen (alles wird an Ihr persönliches Repository gesendet). Ende April 2021 veröffentliche ich einen Lebenslauf für einen Java-Entwickler (mit dem Wunschgehalt auf der mittleren+ Ebene), in dem ich anführe, dass ich bei meinem letzten Job in Java programmiert habe (ich habe gelogen). Noch am selben Tag geht bei der Bank eine Bewerbung für eine Stelle als Java-Entwickler ein. <h3>Kapitel 7. Java-Interviews und Kompetenzentwicklung</h3>Also, was war der Plan? Ich brauche ein gutes Gehalt, da ich es bereits gewohnt bin, von einem beträchtlichen Einkommen + Krediten zu leben. Daher sind Juniorpositionen für mich nicht geeignet. Sie müssen eine mittlere Position einnehmen. Aber wer stellt mich ohne Erfahrung ein? Die Entscheidung kam von selbst: Aus meiner Anstellungsakte geht hervor, dass ich ein Jahr als Entwickler und in meiner vorherigen Position weitere 4 Jahre als Experte in der IT-Abteilung gearbeitet habe. Ich kann also sagen, dass ich seit einem Jahr in Java entwickle. Und wenn sie nach neuen Produkten fragen, werde ich sagen, dass das alte Java (7) da war und nichts unterstützte. Vor meinem ersten (Fern-)Interview war ich nervös. Ich habe keine Erfahrung, sehr wenig Wissen und verlange viel Geld. Ich denke: egal, negative Erfahrung ist auch Erfahrung. Ich kontaktiere per Skype und werde von zwei Abteilungsleitern interviewt. Was mir noch mehr Angst machte. Fragen begannen: OOP, HashMap-Gerät, Streams, Datenstrukturen, was ist Spring, Hibernate, AOP. Und wenn es vor Sping noch einigermaßen erträglich war, dann ist es bei Spring komplett auseinandergefallen. Die Leute fragen mich: Wie hast du dich im Frühling entwickelt, wenn du es nicht wirklich weißt? Ich: Ich habe es kopiert, eingefügt, es funktioniert, und vielen Dank dafür. Diese Antwort amüsierte sie. Dann fragten sie nach SQL, bei dem ich wie eine Ente im Wasser war. Als nächstes folgte Git und eine Frage zu Rebase, Cherry-Pick (was ich auch nicht wusste) und fertig zum Thema JS, da es in meinem Lebenslauf aufgeführt war. Auch dort kam es zu einem völligen Misserfolg, da nach OOP JS gefragt wurde. Aufgrund der Ergebnisse des Interviews wurde klar, dass meine Kenntnisse nicht den Anforderungen entsprachen und ich mich daher für diese Stelle nicht qualifizieren würde. Am Abend schreibt die Personalabteilung, dass meine Kandidatur genehmigt wurde und sie bereit sind, mich anzurufen. Ich bin tatsächlich an einem Burger bei McDonald's erstickt. Ich war zufrieden, aber nach drei Tagen meldete die Personalabteilung, dass sie sich für einen anderen Kandidaten entschieden hatte. Zum ersten Mal in meiner Erfahrung wurde ein Angebot zurückgezogen. Nach dem ersten Vorstellungsgespräch in Java legte ich noch einen drauf: Ich belegte einen Git-Kurs (und schloss ihn vollständig ab!) bei Colt Steele auf einer bekannten Website für den Verkauf von Videokursen. Dies hat meine Wahrnehmung von Git verändert. Als nächstes belegte ich einen (brillanten) Kurs von Zaur Tregulov zum Thema „Spring+Hibernate“. Trainingsschema: Ich schaue es mir wie im Video an, ich mache dasselbe auf meinem Computer, aber ich benenne die Variablen und Klassen anders, um nicht dumm den Code eines anderen zu kopieren. Ich lade meine gesamte Arbeit auf meinen Github hoch (und übe so Git). Es war Mitte Mai und die Anrufe von der Personalabteilung begannen. Wir begannen, die Interviews nacheinander zu planen. Viele Einladungen mussten aus folgenden Gründen abgesagt werden: Die Personalabteilung las die Beschreibung meines Lebenslaufs nicht und lud mich zu einer leitenden Position ein. Erwähnenswert ist auch eine eigene HR-Kaste: diejenigen, die Java mit JavaScript verwechseln. Aus diesem Grund habe ich im Titel meines Lebenslaufs „Middle Java Developer“ geschrieben. <h3>Kapitel 8. Liste typischer Fragen und wie Vorstellungsgespräche ablaufen</h3>Ich begann, zu Vorstellungsgesprächen zu gehen, und bildete in der Mitte nach und nach einen Pool grundlegender Fragen. Erforderlich: 0. OOP – Definition, sprechen Sie über jedes Prinzip von OOP (+geben Sie ein Beispiel aus dem wirklichen Leben). 1. Equals und Hashcode – was ist der Vertrag (die Beziehung) zwischen ihnen? 2. HashMap – wie man versteht, in welchen Bucket ein Objekt gelangt, was eine Kollision ist, in welcher Datenstruktur die Daten in der HashMap gespeichert werden, die Standardgröße, wie die Anzahl der Buckets zunimmt. 3. Stream – welche Arten von Operationen, was ist der Unterschied zwischen ihnen, geben Sie ein Beispiel für jede Art von Operation. 4. String-Pool, Integer-Pool – was ist das? 5. Heap, Stack – was ist das, was ist der Unterschied? 6. Unterschiede zwischen Runnable, Thread, Future. 7. Flüchtig, Atomizität. 8. Solid, Kiss, Dry – Definitionen, Beispiele aus dem wirklichen Leben. 9. Zugriffsmodifikatoren in Java. 10. Was ist der Unterschied zwischen einer abstrakten Klasse und einer Schnittstelle? Kann die Schnittstelle privat sein? 11. Funktionale Schnittstellen. 12. Listen Sie alle Objektmethoden auf und erklären Sie, warum sie benötigt werden. Merkmale der Klonmethode. 13. Was ist Serialisierung und Deserialisierung? 14. Versuchen Sie es mit Ressourcen. Beschreiben Sie, was es ist, und teilen Sie es mithilfe der Closeable-Schnittstelle mit. 15. Unterschiede zwischen Final, final, finalize? 16. Überlastung, Der Unterschied besteht darin, Methoden zu überschreiben. 17. Warum String unveränderlich gemacht wurde, erzählen Sie uns etwas über StringBuilder und StringBuffer. 18. Was ist Zeitkomplexität O(1), Speicherkomplexität? 19. Datenstrukturen: Sprechen Sie über Map, Set, Queue, Deque, List und ihre Implementierung in Java (treeMap, hashSet, hashMap, arrayList, linkedList, PriorityQueue, BlockingQueue), beschreiben Sie die Komplexität (schlechteste, durchschnittliche, beste) der Einfügung, Suche, wobei ein Element in jeder Struktur entfernt wird. 20. Primitive Datentypen in Java. Warum wird jeder von ihnen benötigt? 21. Arten von Fehlern. Geprüfte und ungeprüfte Ausnahmen. 22. Was ist JVM, JRE, JDK? 23. Mit welchen Sammlern haben Sie zusammengearbeitet? Maven – Lebenszyklus erstellen. 24. Spring – Ioc-Definitionen, Di, Bean-Lebenszyklus, Kontext, @Bean-Anmerkungen, @Configuration, @Autowired, @Advice, @Aspect, @Service, @Repository. 25. Generika – Definition von Unter- und Obergrenze? 26. Programmiermuster – zumindest Singleton (Bereitschaft zu erklären, warum dies manchmal ein Anti-Muster ist) + Builder, Adapter, Factory, Decorator, Proxt. Wünschenswert: 26. Testen – Arten von Tests, mit denen Bibliotheken (JUnit) gearbeitet wurden. Was ist Mock, Stich, Spy? 27. Spring Boot – warum wird es benötigt, Bereitschaft, eine SpringBoot-Anwendung online zu erstellen. 28. Ruhezustand – warum wird er benötigt, Entität, Join-Spalte, Lazy vs. Eager Loading, Caching-Level (schwer). 29. Frühlingsruhe – warum wird sie benötigt, wie erstellt man @post- und @get-Endpunkte? Wie lese ich Parameter/Anfragetext? Wie im JSON-Format einreichen? 30. Datenstrukturen – Bäume, ihre Typen. 31. Algorithmen – Sortierarten. Zusätzlich zu Java fragen sie möglicherweise: 1. (Erforderlich!) Git – warum wird es benötigt, Operationen Merge, Rebase, Cherry-Pick, Push, Pull, Commit, Log, Checkout, Branch, Reset, Revert, Refresh. 2.SQL – Fähigkeit, eine Abfrage zu schreiben: zwei Tabellen zu einer verbinden (innerer Join, linker Join). 3. Datenbanken – 3 Normalformen, Indizes (warum werden sie benötigt, Typen), Primärschlüssel, Fremdschlüssel. Wie läuft ein typisches Remote-Interview ab: hr sendet einen Link zum Zoomen (Skype, Google Meeting). Zu einem bestimmten Zeitpunkt verbinden Sie sich und es sind 1 bis 3 Personen da (technischer Experte, Chef, Personalabteilung). In besonders hartnäckigen Fällen bis zu 8 Personen. Zuerst erzählst du etwas über dich selbst, dann den technischen Teil, dann eine Geschichte über die freie Stelle und auf Wiedersehen (sie sagen, wann sie dich kontaktieren werden oder was die nächsten Schritte sein werden). Bei der Verabschiedung können Sie um Feedback zum Wissen bitten. Ich fragte: „Kannst du mir während meiner Antworten sagen, wo deine Ohren weh tun?“ Viele Menschen antworten, aber seien Sie bereit, abgelehnt zu werden. Während des Vorstellungsgesprächs bewerten sie: 1. Ihre Fähigkeit, Gedanken auszudrücken und Ihre Kenntnisse der russischen Sprache (ich kenne einen Fall, in dem ein Kandidat aufgrund mangelnder Russischkenntnisse abgelehnt wurde). 2. Frühere Erfahrungen (Sie fragen möglicherweise akribisch, was Sie bei Ihrem letzten Job gemacht haben). 3. Eine angemessene Reaktion, wenn Druck auf Sie ausgeübt wird (es gab ein Interview, in dem die Leute anfingen, respektlos zu reden: Sie ignorierten meine Antworten, versuchten, ihre Positionen zu vermitteln usw. Ich beendete das Interview 15 Minuten nach Beginn und sie: Es war ein stressiges Vorstellungsgespräch!) 4. Ihr Wissensstand. Ich werde hier näher darauf eingehen. Die Kenntnis der Definitionen eines Themas macht nur 10 % dessen aus, was von Ihnen erwartet wird. Es ist notwendig zu verstehen, wie es funktioniert (zumindest auf der obersten Ebene). Bereitschaft zu erklären, an welchem ​​Punkt der Entwicklung Sie sich für diese oder jene Lösung entscheiden werden. Dies ist viel wichtiger als die Genauigkeit Ihrer Definition. Ich werde diese These anhand von zwei Beispielen analysieren. Erstes Beispiel: Während eines Interviews wurde ich nach HashMap gefragt und ich gab die Definition: „Dies ist eine Datenstruktur, die Schlüssel- und Wertebündel speichert.“ Dann fragte der Interviewer: Was ist der Unterschied zu TreeMap? Antwort: Der Unterschied besteht darin, dass HashMap den Schlüssel hasht und der Zugriff aufgrund des Hashings schnell erfolgt. Der Interviewer bat uns sofort, uns die interne Struktur von HashMap mitzuteilen und gleichzeitig nach HashCode und Equals zu fragen. Und es wird tiefer gehen, bis Sie mit der Antwort zufrieden sind oder aufhören. Ich habe erst nach zwei Monaten Interviews und einem Kurs über Datenstrukturen auf Hexlet gelernt, richtig auf HashMap zu antworten. Zweites Beispiel: das SOLID-Konzept. Sie bitten mich, eine Definition anzugeben, die ich auswendig gelernt habe. Aber sobald es um Beispiele aus dem wirklichen Leben ging, begannen die Probleme. Внимание!Wenn Sie es nicht wissen, dann erfinden Sie es nicht, sondern sagen Sie Folgendes: Ich kenne dieses Thema nicht, aber ich kann davon ausgehen, dass es so funktioniert. Viele technische Experten sind wütend, wenn jemand Häresie ausspricht, als ob er das Thema versteht. 5. Ihre Begeisterung während des Stellengesprächs. Von Ihnen wird erwartet, dass Sie interessiert sind und Fragen zu der Stelle stellen (aber nicht nur erfundene). 6. Manchmal helfen Ihnen Humor (nur zum Thema) und gemeinsame Interessen bei der Kommunikation. Sprechen Sie gerne über Ihre Hobbys; vielleicht liebt der Interviewpartner auch Dota/Fußball/Fantasy. Und das ist ein Plus für Sie als Kandidat. Ich kenne Fälle, in denen eine Interessengemeinschaft angesichts der schlechten technischen Ausbildung des Interviewers ein Auge zudrückte (Du bist ein normaler Typ, wir schulen dich). <h3>Kapitel 9. Einen Job finden, Feuertaufe</h3>Die Interviews fanden von Ende April bis Mitte Juli statt. Die ersten Gespräche waren peinlich, aber nach und nach verbesserte sich die Situation auf ein akzeptables Maß. Das Studium häufiger Fragen und Rückmeldungen machte sich bemerkbar. Die ersten 25 Interviews waren erfolglos. Danach begannen Momente der Verzweiflung. Gefühle: Was wäre, wenn sie mich für dieses Gehalt nicht einstellen würden? Plötzlich ging es los: Innerhalb einer Woche reichten drei Unternehmen Vorschläge ein. Ich habe mich für ein Unternehmen entschieden, dessen Besonderheiten ich kannte, außerdem gab es ein gutes Gehalt und die Möglichkeit, aus der Ferne zu arbeiten. Während meines Vorstellungsgesprächs wurden mir etwa 30 Fragen zu Java Core und Spring gestellt, von denen ich 97 % richtig beantwortete. Danach erfolgte die Kommunikation mit höheren Behörden und nach 1,5 Wochen bekam ich dort einen Job. Wenn Sie zu einem Job kommen, beginnen Sie zunächst, Zugriff auf alle erforderlichen Systeme zu erhalten und die benötigten Tools zu installieren. Es dauerte anderthalb Wochen und ich bekam die erste Aufgabe: den statischen Text im Klassenzimmer zu ändern. Als ich das Projekt öffnete, wurde mir schlecht: Es gab viele Module in einem Projekt, viele Klassen, Tests usw. Zu diesem Zeitpunkt war ich ratlos, aber ein zweiter Entwickler hat mir geholfen und mich auf den neuesten Stand gebracht. Der Fehler wurde innerhalb von 10 Minuten behoben, in Git veröffentlicht, eine Pull-Anfrage gestellt (eine Anfrage zum Zusammenführen zweier Zweige, in der andere Entwickler Ihren Code überprüfen) und dann in den Hauptzweig zusammengeführt. Es stellte sich heraus, dass nicht alles so schwierig ist. Bis zur ersten vollwertigen Aufgabe... Als ich die Aufgaben für die nächsten zwei Wochen plante, sagten sie mir: Sie werden die Integration mit einem anderen System durchführen, das sich auf OpenShift befindet. Hier wurde es wirklich beängstigend: OpenShift ist eine ganze Reihe von Technologien: Docker, Kubernetes, Linux und so weiter. Kalter Schweiß lief mir über den Rücken: Nun, ich habe als Jawist gearbeitet. Unmittelbar nach dem Treffen rief ich den Entwickler an, der mir versicherte, dass Adapter für dieses System geschrieben worden seien und es ausreiche, bestimmte Klassen in mein Projekt zu importieren, woraufhin ich die Integration bedenkenlos nutzen könne. Es machte wieder Spaß, bis der Entwickler eine typische Integration zeigte: Ich sah mehr als 20 Klassen, die für eine ähnliche Integration erstellt wurden. Darüber hinaus wurden bisher nicht sichtbare Annotationen @Value, @Builder, @NoArgsConstructor, @Getter bemerkt @Sl4f - es stellte sich heraus, dass es das Lombook-Projekt war (im Internet gelesen). Als mir der Entwickler erklärte, wie es geht, versuchte ich, die Zusammenhänge aller Klassen aufzuschreiben, aber nichts blieb in meinem Kopf hängen. Der peinlichste Moment war das mangelnde Wissen über Intellij Idea: wie man global nach einem Projekt sucht, Code-Refactoring usw. Nachdem ich die Aufgabe übernommen hatte, verstand ich, warum OOP benötigt wird: Für eine so große Codemenge ist es notwendig, sie in Klassen zu unterteilen; Methoden, die nicht außerhalb der Klasse verwendet werden, müssen als privat deklariert werden, um sie nicht versehentlich in einer anderen Klasse usw. auszuführen. Nachdem ich meine Integration analog zu einer anderen Integration geschrieben hatte, erfuhr ich von der Existenz von CheckStyle – einem speziellen Plugin, das den Stil überprüft Ihres Codes, und Sie können Ihr Projekt erst kompilieren, wenn Sie Fehler behoben haben (z. B. zusätzliche Leerzeichen, Variablennamen mit Großbuchstaben, zu kurze Variablennamen). Nachdem ich CheckStyle besiegt hatte, schickte ich meinen Code zur Überprüfung an leitende Entwickler und korrigierte meine Fehler innerhalb einer Woche. Generell hatte ich großes Glück, dass ich in meinem Team ein gutes Verhältnis zum zweiten Entwickler hatte, der mir viele Dinge erklärt hat. Einen Monat nach dem Gerät wurde meine erste Integration am Integration-Functional-Stand gestartet (die Arbeit aller Anwendungen zusammen wird getestet), und dort hat alles funktioniert! Sieg! Die nächste Aufgabe bestand darin, eine Klasse zu erstellen, die das Ausblenden von Daten nach Schlüssel in JSON ermöglicht. Zum Beispiel: Es gibt json {text:"JavaRush"} -> Verarbeitung -> {text:"****Rush"}. Hier gibt es zwei Komplikationen: Es kann zu einer Verschachtelung von {text:{mytext:"JavaRush"}} kommen, und was noch unangenehmer ist, ist die Verschachtelung innerhalb des Arrays: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (natürlich müssen Sie alle text.mytext ausblenden). Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich. Ich habe versucht, die Zusammenhänge aller Klassen aufzuschreiben, aber nichts blieb in meinem Kopf hängen. Der peinlichste Moment war das mangelnde Wissen über Intellij Idea: wie man global nach einem Projekt sucht, Code-Refactoring usw. Nachdem ich die Aufgabe übernommen hatte, verstand ich, warum OOP benötigt wird: Für eine so große Codemenge ist es notwendig, sie in Klassen zu unterteilen; Methoden, die nicht außerhalb der Klasse verwendet werden, müssen als privat deklariert werden, um sie nicht versehentlich in einer anderen Klasse usw. auszuführen. Nachdem ich meine Integration analog zu einer anderen Integration geschrieben hatte, erfuhr ich von der Existenz von CheckStyle – einem speziellen Plugin, das den Stil überprüft Ihres Codes, und Sie können Ihr Projekt erst kompilieren, wenn Sie Fehler behoben haben (z. B. zusätzliche Leerzeichen, Variablennamen mit Großbuchstaben, zu kurze Variablennamen). Nachdem ich CheckStyle besiegt hatte, schickte ich meinen Code zur Überprüfung an leitende Entwickler und korrigierte meine Fehler innerhalb einer Woche. Generell hatte ich großes Glück, dass ich in meinem Team ein gutes Verhältnis zum zweiten Entwickler hatte, der mir viele Dinge erklärt hat. Einen Monat nach dem Gerät wurde meine erste Integration am Integration-Functional-Stand gestartet (die Arbeit aller Anwendungen zusammen wird getestet), und dort hat alles funktioniert! Sieg! Die nächste Aufgabe bestand darin, eine Klasse zu erstellen, die das Ausblenden von Daten nach Schlüssel in JSON ermöglicht. Zum Beispiel: Es gibt json {text:"JavaRush"} -> Verarbeitung -> {text:"****Rush"}. Hier gibt es zwei Komplikationen: Es kann zu einer Verschachtelung von {text:{mytext:"JavaRush"}} kommen, und was noch unangenehmer ist, ist die Verschachtelung innerhalb des Arrays: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (natürlich müssen Sie alle text.mytext ausblenden). Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich. Ich habe versucht, die Zusammenhänge aller Klassen aufzuschreiben, aber nichts blieb in meinem Kopf hängen. Der peinlichste Moment war das mangelnde Wissen über Intellij Idea: wie man global nach einem Projekt sucht, Code-Refactoring usw. Nachdem ich die Aufgabe übernommen hatte, verstand ich, warum OOP benötigt wird: Für eine so große Codemenge ist es notwendig, sie in Klassen zu unterteilen; Methoden, die nicht außerhalb der Klasse verwendet werden, müssen als privat deklariert werden, um sie nicht versehentlich in einer anderen Klasse usw. auszuführen. Nachdem ich meine Integration analog zu einer anderen Integration geschrieben hatte, erfuhr ich von der Existenz von CheckStyle – einem speziellen Plugin, das den Stil überprüft Ihres Codes, und Sie können Ihr Projekt erst kompilieren, wenn Sie Fehler behoben haben (z. B. zusätzliche Leerzeichen, Variablennamen mit Großbuchstaben, zu kurze Variablennamen). Nachdem ich CheckStyle besiegt hatte, schickte ich meinen Code zur Überprüfung an leitende Entwickler und korrigierte meine Fehler innerhalb einer Woche. Generell hatte ich großes Glück, dass ich in meinem Team ein gutes Verhältnis zum zweiten Entwickler hatte, der mir viele Dinge erklärt hat. Einen Monat nach dem Gerät wurde meine erste Integration am Integration-Functional-Stand gestartet (die Arbeit aller Anwendungen zusammen wird getestet), und dort hat alles funktioniert! Sieg! Die nächste Aufgabe bestand darin, eine Klasse zu erstellen, die das Ausblenden von Daten nach Schlüssel in JSON ermöglicht. Zum Beispiel: Es gibt json {text:"JavaRush"} -> Verarbeitung -> {text:"****Rush"}. Hier gibt es zwei Komplikationen: Es kann zu einer Verschachtelung von {text:{mytext:"JavaRush"}} kommen, und was noch unangenehmer ist, ist die Verschachtelung innerhalb des Arrays: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (natürlich müssen Sie alle text.mytext ausblenden). Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich. Für eine so große Menge an Code müssen Sie ihn in Klassen unterteilen. Methoden, die nicht außerhalb der Klasse verwendet werden, müssen als privat deklariert werden, um sie nicht versehentlich in einer anderen Klasse usw. auszuführen. Nachdem ich meine Integration analog zu einer anderen Integration geschrieben hatte, erfuhr ich von der Existenz von CheckStyle – einem speziellen Plugin, das den Stil überprüft Ihres Codes, und Sie können Ihr Projekt erst kompilieren, wenn Sie Fehler behoben haben (z. B. zusätzliche Leerzeichen, Variablennamen mit Großbuchstaben, zu kurze Variablennamen). Nachdem ich CheckStyle besiegt hatte, schickte ich meinen Code zur Überprüfung an leitende Entwickler und korrigierte meine Fehler innerhalb einer Woche. Generell hatte ich großes Glück, dass ich in meinem Team ein gutes Verhältnis zum zweiten Entwickler hatte, der mir viele Dinge erklärt hat. Einen Monat nach dem Gerät wurde meine erste Integration am Integration-Functional-Stand gestartet (die Arbeit aller Anwendungen zusammen wird getestet), und dort hat alles funktioniert! Sieg! Die nächste Aufgabe bestand darin, eine Klasse zu erstellen, die das Ausblenden von Daten nach Schlüssel in JSON ermöglicht. Zum Beispiel: Es gibt json {text:"JavaRush"} -> Verarbeitung -> {text:"****Rush"}. Hier gibt es zwei Komplikationen: Es kann zu einer Verschachtelung von {text:{mytext:"JavaRush"}} kommen, und was noch unangenehmer ist, ist die Verschachtelung innerhalb des Arrays: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (natürlich müssen Sie alle text.mytext ausblenden). Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich. Für eine so große Menge an Code müssen Sie ihn in Klassen unterteilen. Methoden, die nicht außerhalb der Klasse verwendet werden, müssen als privat deklariert werden, um sie nicht versehentlich in einer anderen Klasse usw. auszuführen. Nachdem ich meine Integration analog zu einer anderen Integration geschrieben hatte, erfuhr ich von der Existenz von CheckStyle – einem speziellen Plugin, das den Stil überprüft Ihres Codes, und Sie können Ihr Projekt erst kompilieren, wenn Sie Fehler behoben haben (z. B. zusätzliche Leerzeichen, Variablennamen mit Großbuchstaben, zu kurze Variablennamen). Nachdem ich CheckStyle besiegt hatte, schickte ich meinen Code zur Überprüfung an leitende Entwickler und korrigierte meine Fehler innerhalb einer Woche. Generell hatte ich großes Glück, dass ich in meinem Team ein gutes Verhältnis zum zweiten Entwickler hatte, der mir viele Dinge erklärt hat. Einen Monat nach dem Gerät wurde meine erste Integration am Integration-Functional-Stand gestartet (die Arbeit aller Anwendungen zusammen wird getestet), und dort hat alles funktioniert! Sieg! Die nächste Aufgabe bestand darin, eine Klasse zu erstellen, die das Ausblenden von Daten nach Schlüssel in JSON ermöglicht. Zum Beispiel: Es gibt json {text:"JavaRush"} -> Verarbeitung -> {text:"****Rush"}. Hier gibt es zwei Komplikationen: Es kann zu einer Verschachtelung von {text:{mytext:"JavaRush"}} kommen, und was noch unangenehmer ist, ist die Verschachtelung innerhalb des Arrays: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (natürlich müssen Sie alle text.mytext ausblenden). Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich. Variablennamen sind zu kurz). Nachdem ich CheckStyle besiegt hatte, schickte ich meinen Code zur Überprüfung an leitende Entwickler und korrigierte meine Fehler innerhalb einer Woche. Generell hatte ich großes Glück, dass ich in meinem Team ein gutes Verhältnis zum zweiten Entwickler hatte, der mir viele Dinge erklärt hat. Einen Monat nach dem Gerät wurde meine erste Integration am Integration-Functional-Stand gestartet (die Arbeit aller Anwendungen zusammen wird getestet), und dort hat alles funktioniert! Sieg! Die nächste Aufgabe bestand darin, eine Klasse zu erstellen, die das Ausblenden von Daten nach Schlüssel in JSON ermöglicht. Zum Beispiel: Es gibt json {text:"JavaRush"} -> Verarbeitung -> {text:"****Rush"}. Hier gibt es zwei Komplikationen: Es kann zu einer Verschachtelung von {text:{mytext:"JavaRush"}} kommen, und was noch unangenehmer ist, ist die Verschachtelung innerhalb des Arrays: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (natürlich müssen Sie alle text.mytext ausblenden). Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich. Variablennamen sind zu kurz). Nachdem ich CheckStyle besiegt hatte, schickte ich meinen Code zur Überprüfung an leitende Entwickler und korrigierte meine Fehler innerhalb einer Woche. Generell hatte ich großes Glück, dass ich in meinem Team ein gutes Verhältnis zum zweiten Entwickler hatte, der mir viele Dinge erklärt hat. Einen Monat nach dem Gerät wurde meine erste Integration am Integration-Functional-Stand gestartet (die Arbeit aller Anwendungen zusammen wird getestet), und dort hat alles funktioniert! Sieg! Die nächste Aufgabe bestand darin, eine Klasse zu erstellen, die das Ausblenden von Daten nach Schlüssel in JSON ermöglicht. Zum Beispiel: Es gibt json {text:"JavaRush"} -> Verarbeitung -> {text:"****Rush"}. Hier gibt es zwei Komplikationen: Es kann zu einer Verschachtelung von {text:{mytext:"JavaRush"}} kommen, und was noch unangenehmer ist, ist die Verschachtelung innerhalb des Arrays: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush "} ] } (natürlich müssen Sie alle text.mytext ausblenden). Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich. Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich. Die Lösung dieses Problems erwies sich als ziemlich schwierig, aber ich habe es geschafft! Hier sagt der zweite Entwickler: Decken Sie diese Entwicklung mit Tests ab. In den Augen lag Verwirrung. So habe ich die JUnit-Bibliothek im Kampf kennengelernt. Das Wesentliche beim Unit-Testen: Sie haben Eingabedaten, übergeben sie an eine Methode und vergleichen die empfangenen Daten mit dem richtigen Ergebnis (erstellen Sie eine Variable mit dem richtigen Ergebnis). Ich habe 11 Fälle für meine Bibliothek geschrieben, in denen ich überprüft habe, dass die Anwendung nicht mit einer NullPointException abstürzte und dass sie Daten bei jeder Art von Verschachtelung korrekt verbirgt. Nach Abschluss dieser Aufgabe wurde mir eine neue Integration zur Verfügung gestellt, deren Besonderheit folgende war: Ich musste ein Spring Bean aus einer externen Bibliothek exportieren. Zu diesem Zeitpunkt wurde ich Stammkunde der Stack OverFlow-Website. Einmal antwortete sogar ein offizieller Spring-Entwickler. Nach der Implementierung dieser Integration endete meine Testphase. Der Chef gratulierte mir zur bestandenen Probezeit und ich begann, diesen Artikel zu schreiben. Insgesamt hat das Schreiben dieses Artikels 8 Stunden gedauert) Vielen Dank für Ihre Aufmerksamkeit, ich hoffe, der Artikel war nützlich.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION