Якщо я працюю як розробник на одній мові (наприклад, Java) і працюю на шляху до старшого розробника, чи може це кваліфікувати мене як старший розробник на посаді, що використовує іншу мову (наприклад, Ruby)?
Якщо я працюю як розробник на одній мові (наприклад, Java) і працюю на шляху до старшого розробника, чи може це кваліфікувати мене як старший розробник на посаді, що використовує іншу мову (наприклад, Ruby)?
Відповіді:
Найкращий спосіб відповісти на це - подивитися, яка різниця між розробником та старшим розробником. Якщо припустити, що це не просто час, який обслуговується часом, я, як правило, очікував, що і розробники, і старші розробники зможуть:
Крім того, я сподіваюся, що Старший розробник:
Отже, виникає питання, чи виконуєте ви розширені критерії для своєї другої (або третьої чи четвертої) мови? Я б припустив, що поки ви досить технічно володієте мовою, на якій ви переходите, так, так як більшість речей для старшого розробника, як правило, можуть бути переданими.
Я шукаю наступні якості, коли опитував сестер-розробників.
Є безліч інших речей, які я шукаю, але це основні моменти.
Хоча я рекомендував найняти сестер-розробників, які не були знавцями мови, яка використовується на роботі, вони були фахівцями з подібних мов.
Ви можете подати заявку, але принаймні, якщо я займався наймом, я можу або не буду наймати вас.
Стаж ставиться до (принаймні) двох напрямків. Загальна експертиза розвитку та експертиза мови / рамки. (Я цілеспрямовано залишаю знання про бізнес-простір). Будучи старшим розробником моїх книг, це також включає рівень дизайну / архітектурного досвіду. Як побудувати хорошу / перевірену систему тощо.
Досягнення цього рівня на Яві повинно стати вам надійним для інших (подібних / процедурних) мов.
Але в цю епоху очікуваної негайної продуктивності ви навряд чи зможете знати майже стільки ж про Ruby, як Java. Як розділити вашу систему на зручні для Ruby конструкції замість Java-конструктів. Ви, мабуть, знаєте деякі рамки Java, а не Rails або інші особливості Ruby.
Якби я попросив вас зробити кодування на дошці в Рубі під час інтерв'ю, ви могли б це зробити?
Все це входило б у моє рішення взяти на роботу вас чи ні, на будь-якому рівні; але зокрема для старшої ролі.
Щасти
Ні.
Це одна з великих відмінностей між нашою професією та іншими більш «формальними» професіями. Якщо ви працювали юристом, роблячи заповіти та маєтки протягом 20 років, то ви збираєтесь керувати високою ставкою, оскільки у вас є 20 років знань, накопичених у цій галузі .
Якщо ви займаєтесь C ++ / Win32 / MFC протягом 15 років, це насправді не кваліфікує вас на старше місце як розробник Rails, навіть якщо ви все ще вирішуєте ті самі проблеми в одному домені ... скажіть, медичне наприклад, виставлення рахунків.
Ще гірше, що більшість компаній навіть не вважають вас за приблизно схожу посаду ... Наприклад, якщо ви робили C ++ / MFC протягом 5-7 років, ви повинні мати можливість швидко на C # /.NET дуже швидко, принаймні для робочого столу. На жаль, більшість компаній не бачать цього.
Це залежить
Візьміть з нього «програмування». Зробіть вигляд, що ви професійний перекладач.
Припустимо, що англійська мова є вашою першою мовою, і ви також володієте французькою мовою. Ви, ймовірно, вивчите іспанську мову досить легко.
Однак ви не так вже ймовірні, що швидко освоїте багато діалектів китайців. У той час як ваш досвід мовознавства допоможе вам вивчити мову (мови), даючи вам перевагу перед тим, хто ніколи не вивчав іноземну мову, все одно знадобиться вам набагато більше часу, щоб стати "експертом" (тобто "старшим" ) перекладач цією мовою.
Так і ні.
Якщо мови схожі , скажімо, C ++, Java або Ruby впевнені, що вас слід враховувати. Залежно від того, наскільки гнучкі люди, які сидять у цих кабінетах, у вас є шанс на боротьбу.
Однак якщо мови сильно відрізняються , і я маю на увазі, що ти хлопець COBOL, котрий розігнав Хаскелла, то, незважаючи на ваші 10+ років COBOL, шанси на те, що ви, можливо, не зможете навіть так сильно захотіти інтерв'ю.
ДРУГІ ЧАСТИНИ, ЩО ВИГОТУТЬСЯ В ТВОЙ ПРИБІРІ В ТАКИХ СИТУАЦІЯХ:
Я рідко бачив "старший" титул за мовою. Я знаю кількох старших системних програмістів, пару старших веб- програмістів та одного старшого програміста COBOL.
Програмування багатогранне і може запропонувати досить багато дисциплін. Я б очікував, що старший веб-розробник (назви, програміст і розробник, здається, взаємозамінні), володіє кількома основними мовами, які використовуються в веб-розробці. Це робить гуру Python та PHP миттєвим експертом у C #? Ні. З іншого боку, не всі гуру C # освоїли образотворче мистецтво управління проектами та лідерства.
Я виконував роль CTO у компанії, крім того, що був старшим системним програмістом. Тим не менш, я б із задоволенням звертався до експерта зі схеми чи LISP, якби стикався з проектом, який потребував будь-якого. Частина бути хорошим лідером - це спершу зрозуміти власні межі та недоліки .
Я не впевнений, що хотів би працювати у компанії чи навіть у відділі, який зосередився на одній і лише одній мові. Це звучить так, як це зробить те, що вони завжди говорили, що палить сигарети: стримує ваше зростання, коли реальність насправді набагато гірша.
Не ганяйтесь за титрами, не переслідуйте за знаннями. Але, чесно кажучи, ваша роль на попередній керівній посаді, ймовірно, дасть вам додаткову перевагу, за умови, що ви продемонстрували компетентність у мові.
Я думаю, що це залежить від того, що ви сприймаєте як старшого розробника? Якщо це більше стосується архітектора, багато принципів дизайну та моделей дизайну будуть у вашому розпорядженні від вашого досвіду розробника, незалежно від мови. Так що це плюс ;-)
Однак, дивлячись на те, як створити додаток або код максимально продуктивно і доцільно (можливо, згортання бітів), я не думаю, що ви могли б увійти на той же рівень досвіду при переключенні мови, IDE та / або фреймворку.
Але, як зазначив runrun, це не заважає вам нічого не подавати
Це буде сильно залежати від компанії, з якою ви берете співбесіду, оскільки це, як правило, внутрішні кадрові процедури, які визначають, як нових співробітників отримують на борту. Більші компанії, як правило, дуже жорсткі, і якщо вони кажуть, що ви повинні мати n річний досвід роботи на даній мові, щоб вважатись вищим рівнем, то ви можете виявити, що вони приведуть вас лише до розробника середнього рівня.
Однак це не повинно заважати вам претендувати на посаду, і якщо вони приведуть вас на співбесіду, це щось, що вам слід обговорити.
Я б сказав, що чим язик нижчий чи машинний, тим більше ви експерт.
Java / C # експертиза менш оплачена, ніж ASM / C / C ++.
Ці останні мови виконують управління пам'яттю та інші речі, які насправді ПОДАЧАЮТЬСЯ при програмуванні.
Але для інших "легких" мов вам потрібно буде швидко порівняти функції, які роблять їх "легшими", але я вважаю це марним. Досвід легких мов краще вимірювати за допомогою CMS / іншого зробленого коду, яким ви працювали, наприклад, запальника коду, django або Apache або RoR.
Для мене старші розробники - це люди, які програмують ядра, системи, вбудоване обладнання та ін. Програмісти, які використовують не зручні для мене мови, не є для мене старшими. Вони просто виконують роботу, але це все.