Чи вважає Вас Старшим розробником, що використовує одну мову, ви можете бути Старшим розробником на іншій мові? [зачинено]


27

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


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

8
@Walter - я не погоджуюся з вашим першим коментарем щодо локалізації. Це загальноприйнятне питання / відповідь щодо того, чи є старшим розробником на одній мові право давати вам посаду старшого розробника на іншій.
Крейдж

1
@Walter - вилучили проблеми з локалізацією, я думаю, зараз це, мабуть, розумно.
Джон Хопкінс

1
@Walker - Вибачте, питання має на увазі, як говорить Крейг. Я просто так написав, тому що я припускаю, що більшість програмістів, які вважаються молодшими, хочуть бути старшим розробником одного дня. Отже, вибір правильної юніорської позиції має вирішальне значення (чи ні)
Філіп

11
Це питання передбачає, що "Старший розробник" має якесь загальноприйняте значення. Зазвичай це така посадова річ, а назва вашої роботи - це все, про що ви і ваш роботодавець можете погодитись.
Девід Торнлі

Відповіді:


33

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

  • Грамотно запишіть код мовами, необхідними для ролі
  • Діагностуйте та виправляйте помилки
  • Напишіть одиничні тести
  • Дотримуйтесь стандартів та розумної найкращої практики (контроль версій, документація)
  • Майте широку базову технічну компетенцію
  • Дійте професійно

Крім того, я сподіваюся, що Старший розробник:

  • Вихователь інших членів персоналу з найкращих практик
  • Будьте і визнайте орієнтиром принаймні деякі мови, якими користується команда
  • Активно досліджуйте та відстоюйте нові напрямки найкращої практики
  • Візьміть на себе технічну власність на більш складні питання / області коду та запропонуйте надійні рішення

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


1
Це дійсно залежить від оточення, особливо начальника. Деякі "ср" відчувають, що їм потрібно показати свої знання з кожної теми, особливо там, де "молодший" може мати більше знань та досвіду з цього питання. Деяка серйозна напруга може наростати, коли молодший з програмою C ++ працює над проектом C #. "Jr" може мати більшу базу знань для цього конкретного фрейму. Це може викликати гарячі битви, особливо коли бос слухає.
P.Brian.Mackey

@ P.Brian.Mackey - Досить справедливо, є кілька значних відмінностей між різними робочими місцями з однаковою назвою. Я пішов із тим, що, на мою думку, було досить загальним (і розумним) визначенням, але воно може варіюватися від "старше 30 років" до "знає все про все".
Джон Хопкінс

1
удачі з останнім будь-якою мовою складнішою за BF ... навіть у C більше темних куточків, ніж можна було б очікувати!
СамБ

"Деякі" сер "відчувають, що їм потрібно показати свої знання з кожної теми". Цим людям слід сказати, що вони охолоджуються. Ви нічого не можете навчитися, якщо не визнаєте, що є речі, яких ви не знаєте. Здатність вільно визнавати незнання чогось - це ознака сили, а не слабкості.
PeterAllenWebb

1
+1 Зазначаючи, що деякі, але не всі вміння можуть бути передані. Чудовий спосіб поставити це.
Ніколь

5

Ви можете подати заявку на будь-яку посаду в будь-якій компанії, яка вам подобається, незалежно від вашого поточного статусу.

У вашому резюме / супровідному листі / інтерв'ю вам належить довести, що ви людина, яка працює.


5

Я шукаю наступні якості, коли опитував сестер-розробників.

  • Працював на декількох мовах
  • Експерт щонайменше в одній, компетентний принаймні в одній іншій, бажано в іншій парадигмі
  • Знаючи сучасні технології, сучасні технології тощо у вибраній області
  • Хороша основа CS, тобто (алгоритми, алгоритмічні калькуляції, структури даних тощо)
  • Можливість перемикання між деталями конкретної проблеми та великою картиною
  • Висловіть, коли справи рухаються в неправильному напрямку і чому; а потім мати можливість продовжувати в тому неправильному напрямку (він же професіоналізм)
  • Здатність до наставника
  • Можливість працювати всередині команди та з нею

Є безліч інших речей, які я шукаю, але це основні моменти.

Хоча я рекомендував найняти сестер-розробників, які не були знавцями мови, яка використовується на роботі, вони були фахівцями з подібних мов.


3

Ви можете подати заявку, але принаймні, якщо я займався наймом, я можу або не буду наймати вас.

Стаж ставиться до (принаймні) двох напрямків. Загальна експертиза розвитку та експертиза мови / рамки. (Я цілеспрямовано залишаю знання про бізнес-простір). Будучи старшим розробником моїх книг, це також включає рівень дизайну / архітектурного досвіду. Як побудувати хорошу / перевірену систему тощо.

Досягнення цього рівня на Яві повинно стати вам надійним для інших (подібних / процедурних) мов.

Але в цю епоху очікуваної негайної продуктивності ви навряд чи зможете знати майже стільки ж про Ruby, як Java. Як розділити вашу систему на зручні для Ruby конструкції замість Java-конструктів. Ви, мабуть, знаєте деякі рамки Java, а не Rails або інші особливості Ruby.

Якби я попросив вас зробити кодування на дошці в Рубі під час інтерв'ю, ви могли б це зробити?

Все це входило б у моє рішення взяти на роботу вас чи ні, на будь-якому рівні; але зокрема для старшої ролі.

Щасти


Дякую за вашу відповідь, так, я міг би зробити кодування на дошці в Ruby (те саме для C ++, Java). Насправді я вважаю себе в даний час навіть більш знаючим в Ruby, ніж на Java, тому що з року працюю над приватним проектом, який будується на Ruby.
Філіп

3

Ні.

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

Якщо ви займаєтесь C ++ / Win32 / MFC протягом 15 років, це насправді не кваліфікує вас на старше місце як розробник Rails, навіть якщо ви все ще вирішуєте ті самі проблеми в одному домені ... скажіть, медичне наприклад, виставлення рахунків.

Ще гірше, що більшість компаній навіть не вважають вас за приблизно схожу посаду ... Наприклад, якщо ви робили C ++ / MFC протягом 5-7 років, ви повинні мати можливість швидко на C # /.NET дуже швидко, принаймні для робочого столу. На жаль, більшість компаній не бачать цього.


4
Я не знаю, що "більшість" компаній бачать саме так. Проблема зараз в умовах низької економіки полягає в тому, що є так багато доступних людей, які вже знають (з вашого прикладу) C #, тож вони можуть звузити вас із пошуку просто на основі чисельності.
Wonko the Sane

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

3

Це залежить

Візьміть з нього «програмування». Зробіть вигляд, що ви професійний перекладач.

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

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


2

Так і ні.

Якщо мови схожі , скажімо, C ++, Java або Ruby впевнені, що вас слід враховувати. Залежно від того, наскільки гнучкі люди, які сидять у цих кабінетах, у вас є шанс на боротьбу.

Однак якщо мови сильно відрізняються , і я маю на увазі, що ти хлопець COBOL, котрий розігнав Хаскелла, то, незважаючи на ваші 10+ років COBOL, шанси на те, що ви, можливо, не зможете навіть так сильно захотіти інтерв'ю.

ДРУГІ ЧАСТИНИ, ЩО ВИГОТУТЬСЯ В ТВОЙ ПРИБІРІ В ТАКИХ СИТУАЦІЯХ:

  1. Якщо ви вже знаєте кілька мов і маєте досвід з тієї самої. Скажімо, ви добре знаєте C ++, але також знаєте Perl, Tcl та деякі Ruby, я хотів би вважати вас Java. Насправді я знаю людей, які отримали роботу з Java на C ++ у своєму резюме.
  2. Якщо ваш досвід перебуває у пов’язаному домені, у вас є шанс зробити це. Наприклад, якщо ви ігровий програміст на C ++, я не бачу причин, чому вас не можуть прийняти на роботу для роботи на C #, яка потребує неабиякого багаторівневого нарізування.

1
Гаразд, я мушу запитати - як Ruby як C ++ чи Java? C ++ та Java - це мови у стилі C, тоді як Ruby походить від Perl, Python та Smalltalk.
Крейдж

Я говорив про ООП як провідну тему.
Fanatic23

2

Я рідко бачив "старший" титул за мовою. Я знаю кількох старших системних програмістів, пару старших веб- програмістів та одного старшого програміста COBOL.

Програмування багатогранне і може запропонувати досить багато дисциплін. Я б очікував, що старший веб-розробник (назви, програміст і розробник, здається, взаємозамінні), володіє кількома основними мовами, які використовуються в веб-розробці. Це робить гуру Python та PHP миттєвим експертом у C #? Ні. З іншого боку, не всі гуру C # освоїли образотворче мистецтво управління проектами та лідерства.

Я виконував роль CTO у компанії, крім того, що був старшим системним програмістом. Тим не менш, я б із задоволенням звертався до експерта зі схеми чи LISP, якби стикався з проектом, який потребував будь-якого. Частина бути хорошим лідером - це спершу зрозуміти власні межі та недоліки .

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

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


0

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

Однак, дивлячись на те, як створити додаток або код максимально продуктивно і доцільно (можливо, згортання бітів), я не думаю, що ви могли б увійти на той же рівень досвіду при переключенні мови, IDE та / або фреймворку.

Але, як зазначив runrun, це не заважає вам нічого не подавати


0

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

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


0

Я б сказав, що чим язик нижчий чи машинний, тим більше ви експерт.

Java / C # експертиза менш оплачена, ніж ASM / C / C ++.

Ці останні мови виконують управління пам'яттю та інші речі, які насправді ПОДАЧАЮТЬСЯ при програмуванні.

Але для інших "легких" мов вам потрібно буде швидко порівняти функції, які роблять їх "легшими", але я вважаю це марним. Досвід легких мов краще вимірювати за допомогою CMS / іншого зробленого коду, яким ви працювали, наприклад, запальника коду, django або Apache або RoR.

Для мене старші розробники - це люди, які програмують ядра, системи, вбудоване обладнання та ін. Програмісти, які використовують не зручні для мене мови, не є для мене старшими. Вони просто виконують роботу, але це все.


Цікава думка. Я згоден, C ++ набагато більший. З іншого боку, є біль у С ++, тому що частини мови (поточної) є якось застарілими. Новітні мови мають набагато більше функцій бібліотеки, лямбдасів, циклів для кожної петлі та менш криптовалютного синтаксису для багатьох речей. Ці проблеми можуть відволікати увагу від фокусування на реальних матеріалах низького рівня.
Філіп

Це цікава думка. На мій досвід, старший чоловік більше займається управлінням, не обов'язково тому, що вони не кодують, а тому, що вони мають більший досвід перекладу матеріалів низького рівня в нетехнології. Ви, звичайно, можете поважати цю здатність чи ні. Ваша точка зору викликає запитання щодо команди з 30 веб-розробників, чи ніхто з них не є старшим, оскільки не може написати ядро? Для вас немає значення, чи працювали вони над Мозаїкою чи щойно закінчили середню школу?
Стів Джексон

30 веб-розробників? РОЗВИТКИ? Ну "старший" для мене означає, що людина кодує вже давно, або вже постаріла. Але якщо я думаю, що "старший" з точки зору досвіду та знань, які мають значення, я не думаю, що ви могли б назвати це досвідом програмування, якщо використовуєте мову, зібрану зі сміттям.
jokoon
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.