5 Stimmen

Sind diese Interviewfragen zu schwierig für Anfänger?

Ich habe heute mit zwei Leuten ein Vorstellungsgespräch geführt und sie "getestet", um zu sehen, wie es um ihre Fähigkeiten bestellt ist. Beide sind Berufsanfänger, einer von ihnen ist sogar noch auf dem College. Keiner der beiden Bewerber sah etwas Falsches an dem folgenden Code.

Ich schon, sonst hätte ich diese Beispiele nicht ausgewählt. Glauben Sie, dass diese Fragen für Programmieranfänger zu hart sind?

Ich denke, ich sollte auch bemerken, dass keiner von ihnen viel Erfahrung mit C# hatte... aber ich glaube nicht, dass die Probleme mit diesen sprachabhängig sind.

//For the following functions, evaluate the code for quality and discuss.  E.g.
//E.g. could it be done more efficiently? could it cause bugs?        
public void Question1()
{
    int active = 0;

    CheckBox chkactive = (CheckBox)item.FindControl("chkactive");
    if (chkactive.Checked == true)
    {
        active = 1;
    }

    dmxdevice.Active = Convert.ToBoolean(active);
}

public void Question2(bool IsPostBack)
{
    if (!IsPostBack)
    {
        BindlistviewNotification();
    }

    if (lsvnotificationList.Items.Count == 0)
    {
        BindlistviewNotification();
    }
}

//Question 3
protected void lsvnotificationList_ItemUpdating(object sender, ListViewUpdateEventArgs e)
{
   ListViewDataItem item = lsvnotificationList.Items[e.ItemIndex];
   string Email = ((TextBox)item.FindControl("txtEmailAddress")).Text;
   int id = Convert.ToInt32(((HiddenField)item.FindControl("hfID")).Value);

   ESLinq.ESLinqDataContext db = new ESLinq.ESLinqDataContext();
   var compare = from N in db.NotificationLists
                 where N.ID == id 
                 select N;
   if (compare.Count() > 0)
   {
       lblmessage.Text = "Record Already Exists";
   }
   else
   {
       ESLinq.NotificationList Notice = db.NotificationLists.Where(N => N.ID == id).Single();
       Notice.EmailAddress = Email;
       db.SubmitChanges();
   }
   lsvnotificationList.EditIndex = -1;
   BindlistviewNotification();
}

1voto

Jack Bolding Punkte 3771

Die ersten beiden scheinen eher ein Test zu sein, um zu sehen, ob eine Person logisch folgen kann und erkennt, dass es zusätzlichen Code gibt. Ich bin nicht davon überzeugt, dass ein Anfänger unter den Entwicklern schon versteht, dass "weniger mehr ist". Wenn Sie jedoch die Antwort auf Frage 1 erklären und die Person diese Antwort nicht auf Frage 2 überträgt, würde ich mir Sorgen machen.

1voto

daduffer Punkte 365

Es ist lustig zu sehen, wie sich alle darauf stürzen, den Code zu ändern oder zu korrigieren. Die Fragen zielten auf "effizient? könnte es Fehler verursachen?" Antworten: Wenn man genug Zeit und Geld hätte, könnte man sicher alles effizienter machen. Bugs: Versuchen Sie bitte, das Gießen und das Schreiben von schwer lesbarem Code zu vermeiden (Code sollte selbstdokumentierend sein). Wenn er keine Bugs hat, dann vielleicht, wenn der nächste Nachwuchs-Programmierer versucht, ihn zu ändern... Vermeiden Sie es auch, Code zu schreiben, der sich auf Zustände außerhalb des Anwendungsbereichs der Methode/Funktion zu stützen scheint, diese fiesen globalen Variablen. Wenn ich ein paar aufschlussreiche Kommentare wie diesen erhalte, wäre es vielleicht angebracht, dies als Instrument für eine gute Unterhaltung zu nutzen. Ich denke aber, dass es bessere Eisbrecher gibt, um festzustellen, ob eine Person über die nötigen Fähigkeiten zum kritischen Denken verfügt und ob sie zum Rest des Teams passt. Ich glaube nicht, dass das Spiel "Stump the Programmer" sehr effektiv ist.

1voto

Glenn Slaven Punkte 32691

Ich denke, die ersten beiden sind in Ordnung. Die dritte ist vielleicht ein bisschen kompliziert für ein Vorstellungsgespräch für Hochschulabsolventen, aber vielleicht auch nicht, es kommt darauf an, ob sie schon einmal .net-Programmierung gemacht haben.

Sie enthält LINQ-Anweisungen, und das ist ziemlich neu. Vor allem, weil viele Universitäten/Hochschulen bei der Vermittlung der neuesten Technologie ein wenig im Rückstand sind. Ich würde also sagen, dass man mit 1 und 2 arbeiten sollte und entweder 3 vereinfachen oder stark kommentieren sollte, wie andere bereits erwähnt haben

1voto

Justin R. Punkte 22615

Was haben Sie sich von diesem Gespräch erhofft? Müssen Ihre Mitarbeiter Code ohne Debugger oder ähnliches debuggen? Stellen Sie jemanden ein, der nur Wartungsprogrammierung machen wird?

Meiner Meinung nach geben diese Fragen wenig Aufschluss über die Fähigkeiten der Bewerber.

1voto

Gary Kephart Punkte 4698

Da ich C# nicht kenne, habe ich etwas länger gebraucht, aber ich nehme an, dass #1 wie folgt ausgedrückt werden kann

dmxdevice.Active = ((CheckBox)item.FindControl("chkactive")).Checked == true

Und in Nr. 2 könnten die beiden Bedingungen als A ODER B-Anweisung verbunden werden?

Wenn es das ist, wonach Sie suchen, dann sind sie nicht zu schwer. Ich denke, Nr. 1 ist etwas, das man erst nach einiger Zeit des Programmierens lernen kann, aber Nr. 2 scheint einfacher zu sein. Suchen Sie für sie zu fangen Null Zeiger Ausnahmen auch?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X