Veröffentlicht am 10-03-2019

Der dysfunktionale Stand der Technikeinstellung

Bild von Parveender Lamba von Pixabay

Es gibt so viele Tech-Unternehmen, die einstellen. Warum ist es so schwierig, einen Job in der Tech-Branche zu finden oder zu finden? Die Hauptprobleme sind ein Informatik-Abschluss, der die Menschen nicht ausreichend vorbereitet, der Interviewprozess ist überall und die Unternehmen möchten nicht viel Zeit für die Ausbildung aufwenden. Ich bin seit vier Jahren Teil eines Einstellungsausschusses und habe festgestellt, dass die Einstellung eines Software-Ingenieurs eine schwierige Aufgabe ist, da es selten vorkommt, dass ein idealer Kandidat oder manchmal sogar ein Kandidat die Mindestanforderungen erfüllt.

Aufgrund fehlender Spezialisierungsabschlüsse oder Zertifizierungen in der Software-Welt erstellt jedes Technologieunternehmen seine eigenen Aufnahmeprüfungen für potenzielle Software-Entwickler. Das typische technische Interview besteht aus ein bis drei Telefoninterviews und einem Interview mit vier bis sieben Interviewern vor Ort, um den idealen Kandidaten zu finden. Die Interviewer fragen nach Informatik-Grundlagen, domänenspezifischen Fragen und Verhaltensfragen und geben einen Kodierungstest ab, um die aktuellen Fähigkeiten und das Wachstumspotenzial einer Person zu bewerten.

Fähigkeiten und Wissen

Wie ich herausgefunden habe, ist ein Informatik-Abschluss nur eine Checkbox, da es sich hierbei um eine Anforderung handelt, die „so groß sein muss, dass man fahren muss“, die von Bootcamps und früheren Berufserfahrungen umgangen werden könnte. Warum wird kein Abschluss in Informatik hoch geschätzt? Die Technologie verändert sich schneller als die Universitäten mithalten können, so dass sie die allgemeinen Grundlagen vermitteln, aber nicht tief in Spezialwissen eintauchen, das Technologieunternehmen wollen. Wer hätte vorhersagen können, dass Kryptographie wegen Bitcoin eine attraktive Fähigkeit ist? Code-Boot-Camps vermitteln spezielle Kenntnisse wie Web-Entwicklung, Kryptografie mit Blockchain, maschinelles Lernen und mehr. Sie vermitteln oft keine allgemeinen Grundlagen der Informatik, aber diese Ingenieure sind für einige Unternehmen gut genug.

Tech Stack und Domänenwissen

Das typische Anliegen ist das Domänenwissen, das sich auf Ihren Tech-Stack bezieht, der Fehlschluss wird jedoch nur innerhalb des Tech-Stacks getestet. Die Unternehmen erwarten von Ingenieuren, dass sie die Programmiersprache kennen, die sie verwenden, aber die Universitätskurse und Code-Boot-Camps vermitteln üblicherweise Python-, Javascript- und Java-Sprachen. Diese Anforderung macht es schwieriger, junge Ingenieure zu finden, und viele Unternehmen ziehen weg, um junge Ingenieure einzustellen. Für erfahrene Ingenieure ist das Umschalten zwischen den verschiedenen Spezialisierungen in der Softwarewelt aufgrund der x-Anzahl von Jahren in der Programmiersprachenanforderung ziemlich schwierig.

Die Popularität von Programmiersprachen wird sich auch mit der Zeit ändern. Github zeigt den aktuellen Trend der Programmiersprachen:

Die ersten fünf sind Javascript, Java, Python, PHP und C ++. Perl war früher beliebt, aber es ist nicht einmal mehr in den Top 10. Es gibt auch Ruby, die früher beliebt war, aber ziemlich gefallen ist. Dann gibt es neue aufstrebende Sprachen wie Go, das in letzter Zeit populär wurde, da viele Unternehmen es übernehmen.

Ein guter Softwareingenieur kann im Laufe der Zeit eine andere Programmiersprache erlernen, da diese Sprachen sehr ähnliche Grundkonzepte haben, wie Schleifen, Variablen oder sogar Wertzuweisung. Es ist hauptsächlich das Erlernen der Syntax, der wichtigsten Unterschiede und bewährten Methoden einer bestimmten Sprache.

Take-Home-Codierungstest

In der Regel wird vor einem Vorstellungsgespräch vor Ort ein Kodierungsauftrag für die Mitnahme erteilt, um die Kodierungsfähigkeit des Bewerbers zu beurteilen und Personen auszusondern, die keine Zeit dafür einsetzen möchten. Diese Methode funktioniert für eine Weile, aber irgendwann postet jemand die Codierungszuweisung auf StackOverflow, wo ein anderer eine großartige Lösung aufschreiben wird. Einige Benutzer betrügen Tests, und es ist bei einer Codierungszuweisung zum Mitnehmen nicht anders. Das Lustige daran ist, dass es verschiedene Eigenschaften von Betrügern gibt. Ich habe einige gesehen, die ihre Arbeiten eingereicht haben, aber keine Ahnung hatten, wie sie die Entwurfsentscheidungen erklären sollten. Dann konnten einige Leute grundlegende Fragen darüber beantworten, wie das Problem gelöst werden konnte. Es ist immer noch eine hervorragende Möglichkeit, die Codierfähigkeit einer Person zu testen, auch wenn sie möglicherweise betrügt.

Whiteboarding

Sobald ein Kandidat die Interviewphase vor Ort erreicht, wird in der Regel ein Whiteboard-Test durchgeführt. Die Branche ist ziemlich gespalten in Whiteboarding-Gruppen ist Unsinn oder nicht. Hier ist eine gute Lektüre:

Schreiben Sie eine Funktion, die überprüft, ob eine Zeichenfolge ein Palindrom ist

Das Whiteboarding eines Algorithmus ist nicht hilfreich, weil erfolgreiche Personen die Antworten oder Tricks des Algorithmus gespeichert haben. Wenn Sie diesen Teil des Interviews bestanden haben, neigen sie eher zu neuen Absolventen, die gerade die Theorie der Informatik studiert haben. Ältere Ingenieure werden diese Prüfungen weniger wahrscheinlich bestehen, da sie schon eine Weile nicht in der Schule waren. Schließlich ist es auch kein echter Test für die Softwareentwicklung, da niemand Code auf eine Tafel oder auf Papier schreibt.

Live-Codierungstest

Anstelle eines Whiteboard-Tests ist ein Live-Codierungstest, bei dem der Kandidat 60 Minuten entweder für das Codieren oder das Debuggen aufwenden muss, viel besser. Der Kandidat würde vor einem Computer mit einer vollwertigen IDE sitzen, wo er eine Lösung programmieren könnte. Das Debuggen ist eine Fähigkeit, die selbst die erfahrensten Ingenieure ziemlich schrecklich sein können, aber Debugging bedeutet, dass Softwarefehler behoben und weniger fehlerhafter Code geschrieben wird. Der Codierungstest sollte ein einfaches Problem sein, das seine Fähigkeiten demonstrieren kann, ohne dass etwas Wahnsinniges wie das Durchqueren einer Spiralmatrix erstellt werden muss.

Geschichte wiederholt sich

Wenn jemand in der Vergangenheit Großes geleistet hat, muss er sich unbedingt wiederholen.

Beschäftigungsverlauf

Ein Blick auf die bisherigen Erfahrungen eines Kandidaten ist ein großartiger Ort, um ein Gefühl dafür zu bekommen, was diese Person erreichen kann. Es liefert jedoch immer noch kein vollständiges Bild, da der Interviewer nicht weiß, wie komplex das Projekt ist oder ob der Kandidat am Projekt beteiligt ist. Die meisten Softwareprojekte werden in Teams durchgeführt, sodass alle Interviewer einen tieferen Einblick in den Arbeitsverlauf finden. Neue Absolventen, die versuchen, in die Branche einzusteigen, sehen sich mit einer schwierigeren Beschäftigungsgeschichte schwieriger konfrontiert, können dies jedoch mit Projekten wettmachen. Menschen, die schon lange in der Branche tätig sind, haben eine ausgezeichnete Arbeitsgeschichte, um ihre Leistungen zu zeigen, haben aber möglicherweise Schwierigkeiten zu erklären, warum es so eine großartige Leistung war. Manchmal ist der einzige Unterschied die Perspektive des Interviewers gegenüber dem Interviewpartner.

Das andere Problem bei Lebensläufen ist, dass der Status der Berufsbezeichnungen bei Technologieunternehmen ziemlich unordentlich ist, da es keinen Standard gibt, so dass Titel bei verschiedenen Unternehmen möglicherweise nicht gut miteinander übersetzt werden. Ein CTO mit einem Startup von weniger als zehn Mitarbeitern könnte einem technischen Manager in einem großen Unternehmen mit mehr als 1.000 Mitarbeitern entsprechen. Daneben gibt es auch „nicht standardmäßige“ Berufsbezeichnungen, die nicht gut übersetzt werden können, z. B. der Leiter des Ingenieurwesens, der in einen Ingenieurmanager, einen Konstruktionsleiter oder einen Vizepräsidenten für Ingenieurwissenschaften umgewandelt werden könnte. Seien Sie nicht überrascht, wenn Ihr aktueller Titel in einen anderen Titel übersetzt wird, da die Verantwortlichkeiten dieser Rolle für dieses bestimmte Unternehmen unterschiedlich sind.

Persönliche projekte

Heutzutage ist ein GitHub-Link in einem Lebenslauf für Software-Ingenieure sehr üblich, was ein positiver Trend ist, den die technischen Einstellungen erreicht haben. Die Arbeitgeber möchten herausfinden, ob diese Person über die Initiative und die Art ihrer Fähigkeiten verfügt. GitHub macht es sehr einfach, den Code einer Person zu überprüfen und deren Beiträge zu einem Projekt zu erkennen.

Du hast keinen GitHub? Versuchen Sie es mit einer Online-Kurs-Website wie der Khan Academy oder tragen Sie zu einem Open Source-Projekt bei:

Kultur Fit

Technologieunternehmen haben viel Zeit investiert, um ihre eigene Kultur zu formen, und suchen nur nach Mitarbeitern, die in ihre Kultur passen. Ein Kandidat kann alle Fähigkeiten haben, die er sich wünscht, aber immer noch disqualifiziert, wenn er nicht die Art von Persönlichkeit ist, nach der das Unternehmen seine Kultur sucht. Obwohl es gut ist, Menschen mit hohem Ego herauszufiltern, werden manchmal große Ingenieure wegen geringfügiger Charakterschwächen wie zaghafter oder schwacher Zuversicht disqualifiziert. Diese Charakterschäden können mit der Zeit verschwinden, wenn die Person wächst.

Verhalten

Die zeitgestesteten Verhaltensfragen sind in den Tech-Interviews relevant, da sie viele Aspekte einer Person offenlegen und dazu beitragen, ein besseres Bild davon zu zeichnen, was diese Person getan hat. Der Stern. Die Methode (Situation, Aufgabe, Aktion und Ergebnis) hat sich zu einer sehr beliebten Methode zur Beantwortung von Verhaltensfragen entwickelt. Beschreiben Sie die Situation, geben Sie das Ziel an, welche Maßnahmen die Person ergriffen hat, und geben Sie die Ergebnisse an. Es ist nichts Kniffliges an diesem Teil, außer die vorherigen Erfahrungen im richtigen Format aufzubereiten.

Erzählen Sie mir von einer Zeit, die Sie über Ihre normalen Pflichten hinausgehen mussten.

Corporate versus Startup Leben

Das Startup-Leben ist ein kleines Unternehmen, das immer noch versucht, in eine Branche einzudringen oder ein neues Produkt zu schaffen. Diese Periode eines Unternehmens kann der wilde Westen sein, in dem von einer Person erwartet wird, dass sie sich schnell bewegt, mehrere Hüte trägt, lange Stunden arbeitet und gebeten wird, etwas zu tun, für das Sie nicht eingestellt wurden. Es ist nicht das Leben für alle, aber der lohnende Teil ist, dass es normalerweise einfacher ist, einen größeren Einfluss zu erzielen und neue Fähigkeiten zu erlernen.

Das Unternehmensleben ist ein etabliertes großes Unternehmen mit Prozessen und Richtlinien, die die Funktionsweise der Dinge beschreiben. In der Regel bewegen sich große Unternehmen langsamer, da es in der Organisation mehrere Ebenen gibt und Maßnahmen möglicherweise Genehmigungen erfordern. Die Art der Verantwortlichkeiten, die sich in einer Startup-Umgebung in einer Rolle angesammelt haben, kann in verschiedene Positionen in einer Unternehmensumgebung aufgeteilt werden. Ingenieure wirken sich weniger auf die Ausrichtung und die Projekte des Unternehmens aus.

Das Umschalten zwischen den beiden kann sehr schwierig sein und einige haben den Übergang nicht geschafft. Beide haben ihre Vor- und Nachteile. Es geht darum, zu finden, welches besser passt.

Wichtige Punkte

Hoffentlich wird eine Firma eine A.I. Dadurch werden die Menschen in Jobs versetzt, sodass wir alle aufhören können, Zeit und Geld zu verschwenden. Man kann hoffen, aber lass uns in der Zwischenzeit verbessern.

  • Langsamer! Nutzen Sie Chancen und investieren Sie in Menschen. Ein Ingenieur kann neue Sprachen und Technologien erlernen.
  • Die Softwareentwicklung verändert sich rasant in viele verschiedene Branchen. Universitäten müssen mit den Trends Schritt halten, um neue Ingenieure besser vorbereiten zu können. Es muss einen natürlichen Weg geben, um zwischen den verschiedenen Vertikalen zu schwenken.
  • Die Tech-Industrie muss das Whiteboard beenden. Verwenden Sie einen Live-Codierungstest!
  • Interviewer verstehen möglicherweise nicht die Auswirkungen oder Komplexität von Projekten in der beruflichen Vergangenheit einer Person. Manchmal ist es eine Frage der Perspektive.
  • Jobtitel sind ein Durcheinander und können zwischen Unternehmen nicht gut übersetzt werden.
  • Versuchen Sie, zu einem Open Source-Projekt beizutragen, oder lernen Sie neue Fähigkeiten aus Online-Kursen wie der Khan Academy. Es wird dringend empfohlen, auf GitHub Code-Projekte zu präsentieren.
  • Kultur ist wichtig! Die Einstellung einer Person, die nur auf Fähigkeiten basiert, kann die Teamdynamik oder sogar das gesamte Unternehmen beeinflussen.

Siehe auch

Debugging für mehrere Benutzer in PhpStormEine Einführung in die Themen der reaktiven Programmierung