ReSharper's Effekt auf das Kodieren von Interviews [geschlossen]


18

Jeder, der R # oder CodeRush verwendet hat, weiß, wie schnell Sie einfache Konstrukte (und komplexe Konstrukte) mit einer einfachen Tastenkombination zusammensetzen können. Allerdings tun , um diese Produktivität Plugins Ursache einer falschen Bewertung der Fähigkeit während der Interviews?

Ein Teil davon, ein produktiver Code-Schreiber zu sein (und einen guten ersten Eindruck in einem Interview zu hinterlassen), ist das schnelle Schreiben von gutem Code.

Wenn ich zwei Kandidaten hätte:

  1. Verwendet keine Plugins. Sie denkt über das Problem nach, setzt sich an eine Standard-IDE am Interview-PC, die genau wie ihre aussieht, und tippt den Code wie üblich in ein oder zwei Minuten ein. Getan. Bestehen.

  2. Verwendet Plugins. Er denkt über das Problem nach, setzt sich an eine Standard-IDE am Interview-PC und merkt, dass "fe + tab" nicht mehr automatisch eine foreach-Schleife schreibt und alle Verknüpfungen weg sind. Dann stolpert er über die Tastatur, drückt seine normalen Hotkeys, öffnet seltsame Fenster und wird nervös. Er braucht 3 Minuten, um zu schreiben, was normalerweise 30 Sekunden dauert. Getan. Es sah so aus, als ob sie sich zeitweise nicht mit der IDE auskannten. Muss neu in dieser IDE sein und hatte daher nicht viel Erfahrung damit oder vielleicht die Sprache. Bestehen Sie, aber ein "meh" Zeichen neben ihrem Namen.

Wie gehen Sie Ihrer Erfahrung nach mit Plugins während eines Interviews als Interviewer oder Befragter um? Was sind die besten Methoden, um das zu erreichen, was der Kandidat wirklich weiß? Es kann Kandidaten geben, die den Code nicht verstehen und R # als Krücke verwenden. Es kann auch Kandidaten geben, die den Code kennen und R # verwenden, weil es einfach schneller ist als die eingebauten VS- oder Eclipse-Vorlagen. Ist es am besten, überhaupt keine IDE zu verwenden? Lassen Sie sie ihren eigenen PC mitbringen? Andere?


4
Ich wähle diese Frage als Wegthema zu schließen , weil diese Frage geht , wie gut zu interviewen , die pro off topic ist Hilfe . Allerdings ist diese Frage eine On-Thema - Komponente, dh „ wie Werkzeuge tun wie ReSharper die Fähigkeit eines Menschen zu Code ohne ein solches Werkzeug beeinflussen “), aber der Bearbeitung zu sein , diese Frage ist zu aggressiv eines bearbeiten und würden bestehende Antworten ungültig machen .
Durron597

Wenn ich Demo-Code in eine Standard-IDE schreiben müsste, würde er :wüberall mit zufälligen Markierungen gefüllt .
LindaJeanne

Antworten:


31

Ich war vor kurzem Kandidat 2 in einem Interview . Ich erhielt eine Vanille-Installation der IDE auf einem PC mit einer nicht standardmäßigen Tastatur und einem ungewohnten Test-Framework und wurde gebeten, eine einfache Fizz-Buzz-App mit Komponententests zu schreiben. Ich habe es geschüttelt. Ich muss wie ein absoluter Noob ausgesehen haben, der im Dunkeln herumstolperte und versuchte, Code herauszuholen. Natürlich wurde mir die Stelle nicht angeboten.

Was ich gelernt habe ist, dass ich mich sehr stark auf meine Plugins verlasse. Sie lassen den Code nicht nur schneller tippen, sondern prägen auch die Art und Weise, wie ich über Code denke und wie ich mich mit dem Codieren befasse. Ich habe zum Beispiel sehr sorgfältig über Variablennamen nachgedacht, weil es schwierig sein könnte, sie nachträglich zu ändern. Im Gegensatz dazu rate ich nur halbherzig, wie ich die Variable verwenden werde, hacke Code heraus, lasse mir von der Variablen sagen, wofür sie ist, und drücke dann Refactor-> Rename, um sie als etwas passenderes zu bezeichnen .

Macht mich das zum weniger fähigen Kandidaten? In gewisser Hinsicht denke ich, dass es so ist . Jemand, der Code in Notepad schreiben und korrekt kompilieren und ausführen kann, hat bestimmte Vorteile gegenüber jemandem wie mir, der alle IDE-Güte benötigt, die er bekommen kann. Unter diesem Gesichtspunkt verstehe ich vollkommen, warum sich ein Unternehmen dafür entscheiden würde, keinen Werkzeugkopf wie mich einzustellen.

Andererseits bin ich immer noch ein talentierter und fähiger Senior Developer. Ich habe gelernt, was für mich funktioniert, und ich übe die Art von Faulheit, die mich angesichts meiner eigenen Schwächen und Einschränkungen produktiv macht. Kurz gesagt, ich bin ein Programmierer, von dem ein Unternehmen wie das, das mich abgewiesen hat, wirklich profitieren könnte .

Interessanterweise hatte ich vor ein paar Wochen ein weiteres Interview. Nach meinen bisherigen Erfahrungen habe ich mich nach zusätzlichen Tools oder dem Budget für den Kauf erkundigt. Die Entdeckung , dass es für Umklappen auf das (eher großzügig) Angebot , dass weder gab mir einen Grund mehr , war sie gemacht zu mir .

Um Groucho zu paraphrasieren: " Ich würde keinem Unternehmen beitreten, das jemanden wie mich als Mitarbeiter hätte. "

Jedenfalls nicht, wenn ich nicht ReSharper verwenden darf.


2
Wenn ich Leute interviewe, lasse ich sie Code auf ein leeres Blatt Papier schreiben. Es muss nicht schön sein und es muss nicht kompiliert werden, aber es muss der Zielsprache ähneln. Ich suche kein funktionierendes Produkt. was ich suche, ist ein Gedankenmuster; Kann der Befragte über Probleme nachdenken und sie mithilfe von Code lösen?
Robert Harvey

BTW muss es schön sein zu können , drehen Sie attraktive Angebote in der aktuellen Wirtschaftslage.
Robert Harvey

12

Lassen Sie sie ( Kandidaten ) verwenden, was sie wollen. Der alte Wal-Mart, den man mit einem Schweizer Taschenmesser bauen kann , ist so alt. Sie werden in ihrer täglichen Arbeit alles verwenden, was sie brauchen (naja, das hoffe ich mit Sicherheit), also lassen Sie sie in einem Interview alles verwenden, was sie wollen. Das Endergebnis ist alles, was zählt. Gerne stelle ich einen Kandidaten ein, der weiß, welche Tools auf dem Markt verfügbar sind und wie man sie effizient einsetzt, und dann denjenigen, der alles manuell erledigt. Dies ist eine Killerindustrie.

ps Denken Sie beispielsweise an Vim (oder Emacs) - möchten Sie es ohne benutzerdefinierte Einstellungen, Plugins usw. verwenden?


+1 Außerdem, wenn Ihre Codierungsaufgabe wirklich nur überprüft, ob sie etwas über foreach wissen, frage ich mich, wie nützlich es wirklich ist (selbst so etwas wie FizzBuzz betrachtet viel mehr als das). Ich unterhielt mich mit jemandem aus der Java-Community und er sagte, man könne sagen, wer die guten .net-Codierer waren, als sie Resharper verwendeten. Ich
bin

1
Es ist SEHR aufschlussreich, dass ein Kandidat die Möglichkeit hat, beim Vorstellungsgespräch Code auf ein Whiteboard zu schreiben. Als Interviewer machen Sie ein Urteil darüber, wie viel Unterstützung diese Person benötigt, um die Rolle zu spielen.
Michael Shaw

8

Ich würde argumentieren, dass Tools wie ReSharper Sie tatsächlich zu einem besseren Kandidaten machen.

Zum einen wird Ihnen ReSharper etwas über Sprachkonstrukte beibringen, von denen Sie vielleicht noch nichts gewusst haben, und Sie können Ihren Code besser so organisieren, dass Sie über ein Problem nachdenken oder es zur besseren Lesbarkeit strukturieren. In gewisser Weise hält ReSharper Sie mit den besten Methoden für das Schleudern von Code auf dem Laufenden, anstatt Sie auf schlechte oder veraltete Gewohnheiten oder, noch schlimmer, auf die schlechte Art von Faulheit zurückgreifen zu lassen.

Ein guter Programmierer muss grundlegende Konstrukte verstehen, sie jedoch nicht manuell eingeben. Durch die gute Art der Faulheit erledigen die Werkzeuge das morgendliche Grunzen, und die eingesparte zusätzliche Zeit wird dafür aufgewendet, über das Problem nachzudenken. Dies macht einen insgesamt zu einem besseren Entwickler.

Ich vervollständige die Argumentation, indem ich erkläre, dass der Interviewprozess, wenn er Stöcke und Steinmesser bevorzugt, grundlegend kaputt ist.


1

Das ist einer der Gründe, warum ich die Leute auffordere, am Whiteboard und nicht in der IDE zu programmieren. Es gleicht das Spielfeld aus. Und die Leute sagen: "Oh je, Resharper erledigt das normalerweise für mich." Heck, die eingebauten Snippets behandeln Schleifen und dergleichen, die das Whiteboard Ihnen nicht geben kann. In diesem Fall reicht es wahrscheinlich aus, etwas wie "Ich hoffe, die Zeichensetzung stimmt, ich bin ein R # -Typ" zu sagen, um mich von Syntaxproblemen abzuhalten.

Ich muss in der Lage sein, verständlichen Code auf das Whiteboard zu schreiben, damit wir ein Meeting abhalten können, in dem wir herausfinden, wie wir die Dinge angehen werden. Und natürlich möchte ich sehen, ob Sie jemals tatsächlich Code in Ihrem Leben geschrieben haben oder nicht. Ihre Interviews können variieren.


Ich verstehe vollkommen, warum Sie das ganze Whiteboard-Ding machen wollen - ich stelle mir vor, es beseitigt viele schlechte Kandidaten -, aber es wird auch einige großartige Talente aussortieren. Das muss natürlich kein Problem sein, solange Sie einen Pool an guten Whiteboardern haben.
Kramii setzt Monica

2
@Kramii: Wissen Sie, "große" Talente sollten sich und ihren Code mit einem Whiteboard erklären können. Also kann ich nicht wirklich verstehen, warum es sie ausmerzen würde.
Spoike

1

Tolle Frage, übrigens - ich habe oft darüber nachgedacht.

Die Beherrschung von Werkzeugen ist eine Fähigkeit, die für einen guten Entwickler von zentraler Bedeutung ist. Ich habe immer gespürt, dass Alarmglocken läuten, wenn ein Entwickler behauptet, dass er das Codieren im Editor der Verwendung einer IDE vorzieht . Es deutet darauf hin, dass er sich mehr für den Prozess interessiert als für das Produkt.

Es ist, als würde man lieber mit einer Hacke gegen einen Traktor den Boden bestellen - gut, wenn man ein Hobbygärtner ist, aber als Industriebauer in einer wettbewerbsorientierten Wirtschaft nicht zu ertragen ist.

Wir werden jedoch von unseren Werkzeugen abhängig. Die Leute scheinen auszuflippen, wie wir mit der hypothetischen Situation umgehen würden, in der unsere Werkzeuge plötzlich weggenommen wurden. Es gab das gleiche Argument, Taschenrechner in Prüfungen zuzulassen.

Die Realität ist, dass Tools von Jahr zu Jahr besser und billiger und billiger werden, und es gibt keinen Grund, warum Sie jemals davon ausgehen sollten, dass Sie ohne sie auskommen werden. Und Werkzeuge eignen sich hervorragend für sich wiederholende Aufgaben mit einem hohen Maß an Qualität - das heißt, wir können die ganze Kraft unseres unglaublichen Homo-Sapien-Intellekts auf die schwierigen (und interessanten) Teile konzentrieren.

ReSharper ist eine großartige Ergänzung zu Visual Studio. Meine aktuelle Firma hatte zum Zeitpunkt des Interviews keinen ReSharper - aber ich war in meinem Interview so evangelisch, dass sie mir eine Kopie kauften, als ich die Stelle annahm, sowie eine für den Entwickler, der mich interviewte. Es wird jetzt im gesamten Unternehmen eingeführt. Gute Werkzeuge machen sich in kürzester Zeit bezahlt.

Zur Beantwortung der Frage: Ihre Abhängigkeit von Tools kann zu einer falschen Einschätzung Ihrer Fähigkeiten in einem Interview führen, sie geben jedoch immer eine korrekte Einschätzung der Fähigkeiten des Interviewers. Wenn ein Unternehmen den Wert der Werkzeugunterstützung in Ihrem Interview nicht erkennt, müssen Sie ihnen das Licht zeigen. Und wenn sie es immer noch nicht sehen, wäre ich sehr besorgt, eine Position dort anzunehmen.


In Interviews bin ich mir sehr klar darüber, mit welchen Tools ich bisher gearbeitet habe und was ich von dem Unternehmen erwarte. Würden Sie glauben, dass einige Unternehmen immer noch nur einen Monitor pro Entwickler anbieten? Ich habe kein Problem damit, einem Interviewer zu sagen, dass ich mit halber Geschwindigkeit laufe, weil Tools, auf die ich mich verlasse, nicht hier sind, insbesondere wenn ich eine Tastenkombination verwende und sie nicht funktioniert. Sogar in einer nominalen Vanille-IDE passe ich Dinge an, weil meine Hände wissen, wo sich die Dinge befinden und ich nicht die Mühe habe, mich umzubilden. Für eine Dvorak-Tastatur oder das Schreiben von Kommentaren in Deutsch oder was auch immer für ein Handicap sie mir geben möchten.

@moz - Stimmen Sie voll und ganz zu, dass Sie dem Arbeitgeber mitteilen sollten, dass er nicht das Beste aus Ihnen herausholen kann, ohne in Werkzeuge zu investieren. Ich würde noch einen Schritt weiter gehen und sie dazu bringen, die richtigen Werkzeuge zu beschaffen. Es wird wahrscheinlich nicht viel Spaß machen, für sie zu arbeiten, wenn sie es nicht tun. Jedes Mal, wenn Sie etwas manuell umgestalten, werden Sie sie verfluchen, weil Sie Ihre Zeit nicht genug schätzen. Das Arbeiten an einem mittelmäßigen Ort kann sich auch auf Ihre zukünftige Ertragskraft auswirken. Es kann interessant werden, wenn Sie eine Paarprogrammierung durchführen, wenn die beiden Entwickler unterschiedliche Verknüpfungskonfigurationen haben. Ich versuche, die Standardkonfiguration so weit wie möglich beizubehalten.
Sheikhjabootie
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.