Как стать автором
Обновить

Комментарии 905

Полтора года назад завалил подобное собеседование. Очень рад был недавно увидеть эту позицию незакрытой до сих пор. Мне даже неинтересны подробности — до сих пор ли они ищут кандидата, умеющего одновременно и олимпиадные задачки на скорость и способного взаимодействовать с ТЗ, либо набрали кого-то из антисанитарных стран до первого бетонного самолета.

НЛО прилетело и опубликовало эту надпись здесь

Ну почему же. Я уверен, менеджер искренне хочет найти здравомыслящего сотрудника, который способен реализовывать бизнес задачи соответственно заданиям, реагируя на обязательно возникающие изменения. Однако, автоматизация процесса рекрутинга, решение в пользу которой было принято даже не обязательно этим же менеджером, выдаст в итоге не вполне однозначные результаты. Это в случае компании, которая просто хочет "срезать углы" в процессе поиска специалиста. Есть же еще компании, где программист — заменяемый ресурс. С вытекающими следствиями как рекрутинга, так и отношения в процессе работы. По личному наблюдению — действительно ценных людей туда принимают в обход всего автоматизированно-бюрократического геморроя, чтобы, упаси боже, не спугнуть.

я знаю сеньора с 20+ годами опыта, но я бы так не сказал, если бы не знал этого факта. на кого-то между миддлом и сеньором потянул бы
Это верно, годы опыта сами по себе на хлеб не намажешь.
Но и другая проблема тоже есть — умение быстро решить олимпиадную задачку не гарантирует, что человек сможет работать программистом изо дня в день.
Годы опыта хотя бы дают такую надежду.
В нейросетях подобная проблема есть — переобучение. Когда нейросеть запоминает как решать задачи на этапе обучения, но потом глючит на незнакомых реальных данных.

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

Требуется десятиклассник с опытом решения олимпиадных задач.
Оплата сдельная =)
Это не просто «умение быстро решить задачу», важно эффективно решить задачу. Помимо времени выделенного на соревнование еще есть ограничения по объёмно-временной сложности. При таком подходе алгоритм оценивается, как с точки зрении скорости выполнения, так и с точки зрения потреблённой памяти. Для определенного рода задач это важно и годы опыта могут быть здесь бесполезны. Но все зависит от задачи и где-то важнее годы опыта ;)
Если они не использовали инверсию двоичных деревьев последние три года, то можно посылать нахеp.

Меня недавно спросили теорему Чёрча-Росса о ламбда исчислении. А оно мне надо?
Ну, вообще такой вопрос кое-что говорит о спрашивающем. Вероятно, он не дурак (хотя можно попробовать уточнить, а то вдруг он списал этот вопрос в интернете). Если это правда, то надо ли вам работать с умными людьми? Ну уж во всяком случае ничего явно плохого в этом нет.
можно быть очень умным, но использовать ум не по назначению
Можно. Но и это вы частично сможете оценить, если вам зададут такой вопрос.
Я сталкиваюсь с ситуацией, когда на интервью спрашивают умные вопросы и кажется, что проект будет очень умным. Но потом окунают в махровый легаси, бесконечную рутину и паранодальную систему защиты. Хочешь заниматься умными вещами — устравайся в НИИ, а не на кровавый энтерпрайз.
Это вы где в России видели НИИ с умными вещами?
Я пару лет практиковался в новосибирском институте ядерной физики. Там есть очень интересные проекты, в том числе и сотрудничество с ЦЕРНом.
Там как повезет, скорее проблема с жильем. А зарплату можно приличную получать, если крутиться, ездить по командировкам, участвовать в конкурсах.
т.е. мало заниматься или вообще не заниматься наукой?
тогда какой смысл?
НЛО прилетело и опубликовало эту надпись здесь
Меня недавно спросили теорему Чёрча-Росса о ламбда исчислении
Было бы забавно проверить проверить знания рекрутера в этой теме, например, предложив ему выразить какое-нибудь несложное выражение через стандартные комбинаторы )))
Мне приходилось и задачки решать, и даже тесты на IQ проходить после 25 лет работы в IT.
Ощущение двоякое. С одной стороны чувствую, что решение задачи на скорость мало говорит о том, насколько я программист. Я даже в шахматы блиц не играю, хотя классику могу более-менее пристойно для любителя.
С другой проблема того, как понять кандидата за час действительно есть. Когда сам собеседую, предпочитаю дать несложную задачу на дизайн/рефакторинг без единственно правильного ответа — для того, чтобы понять как кандидат рассуждает и какие у него стиль кодирования.
В некоторых конторах проводят интервью по душам. Вместо 300 вопросов по с++ просто в свободной форме расскажи о себе. Если кандидату дают кредит доверия, то он почему-то проявляет себя лучшим образом и готов вкладываться в развитие.
Наиболее правильный, на мой взгляд, вариант: в процессе рассказа можно уточнять детали и уходить вглубь, спорить и предлагать конкретные минизадачи, которые имеют прямое отношение к работе.
Ну или услышать «диплом купил, сам ничего не писал, хочу хотя б 100 тыщ» и не тратить время.
Да, только почему-то на такие конторы попадаешь редко. Один раз просто написал в cover letter опыт 10+ лет в требуемой технологии — взяли сразу без интервью и собеседований — ВООБЩЕ НИЧЕГО!!! Справился, потом были очень довольны моей работой и оставили хорошие рекомендации.
В принципе мне подобные практические собеседования нравятся больше, чем те, что были раньше, когда компании нужен не программист решающий задачи, а ходячий справочник по технологии, например .Net. Но если в 16-м на работу взяли сеньором моментально и без проблем после решения тестовой задачи (на решение дали сутки) + резюме, github и LinkedIn, то сейчас даже решение 3-х задач на отлично на codility за 2.5 часа и успешно пройденное затем техническое интервью не гарантировало получение работы — бред.

Затем в другой очень известной фирме с высокими зп тоже напрягся и решил эти тестовые задания на codility. На решение дали уже меньше — 1.5 часа, что непонятно: спортсменов по программированию или рабов на галеры нанимают: даже тестовые задания нормально не успеваешь составить на проверку и производительность кода. Но потом этот бред продолжился: тестовые задания дали ещё и на последующем техническом интервью, только решить уже нужно было в присутствии интервьюера за 15-20 мин — решил за 21 мин — отказ. Что происходит?!

Уже нарешался этих задач на codility массу — аллергия на них уже, если б это ещё получение работы гарантировало. Они могут мои предыдущие тесты посмотреть?! ;)
Забавный момент
Пишу рекрутеру: У меня есть 10 тестовых заданий, посмотрите их, все на github. Не хочу тратить время.
Ответ: Нет, мы хотим решение только нашего тестового задания.
Т.е. им в ломы тратить время на меня, а я должен тратить время на очередное гениальное тестовое задание.
угу
А вообще тому кто предлагает задачки сеньор или лид разработчикам с 15+ годами — надо просто пойти на хер))) Ибо они не адекватны)))

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

Простите, а можно пояснить для неопытных эту фразу?)
Не взлетит.
Оу, ясно, спасибо, а кто в этой ситуации взлететь-то должен, стартап, или человек на должности?
ПО.
Имелось в виду, что наняли такого «инженера», который сконструировал бетонный самолёт.

СЕО моей первой компании рассказывал анекдот, чем отличаются программисты СНГ от программистов повосточней. Действие происходит задолго до моды на аджайл и прочие техники контроля проекта.


Приходит ТЗ двум командам, востоку и нашим — создать бетонный самолет.
Первые говорят — нефик делать, месяц работы. Заказчик приходит через месяц — стоит бетонный самолет. Красивый, большой, документированный.


  • Окей, молодцы. А как он летает?
  • Летает? — спросили разработчики — Этого не было в ТЗ!
  • Блин, чуваки, это САМОЛЕТ. Он должен летать. Перемещаться в воздухе.
  • … многозначительное молчание

Наши говорят — два месяца, приходите. Заказчик возвращается в назначенный срок. Стоит паровоз. Обычный паровоз, не бетонный, на колесах, на рельсах, пыхтит.


  • Че это?
  • Понимаете, в чем дело. Мы просмотрели ТЗ и пришли к выводу, что самолет — это не то, что Вам надо. Ну бетон, да, дешево, но вы его потом замучаетесь саппортить, кроме того он не взлетит как надо. А Вам же перемещаться. Вот в пределах проектного времени мы запилили вот это средство передвижения. Удобное, поддерживаемое, надежное, предсказуемое.
О, во, благодарю, то, что я и хотел услышать! :)
Мне вот как-то ближе первый вариант. Нет в ТЗ — идите нахрен! А то понаплодят менеджеров, а задачи никто формулировать толком и не умеет. Постоянно приходится что-то доделывать, переделывать, на будущее потенциальное расширение проекта какой-то резерв оставлять (наверняка будут ещё то-то прикручивать — сделаю выход для него).
Вообще это часть работы Senior Developer — рассказывать заказчику, что он может упускать из виду.

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

Если разработчик не пытается выяснить, что именно надо заказчику и объяснить ему последствия его решений, я бы не сказал, что это Senior.
Как-то вы странно обязанности распределяете… Как по мне, то этими делами должен заниматься менеджер или продюсер.
Но даже тут постоянно возникают заковыки — когда ты пытаешься менеджеру объяснить даже не какие-то технические аспекты, а просто логические — условное:
— так нельзя сделать, потому что если юзер введёт имя длиннее 15 символов, то…
— так сделайте поле в 25 символов!
— а если в имени будет 30 символов (Характерный момент — обычно технари при проектировании не сходят на конкретику, а закладывают все возможные варианты. Т.е. оперируют алгеброй, а не арифметикой. Гуманитариям же кажется что достаточно поднять лимит и проблема решена)
— сделайте поле в тысячу символов!
— тогда это поле не влезет ни в один интерфейс!
слава богу, что поля ввода на самом деле имеют внутренний скролл и в визуально узкое поле можно вводить хоть все сочинение Льва Толстого

— Когда я копирую в поле логина содержимое третьего тома Войны и Мира, у меня зависает браузер! У вас баг на сайте!

пожалуйста, киньте скриншот с полным содержимым Войны и мира

вариант:
— укажит софт, который позволил вам выделить и скопировать третий том без зависания

PS: отмена!
обычный браузер позволяет легко выделять и копировать третий том

при попытке вставления в разные формы ввода в том же браузере было получено
— просто не реагирование формы вообще
— Некоторые при вставке из буфера — просто обрезали текст до минимальной величины
— зависания получено пока не было, но я не настоящий QA
И этот диалог про поле ввода великолепно объясняет почему формирование ТЗ — это общая работа. Что разработчик хочет от менеджера? Чтобы тот угадал нравящееся разработчику решение? У менеджера есть заказ от клиента в котором есть поле для ввода имени. Он это требование передал разработчику, дальше уже задача разработчика (тестировщика, аналитика, технаря с рандомной должностью созданной специально для таких вещей) определить возможные технические проблемы и пути их решения, описать эти пути с плюсами и минусами и заставить менеджера сделать выбор (либо заставить менеджера пнуть клиента чтобы выбрал он). Эту ситуацию невозможно решить только с одной стороны. Ну то есть возможно конечно, но именно из таких решений и появляются потом анекдоты про бесполезных менеджеров и бесполезных разработчиков.
Вообще это часть работы Senior Developer — рассказывать заказчику, что он может упускать из виду.


Вообще-то это задача аналитика переводить с клиентского на программистский.
Это если есть аналитик
Даже если его нет, то кто-то же этим занимается. Это задача аналитика как функции, а не как отдельного человека, и условный сеньор может эту функцию как исполнять, так и нет.
Верно.Часто это делегируют техлидам или тимлидам (если они программисты). В нашем случае подключают еще и архитекторов.

Это если в процессе работы предусмотрена функция аналитика. Кто её исполняет отдельный вопрос, но её просто может не быть во флоу разработки.

Вообще это часть работы Senior Developer — рассказывать заказчику, что он может упускать из виду.

Уточняющие вопросы, говорите? Их есть у меня! Усаживайтесь поудобнее, мы здесь задержимся надолго.

Конечно, надо подходить к вопросу разумно. Текст прекрасен как шутка, но если всерьез, то просто надо сразу спросить, почему нельзя использовать стандартную функцию.


А иногда заказчик сам не понимает, как ему надо. И тогда разумно предложить "сделаем пока так, а если что — переделаем". Как правило, останется как есть — т.е. заказчика все устраивает.

Если разработчик не пытается выяснить, что именно надо заказчику и объяснить ему последствия его решений, я бы не сказал, что это Senior.


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

Это должен аналитик делать, а не разработчик. Даже старший.
Если вы требуете точно ТЗ, то пишите сразу «без багов». Так не бывает? Вот и «точного ТЗ» не бывает.
А по-моему это отсыл к недавней катастрофе Б-777. Там вроде выяснили что ПО писалось через одно место индусами за 2$/час.

737 MAX? (MAX имеет значение, т.к. 737 сам по себе уже достаточно старый самолётик)

При этом проблем с софтом как раз и не было. Все работало, в соответствии со спецификациями предоставленными, инженерами с зарплатой >200к в год
Как раз наоборот — в статье написали что QA делали индусы, нешарящие в авиации.
Как раз там написано:
The coders from HCL were typically designing to specifications set by Boeing.

В соответствии со спецификациями, MCAS работал правильно
Тем не менее «грамотно» оттестированный индусами и «работающий» MSAC привел к трагедии. А если бы большие дяди не экономили бы «на спичках» и заказали QA где-нибудь поближе чем Индия то всё обошлось бы.
Попытка переложить ответственность на субподрядчика, который выполнил проект в соответветствии со спецификациями заказчика?
Ошибка сделанная Боингом — системная/архитектурная, никакое стороннее тестирование MCAS как отдельного модуля на соответствие спецификации, не выявило бы проблему, что этот модуль полагается на данные только от одного датчика.
Это было решение индусов, не распространять информацию о появлении новой системы среди пилотов?
Это вина индусов, что пилоты оказались не готовы к «штатному» отказу «самовольная перекладка стабилизатора»?

Кроме того, презрительный комментарий по поводу 9$ в час — это 90к рублей в месяц. Какие там зарплаты сейчас у Сухого или Яковлева?
9$ это цена, которую выставляет компания, а не конечная зарплата разработчика.
Компаний выставляла цену в 20-25 баксов в час и в изначалных статьях фигурировала эта цифра. Это уже позже, пересчитали предполагаемую цифру, которая доходила до разработчика (блумберг, кажется, был этим первым сайтом)
Вы внимательно читали мой комментарий? Я индусов винил? Нет. Они возможно сделали всё в рамках своих компетенций и тех «дырявых» спецификаций, что дал заказчик. Плюс еще дело в экономии в ИТ. Там где есть возможность сделать за 9уе вместо 20уе — всегда выберут 9уе (по крайней мере по такой цене продаются индийские гребцы исполнителем, по факту получающие может и меньше 1уе) — даже если на кону жизнь людей. Ведь всегда в случае всего можно спихнуть вину на технарей, не важно кто это будут — индусы, европейцы, китайцы, женщины; большие дяди как были на своих постах — так и остались. Что касаемо Сухого — я не знаю (и не обязан знать) что там у них с QA, но последний пожар на гражданском судне вряд ли заставит адекватного человека подумать, что «новый» Суперджет безопаснее 15-летнего Боинга\Эйрбаса\Эмбраера. Як? Гражданский? Вы серьезно? Кроме Як-40 за последние 10 лет из этого «бренда» я не видел ничего, да и то на задворках аэродрома с демонтированными движками.
Вы внимательно читали мой комментарий? Я индусов винил?

Определенно, да. Иначе я не знаю, как можно было прочитать этот комментарий:

Там вроде выяснили что ПО писалось через одно место индусами за 2$/час.


В итоге мы выяснили, что проблема не 9$ баксах в час, не в индусах и не в софте
Тогда в чем проблема по вашему? Продолжайте мысль…
Рыба как обычно гниет с головы.
А это как разз не так и сложно:
— Топ менеджеры, которые доят бренд 737го слишком долго
— Маркетологи, которые продали MAX как «тот же NG, только новый и экономичный». Переход с NG на MAX это 1 день наземного тренинга.
— КБ и главный конструктор, который допустил что в самолете есть система без дублирования
— Авиаконтролирующие органы (как в Штатах так и международные), которые сертифицировали этот самолет
— Авиакомпании, которые заставляют пилотов летать только на автоматике, с минимум практики управления руками. (Сгоревший суперджет, это как раз туда же)
— Пилоты, которые молча хавают и соглашаются с этой политикой.

Но сми форсят факт «это просто индусы наговнокодили»
>… но последний пожар на гражданском судне вряд ли заставит адекватного человека подумать, что «новый» Суперджет безопаснее 15-летнего Боинга\Эйрбаса\Эмбраера.

Ну вотт новый Суперджет поимел проблемы при посадке с превышением посадочной массы после удара молнии — ~половина выжила.
«Штатная» работа одной систем Боинга — выживших немае.
Странная нонче адекватность у людей.

Простите покорно, но "новый Суперджет поимел проблемы при посадке" всё же не "из-за превышения посадочной массы", а потому, что доходяга-пилот его об полосу бил-бил, и на третий раз таки разбил (смотрите сами). Как-то так.

Ну, тут пишут про перегрузки именно для посадки с превышением, а РТЭ мне, в отличие от РЛЭ (в котором отдельным пунктом посадка с превышением посадочной массы тоже есть), что-то нагуглить сходу не получилось.
Так что косяки пилотов косяками, но и помимо этого ИМХО были объективные факторы.

9 баксов в айти за бугром это очень мало для такого ответственного проекта. Я по молодости даже вмордпресс не допиливал на фрилансе меньше чем за 20. При отсутствии менеджмента и прочего бюрократического буллшита, с ним — нужно больше.

Моя поправка была относительно модели самолёта, у вас — 777 указан.

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

Там не проблема в ПО, а в менеджерах и вызванном этим плохом инженерном дизайне. Из-за маркетинговых требований пытались сделать новый самолет с точки зрения пилота точно такой же, как старый, только более эффективный. В итоге нагородили всяких костылей типа этого MCAS, который управлял самолетом игнорируя пилота и зависил от одного единственного дешевого датчика, который, сюрприз-сюрприз, иногда выходил из строя.


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

Странно, что вас в принципе позвали на собеседование. В нескольких компаниях до сих пор висят открытые вакансии по моему профилю, на которые я многократно отправлял резюме. Даже ни одного просмотра резюме. Прошло пять лет уже. Вакансии — до сих пор открыты!
Почему? А госконтракты. По некоторым из них у исполнителя должно быть X специалистов по специальности Y. «Смотрите! У нас тут открыта вакансия по специальности Y и уже есть 100500 откликов на эту вакансию, мы уже завтра наймем человека!»

Широко известная в узких кругах зарубежная финансовая контора. Там точно не госзаказ.

Проблема в том, что это все меняет мотивацию разработчиков. Нужно не учиться хорошо программировать, а учиться проходить собеседования. У меня есть знакомый, который начал прокачиваться именно в этом навыке, и потом менял работу каждые полгода, на каждом новом месте увеличивая себе зарплату на определенный процент исключительно за счет того, что мастерски проходил собеседования.
Вам это не напоминает грустную тенденцию в школьном образовании последних этак лет 15? Если что, я про ЕГЭ и ГИА, которые точно так же натаскивают на решение задач (тестов), а не на реальные знания)
Реальность диктует такие требования, поэтому людям приходится под них подстраиваться, чтобы выжить достичь успеха в социуме. Мотивация проста: не сдашь ЕГЭ -> не поступишь -> не получишь диплом -> не устроишься на нормальную работу. Когда я заканчивал школу, цепочка была такая.
Это в любой системе так, когда ставится KPI. И тогда все начинает сводится к достижению этого KPI любой ценой, даже с ущербом всех остальных показателей. Но проблема в том, что без KPI и оценок многие не могут. Возьмите, например, кол-во лайков и подписчиков в соцсетях. Для многих это превращается в смысл жизни.
К сожалению, вы правы, причем буквально. Недавно читал статью (сейчас не найду ссылку, к сожалению) о том, что в мире ежегодно несколько сотен людей совершают суицид потому, что их публикации в Инстаграм набирают слишком мало лайков (относительно того, сколько им хотелось бы) или потому, что их публикации набирают меньше лайков, чем публикации их друзей.
Это проблемы ментального здоровья уже, не будет лайков, будет что-то другое, не в них дело, в общем-то. Люди всегда мерялись письками, и всегда будут.

С другой стороны, как вы в большой организации будете проверять адекватность работы отделов? Нет KPI — нет оценки, и в этой ситуации часто разводится имитация бурной деятельности.

Да, так и есть. Без KPI тоже могут быть проблемы. Нужен какой-то баланс.
Чтобы проверять адекватность работников с помощью KPI, эти KPI сами должны быть адекватными.
Вот был я в Тунисе. У чистильщика пляжа есть KPI: чистота пляжа. Этот чёрт чистит пляж на тракторе, а потом скидывает весь мусор в море. Зато KPI выполнен: пляж с утра идеально вычесан от мусора. Правда, море превратилось в дерьморе.
Русские туристы пару раз чуть не побили его, но что ему делать? «Умный» манагер не предусмотрел вывоз мусора. Куда его девать, если за его наличие на берегу тракториста штрафуют?
А вот найти адекватных составителей KPI — нереально. Эти люди должны знать всё об оцениваемом участке работ, а сегодня начальнички «не любят погружаться». Знакомая фразочка? То-то!
Любой адекватный критерий эффективности перестаёт быть таковым, когда становится известен оцениваемому.

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

Если человек точит гайки, и эффективность его работы оценивается качеством (размеры и форма в пределах допусков) и количеством выточенных гаек, то никаких проблем в том что он знает критерии нет. Скорее наоборот, лучше до него сразу же их доводить.
С разработкой так не работает по той причине что большую часть выполняемых работ невозможно исчерпывающе описать и задать адекватные критерии качества.
Разработчики ребята в основном неглупые и ленивые, и всякие KPI часто воспринимают как вызов, сам даже за собой замечаю. Вы мне KPI, а я вот найду способ нихрена не делать и иметь самый высокий из возможных KPI, не потому что так уж хочу ничего не делать, а просто из спортивного интереса :)
Вот есть хорошая статья на Хабре по этому поводу (не в смысле челленджа, а в смысле объективной оценки работы разработчика)
Оцениваем разработчика на основе объективных данных
Читал раньше, благодаря вам перечитал еще раз. Статья любопытная, но кмк, это немного более запутанная разновидность оценки качества работы по количеству строк кода, приведшая к знаменитому «индус-кодингу».
Единственный нормальный вариант, на мой взгляд — работа относительно небольшими командами, в таких командах все на виду и халявщики особо не побездельничают. Коллеги лучше видят кто чем занимается, кто пашет, а кто фаллосы пинает. Просто руководству надо больше внимания уделять коллективу, общаться и люди сами все расскажут как есть, без всех этих шаманских KPI.

Короче первый принцип agile рулит — люди и их взаимодействия важнее процессов

Перевести их на то, что лет 30 назад в Союзе называли "хозрасчёт".

ЕГЭ — это экзамен, он не может ни на что натаскивать. Знания получают до экзамена, а не во время него. Если человек с «реальными знаниями» не может сдать тест, значит у него банально нет знаний. В тестах спрашивают ровно то, чему учили. Никто не просит в тесте по математике сплясать гопака. В этом и разница с собеседованием на работу, когда знания спрашивают в одной предметной области, а работать потом приходится в совершенно другой.
Сразу чувствуется, что вы закончили школу не меньше чем лет 13-15 назад и у вас еще нет детей старшего школьного возраста.
На самом деле сейчас выпускные классы сводятся именно к натаскиванию на решение определенного шаблона проверки знаний. Зачастую вам не пытаются составить всю структуру знаний, а дают именно подход для корректной сдачи экзамена. При этом в реальности человек может вообще не понимать, как эти знания применять. Точно как в примере с собеседованием — проходить умеют, а работать — нет.
ЗЫ это субъективный опыт, основанный на собственно сдаче (больше 10 лет назад) и на том, как учатся на текущий момент младшие братья\сестры жены, аккурат возраста сдачи ЕГЭ и ГИА…
При этом в реальности человек может вообще не понимать, как эти знания применять.
Там все еще хуже — в половине предметов знать как применять знания вместо тренировки шаблонов может легко дать заметно худший результат. Потому что проверять будут по шаблонам, но шаблонный ответ не всегда вообще правильный.
НЛО прилетело и опубликовало эту надпись здесь
Уверены что комментарий ко мне? Я то его уже сдавал и знаю, как к нему готовятся и что там спрашивают. Человек с улицы на 100 баллов ЕГЭ не сдаст) даже если у него за спиной красный диплом и отличные знания) У меня много примеров перед глазами было, кто готовился\учился в спец школах для одаренных и прочее, кто в итоге сдавал хуже тех, кто просто зубрили 2 года подряд и монотонно решали тесты)
За 10 лет форма заданий в ЕГЭ поменялась) да даже в те времена зубрежом можно было обеспечить себе не более 50-60 баллов
Т.е. я могу вас поздравить с 100 баллов который вы получили за экзамен в последние пару лет?) Тогда я за вас рад) Но вы скорее исключение, чем правило. 300 бальников даже на фоне страны не так много)
Эм, с чего Вы взяли, что у меня 100 баллов?) Как и у многих, у меня баллы посрезались на незазубриваемых задачах в основном (последние задачи С части, и сочинение по русскому подвалил).

За все предметы не скажу, но, объективно, ЕГЭ по информатике усложнился за 10 лет.

А еще я тоже сдавал ЕГЭ 10 лет назад)
Тогда вынужден признать, что фразу
>А вы попробуйте сходить и сдать ЕГЭ. Чисто для себя, чтобы убедиться, что получить там сотню — плёвое дело
Его ведь может сдать любой человек :-)

Я до конца не понимаю) И это либо сарказм либо это сильно выше моего понимания)
я воспринял ее как сарказм..)
Некропостинг, такой некропостинг, но я таки отвечу.

Ну я вот заканчивал школу когда этот ЕГЭ только еще вводился в пилотном режиме: в некоторых школах и некоторых регионах, и только потом его уже начали вводить массово. Плюс я в высшей школе, включая учебу, провел лет эдак 15 наверное :-) Зато вот жена у меня как раз попала на ЕГЭ, еще и сдавала его дважды с большим гапом — после школы и после технаря :-)

До ЕГЭ выпускные классы натаскивали на выпускные экзамены и решали шаблонные задачки, и параллельно выпускники ходили к репетиторам, чтобы те их натаскали на вступительные экзамены.
После введения ЕГЭ — старшеклассники натаскиваются на ЕГЭ и параллельно ходят к репетиторам дабы дополнительно натаскиваться на этот же ЕГЭ.
Вот ничего не изменилось. Вообще ничего.

Единственная ощутимая разница, что распределение выпускников стало меняться (не сразу причем): если раньше заметная часть оседала в универах недалеко от места жительства, то сейчас «стобальники» ломятся в столичные вузы. В общем свободы поступления стало больше. Хз, хорошо это плохо, но если бы я попал под ЕГЭ, то однозначно пошел бы в МГУ, а так пришлось учиться в универе по-проще. Коррупционная составляющая походу также уменьшилась: подозрительных выпускников «стобальников» встречалось куда меньше чем подозрительных медалистов, и частота подозрительных медалистов стала в общем-то уменьшаться.

А самое главное, в школе в общем-то особо больше и нечего делать, кроме как натаскиваться. Основные школьные знания — это по большей части тупо механические навыки элементарной алгебры и геометрии, в которой, ну вообще нет ничего такого, особенного, и правил русского языка — это вот обязательные предметы. И именно это ЕГЭ и проверяет, причем проверяет достаточно широко: если взять математику, то там ровно те задания которые школьник и должен уметь решать, причем делать это механически — если человек не помнит тригонометрические тождества или не может сходу решить квадратное уравнение, то в институте ему будет грустно… правда в институте уже достаточно много возможностей чтоб схитрить, а контроль знаний уже не является таким всеобъемлющим. А уж такие специфические школьные предметы как биология или физика, и аналогичные, лучше вообще забыть сразу после школьного выпуска — они очень далеки от реальности и в универе их придется все равно учить заново, но уже по-нормальному: они и до введения ЕГЭ и после введения ЕГЭ являются чисто ритуальными.

Замечу что в США тесты вообще везде сдаются, причем школьный выпускной SAT больше похож на тест по IQ + тест по английскому языку. И далее тесты сдаются на протяжении всего обучения, в том числе и в аспирантуру (GRE и GMAT). Вроде бы не жалуются — вон в прошлом году нобелевскую премию по физике очередной раз получили американцы (один из них правда французско-американский ученый) из американской же Bell Lab, но у них не только там достижения…
ЕГЭ и ГИА — прекрасная система. Идея и фундамент правильные. Проблемы бывают чисто прикладные (коррупция и низкая квалификация исполнительных органов на разных уровнях, неидеальный набор заданий), но идея однозначно лучше, чем то, что было до этого.
Кстати, то, что остатки хвалёной советской системы образования с трудом справляются с тем, чтобы подготовить среднего школьника к сдаче довольно простого (пока вы не целитесь в 80+, большинство экзаменов не очень сложные) экзамена без зубрёжки — это больше говорит об этой самой советской системе образования, чем о ЕГЭ и ГИА.
а я не говорю, что СИСТЕМА плохая. я говорю о том, что в реальности показатели подгоняются под эту систему проверки, а не на что то практически правильное.
Т.е. это косяк реализации, а не косяк самой абстрактной модели и ее целей\задач
До этого была гораздо более прозрачная система. Абы какие выпускные в школе (потому что ну реально, кому они вообще нужны?), а потом уже подросток сам решает что хочет делать — в армию, в ПТУ, или в институт. Если в институт — то в какой? И от этого уже зависит что он будет сдавать на вступительных и в каком объеме.
более прозрачная система
Абы какие выпускные в школе
Действительно, очень прозрачно и полезно.
а потом уже подросток сам решает что хочет делать
Да и сейчас решает.
И от этого уже зависит что он будет сдавать
И сейчас зависит, набор предметов и разница между профильной и общей математикой определяется именно тем, куда вы будете поступать.
и в каком объеме
Универсальный стандарт, определяющий. что вузы набирают не «кого понравится», а людей, которые по некоторому универсальному показателю показали себя лучше остальных — однозначно вин, это не обсуждается даже.
Универсальный стандарт, определяющий. что вузы набирают не «кого понравится», а людей, которые по некоторому универсальному показателю показали себя лучше остальных — однозначно вин, это не обсуждается даже.

Егэ не решение проблемы коррупции на вступительных экзаменах, оно конечно решило эту проблему, но привнесло еще кучу новых в и без того полную проблем систему образования. Вузы теперь вынуждены снижать свою планку до уровня егэ, либо терять студентов. Выпускники спецшкол с углубленным изучением теряют преимущество.
Вуз должен набирать тех, кто понравится вузу, а не государственным экзаменаторам. Выпускной экзамен не должен заменять вступительный.
Вузы теперь вынуждены снижать свою планку до уровня егэ, либо
терять студентов.
Нет, вузы просто набирают полные потоки олимпиадников.
Выпускники спецшкол с углубленным изучением теряют преимущество.
Нет, они гораздо легче сдают ЕГЭ, пишут олимпиады, и тем самым или получают 100 баллов за предмет автоматически, или вообще поступают без вступительных испытаний.

Государственный вуз, работающий на мои (и, вероятно, ваши — вы же тоже в/из России, как я понимаю) налоги не имеет никакого права набирать «кого понравится», должны быть объективные критерии.

Объективные критерии: результаты вступительных экзаменов. Пускай в той же форме, что ЕГЭ, но вот содержание каждый вуз точно должен иметь право выбирать сам.

Если содержание может быть любым, а не из заранее определенного списка, общего для всей страны, то мы вернемся к платным группам подготовки от института и фактическому ограничению в 1-2 возможных нормальных ВУЗа на выпускника. Потому что подготовится к большему количеству разных экзаменов (а они будут разными — нужно же стимулировать платить за подготовку) у абсолютного большинства выпускников не получится. То есть ровно та ситуация которая была до ЕГЭ. И это именно те причины по которым ЕГЭ вообще был создан — коррупционность зашкаливала просто. И я даже не говорю про взятки (которых тоже стало меньше с вводом ЕГЭ), речь о том что это достигалось совершенно легальными методами — специально подготовленными ВУЗом задачками которые практически нереально решить не узнав способ решения на платных курсах.
Ваш вариант работает только в случае если приемом занимаются кристально чистые люди на всех уровнях.
Нет, не должен, потому что это замыкает проверку на сам вуз.
Государственный вуз, а мы говорим о них, это не частная организация. Это организация с как минимум частичным бюджетным финансированием, которое осуществляется в том числе из налогов. И такая организация не должна принимать решения по воле левой пятки учёного совета или отдельных людей в структуре вуза, потому что чем больше власти замыкается на этих людей, тем меньше вероятность того, что эти решения будут приниматься ангельски честно. Они уже так не принимаются, это я вам как недавний студент скажу — в вузах очень много внутреннего политиканства, стремления ухватить побольше денег из самых разных источников, и так далее.

Автономный внутренний экзамен — это очень хорошая мотивация делать курсы в ключе «готовься у нас или умри не поступишь». Это, а также банальное количество таких разных экзаменов, лишает умных детей, которым не повезло родиться не там, готовиться к другому вузу, и т.д. поступить в хороший вуз, просто потому что учёному совету надо потешить ЧСВ.
Абы какие выпускные в школе
Действительно, очень прозрачно и полезно.


Можете обосновать необходимость выпускных экзаменов в школе?
Нужен общий стандарт либо выпускных, либо вступительных экзаменов, чтобы несколько выровнять шансы людей на поступление в хороший вуз по признакам, отличным от социально-экономических в чистом виде (родился в правильном семье, живу в нужном городе, грубо говоря).
Программа образования безусловно плохая, но как ее можно ругать за то, что она не соответствует экзамену, который ввели после нее? Егэ прекрасный пример реализации через задницу. Выпускной экзамен должен проверять качество образования, которое дала школа, сначала нужно было приводить в порядок образование.

Система оценки знаний может и хорошаяя, но вот использование её в качестве основного критерия приёма в вузы — нет.

Знания студентов должны быть единственным критерием приёма в вузы, помимо eligibility (вы закончили 11 классов школы, вы имеете право претендовать на бюджетное обучение, если мы говорим о бюджете, и т.д.). Соответственно покуда ЕГЭ — лучшая из существующих в России систем объективной и комплексной оценки знаний студентов, результаты ЕГЭ — лучший критерий для приёма в вузы, да, именно так.

Это по вашему мнению это лучшая система оценки знаний.

Да ладно, я учился до ЕГЭ, и абсолютно та же ситуация была, разве что натаскивали не на ЕГЭ а на контрольные.
НЛО прилетело и опубликовало эту надпись здесь
Если компании требуется писать ПО основанное на умении решать подобные задачки, то, может, им и не нужен никакой senior? Если ведущего программиста можно определить по умению решать задачи, то, по логике, любой, кто решит такую задачу — ведущий программист.
Просто изначально верная задача «отсеивать неподходящих кандидатов» неверно решается. Вводя формальные признаки фильтрации надо понимать, что искомая выборка характеризуется этими признаками. И вот на этом этапе облом, потому что искомая выборка «ведущие программисты» не обладает признаком «умеет решать алгоритмические задачи».
НЛО прилетело и опубликовало эту надпись здесь
Альтернатива задачкам — работа в консалтинге. Доверие фирме распространяется на ее консультантов, поэтому обычно речь идет об одном собеседовании. По прошествии некоторого периода, если работа консультанта оказывается полезной, его приглашают в штат. Плюсы и в том, что токсичное место работы (у клиента) проще сменить, не прерывая при этом работу в консалтинговой фирме.

Очень редко пишут про работу в консалтинге, интересно что это за зверь такой. Можете пару слов писануть — как это работает, есть ли такие компании в России, правда ли что там авральный режим но огромные зарплаты и периоды безработья ?

О, это длинная история, я к ней подступался в «Дефрагментации мозга», но уже 6 лет прошло.
С российской спецификой консалтинга знаком поверхностно, однако автор текста тоже не в РФ работает.
Если коротко, то консалтинговая фирма сосредотачивается на технической и/или функциональной компетенции сотрудников, продавая их клиентам на проекты по дневной ставке на несколько месяцев. Миссии экспертизы/аудита более короткие, от нескольких дней до недель. Клиент доверяет фирме, поэтому на короткие миссии вообще никаких собеседований не происходит, на длинные — одно-два, обычно совмещенные. Зарплаты немного выше, чем на постоянных позициях, но не в разы, конечно. Неудобство разве что в сильной динамике среды. Тем, кто привык годами «пилить» одно и то же с теми же и на том же будет трудно.

В рунете подобные фирмы называются галерами и отношение к ним неоднозначное.

Как я уже сказал, с российской спецификой знаком мало, в основном сталкивался с отсутствием культуры работы с консультантами, когда месяцами ищется свободный специалист на рынке. Исключение — внедрение ERP, там это хорошо работает с 1990-х.
Консалтинговая фирма по определению небольшая. Когда она растет, то либо начинает брать заказы, проекты себе, либо превращается в «галеру» (бодишоп в США, продавцы мяса во Франции) и перестает быть консалтинговой — в крупной фирме нельзя удержать экспертов, большая текучка, уровень компетентности быстро падает.
Хм… PwC (pricewaterhousecoopers) это небольшая? А Java програмисты там работают, в основном, как консультанты — на краткросрочных проектах.
PwC — хороший, но единичный пример (и специализируются они совсем не на Яве и ИТ). Несмотря на размер они прилагают массу усилий для поддержания уровня компетентности «выше среднего по больнице». Начиная с пяти собеседований для отсева кандидатов.
В крупной фирме это дорого и хлопотно, поэтому их единицы, тогда как типовая консалтинговая фирма оптимального размера — 50-150 человек.
P.S. Минусовал не я, не люблю это дело. Только «лайки», LinkedIn рулит :)

Сколько времени может занимать консалтинг на одном проекте и когда это перестает быть уже консалтингом и становиться аутстафингом ?

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

Спасибо! Звучит очень интересно, пойду гуглить где такие специалисты нужны.

Видимо для РФ типовой консультант это внедренец ERP (SAP, Dynamics, 1С...), специалисты Microsoft (MSPD...), Oracle, программисты с финансовым бэкграундом (банки).
Успехов вам!
Дополнительно вам пригодится знание предметной области, разговорный английский и понимание индусского разговорного английского.
Ну и широкий кругозор — часто после внедрения системы Х будут спрашивать, что лучше внедрять и интегрировать к ней, продукт Y,Z или что-то ещё и если вы знаете о них, а лучше — и о подводных камнях этих систем, ваш контракт продлевают и расширяют.
Российская специфика тут только в отношении, сами-то компании вполне себе международные. Я даже добавлю что неоднозначное отношение к таким галерам есть, пожалуй, во всех странах. Кто-то доволен — адекватные зарплаты и постоянно новые проекты, интересно. Кто-то жалуется — зарплаты могут быть и меньше чем у других компаний на рынке (зависит собственно от страны), вовлечения в проект нет никакого, каких-то бонусов вроде корпоративов обычно толком нет, ну и так далее.

Смотря откуда сотрудник и какие у него взгляды. Работаю в чём-то подобном в Японии и вижу полный спектр эмоций — кто-то доволен чисто потому, что в Японии; кто-то недоволен из-за того, что не дома; кто-то вообще на седьмом небе ибо палкой не бьют и хорошо.


Понятно, что у мьянмийца, который приехал с зарплаты в 70 баксов, будет кайф и стремление удержаться, а у кого-то типа меня наоборот — ибо платят меньше, ходить в офис надо, монитор мелкий, клавиатура из говна, мышка в руке теряется, вместо кода спагетти и вообще шавухи купить негде :-)

Ниже не про консалтинг. Консалтинг, это когда ты сам делаешь себе фирму, и сам платишь себе зарплату, выставляя клиенту счет за услуги: это может быть тюнинг виртуальной машины, оптимизация производительности, ускорение базы данных, перевод на новую платформу, а может быть и обычное программирование. Суть в том, что репутация работает на вас.

Когда «ты сам делаешь себе фирму» это называется фриланс или ЧП. При этом можно быть консультантом, а можно и не быть.

Да, так лучше. Однако, консультанты обычно фрилансерят, а не гребут на галерах.

Консалтинг — это практика продажи знаний и экспертизы, т.е. консультирование. Консалтинг бывает в самых разных сферах. Компания-клиент может заказать консалтинговый проект по разработке бизнес-стратегии, по оптимизации бизнес-процессов, по выбору или внедрению информационной системы, по диагностике предприятия.
К консультантам обращаются, когда либо не хватает собственной экспертизы, либо нужно подтвердить уже разработанное решение именем известной компании.
В России консультантов на любой вкус. Размер зарплаты зависит от конкретного вида консалтинга, загруженность — от того, насколько хорошо дела идут у компании.
Альтернатива задачкам — работа в консалтинге

Для меня альтернатива задачкам сделать рабочий, оплачиваемый мини-проект перед устройством на работу. За это время познакомишься с командой, постановкой задачи, внедрением и другими важными подводными камнями и тараканами.
Там где спрашивают про задачи не работал, не сложилось, но 2 компании где делал тестовые проекты, перед устройством, самые классные (тфу-тфу-тфу).
Это была лично моя инициатива проверить компанию и что бы компания проверила меня.
Я уже описывал свои критерии выбора работодателя, повторятся не буду, может кому будет интересно habr.com/ru/post/423953/#comment_19142917"
Бедняга, это он ещё тилидом не был. На следующих этапах собеседования превратятся в допрос с пристрастием в стиле «а кто ты такой, пришёл тут с улицы руководить МНОЙ?».

Автор находится на самом начале пути, в стадии отрицания. Очевидно, что его 5-летний опыт не релевантен рынку, т.к.:

а) Он не менял работу и начал профессионально деформироваться (в компаниях редко бывают разнообразные проекты, если только это не consulting). Скорее всего, рынок ушел сильно вперёд.

б) 5 лет без собеседований. Крышки люков и автобусы теннисных мячиков постепенно уходят в прошлое, большое О и красно-черные деревья остаются, набирает популярность код в прямом эфире, тестовые задания больше походят на реальные проблемы.

в) Зона комфорта, высокомерие и тонкокожесть. Автор очень болезненно переживает стадию «окунания в г*но» на собеседованиях, возможно заболел по этой же причине. Лечится работой над собой и своими навыками: codewars.com, фильмами про Рокки, Karate Kid и тд.

г) Senior в одной компании != senior в другой. На новой работе выслуга лет и опыт работы с конкретными людьми над определенным продуктом могут обесцениться практически полностью. Остаются только эмпирический опыт и computer science.
a) — не совсем понятно
б) устраивался в одну международную контору, они меня своими задачками три часа мучили, меня это откровенно на втором часу подзнадоело, и спрашивали всякую ересь, вот никак не связанную с реальными задачами. Другая контора, тоже межграничная, спрашивала, а вы знаете map'у, я откровенно отвечаю поясните, что вы имеете в виду (хэшмам, тримап, редусемап, или объект из js фреймворка, отвественного за отображение граф данных), вместо пояснения галочка в опроснике… Ну и на кой писать реализацию какой то мапы, изобретая велосипед? Каждый день их писать что ли?)
в) окунание в гогно — это эдакий способ сбить цену работнику, так себе, если с ходу, незнакомого человека макают в гогно — лесом товарищей.
г) сеньор это таки не совсем про опыт, хотя он тоже важен, он скорее про способ мышления.
Благодарю за развернутый ответ. Все вышесказанное основано на собственном опыте на рынке США. На прошлой неделе, наконец, закончись мои собственные «хождения по мукам», поэтому тема оригинальной статьи особенна близка и свежа в памяти.

а) Пять лет — целая жизнь по меркам технологий. При найме человек, как правило, более-менее соответствует требованиям рынка, но со временем начинает отставать, тк бизнес ориентируется на проверенные временем, часто «уже не модные» решения.

Исключения тоже есть. Из моей практики это либо консультанты (у них каждый проект может быть уникальным, надо постоянно быть в тонусе), либо AAA-компании в авангарде индустрии (Google, Facebook и тд)

б) В последние разы меня просили написать более-менее реальные CRUD приложения, а один раз просто дали кусок продакшена и попросили запилить фичу, попутно разобравшись с их архитектурой кода.

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

г) Я использовал в контексте должности. Senior в ООО «Рога и копыта» != Senior в Google.

На определенном этапе карьеры должности перестают значить так много, как вначале. Иногда имеет смысл перейти работать на меньшую должность (и ответственность) и большие деньги в более высокотехнологичную компанию (win-win), а потом еще и получить там повышение (еще один win).
>а) Пять лет — целая жизнь по меркам технологий. При найме человек, как правило, более-менее соответствует требованиям рынка, но со временем начинает отставать, тк бизнес ориентируется на проверенные временем, часто «уже не модные» решения.

Совершенно не обязательно. Я неоднократно менял проекты в пределах компаний, и это был не консалтинг. Особо модных решений может и не было, но одинаковых все пять лет не было тоже.
Мне тоже приходилось паять и программировать SoC, (де)нормализовывать базы и рисовать дизайн — все это в разных проектах одного и того же стартапа. А потом 4 года воевать в суровом энтерпрайзе с legacy на Mootools в 1M LOC.

По моему личному, субъективному, не претендующему ни на что 14-летнему опыту — интересные и актуальные решения на продакшене в энтерпрайзе встречались в 10% случаев.
Если что, я отвечал вот на эту фразу:
> (в компаниях редко бывают разнообразные проекты, если только это не consulting)

Я и не спорю с вашим личным мнением. Я только уточняю, что исключения в этом пункте — не обязательно консалтинг. Это, к примеру, крупные и очень крупные банки. А таких видел не меньше трех.

Да даже в рамках довольно небольших и даже не ИТ компаний часто бывает куча разнообразных проектах на разных стэках (ну или выбираешь стэк сам). Как минимум внутренние системы и внешние публичные "витрины"

Готовьтесь к решению тестовых задачек, пока время не поджимает.

Никогда не понимал, зачем. Потребность в программистах, а особенно в таких, кто реально может решать задачи, которые нужно решить — огромна, и пока что всё только растёт.

В таких условиях реагировать на попытки дрессировки тебя неумелыми нанимателями (через решение задачек, через вопросы о круглых люках, и прочую байду) — совершенно излишне. Просто идите к тем, у кого на собеседованиях нет повышенного градуса неадеквата, а от остальных немедленно уходите, встретив первые признаки неадеквата.
Когда ты чего то стоишь — покупатель найдётся.
Когда не очень — … тогда придётся учиться проходить собеседования.
Сейчас состояние рынка труда в ИТ такое, что чего-то стоит практически любой, кто вообще хоть какой-то код может писать и адекватно общаться с окружающими. И края этому не видно.
ну да.
Но таких людей — единицы, среди безбрежного океана странных личностей.
Я в разное время видел много соискателей… и это грусть-тоска. =)
Я уже не говорю про то, что потом за ними в коде остаётся.

Так что — первых разбирают достаточно бодренько (по крайней мере, больше 3-4 собеседований они редко проходят, что бы не получить оффер), а последние — учатся проходить собеседования.
Мой опыт также говорит, что «риск потерять двоих кандитатов из пула стоит сэкономленного времени», это странное утверждение. Из 500 заявок как раз двое и будут, которые вам нужны. Ну еще наберется человек 50, которые продержатся месяц или два, а нанять кого-то из них, это куда большие потери, чем повнимательнее поискать.
Расскажите это тем, кто например устраиваетсясейчас в KPMG во Франкфурте, где хрюша проводит каждый день по 5 собеседований и где на вакансию претендует порядка 20 человек, причем с хорошим английским и ненулевым немецким.
Вы мне сейчас действительно хотите рассказать что в Германии стоит очередь в 20 человек на какое-то айтишное рабочее место, да ещё и в контору типа KPMG, где не особо новых технологий не используют, ни условия труда идеальными назвать нельзя, ни звёздочки на кунуну особого впечатления не производят? :)

Лично у меня опыт просто противоположный. Да просто сделайте профиль среднего сениора на степстоне или монстере и посмотрите сколько предложений вам придёт в течении первого дня :)
Вы мне сейчас действительно хотите рассказать что в Германии стоит очередь в 20 человек на какое-то айтишное рабочее место, да ещё и в контору типа KPMG, где не особо новых технологий не используют, ни условия труда идеальными назвать нельзя, ни звёздочки на кунуну особого впечатления не производят? :)


Именно так. Потому как это мой свежий личный опыт с небольшим инсайдом + опыт коллеги, подававшегося туда же месяц назад. Просто они могут себе позволить хантить со всего ЕС + привет Brexit, подкинувший до фига народа из Англии на рынок во Франкфурте. По слухам, в Commerzbank ровно такая же картина — конвеер на сотни кандидатов.
Ок, я могу себе представить что конкретно сейчас и конкретно во Франкфурте для айтишника с определённым стеком технологий стало сложнее найти работу. Но в очередь в 20 человек на место я всё равно не верю.
Но в очередь в 20 человек на место я всё равно не верю.

Если под "очередью из 20 человек" понимать каких-то 20 человек, а не тех, что нормально подходят — то вполне реально, может и все 100 быть.

привет Brexit, подкинувший до фига народа из Англии на рынок во Франкфурте.
А как именно брексит привёл к этому?
Конечно. Но вот зарплата у тех кто стоит немного но натренирован проходить такие собеседования может быть выше чем даже у того, кто знает больше, но прыгать через обруч не хочет. Так что если вы не рок стар, то вам придется расставлять приоритеты — деньги или адекватность нанимателя.
Увы, но не все так просто. Сверхпрофессионалы даже чаще не могут найти работу чем студенты: большинство компаний понимают что могут не потянуть таких специалистов, либо считают что ему у них будет со временем тесно, ибо они не смогут ему гарантировать расширение круга интересных задач, а так же плюшек для удержания, ибо он больно крут для такого места, но понятно что свою крутизну при этом скрывать не выход, ибо лгать в резюме нехорошо, особенно когда вскроется, что ты работал в условном Яндексе. Зарплатные ожидания понижать тоже не выход, мой знакомый рекрутер рассказывал, что нередки случаи когда на собеседования являются рок-звезды на зарплату 30 тысяч, таких обычно они отсеивают, потому-что непонятны мотивы почему человек в возрасте со знаниями на 300 000 идет на 30 000, ибо это явно не тот предел для такого специалиста.
таких обычно они отсеивают, потому-что непонятны мотивы почему человек в возрасте со знаниями на 300 000 идет на 30 000, ибо это явно не тот предел для такого специалиста.

А открыть рот и словами спросить человека, почему он так делает — не? Слишком сложно?
причин такого много:
1. на куда джуна проще пройти если до этого программированием почти не занимался, например раз в неделю (электронщик или админ) или
2. или есть желание просто попробовать новую отрасль без заморочек со всеми этими свистоплясками с 5-10 собесами и цирком у доски. или просто хочешь обучиться чему то нахаляву да ещё на кофе заработать (почему бы и нет?).
3. есть очень хорошие компании которые совершенно не умеют искать и собеседовать людей и поэтому проще уйти на минимальную должность (умолчав что ты спец в искомой ими области с 20летним стажем) и быстро получить повышение, тем-более если финансовый жирок позволяет.
4. Я знаю одного человека который тусил по компаниям которые пользовались трудом неопытных студентов с ставкой в 20-30тр и в свой стартап набрал оттуда сливки — команду крепких разрабов которые остальных тащили и задалбывались, в итоге стартап выстрелил в тех плане.
Да я знаю, что причин много. Мне непонятен вывод «таких обычно отсеивают, потому что нам непонятно, как вообще так». Непонятно? Так спросите.

Далеко не факт, что скажут правду.

Далеко не факт, что скажут неправду.
Нестандартное — не нужно. Это основополагающий принцип любого бизнес-конвеера.

Если вы хотите в фейсбук, амазон или "неадекватный" гугл, задачки решать пртдется научиться.

А если не хотим?
Все равно придется
Но виллу в Испании хотим, так что придётся в гугл :)
Пардон, а кто вам обещал виллу? В смысле, покажите мне реальные проекты, на которые гугль берет, очень хочется посмотреть.

Я поясню, почему скажем я совершенно не хочу в фейсбук. Для начала — на мой взгляд, все их видимые снаружи продукты — полное г. Я не утверждаю, что мои продукты скажем лучше — просто у меня не возникает желания ассоциироваться с этим. Иначе говоря, доверие к компании — на нуле. Гугль… ну это другое, но не сильно лучше. Наверное, в дебрях алфавита можно найти очень интересные проекты с высокой зарплатой, но вот так чтобы бежать туда ради виллы в Испании?

Охотно верю при этом, что могут быть и другие взгляды на это, в данном случае это всего лишь мое лично мнение.
к сожалению там где можно заработать на виллу в Испании, порой приходится отдавать две-три таких «виллы» за аренду жилья, так что есть некоторые сомнения, что по итогу, можно заработать на «виллу».
Если вы сами куда-то хотите — то разумеется, пляшите так, как потребуют в том самом месте (если вам после этих плясок туда не расхочется, разумеется).

А если нет?
Так самое смешное в том, что при этом со стороны нанимателя это почему-то выглядит одновременно как:
>Теперь с почти неограниченным пулом претендентов они могут себе это позволить.
и
>Потребность в программистах велика как никогда и тем более в Senior Developer'ах.

Когда я бывал на стороне нанимателя, я ни разу не видел живьем этот «почти неограниченный пул претендентов». И даже не слышал про такой. Только второй вариант имеет место — большая потребность, и малый выбор кандидатов. И даже не на синьорские позиции иногда.

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

>если вам после этих плясок туда не расхочется, разумеется
Очень может быть, что и до них.
Неограниченный пул — он у гуглов. Просто проблема в том, что все хотят быть гуглом, оттого и культ карго. В майкрософт 400 человек на место, значит программистов неограниченно, они и в мой ооо вектор пойдут.
>Просто проблема в том, что все хотят быть гуглом
Проблема в том, что не все. Я вот например не хочу. Причем давно. И не столько потому, что задачки не хочется, сколько потому, что хрен их поймешь, в какой проект тебя засунут в итоге. И именно гугли с фейсбуками этим как раз страдают в большей степени.

Впрочем, если сравнивать с любой другой типовой конторой — то да, у некоторых практически неограниченный. Ну и так, просто на заметку — из текста вроде бы не следует, что речь конкретно о гугле. Оно там как-то неявно очень сильно обобщилось.
Гугл звонит и пишет раз-два в год.

И каждый раз я у них спрашиваю: мне все еще придется у вас 5 часов рисовать на доске фломастером всякие квик-мерж-хип-сорты, жонглировать красно-черными деревьями и считать О-большое?

Говорят — придется. До свидания.

А я сходил. Прикольно, ничего сложного, с тремя из пяти интервьюеров было время играть в гляделки после того, как я ответил на все вопросы, это было забавно. Потом какой-то вялотекущий team matching, это уже менее забавно.


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

А что именно за политика?

Весь ваш интеллектуальный труд принадлежит им (по крайней мере, в США и конкретно в Нью-Йорке, здесь законы позволяют такие рабочие контракты, в Калифорнии может быть повыгоднее для работника). Ну, кроме, возможно, книг по садоводству, если вы вдруг решите таковые писать.


Хотите в свободное время по вечерам и выходным делать свой проект на гитхабе? Фигушки, согласуйте, запрашивайте разрешение, ставьте копирайт (или авторство, хз) гугла. Можно и без этого, но это сложно и с существенно меньшей вероятностью разрешения. И если ваш проект вдруг противоречит их интересам (ну там, движок для адблокера захотите написать, клиент для Телеграма, или JS-компилятор, хз), то вам им спокойно заниматься не дадут. А интересов у гугла много.


Днём пишете опердни на Java, а хотите в свободное время писать статьи по теории типов? Согласуйте, это слишком близкие области.


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

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

Ну, кстати, зависит.


В больших компаниях как раз очень просто либо имитировать бурную деятельность, а на самом деле не делать нихрена (в смысле того, что на выходе этой бурной деятельности), либо тихо сидеть в сторонке с 9 до 5, не отсвечивать и заниматься своими делами (которые вполне могут быть связаны при этом с самопрокачкой, да).


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

У нас в японской компании де-юре самопрокачка запрещена в силу белого списка софта и отгороженного политиками интернета.
Де-факто наш офис какой-то "удалённый" и поэтому имеет обычный неограниченный интернет, поэтому SSH с иксами домой в РФ и оттуда можно делать что хочешь.
Отстрелялись с релизом, клиенты ещё не пришли в себя от празднования, делать нефиг всё равно, так можно Rust покурить :-)

Дурь какая. Закрывать разработчикам доступ везде? А зачем вы там работаете?

Работаю, чтобы накопить на перевозку крупногабарита и уехать домой, ну и параллельно по концертам всяким походить :-)


Здесь-то ограничений на сети нету, но на не-своём компе логиниться куда-то в свои аккаунты не хочется, поэтому удалённые иксы и только.


А до того сидел в компании, принадлежащей одному автопроизводителю, там да, был интернет через прокси и с кучей лимитов (в том числе отрублен habrastorage). Зато там видели моё собеседование и поэтому забивали на то, что я в свободное время пишу что-то своё, и игнорирую вайтлист, лишь бы не сбежал :-)


В локалке нашелся установочник макоси, засунул в виртуалбокс и вспоминал былое в икскоде.
А код в обход всех их изощрений прекрасно дёргался на гитхаб протоколом Git-over-GoogleMaps :-)


Впрочем, у них изощрения как раз были оправданными, ибо там серьёзные данные на машины, которые конкурентам были бы мягко говоря интересны. Что не отменяет того, что отношение удручает — ты NDA подпиши, но зондов мы тебе всё равно напихаем.

А код в обход всех их изощрений прекрасно дёргался на гитхаб протоколом Git-over-GoogleMaps
Вы имеете в виду Git over Google Translate?

Нет, именно мапсы.


Краткий гайд по выживанию в анально отгороженной среде

Тянем репу зипом с гитхаба (ибо git не алё). Распаковываем, создаём внутри репозиторий гита. Уходим на бранч develop.
Работаем с кодом. Делаем коммиты как обычно.
В конце рабочего дня делаем (Cygwin)


git format-patch master --stdout | gzip --best | base64 > /dev/clipboard

Опционально можно добавить шифрование.


Идём в гугловский My Maps, ставим пин на любимую кафешку, в описание делаем Ctl-V, чуть-чуть ждём и сохраняем.


Придя в безопасное окружение открываем мапсы, копируем то, что насохраняли и делаем (Cygwin)


cat /dev/clipboard | gunzip - | base64 --decode | git apply

Вуаля, коммиты из закрытой среды перетекли в открытую. Пушимся, на следующий день повторяем. Если из дома не работать, а только пушиться, можно зип не тянуть каждый раз (в моём случае было актуально для репы под 300 метров).


Можно было, конечно, всё заскриптовать, но больно сложно для пары раз.


В теории так выносятся любые файлы, как показала практика, емнип до 25 мегабайт (до закодирования) влезало в один пин спокойно, лишь бы браузер не грохнулся.
Заносить было проще, на крайняк приклеиванием хедера и куска от PDF к зашифрованному tgz с последующей выкачкой.
Что как бы намекает на всю эту "безопасность" без эиргапа...

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

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

И в такой момент задаёшься вопросом, стоит ли такая компания того, чтобы тупо продавать ей впустую время своей жизни за деньги?

На обеде вполне нормально поиграть 3-4 партии.
Кому как, я 8 часов без перерыва работать не могу, не хватает. Раз в пару часов встать, прогуляться, чайку-кофейку, на турничок, глядишь и силы появились.

Опять же, это если отталкиваться от условия, что надо работать 8 часов, а не по мере решения проблемы/задачи :-)

Это вам даже не эффективных менеджеров, а нейробиологов пинать нужно. Это они, стервецы, удумали, что умеренная физическая активность позволяет мозгу лучше работать. При чём и в краткосрочной, и в долгосрочной перспективе. Так что, если вы не ночной сторож, которому платят за часы, а не за результат мозговой деятельности, то работодатель действует в собственных интересах, соблазняя вас всякими пинг-понгами.
Я лучше проведу на работе часа четыре, если важен именно результат, а не затраченные часы, а оставшимся временем распоряжусь по своему желанию, чем буду торчать на работе по 12 часов, убивая скуку на всяких пинг-понгах.
О пользе физической активности я в курсе, обычно хватает короткой прогулки, полезно для организма и дает возможность оторваться и подумать.
НЛО прилетело и опубликовало эту надпись здесь
Ну, кому что нравится.

Если меня припечет работать именно в Гугле (или прочих буквах FANG) — пойду, конечно, обратно вспоминать все эти сортировки и прочее, которые мне пока в реальной работе пригодились примерно ноль раз. Поэтому я считаю что это бесполезное занятие на собеседованиях, в отличии от того же Distributed Systems Design который у них есть на SRE.
Но хрен с деревьями этими, у них же по личным занятиям в свободное время политика драконовская.
В Европе, вроде, такое невозможно. Представляю себе что тут начнется если работодатель начнет мне указывать чем в свободное время заниматься… дикость. Минус 1 балл к переезду в US :)
Если меня припечет работать именно в Гугле (или прочих буквах FANG) — пойду, конечно, обратно вспоминать все эти сортировки и прочее, которые мне пока в реальной работе пригодились примерно ноль раз.

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


В Европе, вроде, такое невозможно. Представляю себе что тут начнется если работодатель начнет мне указывать чем в свободное время заниматься… дикость. Минус 1 балл к переезду в US :)

Ну, это вопрос выбора и конкретного контракта. Моему текущему работодателю плевать вот, например. А куче других людей плевать на все эти внеклассные активности, судя по тому, как они хотят в Гугл. Хорошо, когда есть выбор!

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

Не все так плохо. Могу сказать со стороны их поиска на позиции SRE. В Амазоне да, привет hackerrank. В Гугле, техническое интервью представляет из себя общение с сеньором/лидом на технические вопросы и последующее решение задачки, но онлайн и без привязки к синтаксису (хоть псевдокодом), лишь бы логика была верная. Конечно, вы скажете что, «да один фиг олимпиадные задачки решать», но по-моему мнению, это намного проще, когда есть живой диалог. Как минимум видно, что потенциальному нанимателю не все равно.
В Гугле, техническое интервью представляет из себя общение с сеньором/лидом на технические вопросы и последующее решение задачки, но онлайн и без привязки к синтаксису (хоть псевдокодом), лишь бы логика была верная.
Так это первый, удаленный этап же. Потом ты топаешь к ним в офис и имеешь 4-5 интервью по часу с разными людьми и вайтбордом. Может вайтборд уже и позволяют заменить на ноут, как указали выше, но это не делает процесс более полезным на мой взгляд.
Да, согласен с вами. Спрашивал у HR, про все этапы которые будут. Ответ был такой: есть несколько команд которые заинтересованы, поэтому на очном интервью, будут этапы с каждой из них. На что я попросил краткое описание стэка и задач, которые использует каждая из команд, чтобы сузить выборку. Оказывается так можно. Потенциально я снизил свои «шансы попасть в Гугл», но это и не является моей целью. Важно найти интересное место, а не громкое имя, имхо.
Ответ был такой: есть несколько команд которые заинтересованы, поэтому на очном интервью, будут этапы с каждой из них
Нет там команд в контексте интервью. Каждое из них с отдельным человеком — он потом пишет отзыв в Hiring Committee, который уже по совокупности отзывов от всех интервьюеров решает брать тебя или нет. И вот уже после этого только возможен выбор команды.

Это насколько я понял как раз один из их способов избежать предвзятости при найме. Сомнительный, как по мне…
В СНГ все легко и просто с работой. В бей эрия решения задачек не хватит для сеньера.
НЛО прилетело и опубликовало эту надпись здесь
Лет пять назад собеседовался в ЕПАМ, меня там заставляли рисовать домики (после успешного прохождения техинтервью) и доскребывались почему я этот домик именно так нарисовал, а не как-то по-другому. Ну и еще всякая лабуда типа оценить сколько было продано бензина на ближайшей заправке, еще что-то там… А еще постоянно намекали что работать там придется по выходным и сверхурочно и скорее всего задаром.
В итоге я тоже на эти галеры не попал, о чем нисколько не жалею.
Может это был тест на то, спросите ли вы «зачем» или нет
Может быть. Но у меня больше сложилось ощущение что человек просто надергал в сети «заковыристых задачек» из статей — «как стать профессиональным психологом за полчаса и три урока» и решил тут-же, не отходя от кассы их применить.
В любом случае я давно уже не связываюсь с местами где неоплачиваемая работа в выходные считается нормой рабочего процесса, поэтому ни о чем не жалею.
эхх еслиб они ещё эти уроки делали и статьи читали, как то на вакансию разраба электроники автооборудовния, на полном серъёзе, попросили заполнить анкету, в которой часть вопросов была связана с гос тайной а часть что то там про звания и устав. Погуглив понял что это взято из военного опросника в случае если человек с секретностью хочет забугор и это не первая а N ая анкета в случае… итд
Часто эти собеседования просто вешают на какого-либо человека, особо не интересуясь его желанием всем этим заниматься, а он идет по пути наименьшего сопротивления, «наотлюбись». Вот и имеем, то что имеем. Хорошие кандидаты отсеиваются, на фирме дефицит специалистов да еще и рабочее время проводящих интервью оплачивается впустую.

А в черный список за что?

Да чёрные списки скорее всего существуют, например, украинский чёрный список на весь инет прославился. Ну а я умудрился попасть в чёрный список Яндекса, и сразу рекрутеров со всех галер типа датаарта и епама как рукой сняло, они после этого даже прервали диалог который вёлся. А попал забавно — им нужно было сделать ускорение нейронок на FPGA причём скорее аппаратную часть, забраковали меня после теста на веб программирование с формулировкой «не ИТшник а мошенник какой то, в чёрный список тебя!» после того как я честно признался что на JS дерево не могу развернуть и не знаю что за грязные хаки мне на задание выдали (а там судя по исходникам просили объяснить смысла такого трешака за который в нормальных фирмах сразу увольняют, я потом на разных сайтах просил растолковать их «примеры» извиняюсь за ругательство — все плювались от быдлокода).
А раз чёрные списки скорее всего существуют, то проблема в статье ещё сильнее усугубляется: Даже если предположить что только часть компаний их придерживается, то при невезении всего с одной все остальные лишаются специалиста. И наверное поделом им.
Когда последний раз искал работу, на меня выходили вербовщики от яндекса, предлагали пособеседоваться, сразу честно сказали что процесс займет недели три (там что-то то-ли четыре, то-ли пять собеседований по несколько часов). Так-как у меня уже были на руках два хороших оффера, то я вежливо отказался. Я, конечно, понимаю, это одна из самых известных российских IT фирм, но такой формат поиска спецов от них многих отпугивает. Это нужно ну очень сильно хотеть работать у них, что-бы такой марафон пройти.
Я, помнится, в свое время ходил в Я раза три в течении лет 5 на должность админа. Проходил каждый раз по паре-тройке собеседований и потом меня отбраковывали по какой-то загадочной причине, которую они не называют.

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

a = 1
b = a
a == b vs a is b

Я ответил, что в данном примере разницы нет и оба True и даже попытался объяснить ему почему Python не C/C++. В итоге интервьюер надменно «очень удивлюсь если это действительно так». Через HR я попросил передать ему книжку Python для чайников и больше не писать мне.
a = 1
b = a
a == b vs a is b

Я ответил, что в данном примере разницы нет и оба True и даже попытался объяснить ему почему Python не C/C++.
Не могли бы раскрыть свою мысль и направить в документацию в правильном направлении?

На мой, не специализирующийся на Python, взгляд, вопрос имеет под собой почву:
a == b # сравнение по значению
a is b # сравнение по object id, на который ссылаются переменные
И в случае с мутабельными объектами разница может быть:
a = [1, 2, 3]
b = a # произойдет присвоение по ссылке
с = a.copy() # произойдет присвоение по значению
d = a[:] # произойдет присвоение по значению

# Значения всех трех переменных равны:
a == b # True
a == c # True
a == d # True
# Но переменные a и b ссылаются на один и тот же объект списка:
b is a # True
# А переменные c и d ссылаются на отдельные объекты:
c is a # False
d is a # False

# Модифицируем данные:
a.append(4)
b.append(5)
c.append(6)
d.append(7)
# И получим:
a == b # True
a == c # False
a == d # False
b is a # True
c is a # False
d is a # False

# Через переменные a и b был поочередно модифицирован один и тот же объект.
# Значения этих переменных по-прежнему равны:
a # [1, 2, 3, 4, 5]
b # [1, 2, 3, 4, 5]
# А для переменных c и d - нет:
c # [1, 2, 3, 6]
d # [1, 2, 3, 7]
>>в данном примере разницы нет

Небольшие integers (кажется, до 16 но не ручаюсь) существуют в памяти Python программы как синглтоны и все ссылки указывают на один и тот же объект в памяти.
Вы, должно быть, путаете с интернированием строк.

Если размер переменной меньше, чем указателя, её таким образом не оптимизируешь.
О, а вы, видимо, из Яндекса :)

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

docs.python.org/2/c-api/int.html

В памяти хранится весь массив int в пределах, который попадает под оптимизацию.
Ну если уж совсем строго, то зависит от реализации интерпретатора — в CPython это так, а вот в MyPy, например, может быть и по-другому (а может и не быть). Конкретно сам язык не заставляет делать такие оптимизации.
Вопрос к сообществу и заминусовавшему в частности.
В чем в примере выше ошибка по существу?
Был бы признателен за конструктивную критику.
Потому что он Питон :) А не C++
НЛО прилетело и опубликовало эту надпись здесь

По поводу, "больного", запыхавшегося. Я бы сходу выдал что-то подобное: "так к вам спешил, что аж дыхание сбил, да и погода внезапно намекнула, что одеться нужно было полегче". Имхо, много бы вопросов сняло :) Я, бывает, вставляю словечки, которые актуальны для игроков в онлайн PRG, так меня с опаской сразу спрашивают — в онлайн игры играете? Приходятся говорить, что любимая RPG — Fallout 2, разок в год-два пробежаться. В общем, тут скорее вопрос коммуникации. Честно, каким бы мегаграмотным не был бы человек, с ним ещё общаться нужно.

НЛО прилетело и опубликовало эту надпись здесь
Прочел статью. Закрыл хабр. Вернулся.

Ваша реплика про опыт в ЕПАМ укрепляет меня в догадке, что уже даже среди программистов подбор персонала стал «не про специальность» (ну и градации, в зависимости от компании, от «совсем не про специальность» до «не совсем про специальность»).

Про «нравишься» и «не нравишься», про возраст (скоро стукнет 45), про рынок труда который отдельные представители HR так структурировали (есть примеры корпораций и компаний), что приходящие вновь команды не могли не то, что специалиста нанять… На интервью никого затащить. При весьма конкурентных предложениях, ведь в кругу нужных специалистов 3% слила одна из предыдущих команд, 15% побывали на интервью и были растоптаны.

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

Их обязательно нужно уметь решать. Однако это сомнительный гарант устройства на работу.

А потребительское отношение к кадровому ресурсу — короткая дорога, оканчивающаяся тупиком.

Хорошо если 1 час. В некоторых компаниях приходится проходить N собеседований по часу, на которых решаешь задачки. Где N зависит от количество команд, в которых открыты вакансии. Может быть 5, а может 11.

А могут пригласить в главный офис, оплатить 6-часовой перелет и отель, чтобы завалить на самом последнем этапе.
мне кажется, в Лас Вегасе это называется не собеседование

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

Как то взяли разработку пищалки которая пикает прерывисто когда у грузовика включается задняя передача, всё именно так и было: десятки скайп совещаний с полсотней менеджеров и директоров разных там газмяс-альф и бетт, почта превратилась в вообще Re:Re:Re:Re:… теперьточноокончательная версия(2197) с почти стократным вложением. Кое как вытянул проект и уговорил их взять готовый именно для этого предназначенный и сертифицированный на всякие морозы и IP69 компонент с защитами от всего, генертором и динамиком, из новоразработанного только крепление и корпус был.
Хотя изначально надо было просто узнать форму корпуса и чёртёж посадочного места что обычно делается за пару бесед с адекватным бизнес процессом не нацеленным на оправдание завышенной стоимости. Да они потратив миллионы рублей на совещания потом ещё тянули до последнего с оплатой несчастных 50тр.
Где вы такую жуть встретили? В Яндексе?
НЛО прилетело и опубликовало эту надпись здесь
в Японском аналоге Яндекса есть ещё круче: там после кучи собеседований нужно прочитать всю книгу-автобиографию основателя компании ну «очень скромно» названную «моя великая борьба» и написать изложение по ней во время спец экзамена без инета и под надзором, ну и конечно всё это на японском.

Это у ракутена такие приколы?
Помню, они пытались меня схантить, видимо хорошо, что не поддался :-)

Ракутен. 3 месяца собеседований. 4 интервью. В конце попросили написать эссе на книги основателя, но, благо, можно было писать дома и на английском. Похоже, если не боготворить митера Микитани, то в ракутен не попасть.

А что… Пишешь эссе с названием "Моя (не)великая борьба" где просто стебёшься над тремя месяцами собеседований. Да ну его нафиг, им специалист или жополиз нужен?

«Я — Начальник, ты — дурак» — все вполне в духе этих косорылых макак, которые устроили Фукусиму, создав 14 уровней начальников над оператором АЭС с нулевой ответственностью в итоге.
с нулевой ответственностью в итоге.

Для этого и создавали.
Сейчас Ракутен очень (слишком!) легко набирает на работу выпускников российских вузов без всяких подобных извращений.

Оффер получил, не поехал.

О, я тоже в Ракутен собеседовался, мне тоже дали книжку. Я прямо спросил "Это обязательно? А то я не люблю весь этот успешный успех", мне ответили "Ну не хотите — не читайте, положено предлагать, а дальше дело ваше. Всё равно, никто не спрашивает."

"А что, так можно было!?" :)))

Видимо, можно, оффер-то мне выдали. Я даже думал его принять — всё же, Япония, экзотика, пару лет вполне можно поработать, но огорчил отпуск — 11 дней и нельзя выбирать самому даты. Даже с учётом золотой и серебряной недели это слишком мало.

11 дней не считая выходных? Мне казалось в японии норма 3-5, по крайней мере в первые годы. Или там тоже итшникам послабления?

Скорее, это Ракутен считается "гайдзино-дружелюбной" компанией в сравнении с остальными.

11 рабочих дней за год положено после полутора лет работы. См. 4.5.8 здесь.

ИМХО, это только если очень хочется "за границу". Либо ну очень сильно к их культуре тянет. Климат тоже… Теплее, чем у меня во Владивостоке, но так же влажно. Да и менталитет относительно работы у них другой.

Такие же раздолбаи, как и везде.
Почему всем можно, а вам запретили? :)
Можно :)

Верно угадали. Приятель проходил два года назад, он забил после 11 собеседования. Я проходил этот квест в июне было 5. Никаких вопросов про паттерны, языки программирования, базы данных и т.д. Тупо решаешь задачки.

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

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

Все правда, все о нас...

Я люблю решать задачки, но мне их далеко не на каждом собеседовании задают. Более того, туда, где я все задачки решила, меня не взяли. Даже 2 раза. Зато взяли туда где никаких задач не задавали.
Однако обижаться не стоит. Просто цена ошибки при найме довольно высока, а нормальных способов оценки кандидатов нет.
нормальных способов оценки кандидатов нет

Есть. Но они требуют наличия собственных профильных специалистов уровнем как минимум не хуже. Если таких нет — то всё сложно, да. Либо устраивать конкурсы олимпиадников и в итоге нанимать профессионального проходителя собеседований, либо пытаться просто по человечески пообщаться, и нанять того, кто не может работать, но может навешать достаточно лапши.

Если же собственные спецы есть, то просто разговор «по душам» о прошлом опыте и сложных случаях из жизни плюс минимальная проверка способности писать код (не олимпиадные задачи на время, а что-то уровня FizzBuzz), чтоб исключить профессиональных обманщиков — вполне достаточна.
разговор «по душам» о прошлом опыте и сложных случаях из жизни

Может быть проблемным, если много что под NDA.
NDA — это не гостайна. От важной для бизнеса конкретики можно абстрагироваться примерно всегда, и обсуждать алгоритмы и подходы в более общем виде.
Я встречал задачи, рассказ о которых вне бизнес-конкретики абсолютно лишает разговор смысла.

Вряд ли NDA защищает диаграмки вида "вот тут у нас сыпались сообщения в очередь, сервис разбирал и писал в эластик, а вот тут фронт оттуда читает"

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

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

Олимпиадные задачки ведь тоже гарантии качества разработчика не дают. Тем более, сеньера. Тогда зачем они?
Чтобы соревноваться на олимпиадах.
Ага, на спецолимпиадах.
В Монреале есть одна компания, у которой процесс найма на работу занимает очень продолжительное время. Самый короткий срок от первого собеседования по телефону до контракта, который я знаю, занял 6 недель. Самый длинный — 18 месяцев. Как правило они проводят несколько интервью по телефону и несколько личных встреч. Всегда на первом интервью задают вопросы о том как работает сборщик мусора, как там всё устроено. Ни один из проводивших интервью не смог мне внятно привести примеры из их реальных проектов, когда эти знания помогли или были по-настоящему необходимы.
Я спрашивал нескольких разработчиков, которые работали в этой компании, как им приходилось использовать эти конкретные знания в работе. Самый лучший ответ: «Знание о том, как работает сборщик мусора, нужны чтобы пройти интервью. Больше они не нужны.»
Для меня ваше сообщение выглядит очень странным.
Знание как работает GC нужны, чтобы понимать когда объект будет удален, чтобы понимать что если мы только что освободили большой объект и хотим сразу создать еще один большой объект, то нельзя расчитывать что память уже есть, её вполне может не быть(правда тут надо смотреть на конкретный GC, потому что есть такие, которые увидят что памяти не хватает и грохнут ранее освобожденный объект, а есть такие, которые так не делают. и это надо знать).
В общем и целом, такие особенности рабочего окружения знать надо.
Если ваши коллеги и вы живете без этого знания, скорее всего вы либо пишите мелкий софт, либо плохой.

Как часто вы создаете объекты размером со всю доступную VM память?
Как часто вам встречаются бизнес задачи, требующие создания объектов размером со всю доступную память?

Как часто вы создаете объекты размером со всю доступную VM память?
Это и не нужно. Достаточно в цикле читать и обрабатывать какую-нибудь таблицу (или запросы). Если в этом цикле используются любые ресурсы ОС, то забыть закрыть ресурс (а с ним и все связанные объекты) очень даже легко. И даже если не забыть, то не факт, что сборщик будет чистить так, как вам бы хотелось. Мне как-то довелось оптимизировать память процессу на яве. Поставил явный вызов GC, хоть во всех мануалах пишут, что это делатьне надо. Коллеги на ревью удивились, но после демонстрации уменьшения памяти на 50% смеяться перестали. Так что всяко бывает, а памяти всегда мало.
забыть закрыть ресурс

Это не "объект размером с память", это баг.


не факт, что сборщик будет чистить так, как вам бы хотелось

Для этого придумали пулы объектов.


Поставил явный вызов GC

Вам сильно повезло. Обычно жор памяти в Java = утечка. С множеством короткоживущих объектов GC справляется без полной остановки, чисто за счет Эдема.

Вам сильно повезло. Обычно жор памяти в Java = утечка.
Вот код без утечек, только-что запускал:
public class MyTtest {
	public static void main(String argc[]) {
		while(true) {
			List<String> arr = new ArrayList<String>();
			for(int i=0; i<10000000; i++)
				arr.add(new String("abc"));
			System.out.println(new java.util.Date());
			System.gc();
		}
	}
}

Запустил без строчки с GC, процесс быстро набрал 2GB оперативки, CPU циклично скакал от 25 до 90%,
лог выглядел так
Mon Jul 22 15:39:31 EDT 2019
Mon Jul 22 15:39:34 EDT 2019
Mon Jul 22 15:39:34 EDT 2019
Mon Jul 22 15:39:35 EDT 2019
Mon Jul 22 15:39:35 EDT 2019
Mon Jul 22 15:39:37 EDT 2019
Mon Jul 22 15:39:37 EDT 2019
Mon Jul 22 15:39:39 EDT 2019
Mon Jul 22 15:39:39 EDT 2019
Mon Jul 22 15:39:42 EDT 2019
Mon Jul 22 15:39:43 EDT 2019
Mon Jul 22 15:39:43 EDT 2019
Mon Jul 22 15:39:46 EDT 2019
Mon Jul 22 15:39:46 EDT 2019
Mon Jul 22 15:39:47 EDT 2019
Mon Jul 22 15:39:50 EDT 2019
Mon Jul 22 15:39:50 EDT 2019
Mon Jul 22 15:39:51 EDT 2019
Mon Jul 22 15:39:51 EDT 2019
Mon Jul 22 15:39:51 EDT 2019
Mon Jul 22 15:39:53 EDT 2019
Mon Jul 22 15:39:53 EDT 2019
Mon Jul 22 15:39:54 EDT 2019


Запустил с GC, процесс не кушал более 1GB, CPU установился на 60-65%,
и лог выглядел так
Mon Jul 22 15:31:54 EDT 2019
Mon Jul 22 15:31:54 EDT 2019
Mon Jul 22 15:31:54 EDT 2019
Mon Jul 22 15:31:54 EDT 2019
Mon Jul 22 15:31:54 EDT 2019
Mon Jul 22 15:31:54 EDT 2019
Mon Jul 22 15:31:55 EDT 2019
Mon Jul 22 15:31:55 EDT 2019
Mon Jul 22 15:31:55 EDT 2019
Mon Jul 22 15:31:55 EDT 2019
Mon Jul 22 15:31:55 EDT 2019
Mon Jul 22 15:31:56 EDT 2019
Mon Jul 22 15:31:56 EDT 2019
Mon Jul 22 15:31:56 EDT 2019
Mon Jul 22 15:31:56 EDT 2019
Mon Jul 22 15:31:56 EDT 2019
Mon Jul 22 15:31:57 EDT 2019
Mon Jul 22 15:31:57 EDT 2019
Mon Jul 22 15:31:57 EDT 2019
Mon Jul 22 15:31:57 EDT 2019
Mon Jul 22 15:31:57 EDT 2019
Mon Jul 22 15:31:58 EDT 2019
Mon Jul 22 15:31:58 EDT 2019
Mon Jul 22 15:31:58 EDT 2019


Резюме: явный вызов GC в правильном месте делает программу менее требовательной к памяти, быстрее, и без лагов. Везение тут не при чем.
В зависимости от GC, вызов System.gc() может быть заимплеменчен как угодно, в том числе и nop.

Резюме: так писать не надо, и вот почему:


  • с добавлением ноликов в условие цикла разница будет все менее заметной
  • в многопоточном приложении вы получите паузы во всех потоках, и это не обязательно то, что вам позволено
  • более того, явный вызов GC совершенно не гарантирует запуск GC, это зависит от множества факторов и малопредсказуемо в общем. Например, в моем случае (openjdk-11/i7-8750H/16G) в данном примере постоянный вызов GC жрал те же 100% проца и вдвое больше оперы, чем без явного вызова. Зато замена GC на Thread.sleep(500) успокоила процессор в прежних пределах памяти.
  • если придираться: конкретно в этом случае стоит использовать пул. Думаю, это понятно и так, просто сделано в угоду постоянному выделению большого куска памяти, но на практике такое даже джуны себе не позволяют. Кейсы с массивным выделением памяти обычно предсказуемы и предусматриваются архитектурой приложения в особом порядке.
с добавлением ноликов в условие цикла разница будет все менее заметной
вообще-то, если добавить нолик, то у меня программа без GC просто падает достигнув 2GB RAM (java se 1.8 под виндой). А с GC работает.
в многопоточном приложении вы получите паузы во всех потоках, и это не обязательно то, что вам позволено
не факт, ведь я же не получаю паузы в одном потоке, даже наоборот — в данном однопоточном быстодействие с GC в разы выше.
более того, явный вызов GC совершенно не гарантирует запуск GC
здесь полностью согласен, нужно экспериментировать
если придираться: конкретно в этом случае стоит использовать пул
я список сделал такой большой чтобы сразу было понятно чем занята память процесса — надо же чем-то заполнить пару гигов. Но при других значениях счетчика я получил похожий результат, что с GC работает лучше: видимо моя имплементация GC прислушивается к советам, и это позволяет оптимизировать программу.
Вобще всему этому есть объяснение: только программист может знать когда в его программе лучше сделать сборку мусора, так как это зависит от множества факторов, которые из кода и рантайма вычислить или невозможно, или слишком сложно, и поэтому такая задача сборщику может быть в принципе не под силу. Поэтому хотелось бы, чтобы со сборщик перестал быть черным непредсказуемым ящиком.
только программист может знать когда в его программе лучше сделать сборку мусора

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

В чём проблема? Пишите на Rust.

программа без GC просто падает достигнув 2GB RAM (java se 1.8 под виндой). А с GC работает.

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


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

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


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

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

>> В случае сервера приложений вам прямо запрещено так вызывать мусорщик — будут остановлены все потоки

А с чего вы это взяли? Или про nop не читали? И да, вот это ваше — «это не просто не черный ящик, это хрень с кучей параметров и ручек для тонкого тюнинга под конкретные задачи» тогда как понимать? Ну и для полноты — вы в курсе как ведёт себя GC при наличии нескольких class loader? С учётом кучи параметров и ручек для тюнинга, разумеется.
  1. Несмотря на то, что GC в JVM постоянно улучшается, энтерпрайзные заказчики крайне неохотно перелезают даже на Java 8, не говоря уже о более поздних версиях. И я не слышал о полном отказе от stop-the-world тактики в худших случаях GC даже с Java 11, такое умеет (умел?) только Azul — то есть всегда есть шансы получить StW, которые возрастают при ручном вызове gc(). Может если порыть офдоку, где-то найдется явное упоминание StW независимо от количества потоков приложения (я не задавался целью найти), но просто по логике — общая куча + Full GC + старые не ThreadLocal-данные = хороший повод для StW.
  2. Количество класслоадеров влияет на мусорщик только в том плане, что для деинициализации объекта нужен соответствующий его классу лоадер. В старых джавах была проблема чистки пермгена в случае нескольких лоадеров, потому что пермген в силу своей природы херово чистится. Сейчас с общим метаспейсом проблем мусорщика, связанных с класслоадерами, нет или мало (исключая случаи кастомных класслоадеров, но это еще более отдельная тема). Но я говорил о потоках, а не класслоадерах, а если потоки шарят общую кучу, StW вполне реален.
  3. Я вам не отвечку про настройки GC, потому как последний раз явно касался этого еще при Java 6, с коих пор прошло достаточно времени и изменений JVM, о которых знаю лишь в теории. В большинстве случаев вопрос о тюнинге памяти встает только после проблем с производительностью, и решение этого вопроса очень индивидуально.
Вы упираете на остановку всей java-машины, но сами отлично понимаете, что это явление редкое, случающееся только тогда, когда уже ничего не помогает. Соответственно — если ситуация не находится в состоянии «всё безнадёжно», то явное указание на сбор мусора машина может воспринимать очень по разному, включая отсутствие каких-либо действий. Ну а если «всё плохо» всё же наступило, то запустите ли вы gc сами, или это сделает машина — без разницы, ибо мир всё равно остановится. При этом, как вы сами знаете, толстые конторы никогда не спешат с модернизацией парка серверов по первому писку очередного малолетнего гения, а потому там есть весьма стабильная среда на какой-нибудь веб-сфере 7.0, где всё прекрасно можно отладить один раз и далее годами ни о чём не беспокоиться, ну а за эти годы, как известно, либо ишак, либо падишах. Поэтому с практической точки зрения ваше желание быть осторожным ведёт лишь к бессмысленному повышению сложности в и без того сложном толсто-корпоративном мире.

Ваш подход аналогичен (да, немного утрировано, но...) написанию всего на ассемблере — быстро, не зависит от сборщиков мусора и т.д. Но только крайне дорого.

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

В целом я бы не рекомендовал безапелляционно запрещать что-либо, хотя согласен с тем, что необходимо указывать на недостатки такого выбора. Но разумно применять не идеальные решения всё же стоит.