Backend-Interviewfragen (Einstiegsstufe)

Jan 08 2023
Viele Freunde und Kollegen haben mir viele Fragen zu Vorstellungsgesprächen gestellt, was sie stellen würden und wie ich sie beantworten könnte, also habe ich beschlossen, das, was ich weiß, hier aufzuschreiben und ihnen diese Antwort zu schicken (Sie können diese Fragen gerne mit wem Sie teilen wissen, aber Sie könnten einige Unterschiede in Ihrem Land haben). Diese sind meiner Meinung nach ein MUSS für jeden Backend-Entwickler.

Viele Freunde und Kollegen haben mir viele Fragen zu Vorstellungsgesprächen gestellt, was sie stellen würden und wie ich sie beantworten könnte, also habe ich beschlossen, das, was ich weiß, hier aufzuschreiben und ihnen diese Antwort zu schicken (Sie können diese Fragen gerne mit wem Sie teilen wissen, aber Sie könnten einige Unterschiede in Ihrem Land haben). Diese sind meiner Meinung nach ein MUSS für jeden Backend-Entwickler.

Sie könnten dies hier finden : Nahaufnahmefoto der Programmierung von Codes · Kostenloses Stockfoto (pexels.com)

Stelle dich vor

Der erste Teil eines jeden Vorstellungsgesprächs besteht darin, sich vorzustellen : Wer sind Sie ? Was wissen Sie und warum würden sie Sie einstellen? Was können Sie gut und was können Sie schlecht (das Übliche)? Dies ist meistens auf Englisch. Als Nicht-Muttersprachler müssen sie Ihr Englisch testen, und wie Sie diese Frage beantworten, spiegelt einen Teil Ihrer Persönlichkeit wider, sodass es in meiner Teamantwort keine richtige oder falsche Antwort gibt, sondern eher eine Passung oder keine Passung .

Java

Als Absolvent der Informatik oder der Informatik ist die Hauptsprache, die Sie lernen, Java (kann je nach Universität unterschiedlich sein), daher müssen sie nach Ihrem Wissen fragen, was Wörter wie ( final, static und super ) bedeuten. Wenn Sie C kennen, dann bedeutet das, was eine Freundesfunktion ist. einige zum Überschreiben und Überladen , wann sie verwendet werden sollen, und einige Fragen im Zusammenhang mit „Ist es möglich, eine Funktion mit denselben Parametern, aber einem anderen Rückgabetyp zu überladen?“ Bitte werfen Sie einen Blick darauf und stöbern Sie ein wenig herum, Sie könnten einige interessante Dinge finden!

Hoppla

Abstraktion, Kapselung, Polymorphie und Vererbung. Das sind die 4 Prinzipien von OOP. Tiefes Verständnis dafür, was das bedeutet und warum, wann, wie, was und woihre Nutzung wird von Ihnen erwartet. Einige Fragen zum Unterschied zwischen 2 von ihnen wie "Was ist der Unterschied zwischen Abstraktion und Kapselung?" und vielleicht einige Fragen zu Polymorphismus in der Sprache, die Sie kennen – hauptsächlich Java, aber wie gesagt, es kommt darauf an – wie „Kann ich ein Objekt von einer Schnittstelle oder einer abstrakten Klasse instanziieren? was ist der unterschied zwischen abstrakt und schnittstelle? warum man sie benutzt? Ist Vererbung hier eine gute Wahl oder sollten wir Komposition verwenden?“. — Auch wenn Sie die funktionale Programmierung angepasst haben, haben Sie bitte ein tiefes Verständnis dafür, was Ihnen in OOP fehlt, denn jeder hat einen Kontext, in dem er glänzt, also erspart Ihnen das Kennen eines von ihnen nicht, zu wissen, was der andere auf dem Tisch hat — .

FEST

Wie bekannt ist, ist SOLID eine wirklich gute Sache, die Sie am Anfang Ihres Softwarelebens wissen sollten. Versuchen Sie, sich zunächst daran zu halten und zu verstehen, wie es funktioniert und warum und wann Sie es verwenden sollten. Eines Tages später werden Sie wissen, ob es sich um Over-Engineering handelt oder nicht, aber im Moment werden Sie es nicht wissen können, wenn Sie nicht vollständig verstehen, was das bedeutet.

Designmuster

Nachdem Sie SOLID kennen, können Sie anfangen, sich mit Entwurfsmustern vertraut zu machen. Zumindest über Singleton, Factory und Strategie Bescheid wissen . vielleicht die Typen Creational, Behavioral und Structural . Wo es sinnvoll ist, sie einzusetzen und warum. Wenn Sie jemals einen von ihnen verwendet haben, könnten einige Folgefragen auftauchen.

Unit-Tests

Kennst du sie? wann und wo werden sie eingesetzt? vielleicht sowas wie kennst du irgendwelche bibliotheken? oder haben Sie Bibliotheken zum Komponententest verwendet und welche sind das, wenn Sie mit Ja geantwortet haben?

Datenbank

Welche Arten von Datenbanken? Welche Datenbanken haben Sie jemals verwendet? SQL oder NoSQL? Was ist der Unterschied zwischen ihnen? Wann sollte man sie verwenden? Kannst du einige davon zählen? kennen Sie DML, DQL, DDL … etc? Weißt du, was SQL-Injection ist ? vielleicht ein paar praktische Fragen, wie z. B. ob ich abfragen möchte über … und ich habe eine Tabelle … und … dann wie mache ich das? Was ist Normalisierung in SQL? Ich schlage vor, einen Tag zu investieren, um nach diesen Dingen zu suchen!

ORM

Wenn Sie sich hauptsächlich mit Datenbanken auskennen, haben Sie ein objektrelationales Modell verwendet, wenn Sie Java verwenden, haben Sie möglicherweise die Java Persistence API verwendet oder Sie haben einen C#-Hintergrund, dann ist es Entity Framework oder Dapper für Sie. Es gibt viele ORMs, suchen Sie nach einem davon in Ihrer Sprache und lernen Sie, wie man es benutzt.

Datenstrukturen und Algorithmen

Sieht das aus wie dein Kryptonit? Nun, du bist nicht allein! Wie auch immer, es wird erwartet, dass Sie die gängigsten Datenstrukturen wie Linked List, Stack, Queue, Tree, Graph und Hash kennen . Könnte nach fortgeschrittenen Arten von ihnen gefragt werden, wie z. B. Double Linked List oder Search Trees , AVL Trees, B+ Trees , aber wenn Sie die Grundlagen und die gebräuchlichsten Algorithmen für jeden von ihnen kennen, wird es Ihnen gut gehen. Große O-Notationist in Bezug auf Geschwindigkeit und Platz für jede Funktion sehr wichtig. Meistens werden Sie im Vorstellungsgespräch mehr als eine Frage haben, und für diese denken Sie bitte laut darüber nach, dass dies sehr wichtig ist, da Sie ihnen keine Informationen darüber geben, wie Sie Ihre Antwort aufbauen können. Versuchen Sie also, die erste Idee aufzunehmen und mit der Umsetzung zu beginnen einen Sudo-Code und laut denken und das große O dafür bekommen, dann an einen besseren denken und wiederholen, bis Sie keine Zeit mehr haben oder Sie denken, dass die Lösung ausreicht. Probieren Sie einige der mittleren Fragen auf wettbewerbsfähigen Programmierwebsites wie HackerRank oder LeetCode aus , diese werden definitiv einen Unterschied in Ihrer Meinung machen.

Bücher

Einige Personalvermittler fragen, welche Bücher Sie lesen und was Sie aus diesem Buch gewonnen haben, oder schlagen Sie dieses Buch vor, und manchmal werden Sie deswegen eingestellt, und sie sehen etwas in Ihnen, das ihre Meinung ändern und Sie einstellen könnte.

Fortgeschrittener

Nun, es ist nie immer so, dass das Interview mit den allgemeinen Fragen geht, manchmal geht es ein bisschen weiter mit Fragen zu APIs, RESTful-APIs, Systemarchitektur, Systemdesign …etc. Es geht hauptsächlich darum, was Sie zu wissen behaupten, und beachten Sie, dass einige dieser Abschnitte in Ihrem Fall möglicherweise nicht benötigt werden und durch relativere Fragen zu Ihrem Wissen ersetzt werden, wenn Sie erwähnt haben, dass Sie es vorziehen, in einer Skriptsprache wie Python befragt zu werden.

Abschließend sind dies, was ich im Moment im Kopf habe, ich könnte einige davon bearbeiten, je nachdem, was ich bemerke und ob es einige neue Themen gibt. Bitte haben Sie Verständnis und merken Sie sich nicht nur, worüber Sie sprechen möchten, denn das macht die Sache noch schlimmer! Bitte, wenn Sie etwas haben, kann ich diesem Kommentar unten hinzufügen. Lesen Sie über zufälliges Zeug in Bezug auf Ihre Sprache und denken Sie daran, dass manchmal diese Zufälle etwas, mit dem Sie lange gekämpft haben, super einfach machen können, nur weil Sie sich gerade entschieden haben, darüber zu lesen, und es erwähnte etwas, das Sie die ganze Zeit über vermisst haben. VIEL GLÜCK, SIE WERDEN ES BEKOMMEN :) .

Wenn Sie ein Personalvermittler sind, können Sie gerne kommentieren, was Ihnen in diesem Prozess wichtig ist (jedes Unternehmen hat eine Richtlinie), daher ist es immer großartig, die Dinge aus einer anderen Perspektive zu sehen.

Die Ideen in dieser Geschichte hängen davon ab, was ich weiß und welche Antworten ich von Leuten bekomme, die ich frage, sie repräsentieren keine Institutionen oder Unternehmen oder Leute, mit denen ich arbeite oder mit denen ich zuvor zusammengearbeitet habe.