Чому більшість пропозицій вакансій стосується розробника <мова тут>, а не розробника взагалі? [зачинено]


10

В ідеальному світі:

У чудовій статті " Не називайте себе програмістом та іншими кар'єрними порадами" Патрік Маккензі пояснює, серед іншого, що ця мова не має значення:

  • Розробник - це людина, яка взагалі вирішує проблеми. Розробник - це не людина, яка пише код певною мовою.

  • Компанії не цікавляться мовами, які ви знаєте. Якщо їм потрібно найняти розробника для проекту, написаного певною мовою, і у них є кандидат, який має досвід, але ніколи не писав рядок коду цією мовою, він все одно буде найнятий.

Згідно з моїм досвідом як розробника, так і як людини, яка повинна була найняти інших розробників, спостереження дуже схоже:

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

  • Мене не хвилює мови, якими ви користувалися раніше. Для проекту C # я скоріше найму професійного розробника, який провів своє життя за написанням коду Java, Python та Ruby на 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". І якщо я зможу знайти цю людину, я можу їх найняти. Коли я є людиною, яка шукає роботу, я можу обурити їх за те, що не дивляться на мене, тому що у мене є лише одуди мізків, а не точний досвід, який вони хочуть, але якби у мене було саме те, що вони хочуть, я б очікував прийняти на роботу, на місці. Отже, врешті-решт, це їхній дзвінок, і саме так і має бути.
Warren P

Відповіді:


16

Оскільки у багатьох компаній є HR безпілотники, які займаються набором кадрів, які не мають жодного поняття про це. Коли HR каже: "Яка кваліфікація потрібна кандидату?" набагато простіше сказати "Шість років C #", ніж сказати "пише гарний код". Цей безпілотник не має уявлення про те, як виглядає "Написання хорошого коду" або як відфільтрувати резюме, чи можуть вони написати хороший код чи ні. Однак вони можуть швидко прочитати резюме і побачити "П'ять і три чверті року C #" і викинути його.


3
Саме так. не розробники та менеджмент можуть дивитись на вас як завгодно, якщо ви скажете, що ви шукаєте когось із подібними навичками, але вам доведеться навчитися неабияк (наприклад, конкретний синтаксис, а не поняття) спочатку на роботі, якщо вони з цим не в порядку.
Майкл Дюрант

Я думав, що їх називають HR-мавпами ... Я повністю погоджуюся, але все-таки гарна ідея, щоб <мова тут> був гуру в команді.
Лукаш Мадон

3
Поставити в рекламі "писати хороший код" - це повна дурниця. Всі думають, що вони пишуть хороший код. А ті, хто найбільше засуджений за свої найвищі навички написання коду, - це, як правило, ті, хто пише найгірший код.
nikie

1
@nikie: Це спрощення. Ви б, звичайно, не вказували саме це в рекламі.
DeadMG

3
Я не думаю, що це головна причина, оскільки невеликі стартапи без відділу кадрів роблять точно так само.
Дж. Мейз

22

Я думаю, що настав час укласти цей міф про те, що розробник з досвідом X років у мові Y може безперешкодно переходити на мову Y2. Це не так, як це працює.

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

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

Тож коли я прошу розробника C #, я фактично рекламую розробника платформи .NET, який має досвід у проектах C #. Це, як правило, сервісні проекти .net, 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

Я думаю, ви просто неправильно трактуєте стандартну фразу "<language here> developer". Компанії не вкладають цю фразу в рекламу, щоб стримувати розробників, які мають досвід іншої мови. Чому вони хочуть стримувати здібних розробників? З точки зору роботодавця, чим більше кандидатів, тим краще. Вони не завжди можуть запросити людей, яких вони не цікавлять.

Справжній сенс фрази полягає в тому, щоб сказати вам, читачеві, що би потягло за собою пропозицію роботи. І це має багато сенсу, ІМХО. Ви подали заявку на роботу, де ви розвиваєтесь мовою монтажу Z80? Або COBOL? Або Фортран?

І, очевидно, якщо в компанії є два кандидати, які здаються однаково розумними в іншому випадку, виграє той, хто має досвід <мова тут>. Нічого більше, нічого менше. (Існують особливі випадки, коли людей приймають на роботу лише для одного проекту, або для проекту, який вже запізнився, або для першого проекту компанія розробляє <мову тут>, де вам справді потрібен досвід з цієї мови з самого початку, але я не думаю, що це правило.

До речі, колись моя компанія писала рекламу, як ви запропонували ( здається, це має сенс, зрештою). Результати були руйнівними. Люди, які дійсно дбають про свою роботу, просто пропустили рекламу. Лише відчайдушні, які звертаються до будь-якої відкритої позиції. Ми ніколи не пробували її знову.


1

Відступіть і подумайте про приміщення. Ви хочете, щоб людина робила якусь роботу .net. Ви додаєте це до своєї посадової інструкції і шукаєте кандидатів з такою майстерністю! Це просто здоровий глузд.

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

Якщо вони взагалі не зможуть отримати жодних кандидатів або пройти кілька поганих, то вони можуть трохи вивчити і бути більш прихильними до деталей, які ви деталізуєте. Насправді в районі, в якому я перебуваю (Ruby on Rails), зараз багато реклами, які говорять: «не потрібен досвід, ми будемо тренувати вас» тощо. Насправді деякі найкращі організації Ruby on Rails - це дуже відкритий для кандидатів "без шкідливих звичок", які вони можуть тренувати. Тож правильний підхід є деякими організаціями.

Майте також на увазі, що більшість оголошень - це зовнішні рекрутери або внутрішні нетехнічні рекрутери, які просто не мають знань «йти вбік», як ви описуєте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.