Als Hintergrund verwenden wir Desktop-Engineering-Anwendungen mit einer AutoCAD-ähnlichen Benutzeroberfläche, ähnlich wie etabs .
Eine Sache, die mich wirklich nervt, ist, ob es notwendig ist, die allerbesten Entwickler einzustellen. Für den Anfang haben wir große Schwierigkeiten bei der Rekrutierung; Die meisten Lebensläufe, die wir sehen, sind entweder einfache CRUD-Apps oder SharePoint-Anpassungen, von denen ich glaube, dass sie nicht viel Hardcore-Programmierung beinhalten. Selbst diejenigen, die wir zum Vorstellungsgespräch anrufen, können die meisten Fibonacci-Sequenzen und eine einfache binäre Suche nicht ausführen, und wir sind freundlich genug, Hinweise zu geben und die Probleme explizit zu formulieren, damit die Kandidaten kein Wörterbuch nachschlagen müssen, um sie zu überprüfen Was bedeutet "Fibonacci-Sequenz"?
Das brachte mich zum Nachdenken: Ja, wir brauchen ein gewisses Maß an Programmierkenntnissen, wenn wir rechnerische Geometrie / lineare Programmierkenntnisse ausführen, und wir brauchen ein gewisses Maß an Programmierkenntnissen, wenn wir die Softwarearchitektur entwerfen oder entscheiden, welches Softwaremuster verwendet werden soll, aber darüber hinaus Ein Großteil unseres Codes besteht nur aus Installationscode (glaube ich), der von jemandem ausgeführt werden kann, der mit der Programmierung vertraut ist.
Angesichts der Tatsache, dass wir jetzt wirklich Programmiertalente brauchen und es sehr schwer ist, Superstar-Entwickler einzustellen, möchte ich meinen Standard senken und nur die Mittelmäßigen einstellen, im direkten Widerspruch zu dem, was Joel predigt .
Was denkst du?
Bearbeiten: Sie müssen nicht die gesamte Bibliothek für rechnergestützte Geometrie / lineare Programmierung neu schreiben. Alles, was Sie für meine Anwendung tun müssen, ist, in der Lage zu sein, die vorliegenden Probleme in geeignete rechnergestützte geometrische / lineare Programmierbegriffe umzuwandeln und zu wissen, wann / wie die vorhandenen Bibliotheken zu verwenden sind. Es ist also nicht so schwierig, wie es scheint.
Antworten:
Ich schlage vor, Sie hören auf, Joel zu viel zu lesen. Was er in seinem Blog geschrieben hat, widerspricht seinen Antworten auf dieser Seite, so dass ich sein Wort nicht wirklich für viel halten würde.
Was einen Superstar ausmacht und warum es notwendig ist, einen zu haben, eröffnet eine lange und nirgends stattfindende Diskussion. Es ist Elitismus und nicht praktisch.
Was Sie brauchen, ist eine Person, die:
Der Rest spielt keine Rolle.
Sie würden nicht glauben, wie viele junge Absolventen da draußen sind, die nichts anderes wollen, als in ein solches CS-starkes Projekt einzutauchen und sich niemals mit der Codierung von CRUD-Anwendungen befassen. Vor einiger Zeit war ich einer von ihnen. Ich habe praktisch davon geträumt, an einem Projekt zur Compiler-Entwicklung teilzunehmen, konnte aber keinen finden. Warum nicht einem von ihnen eine Chance geben?
Ich glaube nicht, dass AutoCAD von Supermännern geschrieben wurde. Die meisten erfolgreichen Projekte wurden von Leuten gemacht, die einfach das Ding machen wollten und das wirklich wollten.
Was ist zu erwarten, wenn die meisten Jobs genau das erfordern? Die Leute haben vielleicht CS an der Uni studiert und waren sogar sehr gut darin, aber man kann nicht erwarten, dass sie sich daran erinnern, wenn sie das in 10 Jahren noch nie in der praktischen Programmierung angewendet haben. Offensichtlich wird niemand jedes Jahr alte CS-Bücher durchlesen, nur um sie auf dem neuesten Stand zu halten, wenn dieses Wissen nirgendwo genutzt wird.
quelle
Ein Buch, das ich wirklich mag, ist First break all the rules . Es enthält viele Informationen über die Unterschiede zwischen durchschnittlichen Managern und guten Managern. Eine der wichtigsten Erkenntnisse, die gute Manager immer wieder sagten, wurde von einem von ihnen im Satz zusammengefasst. Ich habe nie zu lange gewartet, um die richtige Einstellung zu finden, und ich habe nie schnell genug die falsche Einstellung gefeuert. Ja, es ist frustrierend, lange Zeit für die Einstellung zu brauchen, aber es lohnt sich.
Ein zweiter Punkt, den Sie berücksichtigen sollten, ist, dass es, gemessen am Projektdurchsatz, eine Produktivitätsspitze für Teams von 5 bis 8 Personen gibt. Sie erreichen nicht die gleiche Produktivität, bis Sie ein Team von mehr als 20 Mitarbeitern haben. Seien Sie sehr, sehr vorsichtig, wenn es darum geht, ein Team über die Größe hinaus zu vergrößern, in der kleine Teamdynamiken funktionieren. Und wenn Sie unter dieser Schwelle bleiben, möchten Sie wirklich, dass diese 5-8 Leute gut sind.
Beide Punkte sprechen stark dafür, sich für die richtige Einstellung einzusetzen.
quelle
Jeder behauptet, "nur das Top-1-Perzentil einzustellen". Wäre dies der Fall, wären 100% aller Erwerbstätigen unter den "Top 1 Perzentilen" aller Erwerbstätigen, so dass 99% aller Erwerbstätigen (in einem bestimmten Bereich) arbeitslos wären. Da dies eindeutig nicht der Fall ist und wir alle Menschen erlebt haben, die eindeutig nicht zu dieser Gruppe gehören (warum stellen Sie diese Frage sonst überhaupt ...), wissen wir, dass dies nicht wahr ist.
Tatsächlich wären Organisationen, die nur aus solchen Personen bestehen, höchst instabil. Zu viel Ego, zu viele widersprüchliche Ideen. Entweder würde es auseinanderfallen, wenn jeder sein eigenes Ding macht, in endlosen theoretischen Diskussionen über die relativen Vorzüge von allem versinken oder sich zu einem ständigen Schrei-Match entwickeln, während die Gefühle aufflammen, wenn eine Entscheidung getroffen werden muss.
quelle
Das erste, was Sie fragen müssen, ist, warum Sie Lebensläufe erhalten, die nicht den von Ihnen gewünschten Standards entsprechen. Ich habe mit vielen guten Leuten gearbeitet, also sind sie da draußen und die Anwendung klingt für mich sehr interessant. Wenn Sie keine Leute finden, die Fibonacci-Sequenzen und Binärsuchen ausführen können (was schwieriger ist, als es scheint; Knuth zufolge dauerte es mehrere Jahre zwischen der ersten Veröffentlichung und der ersten korrekten Veröffentlichung), dann tun Sie etwas, um die Suche voranzutreiben gute weg.
Bitten Sie um mehr Können, als Sie bereit sind, dafür zu bezahlen? Werben Sie an den falschen Stellen? Ist Ihr Unternehmen nach Standort oder Ruf unattraktiv? Dies ist Ihr erstes und grundlegendstes Problem, das Sie dringend lösen müssen. Sie und Ihre Kollegen kennen zweifellos einige gute Leute, die nicht für Sie arbeiten. Zeigen Sie ihnen, was Sie haben, und fragen Sie sie, ob sie versucht wären, und wenn nicht, warum nicht. Möglicherweise sind Sie dem Problem zu nahe, um es ohne fremde Hilfe zu verstehen.
Stellen Sie keine Leute ein, weil sie die Besten sind, die sich beworben haben. Stellen Sie Leute ein, weil sie in der Lage sind, das zu tun, was Sie wollen. Wenn Sie mittelmäßig anstellen, weil das alles ist, was zutrifft, werden Sie langsam gute Leute verlieren, und Sie werden mit Leuten enden, deren Algebra wackelig ist, wenn Sie versuchen, Dinge mit rechnerischer Geometrie zu tun. (Mittelmäßig einzustellen, weil Sie einen Job für ein paar mittelmäßige Programmierer haben, ist eine andere Sache, aber Sie müssen in der Lage sein, hochwertige Leute dort einzustellen, wo Sie sie brauchen.)
quelle
"Die meisten können keine Fibonacci-Sequenz und eine einfache binäre Suche ausführen"
Ihre Kriterien sind sicherlich falsch. In meiner Gruppe sind wir alle Physiker oder Ingenieure. Ich wette, niemand konnte eine binäre Suche durchführen, weil wir keine CS-Kurse besucht haben und im wahren Leben dafür eine Bibliothek verwenden. Ich würde sogar sagen: Wer selbst Binsearch schreibt, kann sich nicht auf wichtige Dinge konzentrieren.
Es ist viel wichtiger, wenn der Kandidat klug ist und in die Gruppe passt. Wenn Sie sein Programmiertalent überprüfen möchten, geben Sie ihm einen Job, den Sie zu Hause erledigen können. Notieren Sie, wie lange es gedauert hat, und besprechen Sie die Ergebnisse, um herauszufinden, ob es sich um echte Arbeit des Bewerbers handelt.
quelle
Ich denke, dass das "Einstellen der Besten" zu sehr zum Kult wird.
Die meiste Programmierarbeit ist Routine und nicht kreativ. Auch bei der Arbeit an wirklich kreativen neuen Projekten. Das meiste davon ist bescheiden und basiert oft auf Mustern. Dies gilt insbesondere für die Benutzeroberfläche.
Die meisten modernen Systeme erfordern auch so viele Leute, dass sie von Natur aus nicht die Besten sein können. Die meisten Menschen sind durchschnittlich, auch wenn sie es nicht sind, sie müssen immer noch viele "durchschnittliche" Aufgaben erledigen.
Dennoch ist es nicht unvernünftig, grundlegende Kompetenzen und vernünftige Mindestanforderungen zu fordern, und Sie sollten keine Kompromisse eingehen.
Denken Sie an Routineoperationen: Abhängig von Ihrer Risikobereitschaft würden Sie wahrscheinlich lieber einen durchschnittlichen Arzt beauftragen, diese durchzuführen, als 10 Jahre darauf zu warten, dass der Dekan der medizinischen Fakultät Zeit hat, dies zu tun. Das bedeutet nicht, dass Sie die Operation ordentlich durchführen lassen sollten.
quelle
"Die Besten einstellen" bedeutet in der Regel "Die Besten einstellen, die derzeit ungefähr dort verfügbar sind, wo wir sind" und bedeutet für verschiedene Unternehmen verschiedene Dinge. Einige wollen Rockstar-Programmierer, andere wollen akribische Software-Ingenieure und der nächste auf der Straße will erfahrene Software-Handwerker. Es gibt kein "Universal Best", denken Sie also daran, und vielleicht deutet Ihr Stellenangebot darauf hin, dass Sie einen Programmierertyp suchen, und das Interview besagt, dass Sie einen anderen Programmierertyp suchen. Plötzlich kriegt man keine Streichhölzer mehr.
Trotzdem arbeite ich nicht gerne mit so lala Programmierern. So-so hat nichts mit Erfahrung zu tun (sie haben vielleicht 20 Jahre lang programmiert und sind immer noch nicht sehr gut darin), aber alles hat mit Begabung und Begeisterung zu tun. Wenn sich der Mittelweg auf eine der beiden auswirkt, liegt ein Problem vor. Es macht auch keinen Sinn, jemanden einzustellen, dessen Beiträge von anderen Teammitgliedern überarbeitet werden müssen, weil sie nicht gut genug codieren. Mehr Penner auf Sitzen sind nicht immer die Antwort, mehr Penner auf Sitzen können leider auch mehr Arbeit für die besseren Mitglieder des Teams bedeuten, da sie versuchen, ihre Arbeit zu erledigen und das Durcheinander zu beseitigen, das der so lala Programmierer geliefert hat .
Einige Leute treten nicht als Rockstars auf, sondern sind solide Programmierer auf mittlerem Niveau. Sie sind gut im Team zu haben und das meine ich nicht mit "mittelmäßigem Programmierer". Letzteres ist jemand, der es kaum vermeidet, jedes Jahr zur Zeit der Leistungsbeurteilung gefeuert zu werden.
quelle
Als Manager bin ich damit einverstanden, dass "die besten 1%" eingestellt werden, was nicht praktikabel und auch nicht notwendig ist. Mein Rat wäre, das richtige Team zu engagieren, um Ihr Produkt zu erstellen und zu warten (es könnten zwei sehr unterschiedliche Teams sein, da Build-vs.-Maintenance-Anforderungen sehr unterschiedlich sind).
Ich würde Ihnen dringend empfehlen, die Personen in Ihrem Team zu identifizieren, die "Schlüsselpersonen" sind (z. B. Dinge erledigen, gute Einstellungen haben, mit Unsicherheiten / hohen Anforderungen gut arbeiten können usw.), und dann Personen einzustellen, die sie haben in der Vergangenheit gearbeitet (und Respekt, offensichtlich). Dies beseitigt viele Unsicherheiten im Zusammenhang mit dem Interviewprozess und hilft, das Team zu stärken.
Auch "längerfristig" - investieren Sie viel in ein internes Programm. Wenn Ihr Programmierteam aus 20 Mitarbeitern besteht, erhalten Sie 5 Praktikanten pro Jahr und geben ihnen echte Arbeit. Bringen Sie die einen oder zwei, die Sie jedes Jahr mögen, zurück und bringen Sie 5 weitere Zufallsvariablen ein. Dies ist wahrscheinlich der beste Weg, um Ihr Team mit guten Programmierern zu füllen. Sie können dann opportunistisch außerhalb einstellen und die Messlatte für diese Kandidaten höher legen.
Achten Sie, wie bereits erwähnt, auf Ihren Interviewprozess. Lassen Sie die Kandidaten Code schreiben (oder gehen Sie besser die Lösung für ein "1 Stunde dauerndes Mitnehmen" -Problem durch) und lassen Sie sie mit dem Team zu Mittag essen. Lernen Sie ihre technischen und zwischenmenschlichen Fähigkeiten kennen. Und haben Sie keine Angst davor, "Nein" zu sagen, auch wenn Sie für ein großes Projekt, das nächste Woche beginnt, verzweifelt nach 20 weiteren Personen sind.
quelle
Nach meiner Erfahrung gilt das Paretto-Prinzip auch für die Programmierung: 80% der Arbeit wird von 20% der Entwickler erledigt und umgekehrt. OK, die Zahlen sind möglicherweise übertrieben. In Wirklichkeit haben Sie ungefähr 20% der Angestellten, die 50% der Arbeit erledigen (mit Arbeit meine ich gute Arbeit, nicht nur Codezeilen). Es ist eigentlich eher wie eine Glockenkurve. In einem 10-köpfigen Team hast du also 1 Helden, 2 großartige Jungs, 4 durchschnittliche und 2-3 erbärmliche.
Viele Unternehmen verwenden die Glockenkurve zum Abwägen von Beurteilungen. So ziemlich egal wie intelligent Ihre Kandidaten sind, sie werden in ihre Levels fallen. Sie können kein Team haben, in dem alle auf dem gleichen Niveau sind. Passiert nicht
quelle
Hier gibt es bereits eine Reihe von Antworten, aber ich denke, es gibt noch einen Punkt, über den diskutiert werden muss: die Auswirkungen, die die Einstellung der mittelständischen Mitarbeiter auf Ihre Softwarequalität hat, und wie es Ihr Leben als Manager erheblich erschwert.
Die Antwort auf die Frage "Müssen die besten Entwickler eingestellt werden?" ist immer ein dickes Ja. In der Realität ist dies natürlich nicht immer möglich. Der gefährliche Fehler, von dem ich glaube, dass Sie ihn machen, wenn Sie sich diese Frage überlegen, lautet: "Unsere Software ist so einfach, dass selbst ein mittelmäßiger Typ das kann." Das ist falsch.
Ihre Software wird fertig sein, zweifeln Sie nicht daran, aber erwarten Sie von einem hervorragenden Team ganz andere Ergebnisse als von einem mittelmäßigen Team. Sie werden mehr Fehler, mehr Leistungsprobleme, mehr Wartbarkeits- und Skalierbarkeitsprobleme usw. haben. Sie müssen Ihre so-lala Jungs durch komplexere Probleme babysitten. Sie müssen die so lala Jungs durch richtige Architekturentscheidungen babysitten.
Wenn Sie dies akzeptieren und bereit sind, dies zu verwalten, ist das in Ordnung. Seien Sie einfach auf den Prozess und die Ergebnisse vorbereitet.
quelle
Ich denke, es ist nicht wirklich ein Problem, großartige Entwickler einzustellen. Die eigentliche Herausforderung besteht darin, sie machen wollen für Sie arbeiten.
Müssen die Besten eingestellt werden?
Ich glaube schon Ein großartiger Entwickler ist nicht nur derjenige, der alles pünktlich erledigt. Nicht nur ein solcher Mensch ist viel produktiver als andere. Ein großartiger Entwickler geht ebenfalls mit gutem Beispiel voran und inspiriert einfach andere Teammitglieder. Andere konnten bei der Arbeit mit ihnen sehr weiterkommen.
OK, Sie werden also Ihre Standards senken. Das ist cool, wahrscheinlich werden Sie Ihre Meinung ändern, nachdem Sie eine wirklich miese Person eingestellt haben. Diejenige, die alle Ihre CS-Fragen einwandfrei beantwortet, aber nicht wirklich eine einzige Zeile Produktionscode schreiben kann. Viel Glück damit :)
quelle
Machen wir einen Schritt zurück.
Was versuchen wir zu tun? Schreiben Sie Software.
Warum glauben wir, wir müssen die Besten einstellen? Weil sich das verdammte Arnold-Kind nicht aus einer nassen Papiertüte heraushacken konnte und jetzt der SQL-Code durcheinander ist und ich mich nicht einloggen kann.
Okay, was ist das Beste ? Ich weiß nicht, er ist wahrscheinlich jemand, der eine Menge Geld will und einen drei Meter langen Lebenslauf mit einem großartigen Portfolio hat und bei Google oder so gearbeitet hat. Er sollte einen Abschluss haben und vielleicht ein paar Buchstaben am Ende seines Namens. Ja, das klingt für mich nach dem Besten, und mit dem Besten meine ich jemanden, der nicht so ein verdammter Arnold ist. Oh, und er sollte wissen, wie man wirklich harten Mist macht, von dem ich in der Schule gehört habe, wie "schreibe eine Blasensorte" oder wie sie es nennen. Ich werde einen der anderen Typen bitten, ein paar knifflige Dinge zu nennen, die sie in der Schule machen mussten, ja.
Klingt so, als würdest du dieses verdammte Arnold-Kind einfach nicht wollen? Würdest du? Ich habe es satt, fehlerhaften Code zu haben, es dauert ewig, bis das erledigt ist, und diese neuen Leute, die ich interviewe, sagen mir, dass ich alles neu schreiben muss!
Also, wozu bitten Sie das verdammte Arnold-Kind? Erstellen Sie eine PHP-Website, schreiben Sie etwas jQuery, lassen Sie PHP ein paar grundlegende CRUDs mit MSSQL ausführen und ändern Sie die Hintergrundfarben.
Klingt das nach einer Aufgabe, die sich ausschließlich für die Besten eignet? Ich bin mir sicher, dass die Besten es schaffen könnten, aber wahrscheinlich könnte jeder, der die richtigen Fähigkeiten hat, die dazu passen, dies tun.
Sie brauchen also nicht das Beste? Richtig, ich brauche nur jemanden mit den Fähigkeiten, die meine Ziele erreichen.
Oh. Ja.
quelle
In Ihrem Fragentitel wird eine "normale Desktop-Anwendung" erwähnt, in Ihrem Text wird jedoch darauf hingewiesen, dass Sie Kenntnisse über Computergeometrie und lineare Programmierung anwenden müssen. Dies sind Anwendungsbereiche, aus denen riesige, jahrzehntelange Forschungsprogramme hervorgegangen sind, die massive gesellschaftliche Konsequenzen für jeden Fortschritt haben (Rückruf, lineare Programmierung abstrahiert die Ressourcenzuweisung ). Infolgedessen gibt es viele ausgeklügelte Ansätze zur Lösung von Problemen in diesen Bereichen, die sehr gut funktionieren.
Eine schlechte Einstellung
Mit anderen Worten, denken Sie darüber nach, ob Sie wirklich an etwas für Fußgänger arbeiten. Wenn Sie großartig sind, sollte das Mieten viel einfacher sein. Wenn nicht, halten Sie Ausschau nach jemandem, der das tun kann, was Sie brauchen.
quelle
Sicher bin ich kein Superstar-Programmierer nach Joels Maßstäben. Trotzdem habe ich in meiner 20-jährigen Karriere als Entwickler einige erfolgreiche Projekte geschrieben. Ich hätte deine Fragen beantworten können. Aber weniger aus meiner Erfahrung bei der Arbeit, wo in der Tat ein Großteil der komplizierteren Arbeit erledigt wird, indem Sie Ihre Datenbank oder eine Bibliotheksfunktion bitten, dies zu tun.
Wenn Sie sich jedoch dazu entschließen, weniger erfahrene Mitarbeiter einzustellen, sollten Sie in Betracht ziehen, Technologien zu verwenden, die einfach zu handhaben sind. Wenn Sie beispielsweise C ++ für das gesamte Projekt verwenden möchten, beschränken Sie den C ++ - Teil auf Bibliotheken, die von Ihren besten Mitarbeitern geschrieben wurden, und lassen Sie die anderen Benutzeroberflächen in Visual Basic implementieren.
quelle
Notieren Sie die Werte, die Sie in einem Mitarbeiter suchen, der sich Ihren Reihen anschließt.
Wenn Programmierkompetenz der einzig geschätzte Wert ist, werden Sie schnell von Menschen umgeben sein, die genau das schätzen. Da die kompetentesten Programmierer über ein ausgefeilteres Wertesystem verfügen, können sie sich Ihrem Team nicht anschließen.
Es ist jedoch wahrscheinlicher, dass Sie nach innovativen, kreativen, vertrauenswürdigen, gelehrten, neugierigen, selbstlernenden, kontaktfreudigen, kompetenten und engagierten Menschen suchen. Zeigen Sie, dass Ihr Unternehmen diese Werte versteht und respektiert und bereit ist, seine Mitarbeiter bei ihrer Weiterentwicklung zu unterstützen.
Verstehen und verstehen Sie die Werte Ihrer derzeitigen Mitarbeiter und kommunizieren Sie diese in Ihren Bewerbungen. Gute Unternehmen mit einem nachhaltigen Wertesystem ziehen gute Mitarbeiter an.
quelle
In jeder Organisation gibt es Menschen mit mehr Erfahrung und Menschen mit weniger Erfahrung. Darüber hinaus kann ein Experte auf einem Gebiet ein Neuling auf einem anderen sein. Sicher, ein begeisterter Amateur kann einer Codebasis mehr schaden als nützen, aber so lernen sie - indem sie ihre Fehler beheben und ihre Erfahrungen mit ihren erfahreneren Kollegen diskutieren.
Mein Vorschlag wäre, statt Superstars einzustellen, Leute einzustellen, die einigermaßen intelligent sind, zu Ihrer Unternehmenskultur passen, lernwillig sind und die ihre eigenen Grenzen kennen.
quelle
Auf jeden Fall sollten Sie danach streben, nur die Besten einzustellen. Das bedeutet nicht automatisch, dass Sie erfolgreich sein werden - es gibt nur so viele der "Besten", und es wird Gewinner und Verlierer im Kampf geben, um sie anzuziehen. Ein Großteil davon wird von Ihrer Eignung und Bereitschaft abhängen, hart an dem Problem zu arbeiten, sowie von den Ressourcen, die Ihnen zur Verfügung stehen.
Aufgeben, bevor Sie anfangen, ist der sicherste Weg zu verlieren.
quelle
Die binäre Suche ist ein interessantes Problem, da bekanntlich die meisten Programmierer Schwierigkeiten haben, sie richtig zu schreiben ( schreibt Bently in Programming Pearls ). Vielleicht ist es nicht so schlimm, es zu testen, solange Sie Kandidaten nicht aufgrund ihres Versäumnisses, es zu lösen, ausschließen. Wenn sie es schnell und richtig lösen, gibt es zumindest einen Hinweis darauf, um welche Art von Programmierer es sich handelt, sodass Sie in diesem speziellen Fall mehr Informationen haben.
quelle
Sie müssen die Besten einstellen. aber der Begriff wurde oft aus dem Zusammenhang gerissen. Sie müssen den besten Kandidaten mit den für diese Position erforderlichen Fähigkeiten finden und nicht den besten Programmierer im allgemeinen Sinne. Die Softwareentwicklung ist breit und nicht jede Position erfordert das gleiche technische Wissen.
Stellen Sie sich diese Frage (Sie haben es schon getan): Wenn Sie einen anderen Ingenieur in der gleichen Position für 5 Jahre haben, würden Sie erwarten, dass er sich an Fibonanci-Reihen und binäre Suchen erinnert?
Wenn die Antwort Nein lautet, ändern Sie Ihr Interviewmuster. Möglicherweise müssen Sie ein Dutzend Suchalgorithmen kennen, wenn Sie an einer Suchanwendung wie Google oder Bing arbeiten möchten. Alle anderen verwenden einfach map.get ("").
Richten Sie Ihre Interviews auf das, was die Position erfordert, und nicht auf einen guten Programmierer.
quelle
Wenn Sie sich wirklich nicht für Qualität interessieren, dann würde ich vorschlagen, eine der Outsourcing-Websites zu verwenden und mit kleinen Projekten zu beginnen. Sie können sie dann bezahlen, wenn sie die Arbeit erledigen können, und können auf einfache Weise eine Kaution hinterlegen, wenn sie dies nicht können.
Ich frage mich jedoch, ob es in einer Desktop-Engineering-Anwendung wirklich viel Routinecodierung gibt. Sie können sehr komplex sein, und die meisten Programmierer beherrschen die Komplexität nicht so gut. Sie könnten leicht eine Menge von Instant-Legacy-Code erstellen, der Ihr Team für die kommenden Jahre zusammenhält. Im Allgemeinen sind die ersten Einstellungen für ein neues Projekt die wichtigsten und geben den Ton für das gesamte Projekt an.
quelle
Ich stimme den meisten der obigen Kommentare zu, die sich auf die Anpassung einer Person an ein Problem beziehen. Dies führt in der Regel zu einer langfristigen Beziehung, anstatt einen Superstar einzustellen, der an einem regulären Problem arbeitet - was ihn nur frustriert, schnell zu gehen.
Trotzdem sollten Sie immer versuchen, für Ihr Unternehmen zu engagieren und nicht für eine bestimmte Position. Weil derselbe Typ früher oder später mit persönlichen Kontakten usw. zwischen Teams wechseln wird und sich möglicherweise als Sackgasse herausstellt. Stellen Sie sicher, dass Ihr Unternehmen über sehr strenge interne Transferrichtlinien verfügt und dass Sie ein klares Bild davon haben, was Sie in den nächsten Jahren in Ihrem Team tun werden, bevor Sie eine Person einstellen, von der Sie glauben, dass sie die Unternehmensgrenze nicht erreicht (aber das aktuelle Problem löst) ). Ich habe zu viele Fälle erlebt, in denen das Team durch Mittelmäßigkeit bei den Entwicklern besonders hart daran gearbeitet hat, sich um sie zu kümmern.
quelle