Почему большинство предложений работы для разработчика <language here>, а не для разработчика в целом? [закрыто]

10

В идеальном мире:

В прекрасной статье « Не называйте себя программистом и другими советами по карьере» Патрик МакКензи объясняет, среди прочего, что язык не имеет значения:

  • Разработчик - это человек, который решает проблемы в целом. Разработчик не человек, который пишет код на определенном языке.

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

Согласно моему опыту как разработчика, так и человека, которому приходилось нанимать других разработчиков, наблюдение очень похоже:

  • N-летний опыт в Java или N-летний опыт в C # не имеет значения. Важно то, что кандидат знает, как решать проблемы, знает разницу между спагетти-кодом и чистым кодом с продуманной архитектурой и т. Д.

  • Меня не волнуют языки, которые вы использовали раньше. Для проекта на C # я скорее найму профессионального разработчика, который посвятил всю свою жизнь написанию кода на Java, Python и Ruby on Rails, а не новичку, который знает только C # и плохо его знает.

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

    Опытный разработчик, который использовал Ruby on Rails для веб-разработки и потратил остаток своей карьеры на написание настольных Java-приложений с использованием Oracle, идеально подходит для проекта ASP.NET MVC с использованием Microsoft SQL Server. Потому что этот человек уже знает все, что ей нужно для этой работы , кроме нескольких конкретных вещей и различий в синтаксисе.

    С другой стороны, человек, который сделал всего несколько небольших веб-сайтов ASP.NET MVC, вообще не подходит, потому что он может не полностью понимать архитектуру MVC, может знать, что такое профилирование SQL, и может испытывать недостаток в некоторых других важных вещах. знания.

    Не говорите мне, что я не могу исправить небольшую проблему с веб-сайтом PHP, который использует CodeIgniter только потому, что я никогда раньше не использовал CodeIgniter.

На практике:

На практике, когда я ищу внештатные вакансии и когда я вижу предложения о работе в целом, они очень зависят от языка.

Некоторые искали бы PHP-разработчика с двухлетним опытом работы в Magento. Другие будут искать человека с опытом работы с VB.NET не менее трех лет, и если вы отправите им резюме с упоминанием о том, что вы разрабатывали C # в течение шести лет, но без упоминания VB.NET, они не будут беспокоиться отвечать. Если они попросят человека с опытом работы с Firebird, они не будут слушать о вашем десятилетнем опыте работы с Oracle.

Почему существует такая разница между теорией и тем, что мы с Патриком МакКензи описываем как здравый смысл, и реальным миром предложений работы?

Арсений Мурзенко
источник
12
Don't tell me that I'm unable to fix a small problem with a PHP website which uses CodeIgniter just because I never used CodeIgniter before.Несмотря на то, что вы вполне способны решить проблему, если основной причиной является CodeIgniter (одна из немногих причуда фреймворка или одна из многих открытых ошибок), тогда вам потребуется значительно больше времени для решения проблемы.
Яннис
12
Вы забыли некоторые теги: <rant>...</rant>. Серьезно, тут есть реальный вопрос?
Циклоп
6
«Меня не волнуют языки, которые вы использовали раньше. Для проекта на C # я скорее найму профессионального разработчика, который посвятил всю свою жизнь написанию кода на Java, Python и Ruby on Rails, а не начинающего, который знает только C # и знает это плохо. " - Возьми этого соломенного чучела! Это ложная дихотомия. Ваша напыщенная речь подходит для начинающих, но НЕ для позиций, которые требуют глубокого знания конкретной платформы.
Джим в Техасе
1
Кто-то, кто имеет опыт работы с языком, сделает работу намного быстрее и чище, думая иначе - просто бред.
Томас Бонини
Когда я нанимаю человека, я получаю действительно длинный список «Должно быть, использованы термины Technobabble X, Y и Z». И если я найду этого человека, я найму его. Когда я человек, ищущий работу, я могу обижаться на них за то, что они не смотрят на меня, потому что у меня есть только куча мозгов, а не тот опыт, который они хотят, но если бы у меня было именно то, что они хотят, я бы ожидал получить на работу, на месте. Так что, в конце концов, это их зов, и так и должно быть.
Уоррен П

Ответы:

16

Потому что во многих компаниях работают HR-дроны, которые не имеют ни малейшего представления об этом. Когда HR говорит: «Какая квалификация нужна кандидату?» гораздо проще сказать «Шесть лет на C #», чем «писать хороший код». Этот дрон понятия не имеет, как выглядит «Записывает хороший код» или как фильтровать резюме по тому, могут ли они написать хороший код. Они могут, однако, быстро прочитать резюме и увидеть «Пять и три четверти года C #» и выбросить его.

DeadMG
источник
3
Точно. не разработчики и менеджмент могут смотреть на вас вопросительно, если вы говорите, что ищете кого-то со схожими навыками, но им нужно было бы выучить немного (например, особый синтаксис, а не концепции) на работе, если они не согласны с этим.
Майкл Даррант
Я думал, что их называли HR-обезьянами ... Я полностью согласен, но все же это хорошая идея иметь гуру <language here> в команде.
Лукаш Мадон
3
Помещение «пишет хороший код» в рекламу - полная чушь. Все думают, что они пишут хороший код. И те, кто больше всего осужден за их превосходные навыки написания кода, обычно пишут худший код.
nikie
1
@nikie: это упрощение. Вы бы, конечно, не поместили именно это в рекламу.
DeadMG
3
Я не думаю, что это главная причина, поскольку маленькие стартапы без отдела кадров делают то же самое.
J. Maes
22

Я думаю, что пришло время развеять этот миф о том, что разработчик с X-летним опытом работы с языком Y может легко перейти на язык Y2. Это не так, как это работает.

Если вы относитесь к языку только как к его синтаксису и общим шаблонам, то знание, скажем, Java даст вам огромное преимущество при переходе на C #. Однако он не подготовит вас к WCF, WPF, Click Once, различным библиотекам потоков, Linq, и, безусловно, не подготовит вас к тому, что в брошюре говорится, что работает, но на практике это не так.

Вы видите, что говорите не о языке, а о платформе. И там, где платформа .NET является хорошим примером, поддерживает множество языков, люди склонны сходиться в предпочтительном выборе.

Поэтому, когда я спрашиваю разработчика на C #, я фактически рекламирую разработчика платформы .NET, который имеет опыт работы с проектами на C #. Это, как правило, проекты .net server, проекты winforms / wpf.

Ян
источник
Согласен. Это конечно возможно, но сложно. Синтаксис семейства C легко переносится, но для полного понимания платформы и набора инструментов требуется много времени. Мой совет молодым разработчикам / программистам / аналитикам / программистам - использовать новые технологии в свое свободное время, пока все еще новички. Люди, которые занимались разработкой HTML5, iOS и Android два или три года назад, находятся в хорошей форме. Конечно, можно догадаться неправильно (спросите меня о Flex), но это не конец света.
Джим в Техасе
Это в основном потому, что Java -> C # похожа на C -> C ++ - технически они могут быть построены на тех же основах, но C # включает в себя гораздо больше возможностей, которые вы на самом деле хотели бы использовать. Обратное преобразование было бы намного проще, переходя с C # на Java.
DeadMG
11

Я могу придумать несколько причин:

  1. Сотрудник против консультанта - если я нанимаю консультанта, я хочу, чтобы он / она был в курсе уже тех технологий, которые мы используем. Ожидается, что консультанты будут эффективны очень быстро, так как они не так долго, чтобы амортизировать обучение.
  2. Спрос / предложение - как сказал Док, если я собираюсь выбрать наиболее опытного кандидата, которого я могу найти для работы. И технологический стек имеет значение для устоявшихся технологий. Если я ищу человека, который хочет развиваться в Go (выбирая язык, который мало кто знает), почти никто не имеет опыта работы с ним, и я вернусь к навыкам в качестве разработчика в целом.
Жанна Боярская
источник
4

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

С другой стороны , есть рабочие места , где будут в поисках конкретной технической экспертизы. Еще в 90-х годах я работал в небольшом магазине программного обеспечения, и нам нужно было быстро приобрести опыт в C ++. Несмотря на явную просьбу об экспертизе C ++ в наших объявлениях, большинство кандидатов знали C ++ меньше, чем я. «Но я могу быстро выучить C ++!» они все сказали. Ну да, я уверен, что вы могли бы, но я мог, как и другие люди, которые уже были там. Мы искали кого-то, кто уже действительно знал C ++, поэтому у нас был бы внутренний источник знаний, поскольку остальные из нас пришли к скорости. Наличие другого новичка в команде действительно не помогло бы.

Чарльз Э. Грант
источник
1
+1: У КОМАНДЫ могут быть некоторые или даже большинство разработчиков, плохо знакомых с языком, но очень помогает иметь экспертов по языку, которые могут учить всех остальных.
ДЕРЕВО
3

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

Скажем, вы ищете кандидата на работу в .NET / C #. Если у вас есть два кандидата на работу, оба, кажется, одинаково опытны, но первый получил свой опыт работы в экосистеме Java, второй - в экосистеме .NET - какой из них ваш любимый?

Другие будут искать человека с опытом работы с VB.NET не менее трех лет, и если вы отправите им резюме с упоминанием о том, что вы разрабатывали C # в течение шести лет, но без упоминания VB.NET, они не будут беспокоиться отвечать.

Кто может сказать, почему вы не получили ответ? Возможно, было достаточно опытных разработчиков VB.NET, претендующих на эту работу? Возможно, отдел кадров использует опыт работы с языком программирования в качестве фильтра, чтобы уменьшить количество рабочих мест со 100 до 10. Возможно, вы только что говорили с не теми компаниями (я полагаю, в моей компании мы отправили бы ответ в этом примере). Вы описали выше).

Док Браун
источник
2

В большинстве проектов результаты работы нужны быстро, и люди должны получать прибыль как можно скорее.

Люди, которые способны удовлетворить эти потребности и не связаны с определенным языком (языками), являются дефицитными и, как следствие, слишком дорогими. Эти люди нанимаются только крупными компаниями, которые требуют невероятных навыков.

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

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

Короче говоря, проект, который должен быть реализован в JAVA, не нуждается в дорогостоящем невероятном разработчике программного обеспечения и не требует среднего разработчика .net, которому потребуется время для изучения языка / структуры. Нужны немедленные результаты за наименьшую сумму денег, которую получает парень, уже имеющий опыт работы с JAVA и имеющий относительно хорошие навыки решения проблем.

Как всегда, речь идет о деньгах и получении максимальной отдачи от инвестиций

Дж. Мэйс
источник
2

Я думаю, что вы просто неправильно понимаете стандартную фразу «<язык здесь> разработчик». Компании не помещают эту фразу в рекламу, чтобы удержать разработчиков, имеющих опыт работы на каком-либо другом языке. Почему они хотят сдерживать способных разработчиков? С точки зрения работодателя, чем больше кандидатов, тем лучше. Они всегда могут не приглашать людей, которых они не интересуют.

Настоящая фраза в том, чтобы сказать вам, читатель, что повлечет за собой предложение работы. И это имеет большой смысл, ИМХО. Будете ли вы подать заявку на работу, где вы разрабатываете на языке ассемблера Z80? Или кобол? Или фортран?

И, очевидно, если в компании есть два кандидата, которые кажутся одинаково умными, то побеждает тот, кто имеет опыт работы с <language here>. Ни больше ни меньше. (Существуют особые случаи, когда люди нанимаются только для одного проекта, или для проекта, который уже опаздывает, или для первого проекта, который компания разрабатывает на <language here>, где вам действительно необходим опыт работы с этим языком с самого начала, но я не думаю, что они являются правилом.

Кстати, моя компания когда-то писала рекламу, как вы предлагали ( кажется , в конце концов, это имеет смысл). Результаты были разрушительными. Люди, которые действительно заботятся о своей работе, просто пропустили рекламу. Только отчаянные, которые относятся к любой открытой позиции. Мы никогда не пробовали это снова.

nikie
источник
1

Сделай шаг назад и подумай о предпосылке. Вы хотите, чтобы человек сделал какую-то работу .net. Вы помещаете это в описание своей работы, и вы ищете кандидатов с этим навыком! Это просто здравый смысл.

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

Если они вообще не могут найти ни одного кандидата или проходят через несколько плохих, они могут немного учиться и быть более поддающимися деталям, которые вы детализируете. На самом деле в той области, в которой я нахожусь (Ruby on Rails), сейчас есть много рекламы, в которой говорится: «Опыт не требуется, мы обучим вас» и т. Д., И на самом деле некоторые из ведущих организаций Ruby on Rails очень открыт для кандидатов "без вредных привычек", которые они могут обучать. Таким образом, некоторые организации применяют правильный подход.

Имейте также в виду, что большинство объявлений сделаны внешними рекрутерами или нетехническими внутренними рекрутерами, у которых просто нет знаний, чтобы «идти в сторону», как вы описываете.

Майкл Даррант
источник