Top-Programmierer finden – Ein Leitfaden zur Einstellung der besten Entwickler

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

Die besten Programmierer zu finden, kann eine entmutigende Aufgabe sein. Für Nicht-Techniker wie Unternehmer und Kleinunternehmer kann der Job geradezu nervenaufreibend sein. Die Leute suchen nach dem einen schwer fassbaren "Super Developer" oder "Uber Programmer", um alle ihre Softwareprobleme in der Hälfte der Zeit ohne Fehler zu lösen. Diese Super-Programmierer gibt es. Ich habe sie kennengelernt. Ich habe mit ihnen gelebt. Sie leben auf einer anderen Ebene als wir Normalsterblichen. Und sie alle arbeiten bei Google.

Aber Sie finden exzellente Entwickler, die Projekte termingerecht mit den gewünschten Spezifikationen abschließen. Ein Schlüssel, um großartige Entwickler zu finden, ist zu wissen, wie man sie bewertet. Dieser Artikel hilft Ihnen bei der Auswahl von Programmierern mit den richtigen Eigenschaften.

Da jeder auf Akronyme steht, lassen Sie uns eine prägen, um die Eigenschaften eines exzellenten Entwicklers zu beschreiben – JUICED (trotz der negativen Konnotation des Wortes mit Steroidgebrauch und OJ Simpson.) Obwohl Sie nicht möchten, dass Ihre Programmierer töten, um Code rechtzeitig herauszubringen, sind Sie suche jemanden, der auf den Torpfosten zielt.



Beurteilung

Beginnen wir mit J (das ist der erste Buchstabe im Wort "Juiced"), das das Urteil darstellt. Kein Urteil, da Sie bis zum Tag des Gerichts warten, bis Ihr Webentwickler das Projekt beendet. Urteilsvermögen wie in Ihren Programmierern haben ein gutes Urteilsvermögen und sie üben es aus. Um zu betonen, warum Urteilsvermögen so wichtig ist, verrate ich Ihnen ein großes Geheimnis der Softwareentwicklung:



Die meisten Softwareprojekte scheitern, weil die Leute an den falschen Dingen arbeiten.




Sie können alles andere in diesem Artikel vergessen und sind immer noch besser über Softwareentwicklung informiert als 97% der Geschäftsleute (ohne Tausende von Dollar für teure Abschlüsse ausgeben zu müssen). Was bedeutet es, "an den falschen Dingen zu arbeiten?" Ich gebe Ihnen ein Beispiel. Angenommen, Sie haben ein Projekt zur Erstellung einer Website, die die Gaspreise nach Geografie verfolgt. Der Benutzer gibt eine Adresse ein und sieht eine Liste von Tankstellen und die neuesten von einem Benutzer eingereichten Preise.

Jetzt möchte Ihr Entwickler vielleicht eine Google-Karte codieren, weil es cool und interessant ist. Aber er kann zu viel Zeit damit verbringen, wenn eine einfache Liste genügt hat. Bevor ein guter Programmierer viel Zeit damit verbringt, eine bestimmte Funktion zu programmieren, wird er ein Urteil fällen und mit dem Kunden oder Projektmanager prüfen, ob die aufgewendete Zeit mit dem Budget, dem Zeitplan und den Prioritäten übereinstimmt.



Verstehen


Natürlich muss ein Programmierer die Anwendung verstehen, damit sie so funktioniert, wie es der Kunde wünscht. Auf der Grundstufe hilft es dem Programmierer, solide Englischkenntnisse in Wort und Schrift zu haben. Ich habe viele Programmierer mit Englisch als Zweitsprache mit hervorragenden Ergebnissen geführt. Heutzutage werden Sie wahrscheinlich Programmierern mit Englisch als Zweitsprache begegnen, also ist dies kein wirkliches Problem.

Während die gesprochene Sprache wichtig ist, muss der Programmierer die Sprache des Unternehmens des Kunden lernen. Jede Branche und jedes Projekt hat seine eigenen Begriffe, eine einzigartige Nomenklatur. Ein guter Programmierer versteht die Sprache und wie sie sich auf die endgültige Anwendung bezieht.

Ein ausgezeichneter Programmierer kann nicht nur den Problemraum verstehen, sondern auch die Projektspezifikationen genau lesen und interpretieren. Da keine Spezifikation perfekt geschrieben ist, wird ein großartiger Entwickler nach Überprüfung der funktionalen Spezifikationen relevante Fragen stellen. Diese Fragen demonstrieren das Verständnis der Anwendung und können fehlende Details oder ein inkonsistentes Design aufdecken.

Intelligenz

Ein guter Entwickler muss zwar kein Star Trek-Aliengenie mit großem Gehirn sein, aber er braucht eine gewisse Art von Intelligenz. Programmieren erfordert Eigenschaften, die über einfache Problemlösung und Mustererkennung hinausgehen. Das Schreiben von Code erfordert viel abstraktes Denken. Eine Person muss mehrere miteinander verbundene Konzepte im Auge behalten, die für das jeweilige Problem geeigneten Software-Entwurfsmuster und Werkzeuge auswählen, sich an die richtige Syntax erinnern und den Code schreiben. Begabungen in Mathematik, Naturwissenschaften und das Lösen von Zauberwürfeln würden Sie auf den richtigen Weg bringen, um einen qualifizierten Kandidaten zu finden.

Der mentale Fokus spielt beim Programmieren keine geringe Rolle. Einen Fehler in mehreren tausend Zeilen Code zu finden, kann ein sehr frustrierendes Spiel von "Wo ist Waldo?" Ein anständiger Entwickler wird in der Lage sein, Fehler zu beheben, den Geisteszustand wiederzuerlangen, als der Code ursprünglich geschrieben wurde, und die entsprechenden Korrekturen vorzunehmen. Ein intelligenter Programmierer verfügt nicht nur über gute Fähigkeiten zur Fehlerbehebung, sondern entwickelt auch Software, die von Natur aus Fehler durch modulares Design reduziert.

Kompetenz

Ein kompetent geschriebenes Programm sieht innen und außen gut aus. Von außen (aus Sicht des Kunden) hat die Anwendung eine gute Benutzeroberfläche und erfüllt die funktionalen Anforderungen. Das System verhält sich wie erwartet, löst das gewünschte Problem und bietet Sicherheit. Für eine gut geschriebene Bewerbung ist das Ganze mehr als die Summe seiner Teile. Es besitzt Geschmeidigkeit. Um diese Qualität zu erreichen, nimmt der Entwickler beim Erstellen der Anwendung die Perspektive des Endbenutzers ein. Wie oft haben wir problematische Websites oder Anwendungen verwendet und uns gedacht: "Hat der Programmierer überhaupt versucht, dies zu verwenden?" Das Denken an den Endverbraucher zeigt Höflichkeit und Kompetenz.

Während Benutzer gut geschriebene Anwendungen erkennen, wenn sie sie sehen, braucht es einen anderen Programmierer, um kompetent geschriebenen Code zu erkennen. Was bedeutet das? Kompetent geschriebener Code ist erweiterbar – geschrieben mit Blick auf zukünftige Änderungen. Erweiterbarer Code verfügt über umfangreiche Kommentare, funktionale Organisation, aussagekräftige Variablennamen und überschaubare Module. Ein anständiger Programmierer kann Code schreiben, der funktioniert und die Anforderungen erfüllt, aber schwierig zu erweitern ist. Ein Superentwickler schreibt Code in dem Wissen, dass er gewartet werden muss – entweder von ihm oder jemand anderem. Programmierer dieses Kalibers schreiben nicht nur erweiterbaren Code, sie erkennen und schätzen andere Entwickler, die dasselbe tun.

Erfahrung

Dies ist einer der umstrittensten Bereiche bei der Beurteilung potenzieller Programmierer, also lassen Sie uns etwas Zeit damit verbringen, ihn zu erkunden. Erfahrung kann auf zwei Arten kategorisiert werden – der Buzzword-Ansatz und der Expertenansatz. Der Buzzword-Ansatz, auch als HR-Methode (Human Resources) bekannt, beinhaltet das Scannen des Lebenslaufs eines Kandidaten nach einer Mindestanzahl von Jahren unter Verwendung bestimmter Sprachen, Technologien, Datenbanken, Softwarepakete usw. Es sei denn, die HR-Person kreuzt die richtigen Kästchen an oder seiner Liste kommt der Entwickler nie über die erste Runde hinaus. Programmierer selbst bezeichnen dies als "grep"-Methode, benannt nach dem Linux-Befehlszeilentool, das Dateien nach einer bestimmten Zeichenfolge durchsucht.

Ein strikter Buzzword-Ansatz scheitert an mehreren Punkten. Die richtigen Worte zu verwenden macht keinen klassischen Roman oder gar eine gute Lektüre. Ich habe persönlich mit Programmierern gearbeitet, die über ein Jahrzehnt 9-5-Erfahrung in einer bestimmten Sprache verfügen und die grundlegende Konzepte des Softwaredesigns noch nicht verstanden haben. Ihr Code war schwer zu warten und das Gesamtsystem litt darunter. Ich habe auch Leute geschult, die noch nie eine Codezeile geschrieben hatten und die Softwaredesign intuitiv verstanden. Innerhalb von sechs Monaten nach der Programmierung übertraf ihre Codequalität die der Person mit zehnjähriger Erfahrung. Letztendlich scheitert die Buzzword-Methode, weil HR-Leute nicht die Denkweise haben, exzellente Programmierer zu erkennen.

Die zweite Möglichkeit, einen Programmierer zu beurteilen, ist die Expertenmethode. Sie suchen nach fundierten Kenntnissen in einer bestimmten Technologie und der Schwierigkeit der gelösten Probleme. Beim Programmieren geht es mehr darum, Probleme zu lösen, als die Befehle in einer beliebigen Sprache zu kennen. Hier ist ein weiteres Geheimnis – suchen Sie nach Programmierern, die an Compilern gearbeitet oder einen Kurs in Compilern besucht haben. Sobald ein Entwickler versteht, wie er seine eigene Programmiersprache entwickelt, wird das Beherrschen einer neuen zur Routine.

Lassen Sie uns wieder die natürliche Sprachanalogie verwenden. Sagen Sie, Sie müssten einen Roman auf Spanisch schreiben. Sie haben zwei Kandidaten: einen, der in der High School drei Jahre Spanisch gelernt hat, und einen, der in einem Jahr einen 500-seitigen Roman aus dem Französischen ins Englische übersetzt hat. Die HR-Methode würde den ersten Kandidaten auswählen und den zweiten nicht einmal berücksichtigen. Welches würdest du nehmen?

Letztlich sprechen wir, wenn wir an Erfahrung denken, über den Unterschied zwischen Theorie und Praxis. Theoretisch sollte jemand mit drei Jahren Spanischkenntnissen einen besseren spanischen Roman schreiben als jemand mit einem Jahr Erfahrung in Französisch. Und zuerst wird der spanische Student mehr Wörter für Ihren Roman produzieren. Aber auf lange Sicht wird der Übersetzer übertreffen und ein besseres Werk schaffen.

Wie findet man also basierend auf Erfahrung großartige Programmierer? Verwenden Sie einen hybriden Ansatz. Suchen Sie nach jemandem mit umfassender Erfahrung in einem bestimmten Bereich und bewerten Sie dann die Anpassungsfähigkeit. Wir verwenden einen benutzerdefinierten Auswahlprozess, der neben Kenntnissen in einer bestimmten Sprache auch nach Fähigkeiten zur Problemlösung sucht.

Zuverlässig

Während verlässliche Entwickler ein Widerspruch in sich sein könnten, mag der Persönlichkeitstyp, der Spaß am Programmieren hat und sich auszeichnet, ironischerweise keine Struktur (zumindest die soziale Struktur) ab. Das "Tao des Programmierens" erzählt eine Parabel über Programmierer, die rebellierten, als ihnen gesagt wurde, sie müssten von 9 bis 5 arbeiten. Diese Geschichte veranschaulicht, warum die Leute sagen, dass die Verwaltung von Programmierern wie "Katzen hüten" ist.

Das letzte Merkmal eines soliden Entwicklers könnte genauso gut "vertrauenswürdig" sein, aber "Juicet" ist kein Wort. Da Programmierer oft Zugriff auf wichtige geschäftliche und persönliche Informationen haben, ist die Bedeutung von Vertrauen nicht zu unterschätzen. Ihre besten Entwickler halten sich an einen persönlichen Standard an Vertrauen und Integrität, liefern Code zuverlässig und haben einen skeptischen Blick auf gesellschaftliche Normen. Es dreht sich alles um das Gleichgewicht.

Sie suchen also einen Programmierer, dem Sie vertrauen können und der über genügend Selbstdisziplin verfügt, um den Zeitplan einzuhalten. Geben Sie diesem Entwickler zeitliche Flexibilität und interessante Projekte und er wird maximale Produktivität erzielen.

Abschließende Worte zu Juiced

Ein "Juiced"-Programmierer hat eine allgemeine Qualität – er ist überzeugt von dem, was Sie tun. Gute Programmierer haben Leidenschaft für ihr Handwerk. Sie sind begeistert von gelösten Problemen und arbeiten an neuen und interessanten Dingen. Qualitätsentwickler sehen Programmieren als Kunst; obwohl Kunst manchmal nur ein anderer Praktiker schätzen kann. Suchen Sie bei der Suche nach Entwicklern nach Leuten, die programmieren, weil sie es lieben.

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close