Zuallererst sollten Sie eine präzise (aber anpassbare) Stellenanzeige verfassen, die nur die besten JavaScript-Entwickler:innen anspricht. Außerdem sollten Sie bei jedem einzelnen Schritt einen Plan verfolgen.
Über JavaScript
JavaScript ist eine effiziente, objektorientierte, dynamische Skriptsprache für die Entwicklung von Web-Apps, interaktiven Effekten in Webbrowsern, Spielen, mobilen Anwendungen, Backend-Infrastrukturen und vielem mehr.
Ursprünglich wurde sie 1995 unter dem Namen LiveScript veröffentlicht.
JavaScript ist nicht nur für die Verwendung in Webseiten bekannt, sondern auch in anderen Umgebungen. Die Syntax der Sprache ähnelt denen von C++ und Java.
Suche nach und Bewerbungsgespräch mit JavaScript-Entwickler:innen
Wenn Sie auf der Suche nach den besten JavaScript-Talenten sind, sollten Sie Ihre Rekrutierungsstrategien im Voraus gut recherchieren.
Folgende Schritte sollten Sie bei Ihrem Vorgehen keinesfalls auslassen:
Checkliste über technische Kenntnisse
Erfahrene JavaScript-Entwickler:innen verfügen über ausgezeichnete Kenntnisse in einigen (idealerweise allen) der folgenden Bereiche:
- JavaScript-Grundlagen: ES6+, HTML und CSS, DOM,
- JavaScript-Konzepte (Schleifen, Variablen und Funktionen),
- grundlegende Algorithmen und Datenstrukturen,
- übliche JavaScript-Frameworks und -Bibliotheken (z. B. jQuery, TypeScript, Angular, Vue.js oder React.js),
- JavaScript-Tools zur Verwaltung von Zustandsinformationen (z. B. Redux.js),
- Web-Entwicklungstools (NPM, Git oder Webpack),
- Best Practices von JavaScript und seinen Funktionen,
- enge Zusammenarbeit mit den Frontend-Entwickler:innen und UX/UI-Designer:innen,
- Analyse von Systemrisiken und -anforderungen,
- asynchrone Programmierung (Prototypen, Hosting, Scope, Coercion usw.),
Alle Einzelheiten besprechen wir mit Diamant Isufi, einem Software Engineer bei Proxify, der uns erklärt, was JavaScript-Talente noch alles wissen müssen:
„JavaScript-Profis sollten nicht nur scharfsinnige Problemlöser:innen sein, sondern außerdem fundierte Kenntnisse in den Grundlagen der JavaScript-Konzepte vorweisen – das ist das Allerwichtigste. Nur so können sie die zugrundeliegenden Mechanismen, Anwendungen und die Logik für die Implementierung von JavaScript erfassen. Entwickler:innen sollten in der Lage sein, elementare Datentypen, Variablen, Funktionen, Klassen, OOP-Konzepte sowie die Modularität von JavaScript zu erlernen.“
Checkliste über wünschenswerte Qualifikationen
Um bei Hunderten von Bewerbenden diese Nadeln im Heuhaufen zu finden, können Sie nach folgenden Kriterien eine Vorauswahl treffen:
- Abschluss in Computerwissenschaften oder einem verwandten Fach,
- solide Kenntnisse der JavaScript-Plattformen (z. B. Meteor),
- Kenntnisse in Sprachfunktionen von ES6 (z. B. ECMAScript 6),
Fragen und mögliche Antworten für das Bewerbungsgespräch
Mit den folgenden Fragen und möglichen Antworten können Sie die Kenntnisse Ihrer JavaScript-Kandidat:innen beurteilen:
1. Können Sie isNaN und seine Verwendung erklären?
Mögliche Antwort: NaN steht für „Not a Number“ (keine Zahl). Mit isNaN können wir ermitteln, welcher Wert tatsächlich NaN ist. Wir verwenden die Funktion isNaN(), um herauszufinden, ob ein Wert eine ungültige Zahl enthält. Ist der Rückgabewert der Funktion „true“, so ist der überprüfte Wert NaN.
2. Definieren Sie „Negative Infinity“!
Mögliche Antwort: Wenn wir eine negative Zahl durch null teilen, erhält die Zahl in JavaScript den Wert -Infinity. Diese Zahl ist ein konstanter Wert, die niedrigstmögliche, einen niedrigeren Wert gibt es also nicht.
3. Können Sie erklären, was „globale Variablen“ sind?
Mögliche Antwort: Auf globale Variablen kann man von einem beliebigen Punkt im Programm aus zugreifen. Globale Variablen werden immer über das window object oder außerhalb einer Funktion deklariert. Wir können von jeder anderen Funktion aus auf sie zugreifen. Ein Beispiel für eine globale Variable ist var.
4. Worin besteht der Unterschied zwischen SessionState und ViewState in JavaScript?
Mögliche Antwort: SessionState bezeichnet Daten, die in einem bestimmten Server weiter verfügbar sind. Wenn der Browser geschlossen wird oder eine Sitzung abläuft, sind die Daten nicht länger verfügbar. Wir können von allen Web-App-Seiten aus auf diese spezifischen Daten zugreifen.
ViewState ist eine Gruppe von Steuerelementwerten auf einer Seite und im Client-Browser. ViewState speichert Informationen nur auf der Clientseite.
Während SessionState auf einem Server gespeichert wird, wird ViewState auf der Seite selbst gespeichert und wir können es ausschließlich von einer einzelnen Seite aus einsehen.
5. Können Sie „looping structures“ (Schleifenstrukturen) in JavaScript definieren?
Mögliche Antwort: Schleifenstrukturen kommen zum Einsatz, wenn wir an sich wiederholenden Aufgaben arbeiten, z. B. an der Wiederholung von Funktionen. Die Schleifen werden so lange ausgeführt, bis ihre Bedingung „false“ ist.
In JavaScript gibt es sieben Schleifenstrukturen:
- for…in
- for…of
- do-while
- while
- for
- forEach()
- map()
6. Definieren Sie „null“ in JavaScript.
Mögliche Antwort: „null“ bedeutet entweder no object (kein Wert) oder no value (kein Wert). Es wird auch null string genannt und enthält absichtlich keinen Wert. Das wird primitiver Wert genannt, da es kein Array-Objekt enthält.
Primitive Werte lassen sich in verschiedene Gruppen einteilen:
- Number
- Boolean
- String
- Null
- Undefined
7. Können Sie „Void(0)“ erklären?
Mögliche Antwort: In JavaScript repräsentiert „Void“ einen leeren Wert („return of nothing“, die Rückgabe von Nichts). Bei der Verwendung von „Void(0)“ rufen wir eine andere Methode auf, ohne die Seite zu aktualisieren. Wenn wir außerdem „javascript:void(0)“ verwenden, erledigen wir das mit einem Anchor-Tag, was das erneute Laden der Seite verhindert. Auf diese Weise können wir mit einem einfachen oder Doppelklick auch die JavaScript-Funktionen aufrufen.
8. Können Sie die Methode „pop()“ erklären?
Mögliche Antwort: Wir verwenden diese Methode, wenn wir das letzte Array-Element entfernen müssen, z. B. können wir mithilfe von pop() dasselbe Element wiederherstellen, nachdem es entfernt wurde. So können wir die Länge des Arrays mithilfe der Syntax array.pop() entsprechend anpassen.
9. Worin besteht der Unterschied zwischen .call() und .apply()?
Mögliche Antwort: Diese beiden sind einander sehr ähnlich. Wenn wir einige Argumente der Funktionen und die Funktionsnummer kennen, verwenden wir .call() als vordefinierte Methode. Mit dieser Methode kann ein spezifisches Objekt eine andere Methode von einem anderen Objekt annehmen.
.apply() dagegen verwenden wir, wenn wir die Funktionsnummer nicht kennen, aber eine Methode schreiben können, die wir später für mehrere verschiedene Objekte verwenden können.
10. Können Sie erläutern, was „deferred scripts“ (verzögerte Skripte) in JavaScript sind?
Mögliche Antwort: In JavaScript bezieht sich Defer auf ein boolesches Attribut und dessen Aufgabe, auszumachen, wann ein heruntergeladenes Skript mit einem Seiten-Parsing synchronisiert ist. Das Skript darf erst dann ausgeführt werden, wenn das Parsen abgeschlossen ist.
Die verzögerten (deferred) Skripte in JavaScript stellen die Ausführung des Skripts zurück, während der HTML-Seiten-Parser aktiv ist. Dies führt zu einer kürzeren Ladezeit für Webseiten und eine schnellere Anzeige.
11. Wo in JavaScript gibt es Pfeilfunktionen („Arrow Functions“)?
Mögliche Antwort: Wir verwenden diese Funktionen, um anonyme Ausdrücke zu erstellen oder Ausdrücke für anonyme Funktionen zu schreiben. Solche Funktionen unterstützen nicht die Schlüsselwörter new target, arguments, super und this.
Wir verwenden Pfeilfunktionen, wenn wir eine Funktion wie einen Parameter als eine andere anspruchsvolle Funktion formulieren.
12. Welche Datentypen gibt es in JavaScript?
Mögliche Antwort: Es gibt sechs Datentypen, die auf drei Kategorien verteilt sind:
- primitiv oder einfach („primary“ oder „primitive“): Boolean, String und Number,
- zusammengesetzt oder komplex („composite“ oder „reference“): Object, Function und Array,
- speziell („special“): Null und Undefined.
13. Vergleichen Sie die nicht definierte mit der undefinierten Variable!
Mögliche Antwort: Beide Variablentypen sind mit dem Speicherplatz verbunden. Die undefinierte Variable existiert im Speicher, aber ihr wurde kein Wert zugewiesen.
Die nicht definierte Variable existiert nicht im Speicher, aber sie ist an einem anderen Ort referenziert.
14. Beschreiben Sie Timer in JavaScript!
Mögliche Antwort: Mithilfe von Timern können wir eine bestimmte Funktion oder Aufgabe innerhalb eines Zeitraums ausführen. Timer helfen uns, die Ausführung eines Programms oder einen Code zu verzögern und den Code rechtzeitig auszuführen. Alle Timer werden in einem einzigen Thread ausgeführt und nachfolgende Ereignisse stehen in der Warteschlange.
15. Was ist automatische Typumwandlung (auch Typkonvertierung, auf Englisch type conversion)?
Mögliche Antwort: Bei diesem Vorgang werden Werte zugewiesen. Dabei wird ein bestimmter Wert von einem numerischen Datentyp in einen anderen umgewandelt. In JavaScript wird diese automatische Typumwandlung häufig ermöglicht und unterstützt.
16. Was ist Event-Delegation?
Mögliche Antwort: Mit dem Delegationsmodell in JavaScript kann die Ereignisbehandlung besser organisiert werden. Wenn wir einen einzigen Event-Handler für mehrere Elemente gleichzeitig verwenden möchten, führen wir zunächst eine „Bubble“ aus und erfassen dann den Handler, um ihn gleichzeitig auf mehrere Teile anzuwenden.
Das nennt sich Event-Delegation.
17. Können Sie die JavaScript-Cookies definieren?
Mögliche Antwort: Wenn Nutzende eine Website besuchen, speichert die Website immer einige winzige Testdateien auf dem Computer, die Cookies genannt werden. Sie werden bei den Besuchen der Nutzenden automatisch erstellt, aber nur, wenn die Nutzenden einige ihrer Informationen in bestimmten Formularen oder für Abonnements (z. B. an der Kasse eines Webshops oder durch das Ausfüllen eines Formulars) angeben.
Die Website bittet die Nutzenden dazu immer um Erlaubnis.
18. Warum würden Sie den gesamten Inhalt einer JavaScript-Quelldatei in einen Funktionsblock verpacken?
Mögliche Antwort: Das ist eine verbreitete Praxis unter JavaScript-Entwickler:innen, die dazu auf JavaScript-Bibliotheken zurückgreifen (meist Node.js oder jQuery). Dadurch entsteht eine Closure um den Inhalt der Datei. Die Datei erstellt dann im Privaten einen Namensraum und verhindert Namenskonflikte zwischen verschiedenen Bibliotheken und Modulen in JavaScript.
Ein weiterer Vorteil dieser Technik besteht darin, dass sie die Erstellung eines einfachen Alias für eine globale Variable (die einfach referenziert werden kann) ermöglicht. Dieses Vorgehen ist vor allem für jQuery-Plug-ins verbreitet, da jQuery die Deaktivierung der Referenz $ für den Namensraum von jQuery zulässt, beispielsweise jQuery.noConflict().
19. Nennen Sie die Vorteile von „use strict“ am Anfang einer Quelldatei!
Mögliche Antwort: „use strict“ ermöglicht zunächst eine strikte Fehlerbehandlung und -Parsing für den JavaScript-Code, der immer während der Laufzeit geschieht. Die Vorteile umfassen:
- Vermeidung unabsichtlicher globaler Variablen,
- Entfernen der „this“-Coercion,
- einfacheres Debuggen,
- Stärkung der „eval90“-Sicherheit,
- Verhinderung doppelter Parameter (Werte).
20. Erklären Sie die verschiedenen Fehlertypen in JavaScript!
Mögliche Antwort: Es gibt drei Fehlertypen: Syntax, Runtime und Logical.
Syntax: Syntaxfehler (oder Parsingfehler) treten während der Code-Interpretation auf, aber dieser Code ist syntaktisch ungültig. Dieser häufige Fehlertyp tritt auf, wenn ein Semikolon statt eines doppelten Doppelpunkts eingegeben wird.
Runtime: Laufzeitfehler (auch Ausnahmefehler/Exception Errors) treten nach der Kompilierung und Interpretation sowie während der Laufzeit auf. Sie treten auf, wenn eine Funktion aufgerufen wird, die nicht existiert oder zu dem entsprechenden Zeitpunkt nicht deklariert ist. Wenn das passiert, ist die Syntax fehlerfrei.
Logical: Logische Fehler treten auf, wenn Probleme mit dem Code bestehen, die Syntax aber gültig ist. Das Programm kann reibungslos ausgeführt werden, aber am Ende bemerken wir, dass etwas falsch ist. Bei logischen Fehlern handelt es sich um einen komplexen Fehlertyp, der nur schwer zu erkennen und zu lösen ist und nichts mit der Laufzeit zu tun hat. Dieser Fehlertyp tritt auf, wenn der Datenstrom fehlerhaft ist oder wenn dem/der Entwickler:in ein logischer Skriptfehler unterläuft.
So erkennen und wählen Sie das beste JavaScript-Talent
Gute und fantastische Entwickler:innen haben Einiges gemeinsam. Ein fantastischer JavaScript-Profi bringt jedoch Folgendes mit:
- längere Arbeitserfahrung mit JavaScript und den Versionen von ES6+
- Erfahrung mit verschiedenen UI-Bibliotheken von JavaScript sowie mit Frameworks wie React, Node, React Native, Angular, Vue usw.,
- mehr praktische Erfahrung in der Spieleentwicklung sowie der Entwicklung von Mobile- und Desktop-Apps,
- Kenntnisse in der besten IDE (integrierten Entwicklungsumgebung),
- umfassendere Expertise in Netzwerkdiensten, Backend-Web-Apps und Microservices,
- einen äußerst anpassungsfähigen Arbeitsansatz,
- herausragende Ergebnisse in den technischen Prüfungen.
Isufi fügt hinzu:
„Professionelle JavaScript-Entwickler:innen sollten darüber hinaus mit fortgeschrittenen Konzepten vertraut sein, unter anderem mit ES6+-Funktionen wie Exponentiation und Generatoren. Außerdem ist eine umfassende Bewertung ihrer Problemlösungskompetenz im Rahmen von JavaScript sowie eine Abfrage ihrer praktischen Arbeitserfahrung mit einschlägigen JavaScript-Frameworks und -Bibliotheken wie Angular, Vue und React unerlässlich.“
Des Weiteren ist ein solides Verständnis wesentlicher Konzepte und Technologien, unter anderem des Document Object Model (DOM), von Node.js und Paketverwaltungstools wie NPM oder Yarn, unverzichtbar für eine umfassende Expertise in der JavaScript-Entwicklung.
Mögliche Herausforderungen bei der Suche nach JavaScript-Entwickler:innen
Im Idealfall sind Sie von Vorneherein auf mögliche Herausforderungen vorbereitet. Folgende Probleme können auftreten:
- Keine Roadmap: Alles, was ohne Plan oder systematisches Vorgehen unternommen wird, kann später schiefgehen. Planen Sie jeden Schritt, kalkulieren Sie mögliche Schwierigkeiten ein und speichern Sie Dokumente entsprechend.
- Budgetprobleme: Stellen Sie genügend Mittel für alle zur Verfügung, die am Rekrutierungsprozess beteiligt sind: Personalvermittlungen, HR-Manager:innen und potenzielle neue Teammitglieder. Budgetieren Sie auch ein wenig mehr für mögliche Hindernisse bei der Talentsuche.
- Mangel an Kandidat:innen: In den letzten Jahren ist der Mangel an Entwicklungsprofis ein wohlbekanntes Problem in der Tech-Branche, das eine schnelle und effiziente Rekrutierung fantastischer Entwickler:innen zusätzlich erschwert.
- Dauer der Talentsuche: Der Rekrutierungsprozess dauert oft viel länger als erwartet (wenn Sie ohne Vermittlungen auskommen möchten, die Tech-Profis für Sie finden).
In diesen Branchen kommt JavaScript häufig zum Einsatz
JavaScript hat viele verschiedene Anwendungsbereiche, hauptsächlich wird es jedoch in folgenden Branchen eingesetzt:
Finanzwesen
Viele Unternehmen auf dem Gebiet Zahlungsabwicklung und Finanzen verwenden JavaScript für das Frontend ihrer Websites. Mit JavaScript entwickelte Zahlungs-Apps bieten praktische Funktionen für die finanziellen Aspekte eines Unternehmens.
Die Apps sind skalierbar, schnell und sehr leistungsfähig, was für Zahlungsabwicklungsunternehmen oder andere finanzielle Dienste entscheidend ist.
Marketing und Werbung
Mit JavaScript können einfach visuell ansprechende interaktive Effekte erzeugt werden, die das Herzstück aller visuellen Marketingaktivitäten bilden. Mithilfe von Google Analytics erkunden JavaScript-Entwickler:innen den Anzeigenmarkt und gewährleisten eine gute User Experience sowie einen erfolgreichen ROI.
Gesundheitswesen
JavaScript-Profis arbeiten effizient mit den Daten von Gesundheits-Apps und deren Schutz. Sie arbeiten zudem am Frontend dieser Apps, um sie für alle Nutzenden so einfach und effektiv wie möglich zu gestalten. Ein Beispiel sind Abrechnungsanwendungen oder Apps für die Terminbuchung im Gesundheitswesen.
E-Commerce
Im E-Commerce ist Bedienungsfreundlichkeit am allerwichtigsten. JavaScript-Talente arbeiten effizient an einer einfachen App-Navigation, damit Nutzende eine App problemlos verwenden können (z. B. Artikel zum Warenkorb hinzufügen oder zur Kasse und den Zahlungsbereichen gelangen).
Sowohl das Frontend als auch das Backend von sozialen Medien sind auf JavaScript angewiesen. Entwickler:innen wissen außerdem, dass Nutzende sich nicht in ihren Social-Media-Konten anmelden können, wenn sie JavaScript im Browser deaktivieren – das unterstreicht, wie wichtig JavaScript für Entwickler:innen und Nutzende ist.
Geschäftsvorteile durch JavaScript
Aus folgenden Gründen brauchen Sie JavaScript in Ihrem Unternehmen:
Es ist kosteneffizient.
Jedes Unternehmen will langfristig Geld sparen. Entwickler:innen die JavaScript-Frameworks verwenden, wenden weniger Zeit und Mühe auf das Coding auf und passen die Frameworks an die spezifischen Anforderungen eines Projekts an. Außerdem sind viele JavaScript-Frameworks quelloffen.
Es weist Hochgeschwindigkeitsleistung auf.
Auf dem clientseitigen Browser bietet JavaScript eine exzellente Leistung und Geschwindigkeit. Animationen lassen sich aufgrund der serverseitigen Verarbeitung schnell rendern, was eine nahtlose User Experience ermöglicht.
Es ist Fullstack-geeignet.
In JavaScript können Entwicklungsprofis sowohl Frontend- als auch Backend-Code schreiben. Der MEAN-Stack von JavaScript (die Abkürzung steht für MongoDB, Express.js, Angular.js, Node.js) ermöglicht eine nahtlose Fullstack-Entwicklung.
Es ermöglicht Interoperabilität.
Mit JavaScript können Entwickler:innen verschiedene Apps erstellen, da es sich ideal mit anderen Programmiersprachen kombinieren lässt.
Es verbessert die Cybersicherheit.
Um ihre vertraulichen Geschäfts- und Nutzendendaten zu schützen, benötigen Unternehmen eine gute Cybersicherheit. Entwickler:innen können viele nützliche Cybersicherheitsfunktionen, die die JavaScript-Frameworks zu bieten haben, effektiv implementieren.
Es ermöglicht einfaches Testen und Debugging.
Da JavaScript eine interpretierte Sprache ist, können Entwickler:innen einfach und frühzeitig Bugs erkennen. Außerdem können sie den Code in aufeinanderfolgenden Zeilen überprüfen.
Nahezu jeder Browser kann den JavaScript-Code schnell erfassen, da JavaScript eine interpretierte Sprache ist und auf allen Plattformen und Browsern ausgeführt werden kann.
Es eignet sich ausgezeichnet für die Erstellung gut konzipierter Schnittstellen.
Für die Entwicklung bestechender Schnittstellen sind die JavaScript-Frameworks die erste Wahl, da sie eine visuell ansprechende und nahtlose User Experience gewährleisten.
Wie für die meisten gängigen Programmiersprachen gibt es auch für JavaScript eine große weltweite Community aus hervorragenden Entwickler:innen, die immer bereitwillig Neuigkeiten, Updates oder hilfreiche Entwicklungsressourcen und Tipps weitergeben.
Isufi fasst die Vorteile von JavaScript zusammen, die alle Geschäftsinhabenden kennen sollten:
- Plattformübergreifende Kompatibilität: Mit JavaScript können Web-, Mobil- und Desktop-Anwendungen entwickelt und die meisten Codebases wiederverwendet werden.
- Interaktive Bedienoberflächen: Mit JavaScript können Unternehmen dynamische und interaktive Bedienoberflächen mit Echtzeit-Aktualisierungen, Animationen und Übergängen erstellen.
- Rich Web Applications: Mit Frameworks von JavaScript, wie React, Angular und Vue, können Unternehmen leistungsstarke Web- und Mobilanwendungen entwickeln.
- Schnelle Entwicklung: Die Vielseitigkeit von JavaScript sowie seine umfangreichen Bibliotheken und Frameworks verkürzen Entwicklungszyklen, wodurch neue Funktionen für Ihre Anwendung schneller entwickelt werden können.