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