Comments 118
И еще есть разница по языкам, конечно. Сравните ситуацию в С++ и Go, например.
> Люди, которые именуют себя сеньорами, скорее всего, не ошибаются и не заблуждаются.
Думаю, что очень многие просто натягивают лычку, чтобы продавать себя. Поэтому они не ошибаются и не заблуждаются, они лукавят.
> Но помимо собственно языка и общей теории есть много других не менее, а возможно и более важных вещей.
Знать язык — недостаточно. чтобы быть сеньором. И даже более того: язык тут вообще ни при чем. А вот понимание индустрии, разработки, подходов, практик — это очень важно.
> что года достаточно чтобы в совершенстве овладеть какой-то темой, например языком или базой данных.
Предвижу срач в комментах.
Насчёт лукавят тут спорно. Какой-то процент людей, конечно будет рассказывать, как они поднимали гугл с колен, но в целом врать про свой опыт бессмысленно.
Знать язык — недостаточно. чтобы быть сеньором. И даже более того: язык тут вообще ни при чем. А вот понимание индустрии, разработки, подходов, практик — это очень важно.
Это, в моём понимании и есть общая теория. Общая в смысле общеприменимая а не базовая.
знаю тётеньку которая так сделала и сразу устроилась на зарплату более $100К в год совсем без предыдущего опыта
Класс! Но это же нужна такая должность чтобы ни один начальник не мог тебя найти чтобы всучить задание. Всё время проводить на митингах/тренингах/тимбилдингах/на обеде/на больничном? Как ещё? Какая стратегия?
Но опять же, все индивидуально. Можно иметь опыт работы на одном месте 10 лет, при этом заниматься скучной и нудной поддержкой старого legacy проекта, в итоге, иметь знания, устаревшие на те же 10 лет. Не то, чтобы это совсем плохо, такая работа тоже нужна, просто не стоит потом удивляться, что есть сложности с поиском нового места… На самом деле, скорость эволюционирования в ИТ иногда просто вымораживает — пока я пишу этот комментарий, наверняка в мире появились 1-2 новые библиотеки.
Вывод простой — одно лишь число лет как метрика, о качестве разработчика не говорит никак :)))
А в приведённом исследовании
Рассматривались только вакансии, в заголовки которых прямо указывалось слово грейдатак что «просто разработчики» в выборку не попали, хотя по факту они — миддлы.
Видимо, джунов ищут, так сказать, в чистом виде, а уж если нужен миддл, то не откажутся и от сеньора — вот оно и получается такой провал.
По моим наблюдениям на каналах ТГ с вакансиями, часто ищут джунов с требованями миддла =)
А про сеньора — мне кажется, это больше не про узкоспециализированного специалиста. Такой человек должен уметь применять подходы, архитектурные решения применять в работе, при необходимости он может довольно быстро изучить и другой язык, пользуясь такими знаниями. Также очень важны soft skills.
Senior это уже некоторый отход от чисто технического опыта, это уже человек, который может окинуть взглядом систему, предложить, аргументировать и внедрить что-то новое на проекте
В этих компаниях, особенно небольших, есть одна проблема (натыкался сам, натыкались друзья и родственники): когда за год-полтора ты помимо своей основной работы тратишь кучу времени на собственное развитие и просишь адекватного увеличения з/п, то тебе отказывают, мотивируя это тем, что мол «мы тебя вырастили специалистом, работай мидлом за джуниорскую з/п». Ну и уходят из таких мест с повышением по деньгам в два раза.
Регистрацию отклонили из за того, что я указал слишком малую продолжительность опыта работы. С тех пор так и не зарегистрировался.
Так… давайте-ка сначала переведем эти слова на православный.
Junior Developer — Младший Разработчик
Middle Developer — Разработчик
Senior Developer — Ведущий разработчик
И вот тут всё становится понятно. Здесь нигде нет упоминания про уровень крутости.
Нет слов типа "дипломированный", или "сертифицированный".
Это вообще не про личную квалификацию, а про то, какую позицию занимает (занимал/будет занимать) конкретный разработчик в конкретной конторе. Вот вы допустим несофтверная компания по катанию валенков, и взяли на работу (делать сайт-магазин) сына бухгалтера, который (сын) даже не окончил институт, но чего-то он там умеет в этих вордпресах. И (ВНЕЗАПНО!) оказывается, что чувак-то — ведущий разработчик. А почему? А потому, что он один и вести проект больше некому.
Ну вот никто же не станет спорить, что сениор из Google и сениор из WebDevStudio512 — вообще ни разу не одно и то же. Сениор из последней, даже на джуна в Google не вытянет.
Так почему нужно пытаться, уравнять понятие Senior для всех? Это же бред. Фактически, человек можешь проработать 10 лет на должности "обычного мидла" (ну просто потому, что он не амбициозен) — и это вообще не значит, что он не квалифицирован, так ведь? Просто ему нравится решать задачи, а не проблемы.
Итого:
Не понятия смешивайте "роль в команде" и "квалификация". Эти вещи иногда коррелируют, а иногда и нет.
Под термином «senior» тоже можно понимать разные вещи, и конкретную позицию в конкретной компании, и общий уровень квалификации человека.
P.S. Senior — это таки старший, а ведущий — это Lead.
Да и работодатель может лукавить — дешевле выдать лычку, чем зп поднять.
Мне после 8 месяцев коммерческой разработки джуном один банк предложил должность сениора (правда, с зарплатой low mid). Я, конечно, отказался (не хотелось работать в компании, в которой сениоры моего уровня).
В другой компании у нас был сениор, которого сделали таким, чтобы только он не ушёл (и он всё равно ушёл через два месяца). Код он писал на уровне ниже среднего, например, не знал, что в HashMap ключи уникальные.
При этом нет объективного критерия сениорности, которых можно измерить. Например: в беге чтобы получить мастера спорта нужно пробежать 100 метров быстрее 10.64, тут такого критерия нет и в ближайшее время не предвидится.
К тому же, не стоит забывать, что кто-то начинает кодить в школе и к моменту первой работы, ещё в университете, у человека уже фактически опыт разработки в 4-5 лет и он может идти сразу на миддла. И стать Сениором за 3 года для такого даже немного долго. Тут всё очень индивидуально.
И таких вот взглядов разной степени экзотичности — полно.
Ах, как же далеко реальность от этого… Сейчас юных, 20-25 летних падаванов активно зазывают на «сеньорские» позиции в том же стеке Golang, и у них это считается в порядке вещей. В то же время, в С++ мире заслужить сеньорскую лычку очень сложно, даже и за 5+ лет опыта. Сказывается разница в менталитете. Плюсовики привыкли считать, что без очень глубоких знаний языка ты не можешь быть сеньором, потому что язык требует серьезного времени на набивание шишек.
10+ лет хорошего опыта — это уже больше, чем сеньор, как по мне. Даже независимо от стека.
И «глубокое знание языка» это лишь одно из условий. Нужен и теоретический фундамент, и богатый практический опыт хождения по граблям, и широкий кругозор в смежных областях.
10+ лет хорошего опыта — это уже больше, чем сеньор, как по мне. Даже независимо от стека.То есть специалист только в начале карьеры может занимать младшие и средние позиции, а подавляющую часть карьеры — быть топом? По-моему, так это не может работать.
Т.е. нормальное распределение остается нормальным, просто 10+ лет опыта это уже существенно больше чем стаж среднего работника в области. Дальше он будет повышаться, и вместе с ним требования к опыту. Что и видно из графиков собственно статьи.
Если человек с мозгами и хочет развиваться (иначе я не уверен, что он и через 25 лет лычки старше миддловых заслужит), то за 5-7 лет, если не водить его за руку всё это время, он наберёт достаточно экспертизы как минимум в своём стеке технологий, и какой-никакой оценке сложности масштабных задач, и, кажется, вполне себе будет соответствовать разумным требованиям на синьора.
А считать человека с почти годом опыта стажёром — это, ну, очень смело, как мне кажется.
Рекомендую обратиться к классике. Знаменитый монолог Амати:
www.youtube.com/watch?v=6h2hclqSNHE
Там есть очень правильные слова — «пройдёт много времени, тебе будет казаться что ничего не меняется, а между тем...»
… Даже я хотел написать «мастером по прокладке кабелей» пока не осознал, как низко уронили слово «мастер».
За год легко можно выучить синтаксис (даже быстрее для многих языков/технологий).
Но навык решения задач с использованием языка/технологии со знания синтаксиса только начинается.
— Даа, а как вы догадались?
— А у вас лицо глупое
— Что? Да как вы… Да у вас самих лицо глупое!
— Ну да, я тоже сеньор
As part of the team that designed the #1 & #2 fastest supercomputers in the world, you will be part of a high profile initiative to optimize performance across all layers of the Python software stack for Power. This work will include JIT and interpreter enhancements and extend into optimization of key runtime libraries. This project provides opportunities to innovate in software optimization as well as exploitation of bleeding edge hardware architectures in upcoming processors.
his role will involve using industry-standard benchmarks as well as open-source data sets and customer workloads to identify areas in Python JIT and interpreter technology that require optimization to maximize performance on POWER. Code will also be run on competitive platforms to understand relative areas of strength and weakness. Deliverables will include code improvements, tuning recommendations and whitepapers as well as sales collateral. Insights gained will be fed to hardware design teams to improve next-generation hardware.
Required Technical and Professional Expertise
- Experience implementing compilers or interpreters (LLVM development experience is strongly preferred.)
- Strong understanding of memory layout, JIT technology, multi-threading, micro-architecture implications
- Knowledge of modern microprocessor design
- Previous experience contributing to open source projects.
- Practical experience with at least one acceleration technology (GPU, FPGA, SIMD etc.)
- Exposure to projects utilizing machine learning and deep learning techniques with at least one of the following — TensorFlow, PyTorch, Caffe would be an asset.
- Recognized status in a key open source community
- Demonstrated knowledge optimizing a key Python package or library
Никому не нужны абстрактные знатоки языка и опыт в написании очередного Notepad-a.
Всех интересует практический опыт в использовании языка.
A звание синьера подразумевает практику на реальных проектов.
Если у вас в резюме стоят волшебные слова о реальных проектах: FPGA+blockchain+Machine Learning — у вас реальный шанс перед конкурентами.
Схема такая — компания нанимает толкового джуна / миддла за очень мало денег, но дает ему пышный титул сеньора и свое громкое имя в резюме. При этом еще стандартно обещаются всякие премии, бонусы и прочие выплаты раз в год, которые эта большая компания якобы может себе позволить, а остальные — нет. Джун подписывает, думая сменить работу через пару лет и стать уже сеньором с зарплатой сеньора.
Что джун не учитывает — так это стандартного для сеньоров соглашения о неконкуренции, распространяющегося на всю Европу. Чтобы устроиться на новую работу в ЕС после вашей старой французской, вам нужна бумага от старого работодателя, подтверждающая снятие с вас этого соглашения. По французским законам, он может дать эту бумагу, а может и не дать (обоснований не требуется), и заблокировать вам новую работу по всему ЕС в течение 2х лет, выплачивая 15% вашей старой зп.
То есть вырваться с такой «сеньорской позиции» — очень трудно, это ловушка. А компания через несколько лет имеет сеньора по цене джуна.
Просто это их метод удержать ценного сотрудника от найма конкурентом.
Можно уточнить, о каком удержании идет речь, если эти положения незаконны / не выдерживают первого же суда? Или это пугалки для тех, кто верит? Если да, то много ли таких?
Во-вторых, вот вам описание того, как это происходит на практике.
habr.com/ru/post/442864/#comment_19850316
Это пугалки для тех, кто верит. В большинстве случаев все прекрасно знают и понимают, что это пугалки, просто подписывают контакт, зная что все это бред. Но я встречал пару товарищей, которые реально думали, что не смогут уйти в похожую компанию. В основном, это выпускники университетов, которые пришли сразу после учебы, пока не разбираются в этом всем. Компания обучает новичков и не хочет терять потом вложения. Вот и включают всякую пургу в контакт. Кстати то, что ты не можешь работать параллельно основной работе — тоже чушь. Можешь. Не можешь использовать интеллектуальную собственность компании во время параллельной работы — это правда и это уже по закону… В остальном, никто не может ограничивать твою свободу выбора. Даже если в контракте это прописано и ты под этим подписался.
> У меня в контракте прописано, что если я хочу уйти в другую компанию-конкурент, то мне может работодатель запретить только на пол года, и только с тем условием, что эти пол-года мне будут платить сумму в 180% моего оклада на момент составления договора.
Судя по всему, работу вы пока не меняли.
На практике это выглядит так — вы уходите из одной большой корпорации в другую, подписываете контракт и уведомление об уходе. Перед началом работы новая работа запрашивает ряд стандартных бумажек, типа дипломов и тп, и снятие неконкуренции — среди них. Вам говорят, что вы не можете начать работать, пока его не предоставите.
Вы идете к старому работодателю, а он просит ваш новый контракт и время на его изучение. То есть это реальная проблема из реальной жизни.
На этом этапе можно договариваться, а можно идти судиться. Первого судебного заседания во Франции можно легко ждать год.
Есть и другие варианты — уходить в компанию поменьше, которая не будет так заботиться о неконкуренции.
Я вообще не юрист, вот этот комментарий — о моем личном опыте, из одной большой корпорации в другую + это были две разные страны ЕС. В итоге удалось договориться, но это заняло 2 месяца.
habr.com/ru/post/442864/#comment_19850316
Меня там минусуют, пишут — не бывает такого в Германии, и «любой юрист вам скажет». Ну ок, а в моей жизни во Франции такое было.
И при последней смене работы (внутри Франции) была попытка с моей стороны убрать соглашение о неконкуренции из контракта, и мне это не удалось.
То, что вы написали справедливо только для компаний, у которых договор между собой. В случае, если вы скажите, что предыдущая компания вас сама уволила, то вас попросят принести бумагу, что компания-партнёр не против. Например, я переходил из одной компании в другую, у них между собой договор о не найме сотрудников друг друга. Поэтому вторая компания попросила меня принести бумагу о том, что первая не против.
Но я много случаев видел как во Франции, так и в Германии, когда крупные компании нанимали работников друг друга без проблем. В Германии такой недостаток it работников, что нанимают часто даже несмотря на то, что человек пришел из компании-партнёра, просто просят не говорит в старой компании куда уходишь.
Вообще, строго ИМХО конечно, но такие «нормы» (если они реально применимы, см. комментарий выше) — шаг к фактически насильственному трудоустройству, что попахивает рабовладением (сложная работа, мало денег, скоро рассвет, выхода нет), а эта экономическая система уже многократно проигрывала более современным — как минимум по причине своей негибкости. К примеру, в Калифорнии такие требования в трудовых договорах в большинстве случаев являются незаконными… я далек от того, чтобы утверждать, что их успех в ИТ основывается лишь на этом, но к этому моменту как минимум стоило бы присмотреться.
Во-первых, судиться недешево.
Во-вторых, очень долго — это годы.
В-третьих, вы против большой корпорации — вряд ли это будет успешным.
То есть в теории — демократия, а на практике — да, попахивает рабовладением.
Недавно на medium была статья, как американский чувак из принципа не подписывает контракты с таким пунктом и требует изменения контракта, иногда ему идут навстречу, иногда шлют подальше.
Во-первых, судиться недешево.
Во-вторых, очень долго — это годы.
В-третьих, вы против большой корпорации — вряд ли это будет успешным.
Согласен по всем трем пунктам. Вот только не могу отделаться от мысли, что отказ сопротивляться лишь провоцирует дальнейшее развитие этой ситуации в неприятную сторону.
не могу отделаться от мысли, что отказ сопротивляться лишь провоцирует дальнейшее развитие этой ситуации в неприятную сторону.
У меня была попытка убрать соглашение о неконкуренции из контракта при последней смене работы (внутри Франции), и мне не удалось договориться.
Однажды я спрашивал одного синьора о том, как отличить мидла от синьора. Получил весьма интересный ответ — по мнению того чувака, синьора от мидла отличает впервую очередь то, что он в состоянии подменить PO при необходимости. Можно, конечно, об этом дискутировать, однако мне кажется что-то в этом определенно есть. Ибо такой синьор не только крут технически, но и имеет широкий спектр знаний об индустрии и продукте, что согласовывается с тезисами автора данной статьи.
Я полагаю отличие другим, чисто технологическим: Senior Software Engineer — это тот, кто прочитал Robert Martin, Martin Fowler, Eric Evans и других крупных известных авторитетов и знает, о чем они говорят, и главное зачем. То есть всем своим опытом воспринимает их слова. Кстати, в этой мерке ничего нет про фреймворки, языки и прочее. Скорее всего, если вы знаете, зачем всё это нужно, то с чем-то вы раньше много работали. Переход из Senior C# в Senior Frontend тогда не займет много времени, а тем более в более близкую область.
было время, искал кандидатов, все что интересовало: сколько денег хочет и как решит 1 логическую задачу и 1 практическую задачу.
недавно в компании одной работал, недолго… так оказывается всплошь сеньйоры… особый интерес привлекала особа женского пола, ей было около 20ти лет… и уже сеньйор-рнр… чуть не подавился своими овер 10лет опыта…
говорят года-два достаточно… да… за это время можно научиться создавать чтото самостоятельно…
… но сеньер, имхо, не знание синтаксиса и несколько алгоритмов… это набитые шишки используемой технологией\стеком, шишки смежных технологий\стеков, тонны безобразных кейсов, грабли и все остальное… это, блин, другой образ мышления и подход к решению задачи, умение, в конце концов, делать сложные вещи простым способом…
более 10лет комерческого программирования, и я хз как себя называть… точно не джун… мидлом — может быть, но кто меня знает скажут скромничаю… синьером — язык не поворачивается… столько еще разного охота познать, да и в том что знаю — есть что совершенствовать…
… просто делаю свою работу, к черту ярлыки…
Когда мне было 14 лет я всё лето участвовал в проекте наполнения министерской БД и рисования для нее формочек. Это было на MS Access, я был джуном — помощником программиста. Работа шла невероятно долго — 3 месяца казались целой жизнью, за которую я освоил все возможные и невозможные детали языка.
В 20 я устроился работать Java бекэнд программистом и проработал им три года. О, да, я познал все и по правилу 10000 часов в 23 года уже был гуру Java, Oracle и начинающей звездой С и PHP, которые иногда использовал в работе. Я целую вечность провел за компьютером, мыслил категориями «как я стар и опытен», с ухмылкой смотрел в прошлое на пацана, который что-то там ковырял в Access.
В 30 лет я оставил должность лида в иностранной компании, имея 10 лет стажа и 16 лет опыта программирования. Языки и операционки не имели значения — я был суперстар, думал на C# и C++, невероятно подкован в серверах, геймдеве и бэк энде, снисходительно поглядывая на 20-летних сеньоров с их дурацкими 10000 часами.
Скоро мне 40. Я давно ни на кого не работаю, делаю мелочи в свое удовольствие и они приносят какие-то деньги на жизнь. Зато много путешествую и часто сижу и смотрю на закат или на море, ни о чем не думая вообще. Разве что о том, как я был наивен раньше — всю молодость потратил на какую-то херню, писькомерство и достижения в виде циферок лет опыта, которые лишь вычитаются из того, что мне осталось.
В результате на собеседованиях спрашивают дичь, чтобы просто отсечь совсем уж дегенератов. Меня спросили например если у квадратного стола отпилить 1 угол сколько останется углов, и самое забавное я знаю челов которые закончили тот же вуз что и я и они на полном серьезе отвечали неверно.
Задавая вопросы по указанным технологиям в стиле «а что вы будете делать если произойдет XXX», ответы в стиле «да такого не может быть». При этом все вопросы «основаны на реальных событиях».
Особо поразил указанный в CV Сisco CCNA и при этом работа с сетью на уровне «ну если что-то не то, то проверить, что есть линк и рестартануть сеть на клиенте».
А из личного опыта скажу, что еще при работе в РФ, мне начальником был задан вопрос «ты и Вася просите лида и зп, могу предложить лида обоим и +10% к зп, или остаешься на своей позиции, Вася получает лида, но ты получаешь +20% к зп».
После увольнения нас обоих, узнал, что Вася все это время был уверен, что он молодец, а я дно, но он остался с той же зарплатой и «лычкой», а я получал зп больше него :)
Нет четкого определения — каждый волен именовать себя как угодно. Не мудрено, что девять из десяти будут завышать планку, чтобы продать себя дороже в условиях жесткой конкуренции. А семь из них даже субъективно аргументируют свою позицию, и будут правы.
Я искренне считаю, что могут быть плохие укладчики плитки и великолепные укладчики плитки, и великолепный укладчик плитки вовсе не становится архитектором. Мало того великолепный архитектор может не уметь укладывать плитку. И если ты учишься на архитектора, то можно даже пропустить этап обучения укладыванию плитки.
И мало того я даже допускаю, что великолепный плиточник может зарабатывать больше архитектора.
Сколько лет вашему сеньору?