Как нанять хорошего разработчика C #, если я не знаю C #? [закрыто]

15

Я разработчик C ++. Я знаю, как работает Windows на нативном уровне, но я не большой специалист по C # и .NET. Теперь мне нужен разработчик C # в моей команде (все мои разработчики - C ++). Как я могу нанять великого разработчика C #, если я не знаю C # на хорошем уровне? Как задавать вопросы, как проверить, хороши ли ответы или с глупыми ошибками?

Кирилл В. Лядвинский
источник
5
Где вы публикуете вакансию? ;)
IAbstract
Вот хороший набор вопросов по крайней мере (вы, вероятно, должны понимать ответы заранее - очевидно) Ссылка
Даг Стэнли
11
Похоже, вы можете нанять хороших разработчиков C ++. Добавьте еще одну команду и скажите: «Угадай, что?» :)
JeffO
7
Просто наймите хорошего программиста.
Марсело
2
@ Job Или, вы знаете, купить книгу.
Калеб Бразе

Ответы:

3

Иногда я сталкиваюсь с проблемой интервьюирования программистов, которые в основном имеют опыт работы с C ++, который я не знаю так же, как и они. Моя стратегия заключается в следующем:

  1. в основном задают общие вопросы программирования, алгоритмы, проектирование ОО, как проводить рефакторинг, что делает хороший модульный тест и т. д. Я добавляю несколько общих вопросов, направленных на стиль языка, поэтому для C ++ я мог бы спросить об управлении памятью и времени жизни объектов для C # Я мог бы спросить, например, может ли быть утечка памяти при использовании сборщика мусора?

  2. постарайтесь узнать, как они выучили язык, какие книги прочитали и т. д.

  3. убедитесь, что они написали значительное количество C ++. Подробно расскажите, когда они его использовали, сколько, что они с ним сделали и для кого. Затем попробуйте проверить это, насколько это возможно, используя их ссылки.

Если они могут хорошо ответить на сложные вопросы дизайна и теории и написали приличное количество C ++, то я ожидаю, что они будут, по крайней мере, наполовину хорошими, и, вероятно, смогут довольно быстро выучить любой недостающий материал.

flamingpenguin
источник
20

Настоящим испытанием для всех программистов является то, насколько хорошо они решают проблемы. Первоклассный решатель проблем с только посредственными навыками C # будет гораздо более ценным для вас, чем бог C # (dess), который не может понять, как обрабатывать ввод данных.

Попытайтесь найти разумную реальную проблему в вашей бизнес-сфере и позвольте ему решить ее в C #. Вы знаете домен и знаете, каким должен быть результат. Вы можете сами просмотреть логику и задать вопросы, так как основной поток и команды в C # не сильно отличаются от C ++.

Если вы все еще обеспокоены, отправьте его готовый код одному из ваших друзей в C # или, возможно, деловому партнеру и спросите их, могут ли они просмотреть его и оставить отзыв.

Дейв Уайз
источник
5
+1 за все, кроме части обзора кода. Откуда вы знаете, что ваш друг на C # не собирается просто указывать на свои личные предпочтения и выбирать кого-то произвольно. Иди со своей интуицией. Интеллект - это все, и опыт труднее оценить и проанализировать, чем интеллект. Нанимайте умных людей, которые добиваются цели. (Правило Джоэла.)
Уоррен П
Я предполагал, что будет уже установлен некоторый уровень доверия с человеком, которого попросят пересмотреть код, но у вас есть действительный аргумент
Дейв Уайз,
2

Я предполагаю, что у вас есть реальная потребность в C # разработчике.

Сначала выясните, какой тип задач вам необходим для их выполнения.

Затем спросите их, как они будут выполнять эти задачи. Спросите, как они выполнили задачи, как это ранее.

Во время собеседования попросите других кандидатов оценить их предлагаемые решения. Я бы посоветовал посеять решения, которые, как вы знаете, не сработают, и, возможно, те, которые вы считаете хорошими. Это поможет определить, как кандидат может работать с вашей командой. Средства управления должны помочь отсеять людей «да» и « убийц идей» .

Это должно предоставить вам хорошую группу кандидатов с идеями, которые принимаются их коллегами и должны иметь возможность работать с вашей командой.

SoylentGray
источник
1
Здесь люди, которые не могут понять, что не так с идеей, являются туристами, а не инженерами. :-) Я верю в силу как позитивного, так и негативного мышления. Статья, которую вы связали как Idea Assasins, звучит так, как будто она написана горьким человеком, который не может отстоять свои слабые идеи в конструктивной инженерной дискуссии, и который становится политическим и эмоциональным, когда их собственное понимание фактов и ограниченная способность заниматься научной деятельностью пустынны их.
Уоррен П,
Есть люди, которые будут сопротивляться любым изменениям или идеям, которые не исходят от них. Это идеи убийц. Я не говорю о людях, которые могут видеть реальные проблемы только те, которые являются токсичными для окружающей среды. Люди, которые вместо того, чтобы видеть, как это может работать, только смотрят, как это не получится.
SoylentGray
2

пройти собеседование, пока вы работали на C ++. не слишком сосредотачивайтесь на технологиях C ++, а скорее на решении проблем, ООП и программировании в целом. Если бы вы наняли его как разработчика C ++, который хочет заниматься C #, то он был бы хорошим наемником.

komisacroS
источник
0

Будучи самим разработчиком .Net и много общаясь с ребятами на C ++, я думаю, вы все равно захотите узнать, знает ли человек хотя бы кое-что о платформе .Net: сборку мусора, GAC, JIT, NGEN, тип Value vs. Reference, цель IDispose и т. д. Хороший список вопросов доступен в блоге Скотта Хансельмана . Нет простого способа выяснить, верны ли ответы, если вы сами не понимаете вопросы, поэтому имеет смысл взглянуть на обзор .Net по MSDN или взять какую-нибудь хорошую книгу, например Essential C # 4.0.

Если вы ищете программиста с графическим интерфейсом, очень полезно попросить реализовать что-то простое, например, калькулятор или марсоход или что-то еще. Можно дать день или два для этого. Вы сразу увидите, насколько полезен и приятен графический интерфейс, например, как он ведет себя при изменении размера.

Дмитрий Севастьянов
источник
-1

Начните с проверки их ответов на вопросы C # на SO ..

Бен
источник