Имеет ли право быть старшим разработчиком на одном языке старшим разработчиком на другом языке? [закрыто]

27

Если я работаю разработчиком на одном языке (например, Java) и прохожу путь до старшего разработчика, будет ли это означать, что я буду старшим разработчиком на должность, использующую другой язык (например, Ruby)?

Филипп
источник
2
@Philip - этот вопрос на самом деле является пограничным на нескольких направлениях. Это граница "слишком локализована", потому что она действительно будет иметь ценность только для вас, и она граница "неконструктивна", так как на самом деле не отвечает руководящим принципам на вопросы, перечисленные в нашем FAQ. Если вы можете отредактировать этот вопрос и обратиться к руководству, возможно, стоит сохранить вопрос.
Уолтер
8
@Walter - я должен не согласиться с вашим первым комментарием по локализации. Это общеприменимый вопрос / ответ относительно того, дает ли вам право стать старшим разработчиком на другом языке, если вы являетесь старшим разработчиком на одном языке.
Крейг,
1
@Walter - устранены проблемы с локализацией, я думаю, что сейчас это разумно.
Джон Хопкинс
1
@Walker - Извините, вопрос задуман как Крейдж. Я просто написал это так, потому что я предполагаю, что большинство программистов, которых считают младшими, когда-нибудь захотят стать старшими разработчиками. Поэтому выбор правильной младшей позиции имеет решающее значение (или нет)
Филипп
11
Этот вопрос предполагает, что «Старший разработчик» имеет какое-то общепринятое значение. Обычно это название должности, и должность, с которой вы и ваш работодатель можете согласиться, - это то, что вам нужно.
Дэвид Торнли

Ответы:

33

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

  • Пишите код грамотно на языках, необходимых для роли
  • Диагностика и исправление ошибок
  • Написать юнит-тесты
  • Следуйте стандартам и разумным рекомендациям (контроль версий, документация)
  • Иметь широкий базовый технический компетентный
  • Действовать профессионально

Кроме того, я ожидаю, что старший разработчик:

  • Наставление других сотрудников в передовой практике
  • Будьте и признавайте контрольную точку по крайней мере для некоторых языков, используемых командой
  • Активно исследовать и отстаивать новые области наилучшей практики
  • Получите техническое владение более сложными проблемами / областями кода и предоставьте надежные решения

Таким образом, возникает вопрос: выполняете ли вы расширенные критерии для вашего второго (или третьего или четвертого) языка? Я бы посоветовал это, если вы достаточно технически компетентны в языке, на который вы переходите, тогда да, так как большинство вещей старшего разработчика имеют тенденцию переноситься.

Джон Хопкинс
источник
1
Это действительно зависит от окружающей среды, особенно от босса. Некоторые «Ср» считают, что им нужно показать свои знания по каждому предмету, особенно когда «младший» может иметь больше знаний и опыта по предмету. Некоторое серьезное напряжение может возникнуть, когда старший с фоном C ++ работает над проектом C #. «Младший» может иметь большую базу знаний для этой конкретной структуры. Это может вызвать некоторые горячие битвы, особенно когда босс слушает.
P.Brian.Mackey
@ P.Brian.Mackey - Достаточно справедливо, между разными заданиями с одинаковым названием есть довольно большие различия. Я придерживался того, что я считал довольно общим (и разумным) определением, но оно может варьироваться от «старше 30 лет» до «знает все обо всем».
Джон Хопкинс
1
удачи с последним на любом языке, более сложном, чем BF ... даже C имеет больше темных углов, чем вы ожидаете!
SamB
«Некоторые« Ср »считают, что им нужно показать свои знания по каждому предмету». Этим людям нужно сказать расслабиться. Вы ничему не научитесь, если не признаете, что есть вещи, о которых вы не знаете. Способность свободно признавать незнание чего-либо является признаком силы, а не слабости.
PeterAllenWebb
1
+1 За указание на то, что некоторые, но не все навыки могут быть переданы. Отличный способ выразить это.
Николь
5

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

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

gingerbreadboy
источник
5

Я ищу следующие качества, когда я брал интервью у старших разработчиков.

  • Работал на нескольких языках
  • Эксперт по крайней мере в одной, компетентный в по крайней мере в одной другой, предпочтительно в другой парадигме
  • Знание современных технологий, современного состояния и т. Д. В выбранной области
  • Хорошая база CS, т. Е. (Алгоритмы, алгоритмическая оценка, структуры данных и т. Д.)
  • Возможность переключаться между деталями конкретной проблемы и общей картиной
  • Выражайте, когда вещи движутся в неправильном направлении и почему; а затем сможет продолжить в том неправильном направлении (профессионализм)
  • Способность наставника
  • Умение работать в команде и в команде

Есть множество других вещей, которые я ищу, но это основные моменты.

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

dietbuddha
источник
3

Вы можете подать заявление, но, по крайней мере, если бы я занимался наймом, я мог бы или не мог нанять вас.

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

Достижение этого уровня в Java должно помочь вам в изучении других (похожих / процедурных) языков.

Но в эту эпоху ожидаемой немедленной производительности вы вряд ли узнаете о Ruby почти столько же, сколько о Java. Как разделить вашу систему на Ruby-дружественные конструкции вместо Java-дружественных конструкций. Вы, наверное, знаете некоторые фреймворки Java, а не Rails или другие специфичные для Ruby вещи.

Если бы я попросил вас сделать кодирование доски в Ruby во время интервью, вы могли бы это сделать?

Все это вошло бы в мое решение нанимать вас или нет на любом уровне; но в частности для старшего роли.

Удачи

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

Нет.

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

Если вы работали с C ++ / Win32 / MFC в течение 15 лет, это вовсе не значит, что вы занимаетесь руководящей должностью в качестве разработчика Rails, даже если вы все еще решаете те же проблемы в той же области ... скажем, медицинская биллинг, например.

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

красно-грязь
источник
4
Я не знаю, что "большинство" компаний видят это так. Проблема сейчас, в условиях упадка экономики, заключается в том, что есть еще много людей, которые уже знают (на вашем примере) C #, поэтому они могут сузить вас из поиска только на основе чисел.
Вонко вменяемый
Я думаю, что большинство навыков и опыта можно передавать. Изучить новый синтаксис легко. К сожалению, вы правы: не то, что вы думаете, а то, что думает человек, нанимающий вас.
Никто
3

Это зависит

Возьмите "программирование" из этого. Сделайте вид, что вы профессиональный переводчик.

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

Тем не менее, вы не так быстро освоите многие диалекты китайского языка. Хотя ваш опыт работы в качестве лингвиста поможет вам выучить язык (языки), давая вам преимущество перед кем-то, кто никогда не изучал иностранный язык, вам все равно потребуется гораздо больше времени, чтобы стать «экспертом» (то есть «старшим») ) переводчик на этом языке.

Вонко вменяемый
источник
2

Да и нет.

Если языки похожи , скажем, C ++, Java или Ruby, обязательно подумайте. В зависимости от того, насколько гибки люди, сидящие в этих офисах, у вас есть шанс для борьбы.

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

ПАРУ ВЕЩЕЙ, КОТОРЫЕ БУДУТ ПОЛУЧИТЬ ВАШ ЛЮБИМЫЙ В ТАКИХ СИТУАЦИЯХ:

  1. Если вы уже знаете несколько языков и уже доказали опыт примерно одинаково. Скажем, вы хорошо разбираетесь в C ++, но также знаете Perl, Tcl и немного Ruby, и я бы хотел рассмотреть вас для Java. На самом деле я знаю людей, у которых есть резюме по Java с C ++ в своем резюме.
  2. Если ваш опыт относится к смежной области, то у вас есть хорошие шансы сделать это. Например, если вы программист игры на C ++, я не вижу причин, почему вы не можете быть наняты на работу на C #, которая требует много многопоточности.
Fanatic23
источник
1
Хорошо, я должен спросить - как Ruby похож на C ++ или Java? C ++ и Java являются языками в стиле C, а Ruby является производным от Perl, Python и Smalltalk.
Крейг,
Я имел в виду ООП как руководящую тему.
Fanatic23
2

Я редко видел «старшее» название, основанное на языке. Я знаю нескольких старших системных программистов, пару старших веб- программистов и одного старшего программиста на COBOL.

Программирование многогранно и предлагает немало дисциплин. Я ожидаю, что старший веб-разработчик (в названиях программист и разработчик кажутся взаимозаменяемыми) хорошо владеет несколькими основными языками, используемыми в веб-разработке. Делает ли это гуру Python и PHP мгновенным экспертом в C #? Нет. С другой стороны, не все гуру C # овладели искусством управления проектами и лидерства.

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

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

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

Тим Пост
источник
0

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

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

Но, как сказал runrun, это не мешает вам подать заявку на что-либо

SYG
источник
0

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

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

rjzii
источник
0

Я бы сказал, что чем более низкоуровневый или дружественный к машине язык, тем более вы опытны.

Опыт Java / C # оплачивается меньше, чем опыт ASM / C / C ++.

Эти последние языки выполняют управление памятью и другие вещи, которые на самом деле имеют значение при программировании.

Но для других «простых» языков вам нужно будет быстро сравнить функции, которые делают их «проще», но я считаю это бесполезным. Опыт работы с простыми языками лучше измеряется с помощью CMS / другого созданного кода, который вы использовали для работы, например, воспламенителя кода или django, Apache или RoR.

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

jokoon
источник
Интересное мнение. Я согласен, C ++ гораздо больше боли. С другой стороны, много боли в C ++ возникает из-за того, что некоторые части (текущего) языка устарели. В более поздних языках гораздо больше библиотечных функций, лямбда-выражений, циклов for-each-each и менее загадочного синтаксиса для множества вещей. Эти проблемы могут отвлекать внимание от фактических вещей низкого уровня.
Филипп
Это интересное мнение. По моему опыту, пожилые люди больше занимаются управлением, не обязательно потому, что они не пишут код, а потому, что у них больше опыта в переводе низкоуровневых вещей в не-техников. Вы, безусловно, можете уважать эту способность или нет. Ваша точка зрения ставит вопрос о том, что в команде из 30 веб-разработчиков никто из них не старше, потому что они не могут написать ядро? Вам безразлично, работали они над мозаикой или только что закончили среднюю школу?
Стив Джексон
30 веб-разработчиков? РАЗРАБОТЧИКИ? Ну, для меня «старший» означает, что человек давно занимается кодированием или старше. Но если я считаю «старшим» с точки зрения опыта и знаний, которые имеют значение, я не думаю, что вы могли бы назвать это «опытом программирования», если вы используете язык сборки мусора.
Jokoon