Heim > Web-Frontend > js-Tutorial > Hauptteil

Verbessern Sie Ihr Vorstellungsgespräch mit Übungsaufgaben

WBOY
Freigeben: 2024-08-21 06:18:02
Original
1063 Leute haben es durchsucht

Level Up Your Interview Game with Practice Problems

Einführung

An alle, die mich nicht kennen: Ich bin ein Frontend-Ingenieur mit mehr als 10 Jahren Erfahrung und habe auch BigDevSoon – SaaS (Code-Lernplattform der nächsten Generation, auf der man lernt, indem man Dinge vom ersten Tag an erstellt) erstellt. Bald über 10.000 Benutzer/ 1.000 $ MRR diesen Monat.

Obwohl es mir Spaß macht, moderne Benutzeroberflächen in React zu erstellen, hat mich die Transformation der „Frontend“-Rolle im Laufe der Jahre oft dazu gezwungen, ein Full-Stack-Entwickler zu sein, BFFs (Backend für Frontend) zu erstellen, zu analysieren und nachzudenken Tonnenweise Datenstrukturen und die Arbeit mit Datenbanken. Ansonsten sind wir keine „Website“-Entwickler mehr und um Schritt zu halten, müssen wir ständig lernen und uns anpassen.

In den heutigen schwierigen Marktzeiten habe ich mehr als einen Monat gebraucht, um meinen neuesten Job zu bekommen. Über diese Reise können Sie hier lesen. Indem ich marathonartige Vorstellungsgespräche mit oft mehr als 10 Etappen durchlief, verstand ich die neuen Muster und wie wir uns anpassen müssen, um leichter Jobs zu bekommen.

Eines der Muster, die mir aufgefallen sind, ist Kommunikation und Soft Skills, z.B. „Nehmen Sie Ihr Begrüßungsvideo auf und erzählen Sie uns etwas über sich.“ oder 3x+ Verhaltens-/Kulturinterviews „Was würden Sie in x-Situation tun und warum, erklären Sie.“ aber es ist ein Thema für ein anderes Tag, das ich in diesem Beitrag nicht behandeln werde.

Zu den oben genannten Punkten möchte ich nur eines erwähnen und es lohnt sich, dies zu tun, wenn Sie noch kein „Influencer“ sind: Versuchen Sie, sich selbst aufzunehmen und sogar zu versuchen, ein von Ihnen erstelltes Demo-Feature, ein Nebenprojekt oder eine Einführung zu machen sich selbst und Ihren Werdegang (fassen Sie z. B. Ihren Lebenslauf, Ihre Erfahrungen, vergangene Projekte in max. 3-5 Minuten zusammen). Sie werden sich das anhören und vielleicht feststellen, dass Ihre Stimme zu leise ist oder Sie sich vor der Kamera zu sehr anstrengen. Es ist eine gute Übung, diese Angst zu überwinden und sich vorzustellen, dass Sie die 9/10-Phasen durchstehen und es nicht schaffen, mit einem CEO/TL/Manager zu sprechen, nur weil Sie das nicht geübt haben. Es wäre schade.

Ein weiteres Thema sind bekannte Übungsprobleme, aber glauben Sie mir, Sie müssen nicht das gesamte DSA beherrschen, einschließlich Dinge wie Dijkstras Algorithmus oder Rot-Schwarz-Bäume (auch wenn es hilfreich sein wird, Ihre nächsten Interviews zu meistern).

Alles, was Sie brauchen, ist ein wenig Mühe und Vorbereitung, damit Sie nicht überrascht werden und diese „kleinen Probleme“ lösen können, die viele Unternehmen heutzutage nutzen, um die Kandidaten herauszufiltern und keine Zeit mit langen Vorstellungsgesprächen zu verschwenden indem sie ihre Ressourcen investieren (z. B. Leute, die ein Vorstellungsgespräch führen müssen usw.)

Was vielen „Wasserfall“-Entwicklern nach Bootcamps/-Kursen fehlt, sind Fähigkeiten zur Problemlösung. Diese Programme nehmen einen oft an die Hand und erlauben nicht so viel, selbst zu denken – was nicht heißt, dass es falsch ist, sondern dass man viele besser werden kann Es sind unterschiedliche Techniken erforderlich, und um Vorstellungsgespräche unter Druck zu meistern, macht es einen großen Unterschied, schnell Lösungen für Probleme finden zu können, die Sie vor 10 Minuten angesprochen haben, und Interviewer erwarten, dass sie sich in weniger als einer Stunde lösen.

Lassen Sie uns anhand eines der Beispiele, die ich erlebt habe, mehr darüber erfahren, und dann werde ich eine tägliche Gewohnheit teilen, die mir in meinen Interviews geholfen hat, und einige wertvolle Übungsaufgaben zur Problemlösung vorstellen.

Das Palindrom-Problem

Ein Palindrom ist also ein Wert, der sich rückwärts oder vorwärts gleich liest. Z.B. „racecar“ ist ein Palindrom, aber „hello“ ist kein Palindrom, denn wenn man diesen Wert umkehrt, wäre es stattdessen „olleh“.

Ich telefoniere mit einem Personalvermittler eines der Unternehmen, bei dem ich mich beworben habe, und wir führen ein entspanntes Smalltalk, da es sich um eine der ersten Phasen in diesem Unternehmen handelte. Und jetzt BOOM, letzte 10 Minuten des Interviews „Hey, eine letzte Frage, könnten Sie eine Codelösung für das Palindromproblem schreiben?“ ... und ich war etwas überrascht.

Aber wir haben es verstanden, sind sofort zu https://jsfiddle.net/ gesprungen und haben geschrieben:

function isPalindrome(string) {
  return string.split('').reverse().join('') === string;
}
Nach dem Login kopieren

Stolz auf mich, aber der Personalvermittler sagt: „Bitte verwenden Sie keine vorgefertigten Methoden.“

Okay, überhaupt kein Problem, uns läuft bald die Zeit davon, aber ich habe das verstanden.

Nehmen Sie sich etwas Zeit, um eine alberne Lösung zu finden, etwa diese:

function isPalindrome(string) {

  let isValid = true;

  for (let i = 0; i < string.length / 2; i++) {
    if (string[i] !== string[string.length - i - 1]) {
      isValid = false;
    }
  }

  return isValid;
}
Nach dem Login kopieren

Und natürlich fing der Personalvermittler an, über die Big-O-Notation zu sprechen. Wir unterhielten uns noch ein wenig und ich wurde erneut überrascht und überrascht.

Nehmen wir an, eine akzeptable Lösung wäre etwa so:

function isPalindrome(string) {
    const normalizedString = string
    .toLowerCase()                    // Convert to lowercase
    .replace(/[^a-z0-9]/g, '');       // Remove non-alphanumeric characters

  for (let i = 0; i < normalizedString.length / 2; i++) {
    if (normalizedString[i] !== normalizedString[normalizedString.length - i - 1]) {
      return false;
    }
  }

  return true;
}
Nach dem Login kopieren

Wir machen hier zwei Dinge: Erstens haben wir eine Zeichenfolge normalisiert, sodass wir für „A man, a plan, a canal: Panama“ amanaplanacanalpanama erhalten und die Schleife vorzeitig verlassen, anstatt immer den „halben Wert der Zeichenfolge“ zu durchlaufen.

Es ist nur ein Beispiel, aber lasst uns herausfinden, was falsch passiert ist.

  1. Mangelnde Kommunikation, ich habe nicht einmal gefragt, ob der Personalvermittler Pseudocode meinte, strikte Typen wie TypeScript erstellen wollte oder ob Fiddle die richtige Wahl war.
  2. Ich habe nicht überprüft, ob Google/ChatGPT verwendet werden kann (naja, es war super einfach zu lösen, aber ich hatte fast keine Zeit und nachdem ich einen Einzeiler geschrieben hatte, war ich noch abgelenkter).
  3. Ich habe erwähnt, dass meine letzte Lösung verbessert werden könnte, aber wir hatten keine Zeit, sie aufzuschreiben. Vielleicht war es eine seltsame Interviewfrage, die mich am Ende erwischte, aber indem ich richtige Fragen stellte wie „Kann ich integrierte Methoden verwenden, sollte ich dafür eine Schleife verwenden, sollte ich Pseudocode oder eine funktionierende Lösung schreiben, kann ich googeln?“ /ChatGPT?" Würde mir auf jeden Fall viel Zeit sparen.

Die gewonnenen Erkenntnisse habe ich mit der Arbeit an Leetcode begonnen. Immer 1+ Problem pro Tag, aber meistens wählen Sie zwischen den Schwierigkeitsgraden „Einfach“ und „Mittel“ und versuchen, sich auf Probleme zu konzentrieren, die „menschlicher Natur“ sind, da Personalvermittler diese normalerweise verwenden, z. B. Beste Zeit zum Kaufen und Verkaufen von Aktien Eines der nächsten Unternehmen, bei denen ich mich beworben habe, hat mir eine Aufgabe gestellt und ich habe sie gelöst. Ich frage ChatGPT gerne nach dem Unternehmen, bei dem ich mich bewerbe, und empfehle praktische Probleme, die relevant sein könnten, und füge sogar eine Nachricht des Personalvermittlers als zusätzlichen Kontext hinzu. (Ja, Sie könnten sie per E-Mail fragen, was sie während des Vorstellungsgesprächs erwartet, wenn sie es nicht zu gut erklären).

Nach einiger Zeit werden Sie Muster, Array-Probleme, String-Probleme und Verbindungsstücke erkennen und darin besser werden, da die Methoden, die Sie zur Lösung dieser Probleme verwenden, gemeinsam genutzt werden können, selbst wenn die Testfälle unterschiedlich sind oder die Art des Problems unterschiedlich ist völlig anders.

Probleme, die einen Blick wert sind

Während wir immer mehr Funktionen zu unserer Plattform hinzufügen, werde ich auf BigDevSoon einen schamlosen Plug-in-Vorgang mit Übungsproblemen durchführen, derzeit 41 davon, und dabei versuchen, die Dinge einfach zu halten (KISS) und die relevantesten Probleme zu kuratieren + noch ein paar zum Aufwärmen (Leichte Stufe).

Ich liste unten 10 davon auf, die meiner Meinung nach eine Lösung wert sind.

1. Palindrom

2. Finden Sie Max

3. Beste Zeit zum Kaufen und Verkaufen von Aktien

4. Behälter mit dem meisten Wasser

5. Vovel zählen

6. Gruppenanagramme

7. Saitenkomprimierung

8. Teilmengen

9. Top-N-häufige Wörter

10. Finden Sie alle Duplikate in einem Array

Zusammenfassung

Und das ist es! Aus diesen Übungsaufgaben kann man eine Menge lernen, da sie jeweils eine unterhaltsame Möglichkeit sind, Ihr Gehirn zu aktivieren.

Es ist seit langem mein Ziel, einen projektbasierten Lernansatz in der Community zu verbreiten und BigDevSoon zum Laufen zu bringen, eine App, an der wir seit drei Jahren arbeiten. Für uns ist das ein toller Erfolg.

Codieren Sie weiter GROSS! ?‍♂️

Das obige ist der detaillierte Inhalt vonVerbessern Sie Ihr Vorstellungsgespräch mit Übungsaufgaben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!