Команда angular, конечно, молодцы, но эти постоянные смены подходов - это какой-то ужас, честно говоря. Выпал ты на 2 года из разработки, а тут считай новый фреймворк. Только вкатился в rxjs, получай сигналы, вкатился в сигналы - уже вышло что-то очередное модное и молодёжное. Про миграции продуктов вообще молчу. Мало кто может позволить в более-менее средне-крупном проекте каждый год-два переписывать реализацию, благо, обратная совместимость радует. И кстати, порог входа становится сложнее, хотя сами технологии не особо сложные. В такие моменты думаешь, а может в пекло этот фронт-енд))
Статья забавная, однако причины у всего очевидные. Проблема как была - так и осталась, поменялись лишь инструменты и подходы.
20 лет назад назад не знали, как оценить кандидата, в итоге придумали спрашивать про лампочки в автобусе и круглые люки. Вышли книжки "100 вопросов Google". Все вопросы были заучены. Надо что-то новое.
Думали-думали и 10 лет назад придумали, что можно кандидата по алгоритмам погонять. Программисты же, в вузе всё изучают. Будем определять по тому, как кандидат деревья переворачивает. Но вот опять незадача, появился литкод и книжки "100 популярных задач в Google". Теперь каждый второй деревья умеет переворачивать. Опять непонятно.
Снова думают-думают, чтобы такого придумать. Давайте введём 5 раундов собеседований. Ну чтобы точно отсеить самых умных. Отлично! Отфильтровали из тысячи пятерых - самых лучших. И фреймворк знают, и деревья переворачивают, реализацию квиксорта лучше библиотечной пишут, сидя в позе лотоса, с закрытыми глазами, систем дизайн проектируют лучше самых топовых проектировщиков.
А потом уходят на х5 зарплату в FAANG. Что могло пойти не так?
Ну вот буквально каждый, кто работал больше 3-5 лет прекрасно знает, как оценить кандидата - дать ему реальный кусок говняного кода из живого проекта и погонять вопросами. Никто лучше тимлидов не знает свой проект. Все самые узкие места, плохие решения, техдолг - это то, что невозможно за 10 минут решить нейросетью, а вот обсудить с кандидатом имеет смысл. Эти знания нельзя передать тк у каждого свой взгляд.
И это даже не говоря про саму специфичность найма.
Когда кандидат приходит на интервью - спросить у него могут все, что хотят и могут. На основе этого делается вывод. А почему кандидат не имеет права знать, какие вопросы ему зададут? Потому что "нечестно", он же их посмотрит заранее и ответит. Смысл теряется. Ну вот отсюда и статья.
Зачем мне тратить 3-6 месяцев ежедневных вечеров, чтобы набить руку на литкоде, если я могу получить тот же самый результат на собеседовании, потратив 10 минут, настроив жпт? Для личного роста? Ну допустим, а если мне наплевать? Я хочу просто работать, решать бизнес-задачи.
Хорошая идея, если бы я был java разработчиком, я бы одобрил. Мы делали несколько иначе, но с тем же смыслом:
Брали реальный кусок сайта, отрезали его от всех зависимостей, специально засирали код, как могли. Давали этот кусок кандидату, и он уже в привычной среде пытался делать код-ревью, что-то комментировать, исправлять. Сразу становится понятно, как долго человек работал, насколько быстро и глубоко вникает в проблемы, в специфику, а там уже можно и пообщаться подробнее. При этом всё также в формате live-coding.
Это какая-то повсеместная проблема. Я в какой-то момент даже начал воспринимать это за менталитет. Вот говоришь с людьми конкретно - вроде все чистые, опрятные, руки моют, но как только это делается анонимно, то всё, превращаются в свиней...
Это прям факт. У меня племяннице (16 лет) за 9 лет в школе сменили, наверное, айфонов 5, при этом никогда в жизни не трогала компьютер, даже примерно не знает, как он включается/выключается, не говоря уже о чём-то более сложном аля найти нужную сеть Wi-Fi
Любой инструмент в неумелых руках только ухудшает жизнь. Но могу высказать другую точку зрения.
Мне, например, исторически не везло с учителями. В начальной школе у меня были все пятерки, как и у большинства детей, проблем не было. Далее моим учителем по математике стал алкоголик, который любил выпить на уроках, но из-за привелегированного положения оставался на месте. К тому же, ему присуща была вузовская система объяснения - вышел, написал на доске решение, сел. Понятно? Не понятно? Да пофиг, сами разберетесь. Самое плохое, что этот учитель все 5 лет внушал мне, что я идиот и у меня нет ни к чему способностей, а ещё, что я никогда не стану программистом.
Уходя из рабоче-крестьянской школы в технический колледж я ожидал, что там будет адекватный учитель, но там учителем была женщина без образования в принципе. Т.е. она была неплохим человеком, но совершенно не умела обьяснять, и мне приходилось учиться самому. Программа была сложная, 5 пар каждый день на протяжении почти 4х лет, поэтому справлялся я так себе, но зато понял, что для программирования не обязательно быть отличным математиком, и благодаря упорству у меня были все пятерки.
Далее я пошел в университет. Однажды на паре я понял, что ничего не понимаю. На мой вопрос обьяснить, препод сказала - "подходите после пар". Я подошел после пар, задал вопрос и получил ответ - "с такими вопросами в школу, я это объяснять не собираюсь". По итогу пришлось весь выш. мат изучать в одиночку дома. Слава богу, к тому моменту в интернете уже что-то да было.
Несмотря на то, что я очень сильно старался и реально ХОТЕЛ учиться, у меня не было шанса на нормального препода и всё приходилось изучать самому. Долгое время было 3 пути:
1) Изучать самому, но тогда натыкаешься на бесконечное количество пробелов т.к. нет базы из-за самообучения
2) Найти себе репетитора, который поможет. Но для меня была проблема, что в целом, я в математике не совсем дурак, но многих вещей до сих пор не понимаю, а в 30 лет учиться у вчерашних ЕГЭшников - ну такое. Плюс, найти хорошего репетитора - та ещё задача. В общем, не склеилось.
3) Забить болт
И вот когда появилась нейросеть, которой можно час расплывчато рассасывать проблему, и она четко может подсказать, где и что - жизнь стала значительно проще, но очевидно, так получилось потому что я чётко понимаю, зачем я использую инструмент.
К слову, раньше тоже были ГДЗ, всякие решебники и т.д. и при желании, мотивированный учитель на раз-два выявлял неосведомлённого ученика.
Так что, я бы переформулировал проблему в "как научить ученика думать и правильно выбирать инструменты для решения задач". А это, в общем то, фундаментальная проблема любого образования.
На проекте было 3 разработчика, мы согласовывали решения между собой, поэтому не было никаких проблем. Потом решили взять ещё двоих. До того, как я пришел на проект, был ещё один разработчик, гадящий в гит, собственно которого я и заменил, и мне было сказано - перед тем, как что-то делать, надо посмотреть, как уже было сделано, и если что, посоветоваться. Затем мне показали тот говнокод, который уже существует (примерно в 3-х местах), и не делать также. Инструкцию я понял, и мы спокойно работали дальше.
Так вот, взяли мы двух новых разработчиков и сказали им ту же идею. Что происходит в течении следующего месяца:
Первый разработчик, не спрашивая никого, берёт и изобретает собственный велосипед, причём который ещё и не работает. На вопрос, почему он не следовал инструкции, которая была дана, он ответил, что "решил проявить себя".
Второй разработчик поступил более элегантно. Однажды меня позвал тимлид посмотреть его код. После просмотра я понял, что этот код уже где-то видел, и меня осенило - он подозрительно похож на те места, которые мне строго запрещалось использовать. Тимлид зовёт его на звонок и спрашивает, "Ваня, почему ты взял здесь это решеие?". А далее, как в анекдоте (ответ убил):
- "Я сделал поиск по проекту и нашел 85 мест, где делается вот так, и 3 места, где делается иначе. Я решил, что эти 3 места - то, что мне нужно. "
Тимлид: "Слушай, а почему ты не догадался спросить у меня или у других ребят, какое конкретно место тебе выбрать..."
- "Я так чувствую".
Выводы, как всегда, делаем сами, но вот такая репрезентация доказывает проблему. Боюсь представить, что происходит, когда на проекте 20 разработчиков.
Далеко ходить не надо. Как-то проходил собеседование в яндекс, и попалась задачка простая на аккумулятор с хитрой логикой. Интервьюер мягко намекнул на использование reduce. Против reduce ничего не имею, но за 10 лет встречал примерно 1.5 человека, которые без бутылки за 2 секунды могли разобраться в том, что оно делает, особенно, когда нет нормального названия у переменной, куда кладётся результат.
Я решил не идти на поводу у собеседующего и написать обычный код. Коллега начал жестко противиться, мол, зачем, если можно написать вот тут однострочник, которые делает 678 операций с массивом. Я ответил, что предпочитаю в продуктовой разработке простой и понятный код, нежели усложнять жизнь коллегам ради красоты и лаконичности. Он смирился, и мы пошли решать дальше.
На следующий день пришел отказ с поинтом, мол "кандидат не идёт на контакт", а дальше ссылка на reduce в MDN. Ну, может оно и к лучшему)
маскируют вредоносный код, прячут проблемы на code review, создают абстракции с экспоненциальным ростом сложности.
Искренне извиняюсь за иронию, но звучит забавно, что Вы начали замечать это, работая в Яндексе, который шлифует пятьюдесятью этапами собеседований на профпригодность.)
Ходит слух, что если компании нужен разработчик, она его берет и устраивает ему испытательный срок. А кому не особо, устраивает 78 раундов игры в шахматы.
Очень интересно. Когда обьявили мобилизацию, по ощущениям, 90% моих коллег и самых разных знакомых испытали такой стресс, что выпали из рабочего процесса на несколько дней. О каких тогда проверках идет речь?)
Можно сделать немножко хитрее. Можно взять некий свой «некоммерческий» опыт и сказать, что работали у знакомых за определённую сумму. Как бы и не в компании, но и не бесплатно. Таким образом, учебный опыт станет «коммерческим». Главное, чтобы он действительно был полезным, а то получится, как в статье)
Вроде бы очевидные вещи, но не всегда отдаешь себе в них отчет. Особенно, когда долгое время работал на младших позициях, начинаешь по-инерции себя «недооценивать».
Интересно, как более опытные коллеги решали этот вопрос? (Речь о 3-5 годах опыта)
Деливери-партнеров и мастеров на все руки)
На самой первой работе у меня после того, как я узнал, что у товарища в университете зарплата 200 тысяч против моих 20, чуть инфаркт не случился)
Команда angular, конечно, молодцы, но эти постоянные смены подходов - это какой-то ужас, честно говоря. Выпал ты на 2 года из разработки, а тут считай новый фреймворк. Только вкатился в rxjs, получай сигналы, вкатился в сигналы - уже вышло что-то очередное модное и молодёжное. Про миграции продуктов вообще молчу. Мало кто может позволить в более-менее средне-крупном проекте каждый год-два переписывать реализацию, благо, обратная совместимость радует. И кстати, порог входа становится сложнее, хотя сами технологии не особо сложные. В такие моменты думаешь, а может в пекло этот фронт-енд))
Статья забавная, однако причины у всего очевидные. Проблема как была - так и осталась, поменялись лишь инструменты и подходы.
20 лет назад назад не знали, как оценить кандидата, в итоге придумали спрашивать про лампочки в автобусе и круглые люки. Вышли книжки "100 вопросов Google". Все вопросы были заучены. Надо что-то новое.
Думали-думали и 10 лет назад придумали, что можно кандидата по алгоритмам погонять. Программисты же, в вузе всё изучают. Будем определять по тому, как кандидат деревья переворачивает. Но вот опять незадача, появился литкод и книжки "100 популярных задач в Google". Теперь каждый второй деревья умеет переворачивать. Опять непонятно.
Снова думают-думают, чтобы такого придумать. Давайте введём 5 раундов собеседований. Ну чтобы точно отсеить самых умных. Отлично! Отфильтровали из тысячи пятерых - самых лучших. И фреймворк знают, и деревья переворачивают, реализацию квиксорта лучше библиотечной пишут, сидя в позе лотоса, с закрытыми глазами, систем дизайн проектируют лучше самых топовых проектировщиков.
А потом уходят на х5 зарплату в FAANG. Что могло пойти не так?
Ну вот буквально каждый, кто работал больше 3-5 лет прекрасно знает, как оценить кандидата - дать ему реальный кусок говняного кода из живого проекта и погонять вопросами. Никто лучше тимлидов не знает свой проект. Все самые узкие места, плохие решения, техдолг - это то, что невозможно за 10 минут решить нейросетью, а вот обсудить с кандидатом имеет смысл. Эти знания нельзя передать тк у каждого свой взгляд.
И это даже не говоря про саму специфичность найма.
Когда кандидат приходит на интервью - спросить у него могут все, что хотят и могут. На основе этого делается вывод. А почему кандидат не имеет права знать, какие вопросы ему зададут? Потому что "нечестно", он же их посмотрит заранее и ответит. Смысл теряется. Ну вот отсюда и статья.
Зачем мне тратить 3-6 месяцев ежедневных вечеров, чтобы набить руку на литкоде, если я могу получить тот же самый результат на собеседовании, потратив 10 минут, настроив жпт? Для личного роста? Ну допустим, а если мне наплевать? Я хочу просто работать, решать бизнес-задачи.
Вот от того и имеем то, что имеем.)
Хорошая идея, если бы я был java разработчиком, я бы одобрил. Мы делали несколько иначе, но с тем же смыслом:
Брали реальный кусок сайта, отрезали его от всех зависимостей, специально засирали код, как могли. Давали этот кусок кандидату, и он уже в привычной среде пытался делать код-ревью, что-то комментировать, исправлять. Сразу становится понятно, как долго человек работал, насколько быстро и глубоко вникает в проблемы, в специфику, а там уже можно и пообщаться подробнее. При этом всё также в формате live-coding.
Это какая-то повсеместная проблема. Я в какой-то момент даже начал воспринимать это за менталитет. Вот говоришь с людьми конкретно - вроде все чистые, опрятные, руки моют, но как только это делается анонимно, то всё, превращаются в свиней...
Это прям факт. У меня племяннице (16 лет) за 9 лет в школе сменили, наверное, айфонов 5, при этом никогда в жизни не трогала компьютер, даже примерно не знает, как он включается/выключается, не говоря уже о чём-то более сложном аля найти нужную сеть Wi-Fi
Любой инструмент в неумелых руках только ухудшает жизнь. Но могу высказать другую точку зрения.
Мне, например, исторически не везло с учителями. В начальной школе у меня были все пятерки, как и у большинства детей, проблем не было. Далее моим учителем по математике стал алкоголик, который любил выпить на уроках, но из-за привелегированного положения оставался на месте. К тому же, ему присуща была вузовская система объяснения - вышел, написал на доске решение, сел. Понятно? Не понятно? Да пофиг, сами разберетесь. Самое плохое, что этот учитель все 5 лет внушал мне, что я идиот и у меня нет ни к чему способностей, а ещё, что я никогда не стану программистом.
Уходя из рабоче-крестьянской школы в технический колледж я ожидал, что там будет адекватный учитель, но там учителем была женщина без образования в принципе. Т.е. она была неплохим человеком, но совершенно не умела обьяснять, и мне приходилось учиться самому. Программа была сложная, 5 пар каждый день на протяжении почти 4х лет, поэтому справлялся я так себе, но зато понял, что для программирования не обязательно быть отличным математиком, и благодаря упорству у меня были все пятерки.
Далее я пошел в университет. Однажды на паре я понял, что ничего не понимаю. На мой вопрос обьяснить, препод сказала - "подходите после пар". Я подошел после пар, задал вопрос и получил ответ - "с такими вопросами в школу, я это объяснять не собираюсь". По итогу пришлось весь выш. мат изучать в одиночку дома. Слава богу, к тому моменту в интернете уже что-то да было.
Несмотря на то, что я очень сильно старался и реально ХОТЕЛ учиться, у меня не было шанса на нормального препода и всё приходилось изучать самому. Долгое время было 3 пути:
1) Изучать самому, но тогда натыкаешься на бесконечное количество пробелов т.к. нет базы из-за самообучения
2) Найти себе репетитора, который поможет. Но для меня была проблема, что в целом, я в математике не совсем дурак, но многих вещей до сих пор не понимаю, а в 30 лет учиться у вчерашних ЕГЭшников - ну такое. Плюс, найти хорошего репетитора - та ещё задача. В общем, не склеилось.
3) Забить болт
И вот когда появилась нейросеть, которой можно час расплывчато рассасывать проблему, и она четко может подсказать, где и что - жизнь стала значительно проще, но очевидно, так получилось потому что я чётко понимаю, зачем я использую инструмент.
К слову, раньше тоже были ГДЗ, всякие решебники и т.д. и при желании, мотивированный учитель на раз-два выявлял неосведомлённого ученика.
Так что, я бы переформулировал проблему в "как научить ученика думать и правильно выбирать инструменты для решения задач". А это, в общем то, фундаментальная проблема любого образования.
К сожалению, чистая правда. Из своего опыта:
На проекте было 3 разработчика, мы согласовывали решения между собой, поэтому не было никаких проблем. Потом решили взять ещё двоих. До того, как я пришел на проект, был ещё один разработчик, гадящий в гит, собственно которого я и заменил, и мне было сказано - перед тем, как что-то делать, надо посмотреть, как уже было сделано, и если что, посоветоваться. Затем мне показали тот говнокод, который уже существует (примерно в 3-х местах), и не делать также. Инструкцию я понял, и мы спокойно работали дальше.
Так вот, взяли мы двух новых разработчиков и сказали им ту же идею. Что происходит в течении следующего месяца:
Первый разработчик, не спрашивая никого, берёт и изобретает собственный велосипед, причём который ещё и не работает. На вопрос, почему он не следовал инструкции, которая была дана, он ответил, что "решил проявить себя".
Второй разработчик поступил более элегантно. Однажды меня позвал тимлид посмотреть его код. После просмотра я понял, что этот код уже где-то видел, и меня осенило - он подозрительно похож на те места, которые мне строго запрещалось использовать. Тимлид зовёт его на звонок и спрашивает, "Ваня, почему ты взял здесь это решеие?". А далее, как в анекдоте (ответ убил):
- "Я сделал поиск по проекту и нашел 85 мест, где делается вот так, и 3 места, где делается иначе. Я решил, что эти 3 места - то, что мне нужно. "
Тимлид: "Слушай, а почему ты не догадался спросить у меня или у других ребят, какое конкретно место тебе выбрать..."
- "Я так чувствую".
Выводы, как всегда, делаем сами, но вот такая репрезентация доказывает проблему. Боюсь представить, что происходит, когда на проекте 20 разработчиков.
Далеко ходить не надо. Как-то проходил собеседование в яндекс, и попалась задачка простая на аккумулятор с хитрой логикой. Интервьюер мягко намекнул на использование reduce. Против reduce ничего не имею, но за 10 лет встречал примерно 1.5 человека, которые без бутылки за 2 секунды могли разобраться в том, что оно делает, особенно, когда нет нормального названия у переменной, куда кладётся результат.
Я решил не идти на поводу у собеседующего и написать обычный код. Коллега начал жестко противиться, мол, зачем, если можно написать вот тут однострочник, которые делает 678 операций с массивом. Я ответил, что предпочитаю в продуктовой разработке простой и понятный код, нежели усложнять жизнь коллегам ради красоты и лаконичности. Он смирился, и мы пошли решать дальше.
На следующий день пришел отказ с поинтом, мол "кандидат не идёт на контакт", а дальше ссылка на reduce в MDN. Ну, может оно и к лучшему)
Искренне извиняюсь за иронию, но звучит забавно, что Вы начали замечать это, работая в Яндексе, который шлифует пятьюдесятью этапами собеседований на профпригодность.)
Поболтать у кулера
Поболтать за чаем/кофе
Поболтать за обедом
Сходить покурить
Сходить с курящими, ибо почему я должен работать, пока остальные курят
Посидеть в туалете лишние 20 минут за просмотром мемов
Послушать кулсторис коллег
А вот мой опыт прямо противоположный, и это только малая часть из того, что меня неимоверно раздражало в офисе.
И так сойдёт)
Однажды мне предложили гибкий график с 9:00 до 9:30. Счёл это за троллинг
И красить кнопки, перегоняя json'ы туда-сюда, за 180к в мес в молодом и амбициозном коллективе)
Ходит слух, что если компании нужен разработчик, она его берет и устраивает ему испытательный срок. А кому не особо, устраивает 78 раундов игры в шахматы.
Очень интересно. Когда обьявили мобилизацию, по ощущениям, 90% моих коллег и самых разных знакомых испытали такой стресс, что выпали из рабочего процесса на несколько дней. О каких тогда проверках идет речь?)
Конечно, прикольно осознавать, что абстрактный Junior Cyber Analyst медианно получает в 1.5 раза больше сильного Senior Back-End в Moscow
Не покидает вечное ощущение, что занимаешься чем-то не тем (irony)
Интересно, как более опытные коллеги решали этот вопрос? (Речь о 3-5 годах опыта)