Jak zatrudnić dobrego programistę C #, jeśli nie znam C #? [Zamknięte]


15

Jestem programistą C ++. Wiem, jak Windows działa na poziomie natywnym, ale nie jestem wielkim ekspertem w C # i .NET. Teraz potrzebuję programisty C # w moim zespole (wszyscy moi programiści to C ++). Jak mogę zatrudnić świetnego programistę C #, jeśli nie znam C # na dobrym poziomie? Jak zadawać pytania, sprawdzać, czy odpowiedzi są świetne, czy głupie.


5
Gdzie publikujesz ofertę pracy? ;)
IAbstract

Oto co najmniej dobry zestaw pytań (prawdopodobnie powinieneś wcześniej zrozumieć odpowiedzi - oczywiście) Link
Doug Stanley

11
Wygląda na to, że jesteś w stanie zatrudnić dobrych deweloperów C ++. Dodaj jeszcze jeden do swojego zespołu i powiedz „Zgadnij co?” :)
JeffO

7
Po prostu zatrudnij dobrego programistę.
Marcelo

2
@ Job Lub, wiesz, kup książkę.
Kaleb Brasee

Odpowiedzi:


3

Czasami spotykam się z problemem przeprowadzania wywiadów z programistami, którzy przede wszystkim mają doświadczenie w C ++, których nie znam tak dobrze jak oni. Moja strategia to:

  1. najczęściej zadaję ogólne pytania dotyczące programowania, algorytmy, projektowanie OO, jak refaktoryzować, co sprawia, że ​​dobry test jednostkowy itp. Dodaję kilka ogólnych pytań dotyczących stylu języka, więc dla C ++ mogę zapytać o zarządzanie pamięcią i czas życia obiektów dla C # Mogę zapytać o to, czy możesz mieć wyciek pamięci podczas korzystania ze śmietnika?

  2. spróbuj dowiedzieć się, jak nauczyli się języka, jakie książki przeczytali itp.

  3. sprawdź, czy napisali znaczną ilość C ++. Wejdź w głąb, kiedy go użyją, ile, co zrobili i dla kogo. Następnie spróbuj to sprawdzić w miarę możliwości, korzystając z ich odniesień.

Jeśli potrafią dobrze odpowiedzieć na trudne pytania dotyczące projektu i teorii i napisali przyzwoitą ilość C ++, to spodziewam się, że będą przynajmniej w połowie dobrzy i prawdopodobnie będą w stanie dość szybko nauczyć się brakujących rzeczy.


20

Prawdziwym testem dla wszystkich programistów jest to, jak dobrze rozwiązują problemy. Doskonałe narzędzie do rozwiązywania problemów z jedynie przeciętnymi umiejętnościami C # będzie dla ciebie o wiele bardziej cenne niż bóg C # (dess), który nie potrafi zrozumieć, jak radzić sobie z wprowadzaniem formularza.

Spróbuj znaleźć rozsądny prawdziwy problem ze swojej domeny biznesowej i pozwól mu rozwiązać go w języku C #. Znasz domenę i wiesz, jaki powinien być wynik. Możesz przejrzeć logikę samodzielnie i zadawać pytania, ponieważ podstawowy przepływ i polecenia w języku C # nie różnią się znacząco od języka C ++.

Jeśli nadal jesteś zaniepokojony, wyślij jego gotowy kod do jednego z Twoich znajomych w języku C # lub partnera biznesowego i zapytaj go, czy może go przejrzeć i przekazać opinię.


5
+1 dla wszystkich oprócz części z recenzją kodu. Skąd wiesz, że twój znajomy z C # nie będzie po prostu wskazywał swoich osobistych preferencji i wybierał kogoś arbitralnie. Idź z jelitami. Inteligencja jest wszystkim, a doświadczenie trudniejsze do oceny i sprawdzenia niż inteligencja. Zatrudnij inteligentnych ludzi, którzy załatwiają sprawy. (Reguła Joela).
Warren P

Zakładałem, że będzie już pewien poziom zaufania z osobą, która zostanie poproszona o sprawdzenie kodu, ale masz rację
Dave Wise

2

Zakładam, że naprawdę potrzebujesz programisty C #.

Najpierw dowiedz się, jakiego rodzaju zadań potrzebujesz, aby je wykonać.

Następnie zapytaj ich, w jaki sposób wykonają te zadania. Zapytaj, jak wykonali wcześniej takie zadania.

Podczas rozmowy poproś innych wnioskodawców o ocenę proponowanych rozwiązań. Proponuję zasiać rozwiązania takim, o którym wiesz, że nie zadziała, a być może takim, który Twoim zdaniem jest dobry. Pomoże to ustalić, w jaki sposób wnioskodawca może współpracować z zespołem. Sterowanie powinno pomóc wyeliminować tak ludzi i zabójców pomysłów .

Powinno to zapewnić ci dobrą grupę kandydatów z pomysłami, które są akceptowane przez ich rówieśników i powinny mieć możliwość pracy ze swoim zespołem.


1
W okolicy ludzie, którzy nie widzą, co jest nie tak z pomysłem, to turyści, a nie inżynierowie. :-) Wierzę w siłę zarówno pozytywnego, jak i negatywnego myślenia. Artykuł, który podłączyłeś jako Idea Assasins, brzmi jak napisany przez zgorzkniałą osobę, która nie potrafi obronić swoich słabych pomysłów w konstruktywnej dyskusji inżynieryjnej i która podchodzi politycznie i emocjonalnie, gdy rozumie fakty i ma ograniczoną zdolność do nauki pustynię im.
Warren P,

Są ludzie, którzy będą się opierać każdej zmianie lub Pomysłowi, który z nich nie pochodzi. To są Zabójcy Idei. Nie mówię o ludziach, którzy widzą prawdziwe problemy, tylko te, które są toksyczne dla środowiska. Ludzie, którzy zamiast widzieć, jak to może działać, tylko patrzą, jak to się nie powiedzie.
SoylentGray

2

odbieraj wywiad, gdy prowadziłeś programistę w C ++. nie skupiaj się zbytnio na technologiach C ++, ale raczej na rozwiązywaniu problemów, OOP i programowaniu w ogóle. Jeśli zatrudniłbyś go jako programistę C ++, który chce zrobić C #, to byłby dobrym zatrudnieniem.


0

Będąc programistą .Net i mając do czynienia z facetami z C ++, myślę, że nadal chciałbyś dowiedzieć się, czy ktoś wie przynajmniej coś o platformie .Net: wyrzucanie elementów bezużytecznych, GAC, JIT, NGEN, wartość vs. typ odniesienia, cel IDispose, itp. Dobra lista pytań jest dostępna na blogu Scotta Hanselmana . Nie ma prostego sposobu, aby dowiedzieć się, czy odpowiedzi są prawidłowe, jeśli sam nie rozumiesz pytań, więc warto zapoznać się z omówieniem .Net w witrynie MSDN lub wybrać dobrą książkę, na przykład Essential C # 4.0.

Jeśli szukasz programatora GUI, bardzo pomocne jest poproszenie o wdrożenie czegoś prostego, takiego jak kalkulator, łazik marsjański lub cokolwiek innego. Można podać dzień lub dwa. Zobaczysz od razu, czy GUI jest użyteczne i ładne, na przykład, jak się zachowuje po zmianie rozmiaru.


-1

Zacznij od sprawdzenia odpowiedzi na pytania w języku C # na SO ..

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.