В ідеальному світі:
У чудовій статті " Не називайте себе програмістом та іншими кар'єрними порадами" Патрік Маккензі пояснює, серед іншого, що ця мова не має значення:
Розробник - це людина, яка взагалі вирішує проблеми. Розробник - це не людина, яка пише код певною мовою.
Компанії не цікавляться мовами, які ви знаєте. Якщо їм потрібно найняти розробника для проекту, написаного певною мовою, і у них є кандидат, який має досвід, але ніколи не писав рядок коду цією мовою, він все одно буде найнятий.
Згідно з моїм досвідом як розробника, так і як людини, яка повинна була найняти інших розробників, спостереження дуже схоже:
Досвід 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.
Чому існує така різниця між теорією і тим, що ми з Патріком Маккензі описуємо як здоровий глузд, і реальний світ пропозицій про роботу?
<rant>...</rant>
. Серйозно, чи є тут справжнє питання?
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 (одна з декількох химерностей фреймворку, або одна з його багатьох відкритих помилок), тоді вам знадобиться значно більше часу для вирішення проблеми.