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

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

Первая история типична для зарубежного рынка труда 2023 года. Дело не в герое и не специализации, а в рынке и времени. Почти у всех сейчас так -- вроде вакансии ещё появляются, но до оффера или хотя бы тех собеса доходит в 1 отклике из 20.

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

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

Плюсую. Мой последний цикл трудоустройства занял почти полгода. 400 откликов, 12 приглашений на собеседование, 1 оффер. В России работа меня находила сама, нынешний опыт довольно травматичен для ЧСВ)

У меня абсолютно то же самое. Когда в 2020 году разместил свое резюме на хабр карьера (который вроде тогда назывался "Мой круг"), мне начали звонить и писать буквально спустя 10 минут. Собеседования были простейшие. Задачки, если и давали, то уровня easy с литкода. Но, в основном, просто разговаривали по душам. По итогам куча офферов от 4K чистыми и выше.

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

указанием того, что хочу, чтобы помогли с релокацией.

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

скорее в "страну с уровнем жизни", "высокий" уже опционально и необязательно

У меня сейчас похожая ситуация. Только я ищу вою первую работу в it, около 4 лет изучаю, что то пишу, несколько сотен откликов, единицы собеседований и всегда есть кто то уже с опытом которого берут на работу. Выбирать совершенно не приходится) от 500-2000к откликов на вакансию фронтенд джуниора)

по поводу первой истории - imho, держитесь от мира веб-разработки как можно дальше, это на основе собственного опыта, 30+ лет работы в us, все время embedded systems, real time, сети, проблемы с работой никогда не было, типа 1-2 звонка достаточно + конечно поддерживайте networking

Я как раз не веб, а в embedded systems, сети, c++ искал работу последние полгода на удалёнку. Опыт очень похожий -- скрининг интервью, ждите назначим техническое, проходит неделя -- извините, вы нам интересны, но не сейчас, а как нибудь потом. Или проходишь тех интервью, и -- извините, вы ок, но взяли другого. В embedded ещё денег меньше чем в вебе предлагают -- до 3000€ gross/month. В итоге приземлился в HFT.

удаленка имеет специфику конечно, судя по предложению в euro это не us, интересно что такое hft, high frequency trading? типа low-latency сети?

В embedded по крайней мере у нас(Германия) платят нормально. Если и меньше чем в других областях ИТ, то не сильно.


Другое дело что embedded и 100% удалёнка это комбинация очень редкая. В большинстве случаев надо работать с железом и часто ещё оно и "под NDA". То есть в embedded с удалёнкой в принципе не особо хорошо, даже с частичной. А уж чтобы только удалёнка...

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

Грамотный C++-чувак с HFT вполне может получать полляма долларов в год, например.

Таких грамотных дай бог 1% от всех С++-чуваков. А на деле еще и меньше. Сам я явно не из таких) И вживую (не на созвоне) пока что ни одного такого не встретил, а работал в разных местах, включая HFT.

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

P.S.
Опять же, мы не раз уже пересекались по этой теме в комментариях. Проблема в том, что вас слишком высокие hard-skills и думаете, что кругом тоже такие же прокачанные люди как вы :) Хотя это даже близко не так, просто вероятно вы не общаетесь с нами :D

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

Ну, вот 500к долларов в HTF - это точно не средняя ЗП)

Исключения бывают: сейчас так и работаю. Доступ к компу в лаборатории через Anydesk, пробрасывается туннель и можно работать с платой через ssh. При необходимости подключают электронный осциллограф и можно смотреть сигналы через приложение на том же компьютере в лабе. Всё удалённо. Экземпляр железа прислали почтой, но он даже и не пригодился. NDA есть.
Впрочем, если требуется, чтобы один человек совмещал и разработчика и электронщика, тогда да. Удалёнки не получится.

Что касается первого случая, тот тут возможно проблема с самооценкой, человек имеет много опыта, но при этом возможно решал все эти года довольно нетривиальные задачи, вопрос по event-loop задают сейчас джунам, если человек который претендует на позицию сеньора не может ответить на джуновский вопрос, у меня к такому разработчику появились бы вопросы, надо еще понимать, что разные компании по разному оценивают, в большой компании ты можем быть джуном, а в мелкой тебя могут на мидла оценить

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

Соглашусь, что есть тенденция сейчас спрашивать довольно сложные вопросы, но что касается  event-loop, то человек идя на довольно высокую позицию должен понимать такие вещи

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

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

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

Если вы не в состоянии угадать что будет на собесе, куда вы не ходили 3-5-7 лет, не думаю, что вы нам подойдете :).

именно поэтому первый собес - как выстрел в воздух

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

Знание устройства event-loop — это как знание наизусть фундаментальных констант до какого-то там знака.


Всё что нужно знать о event-loop для написания программ, это следующее:


  1. он есть, и работает однопоточно,
  2. микротаски приоритетнее макротасков.

Всё! До тех пор пока ты не пишешь патч для ноды (а даже занимающие высокую позицию разработчики этим, как правило, не занимаются) — остальные знания избыточны и вообще никак не влияют на код.

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

Из формулировки "устройство event loop" никак не следует что интересуют именно эти два пункта. Потому что это вообще не устройство, а не то свойства, не то особенности.


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

у меня короткий ответ: он есть, и работает примерно так. Остальное на практике почти не используется. Главное понимать концепцию

Дальше собеседник начинает потноваться своими познаниями, как далеко он сам копнул.

Я: : "вы это применяете на продакшене?"

Собеседник: "нет. Просто было интересно спросить. А вот ещё вопрос: если сделать Object.create(.... А вот ещё: чем отличается .call и .apply?.."

Я: "Вы это применяете на продакшене?"

Ответ: "нет"

Занавес

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

Ок, до свидания найти ботаника)

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

Я если честно, не заметил разницы в работе памяти.

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

Четвертая история - не Java Swing случайно? К нам как-то в 2020 году пришел кандидат аж с 11 годами сидения на одном проекте с Java Swing. Причем джава то ли 1.5, то ли 1.6. С одной стороны, вроде и не дурак, с другой стороны начисто пропустил вообще всю эволюцию языка, его экосистемы и вообще веба.

Ну, пропустил, и что? Догонит, как только это станет необходимо. Лучше взять такого, он у вас будет РАБОТАТЬ, чем смузихлёба-карьериста с модными технологиями, который через полгода свалит дальше гоняться за модными технологиями.

Догонит, как только это станет необходимо.

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

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

Вы сами себе придумали сценарий и сами себе его гордо опровергли.

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

Я не знаю сколько лет вы в индустрии. Проекты, которые работают десятилетия(!) - это нормально. Я бы даже сказал - это замечательно. Значит они действительно работают. Возможно, многие относительно недавно вкатившиеся просто никогда этого не видели. В их понимании айти - это что-то тяп-ляп накалякать, которое через пару месяцев всё равно выбросят, потому что "концепция поменялась". И вот когда РАБОТАЕШЬ над проектом который РАБОТАЕТ, очень сложно гоняться за технологиями. Ну, можно книжку почитать. Можно на коленке поиграться. Но это всё. Никто в прод эти новомодные веяния просто так не допускает. Так-то освоить всё это, заодно поскипав всё что успело родиться и умереть - это совсем не сложно для человека который действительно тащил на себе проект.

Где-то видел утверждение, с которым согласен: "В области IT если ты постоянно не развиваешься, ты отстаешь". И не обязательно для развития быть "смузихлёбом-карьеристом с модными технологиями" (таких сам очень не люблю).

Мне почему-то кажется, что ваше представление о росте это "я знал react, а тут выучил vue". Сильно. Правда, я так и не понял чем они концептуально отличаются, хоть и умудрился пописать в продакшене и тем и другим.

С другой стороы, я вообще не вижу роста, если вы скачете между C-образными языками (c++, java, c#, php, ecmascript). Они все на одно лицо и все применяют одни и те же концепции. Разница только в том, что некоторые яйца рисуются сбоку.

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

ИМХО индустрия зациклилась на фейковом развитии. На всяких SOLID и DRY. А критерией хорошести программиста у нас нет. Все эти джуниор, мидр и сеньор тоже, по сути, пустые определения, не имеющие критериев (лучший пример: тут вас определили как джуна, а там как сенора).
Причина, вероятно, в смузи-сой-кодерках из ФААНГов, которым нужно во что бы то ни стало обозначить хоть какое-то отличие "высшей расы" от всех прочих, чтобы оправдать нереально высокую зарплату.

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

Да, он не следил. Он работал.

Все работают. Нет никакой проблемы и работать и держать руку на пульсе. Вернее проблема есть у тех, у кого уже силенок на это не хватает. К примеру, сейчас наш коллектив начинает обсуждать грядущий релиз Java 21 и план миграции. По вашей философии получается, что мы перестали "работать" и переквалифицировались в "смузихлебов". Где желтую звезду забрать можно?

Вам просто с проектом повезло, раз есть время на всякие миграции. Или с языком.


К примеру, в мире .NET до сих пор невозможно мигрировать произвольно взятый проект с .NET Framework на свежий .NET 7, поэтому сидящим на старых проектах остаётся только облизываться на новые версии. Причём принципиально-то не поменялось ни-че-го, все новые подходы лично я выучил за день, но на работу тех кто засиделся на старых проектах уже не хотят брать...

Что значит "повезло"? Я с этим проектом не родился, я его выбрал. И еще приложил усилий, чтобы такие миграции занимали от силы пару дней.

Кому-то надо и другие проекты делать, а вы их уже заранее записали в плохих программистов.


И нет, не любая миграция способна занять пару дней.

вы их уже заранее записали в плохих программистов

Не заранее, а после собеса. Это если вы о том человек с Java Swing. Мы же его все-таки пригласили, даже видя нерелевантный опыт. В общем-то рядовая ситуация произошла: человек не подходит под наш фронт работ. Нанять мидла за втрое меньшую сумму тупо выгоднее со всех точек зрения. Когда отшиваешь джуна - всем норм, когда отшиваешь сеньора - почему-то начинаются байки про неработающих смузихлебов.

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


Не заранее, а после собеса. Это если вы о том человек с Java Swing. Мы же его все-таки пригласили, даже видя нерелевантный опыт.

Ага, пригласили даже видя "нерелевантный" опыт, а потом отказали потому что опыт "нерелевантный". Очень логичное поведение, HRы всегда так делают.


Напомню с чего всё началось:


Четвертая история — не Java Swing случайно? К нам как-то в 2020 году пришел кандидат аж с 11 годами сидения на одном проекте с Java Swing. Причем джава то ли 1.5, то ли 1.6. С одной стороны, вроде и не дурак, с другой стороны начисто пропустил вообще всю эволюцию языка, его экосистемы и вообще веба.

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

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

Это факт, а не претензия. Мы его прогнали через нашу обычную секцию теории и этап код-ревью. Человек про всякие ресты-rpc не в курсе. Джава кор версии 8+ - не в курсе. Постгрес-индексы-транзакции - не в курсе. Рэббиты-кафки-очереди-асинхронность - не в курсе. Код-ревью тоже завалил. Не, я понимаю, что он там "работал". Но зачем нам, смузихлебам, человек с навыками джуна по цене CTO?

Ага, пригласили даже видя "нерелевантный" опыт, а потом отказали потому что опыт "нерелевантный"

Не зовешь - плохо. Зовешь - тоже плохо.

Человек про всякие ресты-rpc не в курсе.

Ресты переоценены, в "Джава кор версии 8+" основным и главным изменением были лямбды, остальное учится на ходу. Рэббиты и кафки у вас там с этим спрингом не сильно от HTTP запросов отличаются.


Вот rpc, БД, индексы и транзакции — это и правда беда. С них надо начинать было.

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

А почему с него нужно уйти?


Нет, понятно что чтобы не оказаться в карьерном тупике, но какого хрена это так работает?

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

Нанять мидла за втрое меньшую сумму тупо выгоднее со всех точек зрения.

Вот и наймите его мидлом за втрое меньшую сумму. С договорённостью что чем быстрее он догонит всё что вам требуется, тем быстрее он получит повышение. Достаточно fair, я считаю. Выбирать, конечно, вам. Но лично я категорически против когда за легаси публично башкой в унитаз макают. И буду и дальше предпринимать все усилия чтобы макать таких макателей.

байки про неработающих смузихлебов.

Это не байки, это реальность. На словах все такие-растакие, пышное резюме, бодрые ответы на собесах. А как работу работать, так плакать с них хочется. Лично моё мнение что приглядываться нужно как раз к таким "динозаврам", вкатившимся до 2010 годов. Как-никак тогда в программирование по зову души шли люди с техническим и инженерным складом ума. Плюс доказанное умение работать, раз проекты работали. А то что технологии не самые свежие, так это дело наживное.

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

Лично моё мнение что приглядываться нужно как раз к таким "динозаврам", вкатившимся до 2010 годов. Как-никак тогда в программирование по зову души шли люди с техническим и инженерным складом ума.

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

Так и соотносится. Не обязательно же держать глаза и уши закрытыми, можно следить за тем что происходит в индустрии и использовать что возможно. Я вот в прошлом, когда async/await только "изобретали", развлекался портированием этого всего на .NET Framework 3.5, потому что использовать хотелось, а проект не позволял.


Да и даже если глаза и уши были "закрыты", это всё равно объяснимо, ситуации бывают разными.


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

не потянет один-единственный человек распределённое приложение на микросервисах

А что там сложного-то? Давно на все есть фремворки и всякие docker swam и кубернетусы. Сейчас по времени это почти тоже самое что сделать нераспределенное приложение на монолите, если есть знания

Объём сложен. Микросервисы-то должны быть нетривиальными, иначе это не пет-проект будет, а хелловорлд.

Микросервисы-то должны быть нетривиальными,

Они могут быть тривиальными, но решающими какую-то нетривиальную задачу.


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


P.S. Ну то есть дело вовсе не в "распределённое приложение на микросервисах", а в том что вы замахиваетесь на слишком сложные проекты со сложной бизнес логикой и функционалом.

большую часть того что сейчас происходит в индустрии, "потрогать" в рамках пет-проектов невозможно

Да ну глупости же. Пет-проект вовсе не должен быть чем-то уникальным и/или титаническим. Условный личный таск-трекер/приложение с заметками/медиабиблиотеку можно пилить. Просто чтобы себя в тонусе держать, в качестве "внеклассной работы".
Смотришь вакансии по своему стеку и вилке, на которую претендуешь - находишь новые слова - включаешь каким-то образом в этот проект. Требуют микросервисы - распиливаешь монолит, нужен докер - заворачиваешь приложения в образы, шины сообщений - переводишь часть сервисов на общение по шине вместо HTTP между собой.
Но, опять же - это всё целенаправленная работа для денег и рынка, не "зов души", к сожалению.

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

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

Любой распил и откат кому-нибудь да нужен тоже )))
Вопрос, как всегда, в том — кому и для чего.


Если приложение заметок для рабочего стола хранит базу заметок в Cassandra в одном поде, во втором запускает RabbitMQ, а в третьем запускает для редактирования заметки отдельный CEF-application — то это не демонстрация владения технологиями, а переделанное на современный лад
— У меня не работает звук во вторых героях, запущенных в dosbox, под windows XP x64, в VirtualBox на FreeBSD, куда мне обращаться?
— В дурку!

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

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

Так ведь тут выше предлагалось именно таким способовми демонстрировать своё владение новыми технологиями:


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

Если вы согласны, что это — оверинженеринг и плохо, то с чем вы вообще спорите?

Если вы согласны, что это — оверинженеринг и плохо, то с чем вы вообще спорите?

Если человек делает проект где условно Hello world чисто показать свое владение технологиями это одно и это нормально.


Если человек говорит, что приложение блокнот нужно делать именно вот с таким оверинженерингом — вероятно на работе он будет тожк все усложнять.


Все зависит от того ДЛЯ чего используются технологии.

А теперь читаем мой комментарий, который вы тут косвенно пытаетесь оспорить:


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

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

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

Не ожидал что ироничный комментарий заденет столь многих уважаемых людей…


Там, где каджит присоединился к ветке, всерьез предлагалось создать и использовать (а как иначе вы узнаете, работает ли оно вообще?) — отнюдь не иллюстративный helloworld, а чудовище Франкенштейна.

Не хотите портить жизнь эстетам и борцам за чистоту и пригодность опенсорса - self-hosted gitlab в помощь, при случае можно будет на собесе козырнуть и таким опытом в беседе, опять же.
А если отказываться от экспериментов с новыми технологиями и подходами, потому что "полезных идей нет, глобальное не потяну, по мелочам работать не хочется, да и вообще, что люди скажут", то потом только и остаётся, что жалеть себя, обнаружив, что рынок ушёл и оставил тебя далеко позади.

Между экспериментами и безалаберным нахреначиванием чего-попало куда-придется, как вы предлагали, — все-таки есть некоторая разница… )

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

Исходный комментарий выглядит так, как будто его автор подумал, что человек пропустил вообще всё что происходило в индустрии на основании того, что проект был на старых технологиях.

А как, простите, "зов души" (и вот это вот всё) соотносится с тем, что человек больше десяти лет ковырял некро-проект на некро-стеке

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

Поковыряться в нововедениях можно, но 1) не запишешь в резюме, 2) выветрится, если реально этим ежедневно не занимаешься. 3) благополучно сдохнут, так и не понадобившись.

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

человек больше десяти лет ковырял некро-проект на некро-стеке

Почему сразу "некро-проект"? Некро-проект не проживёт 10 лет.

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

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

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

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

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


Для джунов и миддлов это ещё прокатит. А от сениора обычно ожидается что он пришёл и работает. А то даже и что он придёт и другим объяснит или там "с нуля" всё сможет запустить.

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

Понятное дело, странно апплаиться на синьйора с технологиями 10 летней давности за пазухой. Тут уж без обид. Это мидл с перспективой что за пару месяцев (условно) догонит всё что надо. Проблема что "динозавров" вообще не рассматривают и вменяют им "отсталость", хотя люди просто ответственно работали.

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


Кроме того далеко не все люди в состоянии "откатится на грэйд ниже" у себя в голове и вести себя соответственно. У меня например такое тоже не особо получается.


И самое главное зачем фирме заморачиваться и рисковать учитывая что "настоящих" миддлов на рынке труда не то чтобы вообще нет? Это имеет смысл только если действительно планируют через пару месяцев заиметь сениора. Или если миддлов просто не найти.

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

Вот и получается, будешь ответственно работать над проектом - больше работы не найдёшь никак.

И самое главное зачем фирме заморачиваться и рисковать учитывая что "настоящих" миддлов на рынке труда не то чтобы вообще нет?

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

Вот и получается, будешь ответственно работать над проектом — больше работы не найдёшь никак

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


И да, это реальность в которой мы живём.


Это не мидл, а синьйор на устаревших технологиях. Называйте грейд как хотите.

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

Поэтому в фаанги при найме даже не важно на каком ты там языке писал до этого, да. Как раз от синьора ждут, что он придет и разберется, потому что он синьор SWE, а не прорраммист фреймворка Х.

Ну во первых я очень сомневаюсь что им действительно вообще не важно. И сениора, который всю жизнь писал на условном С возьмут сениором на условный JS.


А во вторых может фаанги себе могут такое позволить. Может даже просто большие корпорации себе могут такое позволить. Но из фирм с которыми приходилось иметь дело мне так никто не делал.

Там "любой язык из списка". Я на последнем месте работы не в фаанге 2 новых языка освоил, когда была необходимость. Фоеймворки даже считать не буду.

Я на последнем месте работы не в фаанге 2 новых языка освоил, когда была необходимость.

Вас взяли исключительно для работы с этими языками и вы их учили уже на новом месте? И вас взяли сениором?

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

Синьором. Языки потребовались через несколько лет после трудоустройства, когда возникли новые задачи.

Обучать при необходимости уже имеющихся сотрудников это всё-таки слегка другое.


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

Конечно не проблема. Но пара-тройка месяцев это "подаренная" зарплата за эти же пару-тройку месяцев. А этих денег иногда просто нет. И даже если есть, то всегда найдётся куда их ещё можно потратить.

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

Это другой вопрос. То есть если оптимальных вариантов нет, то начинают выбирать из того что есть.


Но при этом на мой взгляд всё равно "сениор последние 10 лет пиливший некро-стек" будет совсем не в приоритете при выборе.

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

А меня не попросили. Жаба, питон, плюсы, го - сказали, что можно писать на чем нравится на собесе.

да пофигу, берём синиор жаваскриптера, за месяцок в плюсах разберётся и будет нам тут фигачить трейдинг инфру на темплейтах

Что в фразе "любой язык из списка" не понятно, какое слово объяснить? Если писать надо будет на плюсах, то в списке жабаскрипта не будет. Впрочем, вы сами это прекрасно знаете, хз зачем решили поёрничать.

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

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

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

Если бы было так просто понять что однодневка. Qt тоже не однодневка, но куда сейчас с ней?

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

Вопрос не в том приносит ли технология пользу, а в том превышает ли эта польза затраты на миграцию.

Да не во много очень неплохо соотносится. После 10-20 лет опыта ты понимаешь что тебя мало чем могут удивить.

И программирование это решение сложных задач часто алгоритмических. А не новомодный фреймворк.

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

Создателям Kotlin из JetBrains не нужно учить как он работает. Это они делают этот язык. Создателям идеологии SRE из google не нужно учить что это и учится работать по книгам google. Создателям Borg не нужно смотреть в k8s что бы понять что это и зачем.
Ребятам из Яндекса создавшим clickhouse не нужно знать зачем он нужен и как он работает.

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

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

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

И даже среди сварщиков есть специализации на определенном типе сварки.

Чем человек профессиональнее тем меньше с него просят и балкон отремонтировать и небоскреб спроектировать и трубы сварить. И все это за 5 тысяч рублей.

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

даже та же система Linux и язык C++ в свое время были "модными" технологиями.

А ну если так то и каменный топор это тоже новые технологии. Вы явно пытаетесь притянуть аргументы.



Разработчики Clickhouse написали его на набирающим моду и самым современном C++20, а не на C++ образца 98-го года

И что прямо таки в 2016 году (Даже раньше на пару лет релиз был просто в 16 году) и писали на C++20? Мега круто должен заметить)

Боюсь представить сколько стоят разрабы которые умеют писать на несуществующих еще стандартах в будущее. И вакансия наверное была вида в 2014 году "От кандидата требуется работы с C++20 не менее 10 лет. Без этого не обращаться"

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

Да, я тоже вижу проблему когда на программирование смотрят как на набор технологий или навыков MxN.

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

А почему невозможно? Какие неразрешимые технические причины?

Причины разрешимые, но точно не за пару дней, и даже не месяцев.


В новой версии .NET до сих пор нет серверной части WCF, поэтому обрабатывать SOAP попросту нечем.


Ещё новую версию .NET не поддерживала IKVM.NET… на момент когда я последний раз смотрел этот проект. А без IKVM.NET в мире .NET просто нечем генерировать PDF по шаблону, все платные решения уступают в возможностях бесплатному Apache FOP.

чет мне кажется что использование штуковины по типу ikvm это както не по феншую… проще микросервис сделать который генерит пдфки на нормальной яве
а реализация явамашины на дотнете ради apache fop это помоему перебор какойто

Микросервису нужно для генерации передать объектную модель, и ещё дать обратные вызовы для запроса дополнительной информации.


Делать всё это, а потом мучаться с версионированием API ради генерации PDF — вот настоящий перебор.


Есть, конечно, вариант передавать микросервису не модель, а готовую вёрстку формата XSL-FO — но в таком случае на стороне основного приложения всё ещё нужен шаблонизатор. А нормальная реализация XSLT есть только всё в той же экосистеме Java.


Разумеется, на стороне .NET возможности шаблонизации есть, тот же Razor. И он даже удобнее. Но переписывание всех шаблонов с XSLT на Razor — занятие точно не на пару дней.

Микросервису нужно для генерации передать объектную модель, и ещё дать обратные вызовы для запроса дополнительной информации.

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

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


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


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

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


но тем не менее решение использовать портированную виртмашину для таких целей всеравно выглядит оверхедом

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


Но да, библиотек конечно от такого в проекте прибавляется. Впрочем, не сильно больше чем от Teleric Reports.

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


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

До появления .NET Core у него не было никаких проблем с поддерживаемостью, да и позже этот .NET Core несколько лет находился в настолько сыром состоянии, что отсутствие его поддержки не было чем-то странным. Казалось, что вот сделают наконец MS полноценную версию .NET Core, и IKVM.NET его без труда поддержит тоже.


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

, что автор IKVM.NET заявил "мне надоело, пусть кто-нибудь другой поддержку делает"...

вот именно по этому нельзя такие штуки нежелательно использовать, очень велик риск такого


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

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


Кстати, если что, у Telerik Reports была бы та же самая проблема с миграцией, учитывая сколькими костылями её приходилось подпирать...

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

Многие таки и приходят...

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

ну есть вариант использовать или штатные библиотеки к инструментам или общепринятные либы с тысячами звезд на гитхабе и активной разработкой (а у меня были такие либы где вроде и обсуждения и звезды, а последний коммит 5 лет назад… и чувствуешь себя как на бочке с порохом)
привет кстатм либам под bluetooth для java… которых нет, а те которые есть это полный пипец...

Смотрели такое?
https://devblogs.microsoft.com/dotnet/corewcf-v1-released/


Сам не пользовался, мы просто перевели весь транспорт на свой велосипед.


Ну а хостить джава-машину, чтобы генерировать ПДФ — это круто :)
Использовали несколько разных ПДФ-генераторов, не знаю ваших требований к генерируему документу, но наши покрывались полностью.


У нас, на пример, ещё были зависимости от CallContext и самописных ХТТП-модулей, ничего, нашли замены/переписали.


Я к тому, что если хочется перейти — то надо собраться и пару недель посвятить пруф-оф-концептам, а дальше всё (относительно) просто.
По своему опыту — рекомендую.

Смотрел, но на момент когда смотрел оно ещё не было дописано. Вот что бы такое сделать чтобы новости не проходили мимо?.. Сейчас, видимо, мигрировать и правда стало бы проще.


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

Да требования-то простейшие:


  1. генерироваться он должен по шаблону, а не кодом, потому что генерировать надо много (на этом требовании уже сливаются 80% библиотек);
  2. должен поддерживать переменное число строк в таблицах (на этом этапе сливаются все библиотеки которые работают через открытие готовой PDF и заполнение полей);
  3. верстка шаблона не должна превращаться в танцы с бубном (на этом этапе сливаются все оставшиеся библиотеки кроме одной потому что они основаны на wkhtmltopdf);
  4. должна быть возможность выделить часть текстового поля полужирным (в этот момент слилась Telerik Reports)

http://blogs.msdn.com/b/dotnet/rss.aspx
http://blogs.msdn.com/b/visualstudio/rss.aspx
Это чтобы ничего не пропускать ;)


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


Выше правильно подсказали — вынести в отдельный сервис.


… мы переезжали на NetCore 3.1, тоже было вполне решаемо при желании/необходимости.

Кстати, тут была статья какое-то время назад, люди импортозамещают библиотеки для работы с ПДФ — отличный фич-реквест для них был бы, по-моему, и конкурентное преймущество ;)


https://habr.com/ru/articles/739114/

Ну да, отличный фичареквест: "мне 5 лет назад нужна была такая-то фича, сделайте её пожалуйста. Правда, вашу библиотеку я всё равно не куплю, потому что больше она не нужна..." :-)

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

А что мешает генерить LaTeX'ом?

Ну хотя бы то что это вообще не библиотека для генерации PDFок по шаблону?

Но кстати LaTeX действительно можно использовать для автоматической генерации pdf по шаблонам.

Сам был удивлён когда узнал что так делают и это относительно неплохо работает :)

Исходные данные-то ему как передавать? Или предлагается сначала внешним шаблонизатором сгенерировать latex-документ?

Можно сразу latex документы. Можно другие форматы, которые latex понимает. Можно мешать.

Да, TeX-шаблон, подставили данные, запустили pdflatex — готово.

А вы когда пробовали мигрировать? Просто я переводил средний по размеру интернет магазин на .NET Core года 4 назад. Так тогда даже group by и union вроде в каком-то релизе EF Core не были реализованы. Потом, конечно, стало лучше. Где-то с версии 3.1.

Кстати, под NET Core вполне можно было оставаться на EF6 и спокойно дожидаться, пока они доделают необходимые фичи.

обрабатывать SOAP попросту нечем

SoapCore?

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

В новой версии .NET до сих пор нет серверной части WCF, поэтому обрабатывать SOAP попросту нечем.

А Microsoft WCF разве не похоронил уже? Как минимум неофициально?


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

Серьёзно? Ну то есть у нас до сих пор есть и "легаси" на .Net Framework и новые версии. И в .Net конечно многое удобнее сделали, но принципиальной разницы я не вижу и даже по коду далеко не всегда смогу на первый взгляд определить что есть что....

А Microsoft WCF разве не похоронил уже? Как минимум неофициально?

Так потому и проблемы с миграцией. В проекте-то была шина на SOAP, и куча интеграций, в том числе с компонентами на Java и Python.


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

Вот и я разницы не вижу, но...

Причём обратите внимание: во-первых, наличие опыта работы с новыми технологиями — это первый и единственный вопрос от HRа. Во-вторых, нужен именно коммерческий опыт, пет-проекты не котируются.

Вот и я разницы не вижу, но...

Ну единственное что я могу себе представить это что им нужно именно под линукс писать. Или интересует именно связка PostgreSQL + EntityFramework.


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


П.С. А вам точно на миддла надо? То есть я не то чтобы за вами слежу, но в C# темах вы вполне себе примелькались и по тому что вы пишите я бы вас скорее в сениоры записал :)

Их ответ выглядит странно даже если им нужно писать под линукс на связке PostgreSQL + EntityFramework Core, потому что это всё я умею. Но их ответ — это данность, как бы странно она не выглядела.


А на миддла я устраивался потому что в сеньоры меня не взяли ещё раньше, из-за отсутствия коммерческого опыта в написании микросервисов.

Должен честно сказать что я уже очень давно не устраивался на работу "по нормальному". И мой опыт этого дела в последнее время идёт скорее с другой стороны баррикад.


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


П.С. Но может я просто в каком-то "пузыре" или там у меня ошибка выжившего...

Например, не существует и не планируется net7 версии VSTO - а это не позволяет перетащить всякие Excel add-in'ы

Multi-target компиляция общих библиотек с минимально необходимым количеством #if NETFRAMEWORK #else?


… но в целом, конечно, согласен — вполне себе ограничение.

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

Телеком. Просто фокус в том, что в свое время собралась сеньорская команда и аккуратно по DDD начала разделять ландшафт на сервисы в контейнерах. Помимо всего прочего, это облегчило и инкрементальный апргейд компонентов. Ну и вообще я считаю, что какая бы система ни была сложной в плане моделей и интеграции - возможность апргейда должна быть ортогональна этому всему. Особенно для вещей типа JDK с 99% обратной совместимостью. Иначе как раз и получаем "кровавый" энтерпрайз, где повсюду Гордиевы узлы.

сколько лет проекту? 10? 15?

Проекту лет 12. Но 5-6 лет назад пришла текущая команда и стала переписывать с ноды на джавовый стек.

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

Физического закона нет. Но просто для понимания — у вас есть в проекте скажем что-то масштаба Apache Spark? Ну когда фреймворк, который вы используете, по размеру слегка побольше вашего приложения (например, на пару порядков ;) ?


Ну то есть вот живой пример — на Хабре недавно было заявление, что стек Hadoop переходит на новые версии Java. Последним сдался проект Spark. Только прикол знаете в чем? Что переход на новые версии будет реализован в Spark 4. Которого, на минуточку, нет в природе. Текущая версия 3.4.1 (мы живем на 3.2.1), а версию 4 еще даже не анонсировали, насколько я знаю. То есть, это вот все "переходят" будет происходить на горизонте года в четыре, а до практического применения дойдет лет через шесть.


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

Но 5-6 лет назад пришла текущая команда и стала переписывать с ноды на джавовый стек.

Не всем так везёт что работодатель готов оплачивать такие переписывания ради того чтобы переписывающие поддерживали себя восстребованными на рынке труда.

Тогда у вас остаётся два варианта: тратить на это личное время или сразу искать другого работодателя.


Ну или смириться с тем что ваша востребованность на рынке труда будет медленнее расти. Или даже падать.

Тогда у вас остаётся два варианта: тратить на это личное время или сразу искать другого работодателя.

"Личное время" в резюме не запишешь. Я ещё предлагал общественности продвигать идею за работу над легаси требовать компенсации-доплаты. Т.е. условно "я готов и дальше тащить ваше легаси, но вы должны мне платить столько чтобы через условные 5-10 лет я мог больше не работать". Достаточно справедливо, ведь и правда новой работы больше не найдёшь.

"Личное время" в резюме не запишешь.

Зато можно записать всякие пет-проекты или участие в опенсорс проектах.

Достаточно справедливо, ведь и правда новой работы больше не найдёшь

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

"я готов и дальше тащить ваше легаси, но вы должны мне платить столько чтобы

Те кто пишет на всяких Фортранах и Висул Фокс Про на Западе именно так ценики и ставят.

Не всем так везёт что работодатель готов оплачивать такие переписывания ради того чтобы переписывающие поддерживали себя восстребованными на рынке труда.

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

Потому что запарился с прежним поделием.

Не всем так везёт что прежнее - поделие, и можно и рыбку съесть, и на люстре покататься. Чаще всё-таки - работает. Пока не набегут смузихлёбы с риторикой о поделии и масштабировании и бросаются всё переписывать. Дай б-г после этого работает. А то есть публичные примеры обратного https://habr.com/en/articles/741142/

Я не пытаюсь подловить. Я пытаюсь понять откуда возникла фраза прозвучавшая выше, "8-я версия архидревняя" или как то так. Теперь понял.

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

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

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

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

А кто сказал что будут именно вот так прыгать на сырое? Люди обсуждают миграцию. В том числе наверняка и то когда стоит мигрировать.

Вполне себе логичный подход. Многие так делают.

Ну вот мне и интересно, что там обсуждать-то? Если релиза еще нет и нет четкого понимания, какую пользу миграция принесет. Любые изменения кода, это всегда риски. Даже багофикс это всегда риск - полечив один баг можно сделать баг в другом месте. А миграция это не только изменения своего кода, но и измнение чужого кода, да еще и непонятно в насколько большом обьеме. Для этого должны быть веские причины.

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

Если релиза еще нет и нет четкого понимания, какую пользу миграция принесет

Иногда полезно просто время от времени мигрировать на новые версии чтобы потом не оказаться в ситуации когда надо мигрировать сразу через десять версий.

То есть в куче фирм такая миграция это просто запланированный процесс, который идёт всё время.

Тут любой чих должен быть миллион раз перепроверен.

И точно так же нельзя себе позволить сидеть на out of support версиях. То есть рано или поздно, а придётся мигрировать.

зачем вам миграция

Java 21 начинает приносить game changing фичи после почти 10 лет проходных релизов. Открываются возможности по качественному бусту перфоманса и снижению потребления ресурсов. Меньше платить за ресурсы облака в перспективе - достаточно хорошее обоснование для бизнеса?

зачем коллектив собирается потратить деньги бизнеса

Сервисы в докерах вообще-то. Миграция будет выглядеть как собственно замена циферок версий в сборщике, замена базового образа и прогон автотестов. О каких именно невероятных "деньгах бизнеса" речь? Мы иногда на разбор жалоб от саппорта времени и сил больше тратим, чем на эти миграции.

Хотя про мир Java плохо знаю, может там если релиз, то уж прям огого и ошибок у них никогда не бывает

Я знаю ровно 1 человека, который с пруфами находил минорную проблему в JDK 17 на релизе. Людей, которые своими руками засаживали критические баги в прод, я знаю на порядок больше.

Если бы он ещё написал это сразу...

"Так себе", что за 11 лет не удосужились выперднуть?

И есть ещё один аспект, который я считаю необходимым подчеркнуть. Честность. Человек мог бы конечно наврать как он знает всё самое модное ультрасовременное. Проштудировать собесовские вопросы, авось пронесёт. Но, похоже, и честность в современном айти ТОЖЕ совершенно не котируется...

Всё самое модное ультрасовременное

Вы понимаете, речь не о "модном ультрасовременном", а о, ну, разнице уровня "человек пришёл из эпохи, где руки перед едой не мыли, и хочет устроиться хирургом" - потому как разница между софтом и сервисами, которые пишутся на современной джаве (или котлине) сейчас, и тем, как пишется софт на 1.5-1.6 и тем более в ограничениях свинга, примерно похожая.

 Человек мог бы конечно наврать

У вас, если честно, довольно странное представление о реальном мире: честность не компенсирует недостаток квалификации. "Чуваки, вы ищете тракториста, я 10 лет занимаюсь ретро-рейсингом и реконструкцией гоночных машин 1960-х годов. Про тракторы особо ничего не слышал. Возьмёте?" - ситуация звучала бы абсурдно, а она куда ближе к описываемому, особенно если ищется не разраб именно десктопных джава-приложений.

М... А на чём сейчас пишут десктопные Java-приложения?

Чаще всего их просто не пишут :)

Но если уж на то пошло, их пишут совершенно точно не на пятой-шестой джаве, и их можно писать на JavaFX, а не свинге.

Взять, к примеру, Windows. В ней полно legacy-компонентов, но это самая популярная ОС на десктопе. И смузихлёбы не смогут работать, если бородатые дяденьки не будут поддерживать данную устаревшую платформу. То же самое касается Microsoft Office и Visual Studio.

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

А можно совершенно дилетантский вопрос по взрослению технологии и т.п.? Использую Java очень редко, по необходимости. В прошлом году для группы студентов обновил инструментарий с использованием Java 17. В первый же день была куча жалоб, что ничего не работает. Оказалось, что на куче машин (Win/Mac/Linux) по тем или иным причинам предустановленная/дефолтная версия -- это Java 8. Я не разбирался, почему так, но факт налицо. Так вот, на какой версии сейчас проходит граница между устаревшим, актуальным и смузи?

Java на винде не предустанавливалась никогда, это ваши сотрудники в универе её туда "предустановили".

Речь о персональных ноутбуках, и как правило, это маки. С виндой как раз нет проблем ровно по указанной причине: студент просто идёт на сайт и ставит какую-нибудь рекомендуемую версию OpenJDK, ну и дальше всё хорошо.

По той самой Java 8 часто и проходит. Потому что с неё мигрировать на новые версии не особо тривиально и куча фирм решила не заморачиваться и остались сидеть на ней.

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

Java 8 - античность, Java 11 - устаревшее, Java 17 - актуальное. Java 20+ - смузи. Есть шанс, что через полтора месяца (19 сентября), когда выйдет Java 21, все сдвинется.

Будем наблюдать. Пока что мои попытки переехать на Java 17 (уже два года как) постоянно натыкаются на более старые версии у конечных юзеров. Откуда у них эти версии -- не знаю.

Скорее Java < 8 — античность, Java 8 — устаревшее (но используемое), Java 11 / 17 — актуальное. Java 20+ — смузи.


Java 8 много где до сих пор используется, так как мигрировать большие продукты сложно, а из реальных плюшек (которые нельзя закрыть библиотеками) — немного синтасического сахара, вроде var.

На Java 8 все еще выпускаются, и еще довольно долго будут выпускаться исправления ошибок и фиксы безопасности. Все что более старое, насколько я знаю EOL. Ну то есть, устаревший — это который не поддерживается вендором. Не факт что это единственно возможный подход, но он имеет под собой определенную логику.

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

Я работаю во фронтенде последние 10 лет. Я начинал на AngularJS 0.8 и ES3 и появления inline-block в CSS. Не так там и много разницы с последними React, Svelte. А за последние 5 лет со времен TS2.8, React16, Angular6 вообще никакой.

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

Догонит, как только это станет необходимо… он у вас будет РАБОТАТЬ

Проблема в том, что человек не знающий 8 версию java просто не поймет большую часть кода проекта, например вида


return source.getDate("date")
.stream()
.map(Book::get)
.filter(Objects::nonNull)
.flatMap(Collection::stream)
.map(r -> new Xxx(PREFIX + r.name()))
.collect(Collectors.toSet());

потому что в 6 java это писалось бы как (не уверен, что везде без ошибок перевел)


      Set<Xxx<ThValid>> set = new HashSet<>();
      for(Data<ThValid> data:  source.getDate("date")) {
           Book book = data.get();
           if(book != null) {
             for(Page<ThValid> page: book) {
                  Xxx<ThValid> x = new Xxx(PREFIX + page.name())
                  set.put(x);             
             }
          }
     }
     return set;

Это просто два разных языка. А в некоторых местах это может быть 99% кода бизнес логики. И обучить его понимать потребуется куча времени, это почти тоже самое что взять человека знающего условный PHP и пытаться переучить его на Java. Можно, но очень долго и дорого.

А что вообще сложного в понимании этого кода? Между прочим, на каждый из использованных тут методов есть описание в JavaDoc. Чтобы понять этот код — достаточно уметь читать документацию.


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

все эти мелочи вроде streams можно выучить за день.

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


этот человек — тот ещё динозавр, совершенно не способный воспринимать современные технологии

Если человеку легко учить новое, он сначала бы выучил синтакис java 8, а потом уже приходил на собеседование. А не наоборот.


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

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

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

Несмотря на истинность Вашей фразы, она не совсем корректна отражает ситуацию.

Если человек знает хотя бы один из C#/Scala/Kotlin/Rust/TS (и еще кучи языков с функциональщиной), то Java Streams он поймет без особых проблем. Разве что будут вопросы по поводу очень бедного API.

Если человек знает только С, причем кодил только на нем последние лет десять (без чтения хабра, без всяких там GitHub по вечерам), то функциональный подход будет понять тяжелее. Не невозможно, конечно же, но тяжелее.

Я подозреваю, что Вы как раз знаете разные языки и разные подходы: и процедурный, и ООП, и функциональный и многие другие, а потому, Вы просто вспомнили аналогичный подход из знакомого Вам языка.

А потому, получается, что неявно Вы только доказали тезисы @vedenin1980, @siziyman@panzerfaust: тест на знание новых возможностей Java был провален человеком с опытом на Java, хотя этот тест способен пройти даже человек без особых знаний Java, а просто с хорошим кругозором. Получается, что необходимо или почитывать статьи про различные подходы, или следить хотя бы за своим стеком, а иначе вероятность успешного прохождения собеседования падает (ибо многие люди замечают корреляцию между подобными знаниями и уровнем разработчика).

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

Spring Boot был выпущен в 2014, уже 10 лет назад И Spring Boot это просто launcher, а микросервисы это просто Rest контролеры. Если у вас большой опыт в старом спринге, микросервисы на Spring Boot осваиваются за день. Поэтому у меня будут большие вопросы к тем кто не захотел/не смог сделать это до собеседования.

Это понятно, но при общении с HR приходится врать про коммерческий опыт.

а микросервисы это просто Rest контролеры

Мощное заявление. Т.е. ни gateway API, ни service-locator, ни saga, ни другие проблемы распределённого взаимодействия не рассматриваем? Просто rest контроллеров накидали (а ведь и rest-а никакого может не быть), а оно там пущай само как-нибудь? Ну тогда согласен, что за день осваивается.

Т.е. ни gateway API, ни service-locator, ни saga,

А gateway API и service-locator вы будете писать на Java Spring Boot? Это уже вопросы девопса и архитектуры, и скорее вопросы со звездочной для человка, который заодно будет выполнять роли девопса и архитетора.


То есть да, похорошему там бы и Кубирнетос и докер свам знать и многое другое. Но я говорил о минимуме перехода со старого Spring'а именно в части кодирования, без девопса и разработки архитектуры.

А gateway API и service-locator вы будете писать на Java Spring Boot?

По крайней мере, в Spring это предусмотрено.

https://spring.io/projects/spring-cloud-gateway

https://spring.io/guides/gs/service-registration-and-discovery/

я говорил о минимуме перехода

Вы говорили о том что "микросервисы на Spring Boot осваиваются за день", а оказалось что как в том анекдоте "и не выиграл, а проиграл".

Догонит, как только это станет необходимо. Лучше взять такого, он у вас будет РАБОТАТЬ

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

Лучше быть богатым и здоровым, чем бедным и больным. Если повезло выловить такого, то это несомненно удача. Но чаще получается не так. Те кто может работать, имеют навзрачное резюме, на собесах пространно нннукают. А те кто бодренько проходит [алго]собесы, от зубов отскакивают всякие паттерны и "устройства event-loop", на деле такуую дичь творят. И потом на все интернеты вой поднимается "ах как мало толковых". Толковых много, просто не все их умеют искать.

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

Плюсом к этому - кандидатов обычно сильно больше двух, реальной информации о реальной производительности у меня ни по одному из них нет (за исключением случаев референсов от доверенных людей), ваше утверждение про то что человек со старым стаком будет РАБОТАТЬ в отличие от выглядит слегка надуманным - человек будет РАБОТАТЬ или не будет работать в зависимости от совокупности его личных характеристик, среди которых новизна стака сильно далеко не самая важная.

Широта охвата, к сожалению, часто оборачивается недостаточной глубиной.

хм…
первая история
мне чето кажется вопрос именно в п.2 и 3, также интересно по какой вилке автор ищет работу
к сожалению я так полноценно на рынок en/us не выходил, по этому не могу адекватно ответить… но если сравнивать с РФ и соседними странами, от вилки очень сильно зависит тип интервью, банально на топ-сеньор и топ-лид вакансии, собес чуть проще (во всяком случае для меня, потому что я сползаю в менеджмент, я так нашел работу тупо поменяв резюме с сеньора на лида поняв что из десятка отзывов на резюме они все повально трех-четырех этапные, а тут я нашел работу буквально с третьего интервью)


вторая история
Любимая моя тема с бизнес рисками, для начала не указывайте в резюме что это ваш личный проект, и вообще резюме надо строить так что вы крутой спец, а не бизнесмен, особенно если вы подаетесь на линейную должность


третья история
тут надо сразу увольнятся, штрафы и кпи в ИТ это даже сейчас причина уволится сразу


в четвертой истории
давить надо на софтскиллы и опять в менеджмент, там не такие требования к харду, работа и жнец и шнец на самом деле это про софтскиллы… и котирующийся у вас опыт в первую очередь там


p.s. чисто мое мнение, я бы героем почти всех таких историй (ну кроме штрафов), но я их проходил в более удачных условиях на рынке

Сейчас с российским паспортом искать работу в us/eu - практически дохлый номер. Я думаю, хотя и не уверен на сто процентов, что эти страны сейчас даже не выдают рабочие визы россиянам.

Западная Европа, US, UK рабочие визы выдают точно так же, как и раньше. А удалёнку за пределы РФ/Беларуси предлагают даже те, кто перестал выдавать ВНЖ и турвизы. У меня в мае был оффер на удалёнку из Польши. Правда контора маленькая, пилят интересный embedded open source, без нормальной бизнес модели -- предложили слишком маленькие деньги. Но из-за сокращения роста экономики увеличились конкуренция, поэтому оффер получить намного тяжелее.

"удалёнку за пределы РФ/Беларуси"

Это значит мы согласны на удаленку, но но вы должны быть не в России?

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

Просто не все готовы преодолевать сложности, связанные с перечислением денег в РФ сейчас.

Вы совершенно не правы.

Уйма людей, которую я знаю, получила рабочие визы за последний год. Включая меня самого, чёрт возьми.

вопрос скорее не в визах, а в есть ли офферы он контор готовых сделать релок из РФ и вообще взять человека из РФ?


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

Да, есть, достаточно порыть любые тематические агрегаторы вакансий.

Другой вопрос, что в процессе может потребовать поехать в какую-то другую страну, потому что не все стадии процесса в РФ сейчас можно пройти (например, IELTS в РФ сейчас не сдать).

достаточно порыть любые тематические агрегаторы вакансий.

дело не в агрегаторе, вакансии то понятно что есть


Я подозреваю что есть определенный процесс отказов именно по паспорту, компании не готова процессить русских
(помню в галере были отказы от русских на некоторых проектах из-за требовний СБ заказчика — не брать россиян, но на тот момент таких было не много, тогда было важно территориально не находится в РФ)


но правда ситуацию пока сам лично не мониторил, мне интересно что говорят те кто лично столкнулся
мой срез заканчивается на осени прошлого года

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

Да, сколько-то каких-то отказов от кого-то наверняка есть из-за паспорта или из-за страны проживания. Существенное количество - по моему опыту, нет.

А какой у вас стэк?

Устроился скалистом-бэкэндером с элементами фуллстэка (реакт, который я не знаю, хмык), собеседовался также на джависта, кажется, одна из вакансий была на нод.жс.

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

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

Это раньше так было. А сейчас все хотят точных совпадений, вплоть до самой последней версии ЯП или фрейворка.

Когда "раньше"? Я менял работу в 2018, 2020, 2022 (осенью) годах, имея по несколько офферов на разный тех.стэк каждый раз.

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

А сейчас все хотят точных совпадений, вплоть до самой последней версии ЯП или фрейворка.

Зависит не просто от компании, но скорее даже от рекрутера.

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

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

Отлично сказано! Кто бы еще объяснил это рекрутерам...

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

Но много и тех, кому пофиг, бизнес есть бизнес.

есть солидарные — отказ найма с локацией из России, если сам переедешь — велкам

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


сама контора может быть и не против, но инвесторы выдвигают такие требования что им приходится так поступать

У одного из моих заказчиков, из Германии, периодически проходят проверки на нарушение европейских санкций по фамильным спискам. Т.е. Чтобы никто с ФИО сотрудника или владельца компании сотрудника, подряд, субподряд и т.п. не фигурировал в этих списках. Из-за чего они стали выводить руссо-подданных из проекта, т.к. это геммор, при этом, говорят, ничего личного

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

Иногда наступает момент, когда пора уже забить на поиски работы и начать что-то делать.

Если есть на что кушать и где жить.

Ну так это и к поиску относится. Следующий уровень - это, конечно же, перестать болтаться без дела и попробовать найти работу :) Вот так и бегаем по кругу.

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

Тоже вариант, но если я чего и имел ввиду, то нечто среднее, по своим скромным запросам :)

Напишите книгу по своему открытому проекту или технологиях или что там вам интересно, к примеру, чем по собеседованиям ходить. Сразу и вопросы о языке снимает (если книга на английском) и еще много о чем, в зависимости от книги. Кому-то даже заработать удается на продажах, но не стоит на это рассчитывать. Так что и интереснее и полезнее, чем задачки к собеседованиям решать. Благо, издать сейчас проще некуда онлайн.

"Я не задрачиваю литкод и нахватался по верхам без глубокого знания теории о том, как же на самом деле работает event-loop в node.js (как же я горю с таких вопросов, уверен, на хабре найдутся люди, которые на полном серьезе спрашивают подобное, расскажите мне, зачем)."

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

К вам пришли два кандидата.

Оба знают, как работают промисы, мастерски владеют axios, опыт плюс минус одинаковый. Но один понимает как работает event loop, второй - нет. Кого выберете? И по софт скиллам примерно одинаковые.

У которого грудь больше?

А если у того кого зовут Jason?

Так даже лучше!)

Тот кто первый пришёл. Время же горит, работы - конь не валялся. А это упущенные миллионы денег. Или, всё не совсем так? Можно и привередливо повыбирать пару месяцев, да? А, может, и не нужен совсем никто?

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

Ну то есть никто и не нужен, на самом-то деле.

Я правильно понимаю, что вы не собираетесь слушать иные точки зрения? :)

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

А Вы что такой токсичный? Ситуация выдуманная, но вполне может быть реальной. Я выберу того, который не просто знает как пользоваться, например, reactjs, а знает платформу nodejs на более низком уровне. И не надо для этого повторять теорию перед собесом, стек свой нужно знать и понимать.

Я как бы согласен. Но вот представьте, что вы получили 30 тыс. заявок на вашу позицию (потому что зарплата там $500k в год). Предположим, вы как-то отфильтровали 100 кандидатов. Как Вы планируете их интервьюировать без алгоритмов? Желательно не надеяться на испытательный срок, потому что Вам нужно выбрать лучшего из этих 100 сразу, после выбора одного остальные больше не придут обратно, если испытательный провалится. Да и дорого это пробовать через испытательный срок.

Как Вы планируете их интервьюировать

Берёшь первого, потом второго.... потом следующего. Первому, кто подошёл по требованиям, делаешь предложение.

Вам нужно выбрать лучшего из этих 100

Не думаю что это возможно. Не думаю что задача ставится именно так.

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

Мне очень понравился этот подход.

Интересно, в реальной жизни используется ли он в процессе найма?

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

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

По поводу третьей истории

Мне жаль что вам довелось испытать такой опыт. Грустно ,что вам не мог сразу кто-то из друзей/приятелей подсказать, что бы уходили сразу.
Девушек-it, меньше как-то воспринимают ( хотя это ошибка), скорее всего ещё из-за этого было такое отношение. Вам главное верить в себя и в ваши силы! Я думаю, в 95% кампаниях, такого отношения не будет, поэтому смело пробуйте, если ещё не устроились, всё получится!

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

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

Проваливаешь собес на вопросы (.net) - а можно async в lock? а почему? а сколько весит объект в памяти, что там за данные? а как работает dictionary внутри, какие механизмы используются, почему он иногда O(1), а иногда O(n)? а где получение данных быстрее, в массивах или в linkedList? а от чего зависит? а при чем тут кэш процессора? и прочие вопросы, которые обычно в голову не приходят изучать пока ты пишешь корпоративные микросервисные api-шки.

И через 5-6 таких собесов становишься на голову выше самого себя.

Абсолютно солидарен. Кто-то после провала идет в гугл и учится, а кто-то идет на хабр и жалуется. Особенно странно видеть, когда в одной жалобе соседствуют тезисы "собесы превратились в тест на умение пройти собес" и "да у меня X лет опыта, я что угодно могу освоить". Выходит, человек может освоить что угодно, но 20-30 платиновых вопросов с собесов почему-то в этот список не входят.

Освоить — не за три секунды же.

А кто говорит про 3 секунды? С месяц назад были где-то комменты от сеньора-помидора, который якобы уже 30 собесов за год завалил. Виноваты оказались, как водится, "фиктивные" сеньоры-интервьюеры. Ну по моим прикидкам за год сеньор может не то что платиновые вопросы усвоить, а какие-нибудь фреймворк или стандартную библиотеку языка по винтикам разобрать на расслабоне.

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


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

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

Вы серьезно? Да на одном только хабре каждый месяц мелькают статьи типа "100 вопросов для java-собеса". ИЧСХ, на 80% собесов разговор никуда дальше и не уходит. А если и уходит, то контора как правило реально пилит что-то сложнее среднего и абы кто им не нужен. Я так провалил собес в 2ГИС - ну так я на них и не в обиде. Скилла не хватило.

У вас есть фактура какая-то? Чтобы у вас регулярно спрашивали дичь типа "как работает функция синуса из стандартной библиотки"?

Коллегу как-то просили написать функцию синуса с рядом ограничений =)
Я бы к такому на собесе не был бы готов, и в (условиях озвученных ограничений) тупо зафигачил бы таблицу значений. Даже работало бы, с определенной точностью, но я почти на 100% уверен это вряд ли, что ожидали на собесе увидеть.

Всерьез.
Конкретно java каджиту малознакома, синусы тоже не спрашивают — не та область, а вот, например, по контейнеризации — да.


Абстрагированный пример:
I: Вы работали с proxmox и lxd, напишите простой Dockerfile.
Me: Почему не скрипт для lxd или proxmox? (ладно, на самом деле этот вопрос всегда опускается, потому что вызывает синий экран с ребутом). Хорошо, но мне понадобится заглянуть в мои заметки и проверить результат в консоли.
I: …


Собеседование от яндекса:
Вводная: было подчеркнуто несколько раз и рекрутеру и интервьюеру что постоянно программировать не приходится, поэтому нужно будет подглядывать.
Вроде ok-ish, продолжаем.
Задание простое, распарсить лог и посчитать количество вхождений по uri в секунду. Начало было не очень правильным, т.к. код писался наживую в их онлайн-блокноте, и начал вообще с собирания строк в список. Итогом стал функциональный (насколько это вообще возможно на питоне — спасибо Erlang'овскому прошлому) парсер, выбирающий только нужные куски из лога и инкрементирующий ключи в Dict.
I (в обратной связи): решение интригующее (но, видимо, недостаточно).


И вишенка на торте: они приходят сами, со словами как вы нам подходите, а на деле плюс-минус отклонение от принятой кривизны рельсы в их пайплайнах === BSOD.
Такая вот се ля ви.

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

Да, в целом-то, как раз на ваш изначальный тезис… суть в том, что, во-первых, в каждой конторе — свои погремушки, во-вторых, перенести опыт с одних погремушек на другие многие просто не умеют. Как следствие, если нет буквального попадания в типичные внутрикорпоративные задачи (о которых не обо всех узнаешь и через год работы) — собеседование проваливается.
Как раз потому, что то требуется на очередной coroner-case, о котором ты впервые слышишь, найти ответ за три секунды, то за эти три секунды обосновать неспециалисту, почему опыт с разных оберток вокруг одних и тех же ядерных механизмов вполне себе переносится.

И потом со всеми этими знаниями продолжаете клепать "корпоративные микросервисные api-шки" постепенно забывая эти самые знания.. .

Простите за некропостинг, но я вот читаю комментарии и ощущение что чего-то не допонимаю.

Все выше перечисленные вопросы, ну, простые. Их можно задать интерну на собеседовании и не ошибиться. Отдельно можно выделить первый, тут надо подумать что lock в этом контектсе может вызывать дедлоки, но ведь все остальные вопросы проходятся на первом(!) курсе универа (конечно для C, но теория она и в C# теория) по специальности смежной к программированию (кибернетика), причем полноценно, с импелементацией. В списке рекомендованной литературы даже есть What Every Programmer Should Know About Memory.

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

Спасибо за предложение.

Я попытаюсь развернуто объяснить, я не знаю сколько вам лет, я в разработке 18 лет и 25 лет в ИТ вообще, так вот, технологии развиваются, да-да, вы будете удивлены, но технологии не стоят на месте и то что вам сейчас преподают на первом(!) курсе универа, когда-то даже в проекте еще не было. И так получается, что знания которые вам дали на первом(!) курсе универа, через некоторое время устаревают и нужно развиваться дальше. И один из немногих, но хороших способов узнать о своих пробелах в знаниях, это пройти стресс-тест у других разработчиков на собеседовании.

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

Это в целом верно но не для этогого конкретного случая: все базовые коллекции и алогритмы придумали 60+ лет назад, кеш процессора придумали вроде как ~40 лет назад. Я не хочу этим сказать, что все должны знать имплементацию skip list'а на память, но просто я не понимаю почему люди негодуют, что подобные задачи им могут дать на собеседовании, ну мол это не рокет саенс. Я тут не конкретно к вам обращаюсь, просто у вашего комментария были конкретные вопросы с собеседований.

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

Все поменялось за 40 лет, даже за 10, и кэш процессора, и реализации алгоритмов и структур в C#.

Вместо разговора о предмете, вы вычленяете малую часть и пытаетесь что-то мне донести, я только не могу понять, что. Какаю цель вы преследуете в попытке разговора со мной?

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

"Отучился девять классов, пошёл в армию, потом на контракте три года. Научился всему: и грузовик водить, и забор красить, и даже радиограммы отправлять. Чёрт, да я вообще всему могу научиться теперь, только скажите! Дослужился до старшего лейтенанта, взводом командовал! Теперь вот ищу работу мастером цеха на заводе, и меня почему-то не берут"

Поясню аналогию. Из образования - бакалавриат (извините, но это называется "неоконченное высшее", кто бы что бы не говорил). Из опыта работы - 7 лет в конторе деда Никанора, на все руки мастер, но глубоко ничего не знает и не умеет.

Эти "горящие" вопросы про основу как раз и показывают, понимает человек суть того, что делает, или просто по-обезьяньи копирует. Пример из другой области: знал когда-то человека, презиравшего грамматику при изучении иностранных языков - мол, это всё теория, а я вон сериалы в оригинале смотрю. Речь шла, конечно, про английский. Как-то раз он стал меня уверять, что надо говорить не "I do", а "I'm doing", потому что первый вариант - устаревший и архаичный, а второй - современный и модный. Ну да, ну да...

Из образования - бакалавриат (извините, но это называется "неоконченное высшее", кто бы что бы не говорил)

Неоконченное образование = это Associate Degree = 2 года учёбы в колледже с последующим выпуском. https://en.wikipedia.org/wiki/Associate_degree

(если не лезть в долг у банка на годы, у большинства, просто, нет денег на то, чтобы оплатить 4 года колледжа и получить Bachelor Degree, который двое круче, чем Associate Degree)

Я так понимаю, автор истории всё же из России, так что бакалавриат - это первые четыре курса вуза.

Переход России на болонскую систему подразумевал, что 5 лет обучения как-нибудь утрамбуют в 4 года.

Тем не менее, это считается оконченным высшим образованием.

Формально да, но фактически... Впрочем, это выходит за рамки текущей темы)

Основная проблема работы на us/eu - это сложность оплаты труда. Нужно реально выискивать какие то схемы, оплачивать чуть ли не криптой - короче заниматься всякой подозрительной деятельностью, привлекающей внимание всяких надзорных органов. Вроде и можно, но любой другой кандидат, которому можно просто перевести деньги со счета на счет - будет выигрывать в данной ситуации.

"Я не задрачиваю литкод и нахватался по верхам без глубокого знания теории о том, как же на самом деле работает event-loop в node.js (как же я горю с таких вопросов, уверен, на хабре найдутся люди, которые на полном серьезе спрашивают подобное, расскажите мне, зачем). "

  1. наблюдая за продажами со стороны аутсорс-компании, констатирую заметный IT-кризис - открытых вакансий стало меньше, IT-компании растут меньше, и т.п.

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

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

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

  1. Вероятно, вы плохо говорите. Или язык плохой, или культурно вы не интегрированы в западную модель коммуникации. Это сложно объяснить, но "чужой" чувствуется за километр. А сейчас, когда команды все работают удалённо, и единичные компании смогли действительно наладить этот процесс, и всё зависит от личного уровня ответственности и самоорганизации отдельного инженера, человек, у которого есть любые странности в коммуникации, даже при хороших хард-скиллах, будет отброшен.

  2. Вероятно, вы не так хороши по хард-скиллам, как вы привыкли о себе думать. Я не задаю вопросов про Event loop на собеседованиях, но понимаю, почему они есть. Если человек работает с нодой и не почесался почитать откровенно базовые вещи про свой core stack, ИМХО - разговор можно сворачивать. Какова вероятность, что он держит руку на пульсе и следит за развитием экосистемы (которая печально известна скоростью своего развития и эволюции, и размером "зоопарка")? Какова вероятность, что он сможет разруливать сложные ситуации, связанные со спецификой работы самой ноды? Какова вероятность, что при получении задачи, он проанализирует возможные варианты решения, и сможет обоснованно выбрать наилучший? Какова вероятность того, он анализирует различные варианты структурирования исходного кода, архитектурные подходы, подходы к тестированию, и т.п.

Поэтому совет - вернитесь с небес на землю. Сегодня к собеседованиям на этом рынке нужно готовиться. В том числе "задрачиванием литкода", а также коммуникации, ответами на типовые вопросы, продумыванием нарратива о себе и своём прошлом опыте, подъёмом "матана" по systems design, чтению и запоминанию хотя-бы основной документации по своему core stack-у, сбору инфы о потенциальном нанимателе, подготовке CV под позицию, вылизыванию своего github-аккаунта и демонстрации контрибьюшенов в open source, тренировочным собеседованиям, и т.д. и т.п. Даже сегодня ищущий да обрящет, но для этого нужно перестать ныть про плохие интервью для начала.

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

Это просто издержки экзаменационного конкурса на должность. На месте пришло N человек, эйчару надо выкинуть N-1 под благовидным предлогом. Если даже такие собесы удерживают чьё-то внимание до конца - значит, конкурс действительно большой даже у маленьких компаний.

Если человек работает с нодой и не почесался почитать откровенно базовые вещи про свой core stack, ИМХО - разговор можно сворачивать.

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

Означает ли такое незнание таких вот базовых вещей профнепригодность для работы в компании, где основной язык - русский? По-моему, нет.

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

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

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

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

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

И это не то знание, которое может быть вымыто за ненадобностью. Это понимание, которое остаётся в долговременной памяти.

Понимание и умение объяснить - разные вещи. У меня ни раз бывало, когда мне показывали кусок моего кода и спрашивали "почему так написал?". А я понимаю, что написал единственно верный вариант, а вот почему - с ходу и не могу объяснить. Только через несколько дней до самого доходило, как словами описать, почему так - лучше.

Вы же не забыли, что вообще понимается под "частью речи", и зачем оно нужно?

Когда я задал этот вопрос жене, она начала перечислять "подлежащее, сказуемое, ...". Пришлось поправлять.

И это ещё в спокойной обстановке. А на собеседованиях я и возраст-то свой забывал порой, какие уж там ивент лупы. :)

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

Большинству и не нужно. Тот факт, что вы умеете писать на русском, не делает вас специалистом в этой области. Если вы филолог/лингвист/преподаватель русского языка, то будьте добры загните все нужные пальцы. Вам за эти знания другие люди платят деньги.

Если же вы Node JS разработчик, пожалуйста, разберитесь с event loop.

Вот преподаватель Javascript пусть и разбирается с event loop, зачем это разработчику который на Java/Typescript просто пишет?

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

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

Насколько я знаю, для построчного чтения файла на ноде нужно:


  1. открыть readable stream,
  2. применить к нему трансформацию которая нарежет его на строки (readline или самописную через transform stream),
  3. собственно, прочесть эти строки (через событие или в цикле с await).

Где мне тут понадобится знание тонкостей event loop?


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

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

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

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

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


  1. файлы в ноде читаются чанками через readable stream;
  2. чанки в строки можно нарезать через трансформацию;
  3. путешествий во времени не бывает.

На самом деле в решении этой задачи я вообще не пользовался своими знаниями о event loop. Если мне дадут подобное API на любом другом языке, моё решение никак не изменится независимо от того есть или нет event loop в языке.


И нет, это не готовое решение. Это решение, которое совершенно логично вытекает из доступного API.


И уж совершенно точно мне для решения этой задачи незачем знать что фаза "pendingCallbacks" идёт перед фазой "poll"




PS


Дорога стала скользкой, включить ли вам блокировку? Правильный ответ зависит от типа вашей блокировочной системы.

Но никак не зависит от внутреннего устройства дифференциала.

Особенно занятно получилось про "путешествий во времени не бывает". Если бы мы писали такой код на PHP, то никаких событий, никаких await'ов бы там не было. Там было бы более интуитивно и последовательно: достали файл, прошли синхронно циклом, конец.

Вот тоже вполне себе решение, которое прямо вытекает из API:

const data = fs.readFileSync('file.txt', 'utf8');
const lines = data.split('\n');

for (let i = 0; i < lines.length; i++) {
  console.log(lines[i]);
}

Но вы так не сделали. Именно потому что шарите за event loop :)

PS

Тип вашей блокировочной системы определяется ее внутренним устройством. Это же прямая взаимосвязь. Можно сказать "правильный ответ зависит от внутреннего устройства вашей блокировочной системы" и смысл не поменяется.

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


И, повторюсь, знание о том что фаза "pendingCallbacks" идёт перед фазой "poll" тут вообще никак не помогает.




Тип вашей блокировочной системы определяется ее внутренним устройством. Это же прямая взаимосвязь. Можно сказать "правильный ответ зависит от внутреннего устройства вашей блокировочной системы" и смысл не поменяется.

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

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

"pendingCallbacks" идёт перед фазой "poll" тут вообще никак не помогает.

Можно прикинуть пример с setImmediate, где это знание вам поможет понять, что происходит.

это знание никак не помогает мне понять как поведёт себя машина на скользкой дороге

Когда вы говорите "никак", вы прям категорично на этом настаиваете или это просто оборот речи? Мне кажется, вы вполне можете попробовать спрогнозировать поведение машины на основе своих знаний. Зная, как оно работает вы можете предсказать поведение с некоторой точностью.

Когда вы говорите "никак", вы прям категорично на этом настаиваете или это просто оборот речи? Мне кажется, вы вполне можете попробовать спрогнозировать поведение машины на основе своих знаний. Зная, как оно работает вы можете предсказать поведение с некоторой точностью.

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

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

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

У меня один в один ситуация как в статье последние года три. Возможно все это началось еще с карантина COVID-19. Сливаются подряд все. А последние месяца два (я раз в полгода выхожу на рынок труда для мониторинга), назначают интервью и пропадают. Наиболее ответственные пишут, что уже нашли. Получается дальше HR даже не прохожу. Я пробовал снизить зарплатные ожидания, поднять, задрать. Все одинаково.

Мне за автора 4 истории наиболее обидно. Сам вот тоже, образование бакалавра по ИБ и магистратуру по ней же (при чем на английском). Оканчивал ИТМО. А в итоге... Опыт собесов у меня есть в статье на аккаунте, сейчас работаю просто разрабом Microsoft Dynamics AX. Вроде что то делаю, а чем больше делаю, тем сильнее страх что я ничего не понимаю, что я тупой и меня не сегодня так завтра уволят, ибо прошло 2 года а я чет какой то не такой, хоть ПМ и говорила мол по мне только позитивная обратная связь.

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

Такое чувство что я до пенсии (если не уволят) буду делать ERP причем в качестве максимально среднего разраба, а я админить хочу, ИБ заниматься, серверы писать... Мда.

"а есть ли у вас разрешение на работу в нашей стране?"

ага, тут обычно обламываются те кто думает что их закидывают предложениями из US, а там почти все вакансии такие, GC/Work Permit required


(привет всем конторам которые орут про жесткий дефицит всех профессий на которые они делают курсы).

конторы про страну где они находятся орут… правда не говорят что орут про сеньоров, а в РФ Dynamix явно не в фаворите…


imho вам надо менять место работы на более релевантное


а я админить хочу, ИБ заниматься, серверы писать… Мда.

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


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

но там с зарплатам всё не очень

для России более-менее норм. Ну и на собес лучше придти подготовленным конечно - хотя бы на своих виртуалках нужные и актуальные инструменты погонять.

для России более-менее норм.

это смотря о каких цифрах мы говорим
вилка 150-200 для сеньоров-админов с ф-ции лида это не норм

так так, мы сейчас говорим, чтобы человеку перекатиться из Dynamics в ИБ, или о том, что о том, что сеньоров с ф-цией лида в ИБ это не норм? Не норм.

Но 150-200 с учётом премий человек получит, с голоду не умрёт, через год-полтора сможет предметно разговаривать о росте зарплаты.

через год-полтора сможет предметно разговаривать о росте зарплаты.

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


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

на которые они делают курсы

справсти ради, на Dynamics Axapta/Navision курсов нет.

ИБ заниматься

видел только 1 вакуху с релокацией

админить хочу

вакух DevOps'ов с релокацией и сегодня дофига. Ветки вместо денег, но из России вывезут (если вдруг у вас есть такая цель).

серверы писать

бэкендеров нужно довольно много, но там конкурс сейчас мама не горюй.

Ха. Цените то что у вас есть!

  • админить хочу

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

  • ИБ заниматься

    Привет крючкотворство и ответственность. А уж если хакнут вашу контору...

    Стоит это также существенно дешевле.

  • серверы писать

    Ну и пишите - себе автоматизацию и домашние пет проекты. Думаете по заданиям писать серверы интереснее?

    Можно еще в какой-нибудь free software проект присоединиться.


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

Голосовать не могу, поэтому так напишу. Поддерживаю, это боль. Фактически история в том, что вакансий начинающих вроде как много, но не пройти дальше HR. Как будто на зп Junior-a ищут мидла и если не хочешь в резюме врать будущим коллегам про опыт - без вариантов.

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

P.S. Вопрос HR-ам : Вам нравятся соискатели, которые соврали вам еще до знакомства? Может давать "технарям" выбор некоторого количества соискателей допущенных до технического интервью?

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

Несмотря на конкурс в районе 50 к 1 у джунов (и это значение растёт), горшочек в виде курсов продолжает варить. СБ, ГБ, ЯП, Отус, Слёрм - и это только крупные - продолжают выпускать и выпускать людей.

Да что ж вы к этому опыту пристали... Вместе с опытом приходит возраст, и если кандидат 35+ — все, пошел отсюда.

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

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

Задач где нужен джун именно, а не мидл я не знаю. Возможно где то они есть и я даже могу их придумать... но лично не видел.

промежуточного звена нет

М.б. автоматизация тестирования?

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

Первая история:

как же на самом деле работает event-loop в node.js

Даже если не знать технических подробностей, для сеньера, имхо нужно понимать почему setImmediate(()=>{ for(;;){} }) заблокирует работу всей программы

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

Вот только для понимания того почему setImmediate(()=>{ for(;;){} }) заблокирует работу всей программы — нет необходимости знать все фазы цикла событий. Достаточно знать что цикл событий есть и что поток один.

1) Я не задрачиваю литкод и нахватался по верхам

2) Рынок прямо сейчас перенасыщен крутыми литкодерами из ФААНГА

3) Я русский

А где вариант "прошу много денег"?

А где вариант "прошу много денег"?

на самом деле есть вариант "прошу мало денег"


p.s. вообще в историях не хватает вилок на которые соискатели не могут найти работу

Не очень в курсе как в us/eu, а в России - сам попробовал - меняешь вилку в резюме в бОльшую сторону - оп, и уже начинают сами писать и что-то предлагать. Видимо, у HR есть где-то фильтрация на диапазон сколько человек хочет. И если хочешь меньше, чем предлагают на должность - то просто даже до HR может не дойти, отфильтруется сразу.

Прошел собес в одну из дочек Ростелекома тимлидом разработки. В вилке от 200, в беседе "мы больше 140 не можем". Ладно, здесь депрессивный регион, 140 — огромные деньги, сгодится.

Договорились. Они пропали. Достучался.

Ответ "вы нас устраиваете, но мы выбрали того кто запросил меньше".

А что значит с девопса уйти во вторую линию сисадминства? Это как из нейрохирургов уйти в медсёстры. Ну ладно - в старшие медсёстры. Есть же ещё первая линия. Хотя это ниже уборщицы. Обычно с аникея начинают на первой линии, затем по головам и правдами не правдами выходят на вторую, а уже оттуда, откашляв золу и сажу адского подвала техподдержки идут в девопсы. Или есть девопсы аникеи?

3) Я русский, (забыл упомянуть, ищу только на us/eu маркете) и как бы интервьюер ни говорил, что всё окей, иногда чувствуется, что не окей.

Уже сколько раз им говорили, не рождайтесь в России. А они рождаются и рождаются, рождаются и рождаются.

Пока вижу для себя 3 возможные причины почему я до сих пор без работы:
3) Я русский, (забыл упомянуть, ищу только на us/eu маркете) и как бы интервьюер ни говорил, что всё окей, иногда чувствуется, что не окей.

А вы не пробовали проверить свои скилы английского и умение правильно себя вести на собеседовании (вот те самые soft skills)?


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

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

Жаль, что в первой истории нет количества подач. В 2021 году искала работу, в вебе в Германии, уже живя в стране и имея опыт работы 4 года на американскую компанию, плюсом к 12 годам российского опыта. Приняла оффер только на четвертый месяц, до этого был десяток отказов, один оффер на смешную сумму. Решала литкоды, готовила ответы на поведенческие вопросы, ну и делала тестовые, конечно. Сейчас полагаю не менее полугода поисков будет, если меня затронут сокращения.

Немного с ностальгией вспоминаю, как до 2015 года искала работу в Москве. Она всегда сама меня находила, максимум пару собеседований и решение принято, никаких месяцев поисков.

Ой, да программисты зажрались просто. Считают, что если у них 7 лет опыта то они синьёр-помидоры. Почему у врачей опытные начинаются от 10 лет опыта, а доктором с 20 годами никого особо не удивишь. Привыкли, что вакансий много и что их все хотят. А теперь вакансий мало и за них ещё придётся повоевать.

Ещё опыт опыту рознь. Если чел 7 лет юзал накатанные решения и пропукивал стул на удаленке, а затем в тимлиды метит, то эт странно

Как человек с 25 годами профессионального опыта в программировании, замечу, что 25 лет не так уж принципиально отличаются от 7 лет с точки зрения hard skills. Значительная часть технического опыта теряет актуальность. Врачам в этом смысле проще, пациенты те же самые.

Первая исторя прям как у меня, с единственной поправкой, что занимаюсь с RPA и все, что с ней связано, а также бизнес аналитикой

как же на самом деле работает event-loop в node.js

Не приходилось работать с node.js - но .NET-чиков я всегда спрашиваю, как работает Task. Для разработчика нагруженных приложений важно понимание, как выполняется написанный код - и как следствие, каких паттернов лучше избегать и где искать при появлении каких-то "тормозов" и прочих non-functional проблем. Или - что и где нужно поменять в настройках, если у вас 32-ядерный сервер (или одноядерная система-на-чипе - такое тоже бывает).
При этом, разумеется, я никогда не спрашиваю и не оцениваю знание наизусть имен классов, методов и набора их параметров - т.к. я и сам это не помню, благо есть IDE и Гугл.

Я не задрачиваю литкод и нахватался по верхам без глубокого знания теории о том, как же на самом деле работает event-loop в node.js (как же я горю с таких вопросов, уверен, на хабре найдутся люди, которые на полном серьезе спрашивают подобное, расскажите мне, зачем)

99% кандидатов умеют во фреймворки и могут сделать все, что вы видели и не видели в разных приложениях. Ваша ценность в том, как вы поведете себя в случае, если что-то пойдет не так, или вы столкнетесь с чем-то нестандартным, сделанным из говна и палок, или же наоборот заумным или требующим оптимизации производительности до мелочей. Работодатель в этом случае просто хочет быть уверен, что вы возьмете и все сделаете на лету, а не будете тратить неделю, чтобы разобраться, как работает event loop или как сделать O(n log n)

Сначала, после прочтения вводной подумал - "да реально просто невезение и несправедливость - пришлю контакты свои, мы сейчас как раз в процессе найма новых сотрудников"

Прочитал первую историю и столько противоречивых мыслей в голове. От "ну чувак же реально опытный" до "ну а чем ему я помогу - работаю я в российской компании, а ему только eu/us подавай"

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

Я техлид/тимлид + занимаюсь техническими собеседованиями (не HR). Хотелось бы пару слов сказать про собеседования и "забористые" вопросы про event loop :) - Да вопросы и такие тоже есть, но вопросов очень много и по множеству других направлений (Nest.js, базы данных, кеши, очереди,.. и простые и средние и сложные). А специфика такая что из технической команды из 40 человек только 10 мидлов, джунов нет, остальные сеньоры (да, и такое бывает, с реально крепким опытом доказанным на практике) - поэтому уверенное знание и умение в том стеке технологий, которым мы пользуемся это очень важно, применение (и понимание) ООП, SOLID и Clean Architecture тоже очень важно - так как являются ядром нашего код стайла. Но самое важное - умение думать и упорство.

Сейчас есть открытые вакансии по бекам и девопсам, поэтому если нужна работа и не пугает тяжёлое собеседование - пишите denis.trayzhon@marketguru.io или нашим HRам напрямую.

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

1 история для западного рынка актуально да, там нужно полюбому постоянно тренить на литкоде

Похожие траблы, овердофига времени не смог найти работу, если сперва ещё был фидбек по каким-то тех вопросам и подтягивал знания по ним, то после некоторого времени уже просто ловил отказы в стиле "взяли другого чела, он чуть лучше в %{}" и уже напрямую говорят, что это была лотерея и мне просто не повезло, без конкретных минусов в скилах. Тут уже сложно не сгореть)

Все верно, важность hard skills нельзя недооценивать. При этом стоит помнить, что за 6 секунд HR из Amazone принимает решение о выборе кандидата, а первое впечатление на собеседовании формируется всего за 15 секунд

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

Вы можете обладать хорошими навыками. Но этого мало. Другие могут это не увидеть или не захотят увидеть. Помните про 6 и 15 секунд? Поэтому так важно уметь производить впечатление, коммуницировать и договариваться, как будто вы в шахматы играете — на 2-3 хода дальше собеседника прогнозировать развитие беседы и формировать ее направление, если вы хотите получить оффер

Я 15 лет в консалтинге работаю с похожими карьерными болями: отличный кандидат, хорошее резюме и опыт, но на собеседовании "мы вам перезвоним", а на испытательном сроке "мы ожидали другие результаты, до свидания!"

Когда ко мне приходят с похожими запросами, то мы смотрим, какие именно soft skills находятся в точке роста, тренируем навык проходить собеседования и формировать впечатления, чтобы был хороший старт в выборе нормального оффера и карьерного роста дальше. Если хотите узнать подробнее, как это сделать, напишите мне https://career.habr.com/la__vita__felice

"Ты должна была бороться со злом, а не примкнуть к нему!" SW

Не представляете, сколько было кейсов в практике, когда кандидата не брали из-за гендера, внешности, интровертности, а еще была реальная история про "так, он скорпион, мы таких не берем"

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

Первый кейс - что может быть:

  1. Софт скиллс

  2. Отдельно выделю знание языка. Не очень понятно, на каком уровне и каким именно языком, помимо родного, владеет автор.

  3. Высокие (относительно соответствующего рынка) зарплатные ожидания

  4. Высокая конкуренция на рынке труда. В целом US/EU это понятие растяжимое. Возможно, в тех странах и в тех компаниях, куда подавался автор, слишком высокая конкуренция труда. Знаю также массу компаний, где вся разработка вынесена в Индию, а в головном офисе только менеджеры.

  5. Многие EU компании принципиально не готовы брать иностранцев (и дело не в том, что автор русский или нет, имеет значение принадлежность к EU или нет) не из EU, так как бумажной волокиты много и далеко не факт, что в итоге получишь желаемый residence permit (законодательство в сфере труда в EU знаменито сильными протекционисткими мерами) , да и уходит с момента акцепта оффера до выхода сотрудника на работу от 4 месяцев, а многим нужен сотрудник здесь и сейчас. Часто бывает проще и быстрее нанять местного специалиста, который может выйти на работу через 1-1.5 месяца (в зависимости от того, какой у него/нее прописан notice period на текущем месте)

  6. Всё-таки бренд компании, в которой сейчас трудится автор, может сыграть свою определенную (отрицательную) роль, если текущий работодатель как-то негативно известен за пределами страны.

Знакомая ситуация, после программы обмена искал работу в Германии (около 1.5 лет работы бэком питона), в питон пытался, в девопс пытался. Больше 400 откликов, около 10 собесов и ни одного оффера. Как итог разочарование в своих навыках и знаниях.

По поводу первой истории. Касательно трудоустройства в EU\US компанию.

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

2. Не хотят тратить время на релокацию и адаптацию сотрудника. Человек нужен здесь и сейчас. Поскольку даже если релокация будет по упрощенным схемам (типа нидерландской kennismigrant или общеевропейской синей карты), то это все равно время, как минимум месяца 3. Надо быть реально очень желанным чтоб тебя ждали. И факт российского гражданства тут не причем. точно так же завернут индийца, турка, бразильца или даже американца.

3. Завышеные зарплатные ожидания. Многие соискатели считают что в этих европах по умолчанию платят много. И это может быть так, но не везде и не всегда. Кстати может быть зарплата, которая заложена на позицию просто меньше порога для упрощенных схем. А с общими схемами связываться не хотят, каким бы классным спецом ни был соискатель.

Ну и напоследок совет ищущим работу в европе - выберите одну-две страны и ищите целенаправлено там. Посмотрите как оформлены профили в linked in у местных, адаптируйте свой под них. Тоже самое касается резюме и сопроводительных писем. Почитайте советы на местных сайтах как и что писать.

Хех, 2 года работу на яве ищу, но смежный опыт на других языках и девопсе всех отпугивает

А зачем его показыывать тогда?

Без сарказка, но разве зебра тут поработал год, через год вот там еще два — чем-то лучше?

Тут завист от того какой опыт, если условно все время работал java программистом, но иногда приходилось подерживать проекты на php, иногда на C#, а бывало и фронтенд писать. Ну и всякие devops штуки. Тогда можно ища работу чистого java программиста — эти технологии вообще не упоминать.


Либо последние 5 лет работал java программистом, а до этого сборная солянка языков — тогда можно показывать и расписывать только последние 5 лет, а остальной опыт работы вообще убрать или мелком упоминуть без языков и технологий.


Если программист работает то java программистом, то с++, то php, то снова java — это действительно выглядит несколько странно.

Ну, замените стек в паре мест работы. Девопс можно оставить.