Comments 206
Израиль, синьором считают (действительно много, с обоих сторон) человек проработавший 6 лет.
АД
Правило 10000 часов никто не отменял. Синьорами программисты начинают себя считать начиная с 3х лет опыта работы. На самом деле этим программистам понадобится проработать хотя бы 10 лет, чтобы действительно стать синьором. И все это время читать, изучать и не застревать в одном и том-же болоте. И вот тогда будет синьор.
Дело конечно же не только в количестве лет, а в их качестве. Но нужно потратить очень много лет чтобы изучить весь тот корпус знаний, который нужно знать. Кроме того нужно ещё и мозги натренировать. То есть нужно чтобы нейронные связи в голове перестроились под решение программерских задач, под аналитику и принятие правильных решений.
Разница между теннисистом и программистом не такая уж и большая. Чтобы успешно ударить ракеткой по мячу недостаточно теоретических знаний, также не нужно иметь какую-то особенную физическую силу. Нужно 10 лет отрабатывать удар, умение распознавать полет мяча, оценивать его траекторию и т.п. В боксе, борьбе, футболе то же самое. И все это происходит в голове. У вас может быть идеальные физические данные для тенниса, но если а голове нет нужных нейронных связей, вы играть не сможете.
Программисту тоже нужно 10 лет тренировать мозг, чтобы успешно распознавать проблемы, быстро и эффективно усваивать информацию, отсеивать ненужный маркетинговый шум и т.п. То есть определяющий фактор это скорость формирования нейронных связей в голове, а это за 3 года не делается.
Ну то есть как я и говорил — работать надо. А это сложно :)
То есть определяющий фактор это скорость формирования нейронных связей в голове, а это за 3 года не делается.Тут есть, как бы, две правды. За 3 года это действительно не делается… делается лет за 10. Но если человек начал где-то в 7-8м классе — то через пару лет после окончания универа у него и будет уже 10 лет опыта.
Хотя формального опыта у него, к этому моменту — меньше трёх лет.
В 8ом классе он начал писать продуктовый код и зарабатывать этим деньги? Решать проблемы в продакшене? :)
Начать учиться разработке в 8 классе это в целом неплохо, не особо рано, но допустимо. Чтобы к второму курсу найти работу джуном part time, а к выпуску иметь неплохое представление о разработке. И вот с этого момента начнется отсчёт десяти лет :)
И задачи на продакшне не всегда сложные, хватит преувеличивать. Самому себе можно придумать задачи посложнее.
Напишите обращение матрицы по Гауссу и это будет сложнее, чем 90% задач на проекте средней сложности.
Это невозможно прочитать в книжке, к этому приходят только с практическим опытом. Нужно работать на проектах, создавать новые вещи, общаться. Конечно же гениальный человек может это сделать быстрее, чем за 10 лет. Но есть также огромное количество людей, которые не делают ничего такого и за всю жизнь, потому что нужно оторвать зад с дивана и начать делать больше, чем от тебя требуется в задачке из таск трекера, больше чем от тебя требует твой босс зануда. А чтобы знать, что именно делать, нужно интересоваться, тем что происходит в мире, тем чем занята твоя компания, зачем она это делает и так далее
Очень примерно это звучит так: уровень работника зависит от сферы его влияния
По этому показателю автор — вполне может быть сеньором. Ну и что, что он не пишет свою крутую реализацию фреймворка? Если он предложил к использованию библиотеку, помог с внедрением и обучил коллег — это уровень сеньора? Вроде бы да, и тогда зря он себя ругает :)
Во многих компаниях востребованы люди, которые помогут настроить процессы. На мой взгляд, они более востребованы, чем специалисты, способные написать фреймворк-круче-стандартного.
И лично я не понимаю, где проходит граница между (тим/тех)лидом и сеньором, который двигает вперед проект и команду
Починить тесты (часть выбросить) и настроить CI, добившись от команды пушить только код, проходящий тесты — это уровень сеньора или нет?
Написать автотесты на Селениуме, когда их не было, облегчив жизнь тестерам; организовать переход с Java7 на современные версии, поборов проблемы; выделить из монолита сервис(ы), который нужен не только текущей команде, но и паре "соседей". Все это задачи, для которых технического навыка может хватить уровня copy-past со Stackoverflow, но навык взаимодействия с людьми существеннен и без него "не взлетит".
И лично я не знаю — это уровень среднего сеньора, или сеньора, претендующего на техлида? А может, чем-то должен заниматься архитектор и кто-то зря думает, что он "средний сеньор"?
Напишите обращение матрицы по Гауссу и это будет сложнее, чем 90% задач на проекте средней сложности.
Наивно или чтобы вычисления были устойчивы?
Если вы, к выпуску из института, освоили плюс-минус технические вопросы так, чтобы занятьсы уже и организацией команды — за три года вы можете этому научиться и без 80 часов в неделю. А если вы будет осваивать и то и другое одновременно — то 80 часов не помогут: даже если вы готовы работать 80 часов в неделю, то нафига всем остальным, кто не пытается стать сеньором, это делать?
Это говорит о том, что я был супер-крут? неа, только о том, что мог решать задачи(мидл уровень).
Зачем отменять правило 10000 часов, если оно никогда не было верным?
Этот комментарий зря минусуют. За 10к часов можно, в том числе, успешно выучиться что-то делать неправильно, если делать это постоянно неправильно. Можно и организм немного угробить, если, например, 10 тысяч часов потратить на неправильные приседания со штангой.
Одно только потраченное время не является достаточным условием.
И необходимым оно тоже не является.
Комбинация вложенного времени, усилий и правильности делаемого — вот это уже "да".
Всегда думал, что синдром самозванца это когда ты умеешь делать что-то, но сам считаешь что делаешь это недостаточно круто и чувствуешь себя самозванцем.
А тут обратная сторона медали — ты вроде как ничерта и не умеешь, но считаешь что умеешь.
Т.е. скоее это все таки синдром самозванца. Он мучается от того, что получает выше своих заслуг. Хотя вопреки его личному убеждению есть указатели на то что на самом деле очень смышленый и перспективный парень.
О, ещё как мог. Мои новичковые мозги мало что понимают, но у меня хорошая память
Это не первый раз, когда я встречаю более знающих кодеров, но я всегда говорил себе: «Эти остолопы заучивают доку, а вот я умею думать. Я изучу все что нужно, главное, что и учиться, и анализировать я умею». Размытая фраза «Умею думать» всегда была моей визитной карточкой.Т.е. проблема скорее в том что и как оценивают работодатели. Ведь как тут уже сказали, если он справился с работой на позиции, значит действительно годен. Но годен не столько потому, что имеет багаж конкретных знаний, а скорее потому, что умеет пользоваться своей головой.
Вообще я гибкое мышление ценю больше железобетонных знаний, знания устаревают, а гибкое мышление — залог того, что ты сможешь адаптироваться. Толку вот я знал когда-то джаваскрипт, за пять лет неиспользования мои знания превратились в пыль.
Я бы больше проверял на смекалку, способность к обучению. Например дать человеку написать программу на языке с которым он вообще не знаком.
Надо сказать если бы работодатели изменили метод подбора кандидатов на какой-то другой, нам доселе неизвестный, но выбирающий идеального кандидата, человека 1 в 1 подходящего на эту должность, ни больше ни меньше, то расходы на персонал снизились бы. Всегда есть экономические потери из-за неполного соответствия товара требованиям. И тут возникает другой вопрос, стоит ли тратить больше времени на поиск более подходящего кандидата (а время-деньги) или взять не идеального, но раньше. Интересная тема была, на экономике проходили. Кстати именно поэтому существуют программные продукты и платформы по подбору персонала, именно эта разница и есть тот финансовый потенциал который такие продукты осваивают.
Просто как правильно заметил fillpackart — три грейда — это слишком мало. Любой программист который может тянуть на себе целый проект, принимать архитектурные решения, переводить бизнес-требования в код, улучшать проект с годами, при необходимости курировать более слабых коллег — сеньор.
Но дьявол кроется в мелочах. И дальше у сеньора по идее должно быть очень много грейдов, потому что между сеньором который может без проблем тянуть ecomerce проект с хайлодом и сеньором который может разрабатывать новые алгоритмы, более совершенные чем любые ныне существующие — огромная разница. Но проблема следующих грейдов в основном в том, что их некому даже измерять. Можно только по факту проделанной и выложенной в паблик работы, примерно понять что кажется вот этот чувак не просто сеньор, а сеньор++, но на собеседовании такое не определишь, особенно если собеседующий сам ниже уровнем. Вот и получается, что и сеньоры разные, и зарплаты у них, по факту, могут плавать до 10-ти кратной разницы.
А могут и не плавать. Потому что самому сеньору тоже непонятно, на сколько себя оценивать.
Когда реальность вокруг тебя рассчитана на то, что ты умный, а ты на самом деле тупой
А мне наоборот кажется, что реальность вокруг рассчитана на очень, очень тупых людей, но люди (собаки такие) коллективно приняли всеобщую тупость за общую "среднюю" норму и теперь любого, кто чуть адекватнее и не суёт пальцы в рот называют умным. А когда в эту систему приходит действительно квалифицированный профессионал, то всё, что ему остаётся — сидеть молча в сторонке, потреблять горячительное и, ради всего святого, молчать. Потому что стоит ему только тихонько упомянуть что "король-то голый" — его сразу закидают тапками, обвинят в токсичности, окунут башкой в дерьмо десять раз, назовут городским сумасшедшим и в конечном итоге протащат по центральной улице под всеобщее улюлюканье.
Поэтому умным и квалифицированным в наше время стало быть банально невыгодно. Как там говорилось? "Если ты самый умный в комнате, то ты не в той комнате"? Хе-хе. С поправкой на современные реалии это звучит так: "если ты самый умный в комнате — то у тебя большие проблемы, дружок".
Dixi.
люди (собаки такие) коллективно приняли всеобщую тупость за общую «среднюю» норму и теперь любого, кто чуть адекватнее и не суёт пальцы в рот называют умным
Think of how stupid the average person is, and realize half of them are stupider than that.
― George Carlin
Если вы реально умный, то легко сможете работать на себя. Поверьте, отбоя от хороших заказчиков у вас не будет. Будет 90% неадекватна, но раз в 6 месяцев будет приходить «заказ мечты» на полгода год, с очень хорошим рейтом. Дальше сами сможете выбирать — если захотите, наймёте людей и будет «галера», можете стать просто высокооплачиваемым консультантом, а можете с свободное время запилить продукт.
Я вот нашел, вывез. Дальше что?
IT-индустрия работает немного по-другому.
Но Пашок-то на деле продемонстрировал — думать он умеет лучше. И знает он больше.
На самом деле разные люди знают разные вещи и лучше всего умеют работать в разных направлениях. Скажем, мой бывший босс, весьма крутой человек, легко писал компилятор в свободное между совещаниями (которых у него было примерно дофига) время, легко парсил в голове придуманный только что язык на предмет противоречий и сценариев работы, и вообще делал то, что мне казалось (и до сих пор кажется, на самом деле) заоблачным — в его багаже далеко не только компиляторы были.
Но потом в один прекрасный день он, пребывая в более свободном чем обычно состоянии, взял и сам написал визуализацию к новому бэку — всё очень банально, таблица с парой фишечек по её отображению и ничего больше. А через пару недель я вернулся из отпуска, и увидел новое задание — причесать и допилить это всё. И пошел причёсывать.
Через примерно десять минут причёсывания я уже матерился не про себя, а вслух, а через полчаса я понял, что выбросить всё и написать самому — единственный выход, благо переписывать немного.
Хотя казалось бы, что человек, который может дофига и вообще в разы более крутой программист — уж мог бы написать простенький фронтэнд на сотни три-четыре строк так, чтоб в нем была какая-то структура и вообще он бы поддавался рефакторингу (про расширяемость я даже молчу). Тем более, что он неоднократно демонстрировал правильное понимание того, как этот ваш фронтэнд работает. Да и вообще имел некоторое убеждение, что фронтэнд — это, за пределами особых случаев, то, что подвластно даже чуть более способным обезьянам.
А вот нифига.
Уметь в нужный момент наговнякать то, что все равно выкинут (отдавая себе в этом отчет) — тоже талант.
Мне всё же кажется что разница там будет формата "сэкономить половину спички, или целую" :)
Я вот всегда стараюсь писать более-менее структурировано, потому что у меня мозг так думает и иначе я думать не могу. Для меня правильнее = быстрее. Но все думают по-разному.
Давайте для реализма всё-таки не "через неделю", а "через месяц".
Так вот, я толкую о том, что бывают такие проекты, что до камаза там не доходит потому что "через месяц" для такого проекта не существует. "Через месяц" он крутится в каком-то маленьком углу системы, делает своё дело и трогать его нужды нет.
Нет, почему жешь. Если у вас глаз намётан, то структурируете вы, как правило, приемлемо с самого начала и делаете это на автомате, просто потому что не видите иного способа сделать.
Перефразирую вас в одну реплику: "да ООП-то да, но с требованиями жопа".
И вы правы, да.
У меня с первого раза не удаётся
Это нормально, с первого раза удается, только то, что ты делал подобное в прошлом, в нашей профессии это случается не всегда. В новых случаях, я делаю минимум два прототипа, а если время не жмет, перебираю все возможные решения и выбираю лучшее. И потом шлифую его до блеска и тоже не в один проход. Сначала нужно получить стабильно работающее решение, и только потом стабильно быстро работающее. Сделать все красиво с первого раза, то что ты до этого никогда не делал? Сомневаюсь.
часто клиент/начальник требования меняет
И это тоже нормально, от этого никуда не деться, но после каждого изменения требований, нужно посмотреть, что нужно зарефакторить. Если этого не делать, рано или поздно получится пизанская башня. Архитектура, структура и все остальное, должны максимально возможно соответствовать текущим требованиям. Не вчерашним, потому что они устарели. Не завтрашним, потому, что они еще не известны и даже не пытайтесь их предугадать, все будет по другому.
А вот если брать такие поделки, еще и, допустим, на питоне, то есть те, кто проверяют скрипты на __main__, а есть те, кто этого не делает. И как это оценивать?
Более того, дичайший write-only может даже отнять больше времени, потому что очень быстро придётся бороться с собственным же соседним говнокодом.А вот и нифига. Если это код, который писал ты — и больше туда никто не лазил — то 200-300 строк «влезают в голову» легко и никакой структуры не требуют вообще.
Но попытка вот это вот чуть-чуть порефакторить приводит к тому, что мы получаем уже не 200-300 строк, а тысячу, они перестают помещаться в голове и требуется уже, фактически, полное переписывание.
Типа как дом из кучи материалов построить легче, чем разрушить старый и построить новый.
Но хотя это возможно потому что тикетов на явный рефакторинг нет, им я побочно занимаюсь.Это большая проблема. Очень тяжело, зачастую почти невозможно, отрефакторить код если, при этом, в него посредине этой работы нужно вносить новую функциональность.
Вторая большая ошибка — совместный рефакторинг.
Лучше всего переписывать достаточно большие куски кода — такие, которые вы можете полностью понять и переписать на неделю-другую в одиночку.
Больше вам никто не даст, а если вы в середине рефакторинга начнёте добавлять функциональность — рефакторинг не закончится никогда.
По моему опыту — в половине случаев (а то и больше), рефакторинг как раз и делается для того, чтобы тесты можно было написать.
Как вы собрались тестировать систму, где есть несколько тысяч глобалов, куда разные функции данные пишут, чтобы «тайно от всех» информацию между десятками (и сотнями) функций передавать? Ну, потому что «так удобнее».
Не проверя рефакторинг вы даже не сможете понять какой компонент от какого другого зависит!
А это — как раз и есть состояние старой легаси-системы, в большинстве случаев. Ну потому что это это так просто — вбить пару костыликов, в одном компоненте заметить что мы работаем со случаев A, в другом — что со случаем B, а в третьем, по такому поводу, транзакции с половинной ценой посчитаем, так как у этих двух товарищей «особые отношения».
А вот как это потом тестировать — никому неведомо… но таска закрыта, менежер доволен.
В итоге какой был гавнокод с лапшой, такой и остаётся, просто в некоторых местах нельзя было подменить объекты, а теперь можно. А вот потом уже начинается рефакторинг.В этот момент ничего не начинается, так как вашей деятельностью вы увеличили потребление ресурсов в несколько раз, но ничего не сделали для бизнеса. И вас уволили. И всё.
Я текущий проект покрываю тестами, потом рефакторю и описанной вами потребности отрефакторить всё, чтобы поместить код в тесты не наблюдаю, если честно.Рад за вас. Это значит что ваши предшественники хоть немного, но всё-таки думали про ирхитектуру и про необходимость тестирования.
В «настоящем» Legacy-коде основной вопрос даже не в том, чтобы вынести какой-то объект в синглтон, а в том, чтобы понять в принципе, когда и как тот или иной код может сработать.
А поскольку вы предлагаете вначале как-то покрыть все миллионы строк геологических наслоений, созданных за десятилетия, тестами..., а потом, через много лет, начать что-то рефакторить… вот не верю я в то, что вы сможете это сделать до того, как вас уволят. Потому что десятки и сотни других программистов ведь не сидят сложа руки и тоже с этим кодом что-то делают…
Нет, одно дело когда ты делаешь что-то на коленке чтобы протестировать гипотезы (и потом выкидываешь, процесся параллельно фидбек пользователей и перерабатывая результаты A/B тестирования и полученных метрик в PBI/дизайн-док и прочие тикеты в жире со всеми остановками — митингами, кофе-брейками, приоритезацией и прочим планированием спринтов). Другое дело когда "нахерачить абы работало" является драйвером процесса разработки. Тут, как в том анекдоте, есть нюанс. Хотя есть большой соблазн не выкидывать MVP. Я его понимаю и признаю, но это — тот самый путь где мертвецы с косами стоят, а вокруг — тишинаа...
Собственно причесать это и значило написать фронтэнд с нуля, но с похожим функционалом.
Можно виртуозно управлять автомобилем и не знать как он устроен… В общем могу продолжать весь день такое писать)
мне кажется умение увидеть цель, ответить на вопрос «зачем?» и быстро набросать код для ее реализации – тоже очень хороший скилл, а дальше у него есть сотрудники, чтоб за сам код не было стыдно. Так сказать «прогрессивный jpg»
Иногда лучше сделать что-то рабочее быстро и говняно, чем вообще не делать.
Запомните, товарищ. Люди, которые действительно недотягивают до какой-то должности в своей работе, никогда в себе не сомневаются. Если Вы сомневаетесь, значит всё нормально.
Воспитанные люди полны сомнений, а идиоты полны уверенности
А воспитанный человек может быть одновременно идиотом?
«Восторженный идиот» может навязать команде решение, которое вообще весь проект угробит.
Пару раз с такими встречался… Единственное работающее решение — переговорить с вменяемыми членами команды и уйти на другой проект.
Так можно спасти команду и свои нервы, но не продукт, увы.
Классический пример.
У одного моего знакомого в компании была система грейдов из 7-8 позиций. В итоге сениор это такая средняя позиция. Как вариант.
1. Software Engineer II
2. Software Engineer III
3. Senior Software Engineer
4. Staff Software Engineer
5. Senior Staff Software Engineer
6. Principal Engineer
7. Distinguished Engineer
8. Google Fellow
9. Senior Google Fellow
9 позиций, причём тот самый Senior, стоит, на минуточку, на 3й.
Если прочесть disambiguation по ссылке выше то можно понятьчто выше L6(staff) прыгнуть вряд-ли получится (да и допрыгнуть до него тоже непросто) Потом можно почитать соседние треды( https://www.quora.com/What-is-a-senior-software-engineer-L5-L6-expected-to-know-in-a-Google-interview-on-top-of-what-is-expected-for-lower-levels?ch=10&share=b3f7d315&srid=mFIyn) и понять что L5 с улицы как бы почти потолок. А на L6 вкалывать в основном придется внутри. Что возвращает нас к мысли что Senior неплохой таки ориентир
Автор, у вас из поста в пост какой-то негатив и полное отчаяние. Может быть вам просто не стоит программировать? В этой профессии есть столько всего интересного и крутого, а у вас — в одном посте про выгорание на неинтересном аджайле, в другом — про то как кто-то там умнее.
Как-то это все навевает скорее художественный роман с личными переживаниями и муками. Не понимаю зачем эти статьи.
Не понимаю зачем эти статьи.
Так ведь «пипл хавает», посмотрите на их рейтинг. У каждого свои предпочтения, лично мне интереснее читать про другие вещи и я абсолютно согласен с вашей точкой зрения, но на хабре не только мы.
Определённо, сидеть под каждой вашей пабликацией и писать «ух как задолбало» — не очень, но я такого не замечал.
Я работал в одной из компаний «большой четвёрки» и там тоже много чего насмотрелся… когда язык и софт-скиллз тебя поднимают туда, где ты думал, что никогда не окажешься.
Не надо стесняться :) В каждой компании (не маленькой) есть люди, которые зарабатывают много, но другие думают, что они дуболомы. А, они, может, несколько «ширший» стек задач делать умеют. Или просто пользуются тем, что в тяжелой ситуации на них можно положиться и они умеют решать проблемы или пользуются годами выстроенным доверием менеджмента.
Важно, чтобы тебе нравилось заниматься тем, что тебе нравится и что тебе хочется делать, даже если ты поменяешь сферы работы кардинально; тогда у тебя не будет угрызений совести, потому что этого всего ты добился сам (и пофиг, какими методами: спишь с ген.директором или ты хороший дипломат).
То, что ты своими методами добился чего-то большего, не надо ставить себе в вину. Ты смог попасть на какую-то работу с меньшим опытом и знаниями, а они не смогли. Плюс, сам же видел — есть люди, которые, хоть и профи, но они годами сидят на одной позиции, получают свою ЗП и по каким-то причинами получают не оч. много. Просто их либо всё устраивает, либо не хватает яиц пойти и что-то поменять.
Вот, откуда тебе знать, счастлив ли твой коллега-профессионал с прошлой работы? Когда он тебя натаскал, а потом тя взяли на новую работу, — я сразу подумал, что ты можешь дать ему половину денег и просто аутсорсить, а свои усилия приложить… да хоть на вторую работу найти.
язык и софт-скиллз тебя поднимают туда, где ты думал, что никогда не окажешься
Смотря что считать языком и «софт-скиллами». Так вышло, что всю жизнь работаю с продажниками, и видел нереально крутых ребят, и видел дно, которое не сможет продать человеку с деньгами и сформированной потребностью товар, который у дна есть. И довольно часто бывало так, что дно попадало на топовые позиции, тогда как крутые ребята не могли вылезти дальше средней манагерской должности (при том, что их смело можно было ставить на КАМов и работу со всякими ВИПами).
Это какой-то вариант эффекта даннига-крюгера, как мне кажется, «кто смел — тот и съел».
Это какой-то вариант эффекта даннига-крюгера, как мне кажется, «кто смел — тот и съел».Нет, просто всё проще: «умение продать товар, который у тебя есть, человеку с деньгами» и «умение продать себя начальству у убедить его в собственной крутизне» — это разные умения.
Я видел более, чем достаточно, людей, умевших «продать себя» хорошо — и обладавших просто великолепными навыками по «выходу из отпимизированого [ими] отдела»… Они офигительные профи… только не в той профессии, про которой вы думаете.
Что касается градаций программистов по скилзам, скажу что все очень относительно, но раз вам платили эти деньги — вы их явно стоили, не принижайте себя.
Правда, до этого на фрилансе я вообще никак не относил себя к какой-то группе, просто работал и учился новому. А потом — «бац!» — и сразу несколько рекрутеров отнесли меня в сектор «почти элиты» )))
В 16-ом такой же финт прокрутил Crossover, навешав бляху «архитектора», а в 18-ом «чифа» )))
И вроде понимаешь, сколького еще не знаешь и иногда даже не понимаешь, а с другой стороны, попадет на ревью
Я сам не карьерист, и даже свой академический титул не указываю, но просто очень хорошо понимаю автора и на практике видел, что и как. Корочки и звания нивелизировали давно, терь тока личная проверка кандидатов на нужные знания и умения. Возросли требования к работе кадровиков, ну, это и хорошо.
Я по-быстрому свинтил со старой работы, оборудовал себе дома рабочее место, и стал привыкать к своей новой роли.Читая, думал, что рассказ закончится тем, что однажды «лирический герой» в курилке расскажет коллеге, собирающемуся на собеседование, про сборку мусора в дотнете.
И круг замкнется.
Этот пост будет не полон без этой картинки
А вообще, рекоммендую почитать «Корпорацию МИФ», Роберта Асприна. «Важно не то, какой ты волшебник на самом деле, а каковым тебя считают».
Кто-то вообще помнит про цель программиста? Лучший тест на Senior, задать этот вопрос. Сколько читаю в статье и комментариях, фокус на языке, технологии, тонкостях, крутом коде. Все это нужно, но лишь как средство. Цель — создавать качественный продукт в срок. Всё. Это не меркантильные требования недалекого бизнеса, а миссия и смысл существования программиста. Без этого не будет не только бизнеса и зарплаты, но и мир не увидит софт. Если программист этого не понимает — значит ему просто нравиться писать код. Код ради кода. Все хитрее, приводящий гиков в экстаз. О, сколько я видел таких матёрых экспертов, цитирующих Рихтера и Скиену, их любовь к коду застила глаза и они вообще забывали про цель. И заваливали проекты. Быть крутым гиком, реально шарить — прекрасно. Но не надо это называть Senior. Человек с 10+ хорошего опыта может не знать совсем уж тонкостей работы GC — но лишь потому, что они в 99% случаев ему не нужны. У него иной скилл (как дополнение к отличному багажу знаний и опыта в computer science): понимание (или чувствование) границ, что вот здесь надо сделать костыль с пометкой todo (иначе срок просто будет провален и усилия будь тщетны), а вот здесь наоборот, надо потратить время, провести исследование, полностью покрыть тестами. Это умение вникать в уже написанный код, причём, внимание!!! В чем разница, смотрите. Гик будет видеть код и его проблемы «тут у вас нет sealed, а тут метод возвращает viewModel вместо dto). Senior будет видеть код и проблемы, которые он решает (или создаёт) в первую очередь. Это не значит плохой код. Это значит думать о том, как это работает, бизнес-логика, понимание реальных сценариев, видение потенциальных проблем.
Я это к тому, что нужно быть где-то по середине между человеком, который живет продуктом и человеком. которому интересен ГЦ. А крайности — не работают
Слушайте, право слово. Лучший тест на сениора — пошарить экран и посмотреть как он пишет код.
И на что именно вы будете смотреть? Скорость? Может он три часа думает, а потому за 20 минут делает оптимальное решение. Красоту кода? Это тест не на Senior, а на Middle. Нельзя в написании кода увидеть то, что выходит за рамки написания кода. А именно то, что выходит — и делает человека Senior. Он же не просто кодер.
Нет. Я буду смотреть как человек ведёт себя в незнакомой ситуации с непонятным фреймворком, что и как гуглит, в какой последовательности.
Потому что я в принципе никому и никогда не показываю свои промежуточные «метания».
Дальше?
Спокуха, если буду собеседовать я — я дам такое задание, где без гугла не справитесь :)
Потому что я в принципе никому и никогда не показываю свои промежуточные «метания».
Ну бывает такое, да. В таком случае я предложу обратить взор на ваш гихаб-аккаунт ибо как только он идеально иллюстрирует результаты ваших промежуточных метаний.
В таком случае я предложу обратить взор на ваш гихаб-аккаунт ибо как только он идеально иллюстрирует результаты ваших промежуточных метаний.И я вам отвечу что у меня нет времени что-то творить ещё и для помещения на публичный гитхаб-аккаунт. Приватный у меня есть, да, и он всегда был приватным — именно потому что он мой и в него незачем смотреть кому не попадя.
Спокуха, если буду собеседовать я — я дам такое задание, где без гугла не справитесь :)Дык я ж не против. Я уже понял, что такие как я, вам не нужны — это не страшно.
Есть же всякие дурацкие компании типа Microsoft'а или того же Гугла (только не чтобы искать там, а работать)… на мой век — хватит.
И я вам отвечу
А я вам отвечу что сделал свой самолёт. Только он у меня стоит в гараже за семью замками и я никогда и никому его не покажу. А ещё вокруг планеты летает маленький чайник. Ну вы поняли.
на мой век — хватит
Да и кандидатов на наш век, честно говоря, тоже хватит. Если вы настолько стеснительны что не желаете никому показывать промежуточные метания, то простите, а как же вы будете в фич-бренчи пушиться уходя с работы?
Ну вы поняли.Нет, не понял.
Да и кандидатов на наш век, честно говоря, тоже хватит.А я вот в этом — не уверен. Когда я работал в мелкой конторе и найм каждого человека был событием — да можно было вообще никого не собеседовать! Заведомо хороших кандидатов, найденных через знакомых, хватало. А вот когда вас нужно выбрать из тысяч кандидатов, из которых подавляющее большинство — идиоты, а что-то там такое на GitHub есть у единиц… то выясняется что нужны какие-то другие подходы.
Причём есть ещё забавный феномен: чем на более высокой позиции человек работает, тем меньше шансов на то, что у него будет что-то, что он захочет показывать, на GitHub.
Потому что GitHub — это про работу с кодом… а как тут уже много раз повторяли синьор работает в основном с людьми… и делает он это, в основном, опять-таки, в рабочее время, а значит — под NDA.
Если вы настолько стеснительны что не желаете никому показывать промежуточные метания, то простите, а как же вы будете в фич-бренчи пушиться уходя с работы?Никак не буду.
Когда у меня будет что показать — я покажу.
Нет, не понял.
Если вы не знаете про чайник Рассела, то наш разговор затянулся.
найм каждого человека был событием
Поверьте, если вдруг в этом потоке окажется один человек, который не захочет давать о себе никакой конкретной информации — то я предпочту сказать "следующий!" нежели вникать в его глубокий внутренний мир. Поверьте, вероятность что я в этом случае упущу того-самого-инженера-который-может-изменить-всю-компанию, стремится к нулю. С такими рисками можно смириться.
чем на более высокой позиции человек работает, тем меньше шансов на то, что у него будет что-то, что он захочет показывать, на GitHub
Так может и зря он тогда работает на высокой позиции?
Когда у меня будет что показать — я покажу.
Вот так я вам и отвечу: когда будет что показать — приходите.
Я бы сказал, сильно меньше 10%.
А вот джунов с копиями гитхабов — завались.
Как скучно на работе вместо каких-то интересных штук слышать «Пользователям нравится кнопка другого цвета… Надо чтобы тесты были зеленые… Маркетологи считают что если натянуть сову на глобус, то воронка продаж повысится на 3%...»
И какой-нибудь заскорузлый менеджер, который и строчки кода в жизни никогда не написал, подходит и говорит «Хмм, ты же понимаешь, что должен думать о проблемах бизнеса, как их решить? Тогда тебе повысят грейд до сеньора.»
Быть сеньором сейчас чаще всего означает придумывать, какую фичу можно будет продать.
Очень удобная позиция для работодателя. Разраб сам придумает, сам напишет, сам продаст, деньги организации, а мы тебе — звание сеньора. Гордись! Можешь другим хомячкам хвастаться лычкой!
К черту тогда все лычки и проблемы бизнеса!
Программистами хотят стать, потому что это как научиться магии в отдельно взятом компьютере, стать волшебником.
Я в 4 года пощупал клавиатуру, и с тех пор мечтал работать с компьютерами.
В 13 лет написал первую программу на QBasic. И знаете, до сих пор восторг и восхищение, когда сделал хитрую фичу и оно компилируется и работает. Как алхимик, который свинец из золота получил.
И что, вы думаете что я и такие же пацаны, которые по ночам читали взахлеб книжки по архитектуре ЭВМ, думали «О-о-о, какие же качественные продукты в срок я буду выпускать!»
Быть крутым гиком, реально шарить — прекрасно. Но не надо это называть Senior.
Многие (и я в том числе) так начинали. Детство, компьютер, 90-е, дискеты, Borlnad C/Pascal, горящие глаза. Я ни разу не говорил, что это плохо. И я даже не говорил, что это волшебство должно с годами уйти, и работа должна стать скучной. Прочитайте название статьи, к которой вы пишите коментарии. Речь о том, кто такой Senior. Лычки тут вообще ни при чем. Еще раз, специально для вас, вся суть в одной фразе:
Senior — это опытный разработчик, способный доводить до завершения сложные проекты, в срок и с достаточным уровнем качества.
Естественно, это должен быть управляемый процесс. Естественно, магия и красота кода здесь не такие хорошие помощники, как понимание цели. Если для вас создавать продукт — скука, вам просто нравится программировать — никто не мешает. Но когда вы говорите
К черту тогда все лычки и проблемы бизнеса!
тут кроме как фейспалмить ничего не остаётся. Вы, видимо, до сих пор верите, что менеджер — это тот, кто ничего не делает (т.к. не умеет), а бизнес — это кровавый эксплуататор. Да поймите вы простую вещь. На магии и вдохновении вы можете написать (в своем темпе) какой-то прототип. Это может сработать раз или два. И всё. Если вы хотите браться за задачу, любой сложности, и завершать её, не утонув в «магии кода», не потеряв время на крутые интересные (но не нужные) технические приключения — то думать о цели придется. И придется управлять своим прогрессом (to manage — отсюда нелюбимое вами слово). Сами вы можете делать что хотите. Любой проект и как пожелаете. Если же речь о рынке труда (а именно там все эти junior/middle/senior и применимы), то там иная ситуация. Компании нужен именно такой человек, который сделает. Ваши восторги и горящие глаза заказчику не нужны. Поставьте просто себя на его место: вам продукт надо сделать, деньги вы не печатаете, кого будете искать? Восторженного гика, который в восторге от кода, или того, кто методично по шагам сделает проект в срок? Вот второго и называют senior. Еще и бредом называете…
Вы, видимо, до сих пор верите, что менеджер — это тот, кто ничего не делает (т.к. не умеет), а бизнес — это кровавый эксплуататор.
Что значит до сих пор? Все зависит от организации. У меня по опыту были менеджеры — умницы, которые реально бьются за время разработчиков, понимают продукт и отсеивают заведомо бредовые таски. А были и такие, которые даже не могли пересказать, что хотел заказчик, приходилось вместе с ними ходить на совещания, хотя это вообще их работа.
Я наверно сумбурно, на эмоциях, выразил мысль, в чем не согласен с вашим мнением. Постараюсь описать понятнее. Зацепили во-первых определения цели программиста, а во-вторых точка зрения на сеньора.
Кто-то вообще помнит про цель программиста?… Цель — создавать качественный продукт в срок. Всё. Это не меркантильные требования недалекого бизнеса, а миссия и смысл существования программиста.
Абсолютно не согласен. Это как сказать, что цель художника — рисовать вывески. Цель учителя — чтобы дети сдали ЕГЭ.
Слишком прикладное и примитивное определение.
Про сеньора мне кажется, что у вас, и в целом на рынке проблема определения.
Вы правильно написали про сферического сеньора в вакууме, что он и проект сделает и бюджет не превысит. Я знаю таких людей, настоящие профессионалы, до которых мне расти и расти.
Но вот есть очень умные ребята, которые ненавидят доделывать проекты. Прототип работает — и потом неинтересно. Все, они не сеньоры? В компании, где я сейчас работаю, таких минимум одна команда. Бизнес просто нанял несколько команд, которые потом за ними доделывают прототип до продукта.
Но у работодателя появляется порочная практика — считать, что если человек готов доделывать проект до готового продукта, готов обсуждать на совещаниях способ монетизации продукта для конечного пользователя, то он сеньор. А если ему не нравится — то не сеньор, типа еще не дорос.
Вот мне лично все равно, какого цвета кнопки будут у моего продукта, сколько он будет стоить, и какой процент конверсии он будет выдавать. Мне это неинтересно. Этим вообще должен заниматься Product owner, а не разработчик. А вот сделать код продукта быстрым, надежным, понятным — это интересно.
Если программист этого не понимает — значит ему просто нравиться писать код. Код ради кода.
Вы так говорите, будто это что-то плохое. По моему опыту, как раз самый страшный и неподдерживаемый код писали люди, которые пришли в разработку ради денег или «решать задачи бизнеса», а не потому что им нравится писать код.
Надеюсь что в этом комментарии объяснил понятнее свою точку зрения.
Попытаюсь третий раз)
Человек может фанатеть по коду и делать только прототипы — его право. Возможно, он идеальный «начинатель», способный придумать нечто поразительное, но рутина, связанная с доведением продукта до конца — гасит его творческий огонь. Здесь нет хорошо и плохо, здесь есть рынок. Вам нужен костюм, сшитый только наполовину? А как насчёт крутой машины, которая не прошла все испытания и доводку на безопасность? Ну или может быть лекарство, супер-классное, только тщательно тестировать его не стали? Также и здесь. Не только бизнесу — миру, людям нужен работающий продукт. Миллионы идей и поделок канули в небытие, так и не дойдя до итога. Воплотить, дойти до конца — это не только рутина, это определенная зрелость. Это опыт. Вам нужен хороший программист, вы хотите быть уверенным, что он справится, на вопрос «сколько проектов вы довели до конца?» он ответит «ноль, но зато я начинал 500 проектов» — и что, возьмёте его? Или побоитесь, что ваш будет 501-м? Именно такого человека, который способен пройти весь цикл, ищут работодатели, и его они называют Senior.
Так?
Вы издеваетесь?
Сеньор — это тот, кто способен сделать проект от идеи до внедрения. Любой проект. Пройти все стадии (а не только хипстерский смузи-based «мы крутые чуваки, наш супер-проект завтра изменит мир»). Даже если это скучные цифры (а не атмосферный геймдев с симпатичными эльфийками в офисе). Как и во всём. Ребёнку нужен мотиватор, игровая форма, веселье. Взрослый просто берет и делает, они достаточно зрел и самоорганизован.
Сеньор — это тот, кто способен сделать проект от идеи до внедрения. Любой проект.
О, тогда я сеньЁр помидор уже лет 17, то есть с третьего года официальной работы программистом. Правда, там железку после демонстрации отменили и продуктом она не стала, но не из-за ПО, а просто тему закрыли.
Нет. На мой взгляд, это условие явно не является достаточным. Возможно необходимым и является, но тоже дискуссионно — какой-нибудь бэкенд не факт что сделает достаточно красивый и удобный дизайн страницы, для завершения проекта потребуются другие люди.
Именно, необходимое условие. Об этом и весь тред. Что не может считаться сеньором тот, кто настолько фанатеет от программирования и магии кода, что ненавидит бизнес, рамки, и даже цель проекта, у кого своя цель: получать фан от программирования (а кто не согласен — говорит как менеджер, фу, и пишет бред)
Цель любого бизнеса — навариться на покупателе/заказчике/потребителе.
И, кстати, разработчик — тоже продаёт. Себя. Бизнесу. Тоже с целью денег получить в первую очередь, что бы было на что есть.
Нет у них общей цели. Есть временное совпадение направлений.
Так вообще про всё можно сказать. Даже у самых близких людей- временное совпадение направлений, вопрос насколько. Даже у самого человека с самим им же могут не совпадать цели, сиюминутные и длительные. Это все абстрактная философия. На практике, работаете в компании, продукт которой вам видится полезным миру, вам нравится, плюс деньги получаете, бизнесу нравится, что продукт продаётся, все довольны.
Но мне показалось, что вы подразумеваете сеньорство как единственную цель развития и вообще существования профессии программиста. Так?
100%
способен пройти весь цикл
Это да. 100%.
Самое сложное — в начале описать/написать все тесты, и в конце отпустить работу в продакшен, чтобы всё работало и не сыпались тоннами баг-репорты.
Собственно, можно утрировать так: "Сбербанк онлайн" и "Хабр" делали специалисты высокого уровня — "сеньоры", а сайтики из 3 страниц типа "Мы веб-студия", "Широкий спектр услуг" где в портфолио обязательно есть пачка лейблов мировых брендов с надписью "партнёры", делали олухи, мнящие себя сеньорами.
Вы, видимо, до сих пор верите, что менеджер — это тот, кто ничего не делает (т.к. не умеет), а бизнес — это кровавый эксплуататор.
Хм. А когда бизнес перестал быть деятельностью по продаже труда сотрудников на прибыль учредителям и спонсорам? Степень кровавости можно обсуждать в каждом конкретном случае, но основа бизнеса — это именно извлечение дохода из труда сотрудников, превышающего расходы на оных и на поддержание бизнеса, что и есть эксплуатация. Иногда в число оных сотрудников входят и учредители.
Естественно, подход потом повторится в большем, и я увижу уже на крупном проекте, где вовлечены десятки людей и тысячи пользователей, как я смог найти классное решение задачи (а не написать классный код).
Хотелось бы посоветовать автору, нанять себе на свою запрлату психолога, и плакаться ему на кушетке сколько угодно, так ведь не послушает же.
Смотрите на ситуацию позитивней: скорее всего у автора никаких реальных проблем нет и он просто пиарит себя / свой подкаст таким вот способом :)
Что реально раздражает — так это втыкание в каждую статью тэга "F#", даже если в статьи ничего специфичного для этого языка реально нет. fillpackart, ну доколе? :(
Человек ищет что-то по языку, а находит эту статью. Т.е. вы таким образом захламляете поисковую выдачу нерелевантными данными. Что в этом хорошего?
То есть программировать при этом естественно надо уметь, но на мой взгляд одного этого для сениора всё-таки мало.
До главбуха в принципе нельзя «дорасти». То есть посадить «приличного бухгалтера» и ожидать, что он справится.
Возможно когда-нибудь и в программировании будет так… но пока считается, что отдельные курсы на синьора не нужны.
Скорее всего и дальше так будет: задачу «рядового бухгалтера» у программиста, на самом деле, выполняет компилятор… ну или бухгалтер.
Нет в этой отрасли «рутины, не требующей особых знаний».
Вот, главбуху тяжело стать фин. директором (выкенем исключения), это да.
Пишу курсовую заказчику, он посмотрел и просит:
-Можете немного переделать, чтобы поверили, что я делал.
Немного (пронцев на 20) сократил решение, сделал "вЛоб"
Если поверят, я СЕНЬО́Р?
Вроде даже неплохо получаю, вроде даже подчиненные есть.
Интересно, Я сениор?
Пойду дальше пилить.
thumbs.dreamstime.com/z/young-mexican-man-wearing-sombrero-69432161.jpg
В Германии сеньором считается тот, кто проработал лет 8 минимум. Притом не важно сидел на одном месте и делал однотипные задачи или действительно развивался. В итоге есть те, кто 20 лет занимается формошлепством и считаются супер крутыми сеньорами. Хотя когда я рассказываю о том, что в свободное время изучил какой-нибудь новый фреймворк или новую версию языка (на проекте джава 6), отвечают, что никогда в жизни не будут тратить свое свободное время на изучение чего-то
Среди говна мы все сеньоры, среди сеньоров мы гавно
ИМХО, сеньор это не года/часы, не алгоритмы и крутой фреймворк.
Сеньор это набор абилок прокачанных должным образом:
- Знания
- Опыт
- Коммуникации
- Ответственность
Это может быть вполне средний девелопор по знаниям, но если он ответственный, то в нужный момент используя коммуникации, опыт и предыдущие знания может прокачать нужное до нужного уровня.
Чем дальше работаю тем больше понимаю, что софт-скиллз рулят. Есть нет нормального общения с командой, будь ты хоть трижды звездой, будешь тащить проект в другую сторону.
Платон говорил: «Я знаю, что ничего не знаю!.. Я с ним полностью согласен.
Ты не боишься кстати, что тебя после такого на работу брать не будут?)) Типа «оу это тот чувак, который не сеньор, ну нах»
Фил, Вы бы уж кружок программирования в школе вести начали.
Детишки бодрят, знаете ли.
Я джун, которого из вежливости называют мидлом.
Считаешь себя синьором? Да кого ты обманываешь