2009-07-29 11 views
7

Programuję od kilku lat w językach C# i XML. Użyłem tylko podstaw tych języków i przetrwałem w sieci w celu uzyskania informacji takich jak tablice i manipulacje tekstem. Ale kiedy dostaję wywiady, ankieterzy zadają tylko zaawansowane pytania - znalazłem odpowiedzi później w sekcjach Zaawansowane w książkach na ten temat.Dlaczego ankieterzy zadają zaawansowane pytania?

Dlaczego ankieterzy zadają tak zaawansowane pytania? Praca wygląda prawie tak samo, jak poprzednio, więc potrzebna jest zaawansowana wiedza, taka jak delegat klasy lub polecenia XPath.

Pytania są następujące:

  1. Jaka wersja XSL robi .NET 3.5 zastosowania?
  2. Jakiego polecenia XPath użyć, aby uzyskać wartość w elemencie X?
  3. Co to są delegaci szkolni w C#
  4. Czy C# umożliwia dziedziczenie wielu interfejsów?
  5. Jak uzyskać dostęp do GAC w C#?
+1

Czym dokładnie były te pytania? Sekcje "zaawansowane" w książkach niekoniecznie są zaawansowane ... Ja, mój 10-letni, uczę się HTML w ciągu 24 godzin książka miała zaawansowaną sekcję. –

+20

Powiedziałeś, że "programujesz w XML". To powinno odpowiedzieć na twoje pytanie. –

+53

Twoje pytanie sugeruje bardziej zasadniczy problem - uważasz, że twoja obecna wiedza jest wystarczająco dobra. To będzie największa przeszkoda dla Twojego sukcesu - jedyną rzeczą, która czyni świetnego programistę, jest świadomość, że nigdy nie wiesz wystarczająco dużo. –

Odpowiedz

36

Są dwa powody, o które ich proszę.

  1. Aby zobaczyć osobę, która faktycznie mówi "Nie znam odpowiedzi na to", w przeciwieństwie do próby BS przez to pytanie.
  2. Aby sprawdzić, jakie umiejętności logicznego rozwiązywania problemów ma dana osoba.

Zazwyczaj pytanie dotyczy jednego lub drugiego, ale nie obu. Oba są jednak niezwykle cenne w badaniu pracownika perspektywicznego.

Ponadto pytanie może nie być "zaawansowane" dla pozycji. Rozsądnie jest założyć, że wyżsi rangą i/lub architekci mogą odpowiadać na pytania, które nie mogą być od Junior do Mid-Level.

+1

Podoba mi się to i czuję, że kandydat musi być wystarczająco silny, aby powiedzieć, że będzie to wyglądał lub po prostu podążał za logiką pytania. – SteveM

+6

Dokładnie. Czuję, że wielu ankieterów nie zdaje sobie sprawy, że szukanie odpowiedzi na pytanie jest w rzeczywistości także umiejętnością. To świetnie, jeśli ktoś wie, jak znaleźć odpowiedź, a następnie weź te informacje i prawidłowo zastosuj je w danym momencie. Nie obchodzi mnie, czy ktoś może zapamiętać instrukcję, pytanie, czy rozumie instrukcję, czy nie. –

12

Być może dlatego, że próbują znaleźć programistów, którzy wiedzą więcej niż podstawowe rzeczy. Jeśli próbują odróżnić pole kandydatów, nie jest pomocne zadawanie pytań, na które wszyscy znają odpowiedź - w jaki sposób wybiera się spośród tych kandydatów? Jeśli zamierzasz wypożyczyć tylko 1 lub 2 z puli kandydatów, musisz znaleźć kilka trudniejszych pytań, na które odpowiedź może odpowiedzieć tylko 1 lub 2.

1

Pewnie chcą zobaczyć, czy naprawdę wiesz, co mówisz lub jeśli jesteś początkujący programista, który dogaduje się w internecie przy użyciu tylko to, co podniósł metodą prób i błędów ...

0

Zadaję zaawansowane pytania, aby sprawdzić, jak ludzie rozwiązują problem. Lubię zadawać pytania, których nie znam z tego powodu.

Chcę kogoś, kto jest krytycznym myślicielem, a nie tylko naukowcem, który może mi recytować podręczniki.

2

Prawdopodobnie po prostu dostają wskaźnik tego, gdzie jesteś. Prawdopodobnie sami utknęli na ten problem i być może chcieli zobaczyć, czy potrafisz wymyślić odpowiedź na swoje stopy.

Doświadczyłem tego samego rodzaju pytań i biorąc pod uwagę, kiedy programuję, używam nadmiernych zasobów, tego typu rzeczy zwykle mnie wyrzucają. Ich strata.

0

Chcą znaleźć kogoś z praktycznym doświadczeniem, które wykracza poza to, czego uczą się na kursach dla początkujących. Kiedy moja firma przeprowadza wywiady z kandydatami, często stwierdzamy, że większość wnioskodawców nie może rozwiązać problemu, który uznalibyśmy za bardzo podstawowe problemy programistyczne tylko dlatego, że nie znają API lub nie rozumieją, kiedy stosować różne podstawowe struktury danych.

Jeśli chcesz zaimponować ankieterowi, pracuj nad własnymi projektami programistycznymi poza klasą. Poznaj dobry fragment interfejsu API języka i zacznij uczyć się o bibliotekach firm trzecich, które mogą znacznie uprościć Twoją pracę.

11

Uzyskanie niewłaściwej odpowiedzi jest tym, czego chcę od kandydata w niektórych przypadkach.

Jednym z powodów, dla których chciałbym zadać pytanie, które moim zdaniem wnioskodawca się pomyli, jest sprawdzenie, w jaki sposób dostosowują się one do sytuacji. Jak radzą sobie z niewłaściwym postępowaniem i obsługą kogoś, kto mówi im, jak powinien odpowiedzieć itp. Jeśli są bardzo defensywni lub nieuprzejmi, gdy mówisz im, że są niepoprawni, to jest to dobry wskaźnik tego, jak będą pracować w zespole, gdy wiele razy twój pomysły zostaną zakwestionowane.

Jeśli przyjmą rozwiązanie lub zalecenie i zdadzą sobie sprawę, że mogą się z niego uczyć, a nawet dodać do niego, to zwykle jest to znak, że jest to osoba, z którą łatwo pracować i która jest gotowa do pracy "poza swoim pudełkiem". Jeśli tylko wymyślają wymówki i tańczą, próbując powiedzieć, dlaczego mogą mieć rację lub powinni mieć rację (w przypadkach, w których wyraźnie nie są), wtedy to mi powiedz, kiedy ta sama kwestia pojawi się w przyszłości, że wnioskodawca wywoła bóle głowy.

Nie martwią się o odpowiedź, bardziej interesuje ich reakcja na pytanie/rozwiązanie.

Innym powodem byłaby ocena ich poziomu również przy zatrudnianiu. Być może wynajmujesz kilka stanowisk, ale nie wiesz, gdzie ten kandydat pasuje. Trudne pytania, które pokazują rozwiązywanie problemów i dbałość o szczegóły, mogą czasami ułatwić klasyfikację zestawu umiejętności.

0

Innym powodem jest zmierzenie odpowiedzi na pytanie, na które naprawdę nie oczekują, że znasz odpowiedź. Umiejętności rozwiązywania problemów są niezbędne, więc zadawanie pytań, na które już znasz odpowiedź, nie rozwiąże problemu, prawda?

Istnieją nawet przypadki, w których firmy zadają nieparzyste, niezwiązane z programowaniem pytania tylko po to, aby zobaczyć, jak sobie radzisz z problemem. Istnieje klasyczne pytanie "Dlaczego są okrągłe pokrywy", podobno zadawane podczas wywiadów z firmą Microsoft.

More Microsoft interview questions

0

Ja nie oznacza cię urazić, ale może twoje rozumienie pracy nie jest wystarczająco głęboki, to w rzeczywistości wymaga znajomości zaawansowanych technik.
Można również wykonać wiele czynności za pomocą podstawowych metod, ale zaawansowane metody mogą być lepszym sposobem wdrożenia w odniesieniu do złożoności, czasu wdrożenia lub łatwości konserwacji.

0

Istnieje wiele możliwych powodów.Mogą one:

  • faktycznie korzystać z tych technik (delegaci i XPath nie są szczególnie rzadkie lub niejasne)
  • mają dużą pulę kandydatów i spróbować znaleźć więcej poinformowany te
  • chcą zobaczyć gdzie są granice twojej wiedzy, więc zadają pytania aż do momentu, w którym zaczynasz być niezdolny do udzielenia odpowiedzi
  • chcesz zobaczyć, jak możesz podejść do obszarów, które nie są Ci obce - aby zobaczyć, jak możesz przystosować się do nowych rzeczy
  • chcą pochwalić się własną wiedzą (prawdopodobnie nie nogami itimate powód, ale to na pewno się stanie)
7

pytam zaawansowane pytania z kilku powodów:

  1. Niektóre z moich pytań są zaawansowane wykorzystanie rzeczy każdy powinien wiedzieć (nie pytanie ciekawostki) - Chcę zobaczyć, jak rozumujesz, korzystając z wiedzy, którą posiadasz, ale w sposób, który nie jest powszechny.

  2. Chcę zobaczyć, co dzieje się, gdy czegoś nie wiesz - poddajesz się?

  3. Chcę zatrudnić osoby, które poważnie podchodzą do tego, co robią. Ludzie, którzy naprawdę dbają o technologie, z których korzystają, często chcą poznać zaawansowane rzeczy.

  4. Chcę sprawdzić, czy istnieją luki, w których po prostu nie wiesz, że istnieje cały obszar wiedzy. Na przykład w twoim przykładzie XPath - może być ok z: "Wierzę, że XPath może być użyty by pomóc rozwiązać ten problem, ale nie znam go na tyle dobrze, aby go tutaj zapisać" - wtedy pokazałbym je trochę XPath i zobacz, czy mogą go zastosować. Jeśli nawet nie wiesz, że XPath istnieje, Google nie pomoże ci.

2

Ponieważ kompetencja jako programista obejmuje zarówno głębokość i szeroką wiedzę.

2

Osoba przeprowadzająca wywiad stara się zrozumieć twój poziom wiedzy, a on wychodzi, "pożyczając" pytanie z ostatniego rozdziału tej książki.

Naprawdę, to niechlujstwo z jego strony, polegając na jednym pytaniu, aby określić poziom wiedzy specjalistycznej. Możesz mieć niskie umiejętności programistyczne, ale ostatnio natknąć się na słowo buzz i są w stanie przeprowadzić wywiad.

Zostałem spalony jeden raz podczas rozmowy kwalifikacyjnej z kandydatem, który wykazywał się wysokim poziomem wiedzy specjalistycznej. Okazało się, że czytał "C for Dummies" i udało mu się przejść przez proces wywiadu. Przyznaję, że nie koncentrowałem się na jego umiejętnościach programistycznych, ale szukałem innych aspektów, które udało mu się również przez BS. Okazuje się, że jego całe CV było kłamstwem.

W dzisiejszych czasach, upewniam się, że kandydat ma wiedzę na temat zakresu zmiennego, persistance, arytmetyki wskaźników, podstawowych algorytmów, programowania strukturalnego, programowania obiektowego, polimorfizmu, wielozadaniowości i komunikacji między procesami. Przekażę mu jego umiejętności w zakresie debugowania i poznaję szczegóły, takie jak warunki wyścigowe, heisenbugi i luki w zabezpieczeniach.

W zależności od zadania, zapytam o doświadczenie w języku docelowym - takie jak key => mapy wartości (tablice) w PHP, programowanie Swing w Javie, obsługa zdarzeń w C#, tabele vs CSS w html - ty zdobądź zdjęcie.

Jeśli kandydat zda pierwszą część wywiadu (zwykle wiem, że w ciągu około 5 minut), wtedy dam mu segregator i wyślę go do pokoju kawowego (ładna kanapa i stolik), aby przygotować się na 20 minut do przeglądu kodu na wybranym module.

To wtedy wysyłam oddziały - pracownicy są pouczani, aby normalnie korzystać z kawiarni, przedstawiać się i rozmawiać przez około minutę.

Czego szukam to umiejętność koncentracji na zadaniu (rażący ADHD), umiejętność pracy pod presją i dynamikę interpersonalną.

Kiedy kandydat wraca, mam go jako głównego prezentera i rozpocząć proces normalnego sprawdzania kodu. Pierwszą rzeczą, której szukam, jest przeczytanie strony zatytułowanej "Proces przeglądu kodu". Nie szukam go do uzupełnienia recenzji - wystarczy 10 minut. W rzeczywistości im mniej przetworzonych głównych linii, tym lepiej - w granicach rozsądku.

Od dłuższego czasu nie palę się już od niedawna.

0

Słyszałem, że te rzeczy naprawdę nie są już używane, a przynajmniej nie tak bardzo, jak były kiedyś, ale możesz być tym zainteresowany. Kilka dni temu wziąłem całkiem fajną krótką książkę, która musi sobie poradzić z pytaniami o logiczne pytania w stylu "Microsoft". Jestem w kilku rozdziałach i daje to niewielką historię wywiadu w polu tech i ma mnóstwo problemów logicznych, wraz z odpowiedziami z tyłu.

Nazywa się "How Would You Move Mount Fuji" i jest na amazon dość tanie.

http://www.amazon.com/gp/offer-listing/0316919160/ref=dp_olp_used?ie=UTF8&condition=used

2

Twoja nazwa sugeruje lubisz kodowania (duh), ale Twoje pytanie sugeruje, że nie. Jeśli naprawdę lubiłeś kodowanie, powinieneś uwielbiać się uczyć. Wymienione pytania nie są tak zaawansowane.

Nawet jeśli te pytania były zaawansowane, osoba przeprowadzająca wywiad próbuje ocenić, ile wiedzy posiadasz w obszarze, o którym mówisz, że posiadasz wiedzę. Próbują także ocenić, jak dobrze pasowałbyś do ich grupy.

P.S. Nie być wrednym, ale jeśli programujesz używając XML i nie wiesz czym jest XPath, to jesteś trochę daleko w tyle.

0

Właśnie ukończyłem rundę wywiadów, w której używam trzech lub czterech podstawowych "fragmentów kodu" C#, które będą przeglądać rozmówca i spróbują wyjaśnić, jaki będzie oczekiwany wynik. W każdym przypadku próbka kodu składa się z nie więcej niż dziesięciu wierszy wyraźnie sformatowanego kodu, który wykorzystuje podstawowe umiejętności języka C# (dziedziczenie, generics, anonimowi delegaci); również w każdym przypadku pojawi się "gotcha" - ale, jak stwierdzili inni, nie mówię, że są złośliwi, są tutaj, ponieważ chcę zobaczyć, jak kandydat reaguje, gdy staje w obliczu czegoś, co nie działają zgodnie z oczekiwaniami.

Niedawno mieliśmy kandydata, który przepłynął pierwszą część wywiadu; imponujące CV, najwyraźniej główny programista zespołu 10 i rozwijał kod w języku C# od 1.0; jednak najwyraźniej nie miał pojęcia, co zrobił "Console.WriteLine()" (ani nie mógł nawet zgadywać), ani nie mógł nawet zacząć radzić sobie z małym anonimowym przykładem delegata.

Kolejny kandydat był zarozumiały i nie wiedział, jak oceniać siebie jako programista - miała mniej doświadczenia niż były kandydat, ale przepłynęła przez próbki kodu, zakochała się w kilku "butach" "ale zadał właściwe pytania, aby uzyskać prawidłowe wnioski i autentycznie wyciągnąć wnioski z tego doświadczenia. Nie trzeba dodawać, że została zatrudniona.

Jeśli żądasz wiedzy specyficznej dla danej domeny (np. XML), powinieneś oczekiwać, że otrzymasz konkretne (i czasami trudne) pytania dotyczące tej domeny; jeśli przeprowadzam wywiady z starszym programistą ASP.NET i nie mają pojęcia o HttpModules lub HttpHandlers (jak niektórzy niedawni rozmówcy), wtedy zaczynają dzwonić alarmy.

1

1. Jakiej wersji XSL używa .NET 3.5?

Ponieważ nie mogą odróżnić ważnych rzeczy od nieistotnych. Zły znak.

2.Jakiej instrukcji XPath użyć, aby uzyskać wartość w elemencie X?

Ponieważ chcą sprawdzić, czy znasz XPath. Może to być spowodowane tym, że używają go w znacznym stopniu i potrzebujesz go do wykonania swojej pracy lub dlatego, że uważają wiedzę XPath == umiejętności.

3.What są klasy delegatów w C#

(nigdy nie słyszałem termin „klasa” i delegata wyszukiwania Google wyświetla żadnej definicji, więc zakładam, że masz na myśli tylko „delegata”). Delegaci nie mogą być uważani za zaawansowane tematy.

4. Czy C# umożliwia dziedziczenie wielu interfejsów?

Jeśli naprawdę zapytano o "implementację interfejsu", jest to część najbardziej podstawowej koncepcji, więc jest to prawidłowe pytanie (choć zbyt proste, aby naprawdę cokolwiek znaczyć). Jeśli naprawdę pytają o "dziedziczenie interfejsu", to jest to więcej ciekawostek, ale nadal będę akceptował. Dodatkowy punkt dla nich, jeśli zapytali, co oznacza "dziedziczenie interfejsu".

5.Jak uzyskujesz dostęp do GAC w języku C#?

To jest coś, co każda drużyna MUSI mieć jedną osobę, która wie. Powiedziałbym, że jest to również wskazanie starszeństwa (które BTW, nie obchodzi mnie zbyt wiele), ponieważ nikt nie czyta o tych rzeczach, jedynym sposobem, aby się tego dowiedzieć, jest zmuszenie do rozwiązania problemu w świecie rzeczywistym.