𝗜𝗧 СОБЕСЕДОВАНИЯ
401 subscribers
26 photos
2 videos
2 files
35 links
Андрей Табаков
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿 - О собеседованиях в IT
Download Telegram
Как заявили в Минцифры: "Россия достигла цифрового суверенитета, почти все иностранные IT-компаний ушли с рынка". Тщательно пытаюсь обходить тему политики, но не получается.

Да действительно много иностранных IT-компаний ушло, но вместе с ними в той или иной степени уехали и множество российских фирм. Jetbrains уехали полностью, Yandex частично вывез лучших специалистов и пытается вывезти крупные проекты (автопилот), Tinkoff - самый цифровой банк РФ, уже тоже не тот.

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

Однако стоит отметить, что во всём мире IT сфера переживает не лучшие времена. Массовые увольнения в Twitter, Meta, Microsoft. В основном были затронуты международные офисы аутсорс и аутстаф, но тем не менее. Вакансии были - закрыты, нежинеспособные проекты - свёрнуты. Экономия.

По моим данным, IT-инвесторов (по всему миру) сейчас можно разделить на 2 группы:
- Большая группа: они вошли в стадию жёсткой экономии и ожидания, они очень насторожено относятся к текущим проектам и стараются максимально подробно изучать бизнес стратегию/планы/отчёты компаний куда вкладывают деньги.
- Меньшая группа: пытается найти золотую жилу по цене поддержанного автомобиля. Многие стартапы умерили свой пыл и ищут относительно небольшие инвестиции (раньше все просили по 100 млн$, сейчас просят 1 млн$), которых хватило бы на полгода-год, чтобы пережить этот этап.
____
Как и всегда, я даю собственную точку зрения, она может не совпадать с вашей информацией и мнением, это абсолютно нормально. Можете написать в комментарии, обсудим.
👍13🔥1😢1
Работник #146,987 из Google (с зарплатой 735к$ в год), который работает 13 часов в неделю, осознаёт, что Twitter всё ещё работает, оставшись всего лишь с 700 специалистами.
😁8
Как раз сегодня пообщался с одним человеком в индустрии. По его информации, за прошлый месяц бигтехи (MAANG, Twitter и пр.) уволили порядка 250,000 человек. Удручает то, что у многих были визы, которые ограничивают пребывание в стране до 1-3 месяцев, в течение которых необходимо найти новую работу и сделать визу на новом рабочем месте. А сейчас в штатах начинается пора праздников, до нового года все свои дела сворачивают.

Многих специалистов разберут другие компании и стартапы, но очевидно, с понижением.
😢4🔥2
А теперь Twitter активно нанимает специалистов, интересно выходит
😁6👍4
Хорошие мысли по найму
Forwarded from FEDOR BORSHEV
#вопрос Как нанимать сотрудника на незнакомый стек? К примеру, если мне нужно нанять react-разработчика, то я знаю какие вопросы задать, т.к. я сам пишу на реакте. Но как быть, если в команду нужен специалист по machine learning и ни у кого нет опыта в этом направлении?

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

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

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

Это был традиционный вопрос по понедельникам. Задавайте свои на fborshev@pm.me
👍16
Кандидат: "Никогда об этом не задумывался"

На собеседовании, для снижения градуса тревоги, я стараюсь пояснять, почему я задаю те или иные технические вопросы. Не раз мне попадались собеседники, которые пытались убедить меня: "В жизни не встречался с этой проблемой", "Это всё теория, а я практик", "Вы задавайте вопросы по существу, а не книжке". Недоумеваю, когда слышу такие фразы, от Senior программистов.
По хорошему, задача интервьюера - нащупать границу знаний кандидата, по требованиям в вакансии. Вывести именно на тот уровень, когда человек не сможет ответить, чтобы узнать насколько глубоко он изучил ту или иную тему. Ценность большинства "теоретических" знаний, кажется мизерной и необходимой лишь для собеседований. Действительно, многие проблемы встречаются очень редко, а об оптимизации задумываются ещё реже (есть те, кто считают, что это задача фреймворков и библиотек). Кандидаты не очень часто задаются вопросами, почему это работает так или иначе, но если не углубиться в причины и следствия, то это останется магией.
Когда же я начинаю объяснять и приводить примеры, мне обычно отвечают что действительно сталкивались с этим, но закостыли решение дополнительными обработками. В этот момент мне становится понятно, что человек просто не разобрался с проблемой. Если он сообщил об этом в самом начале вопроса (пока я не успел углубиться в детали), то это будет означать провал текущего задания.

Избегайте магии, старайтесь понять почему и как работает готовое решение.
👍16🔥1
Актуальность процесса обучения.

Каждый сам решает какой путь обучения ему пройти и лекции каких специалистов слушать. Многие авторы каналов и блогеров предлагают готовые планы развития. Несомненно, большинство из них уже являются senior разработчиками с многими годами опыта.
Несколько месяцев назад ко мне пришёл iOS разработчик. Он решил немного сменить сферу и захотел разрабатывать сервера на Kotlin. Пришёл он ко мне с запросом составить ему план обучения (kotlin и java для него новые) и порекомендовать различные обучающие сервисы по бэкенду. В этом канале уже есть пост про роадмапы (roadmap) и обычно этого хватает, чтобы начать.
На первый взгляд, составить план не такая сложная задача, тем более коммерческого опыта у меня прилично. Тем не менее, при его составлении, я поймал себя на мысли, что план я писал слишком высокоуровнево. Упускаются базовые понятия и принципы. В моей голове они давно сформировались, а новичку в этой сфере не так понятно что такое "идемпотентный запрос" или "пересчёт индексов в бд". Как впоследствии оказалось, что рекомендовать курсы или книжки по изучению языка или технологии, тоже непростая задача.
Много лет назад, когда я только начинал изучать программирование, я читал определённую литературу, статьи, смотрел курсы, пользовался сервисами. Однако это было давно, всё поменялось, я не могу рекомендовать книги по языку или технологии, так как некоторые реализации, в новых версиях уже просто удалены, подходы поменялись. Всё развивается, причём всё становится сложнее для новичков. Если специалисту, который просто следит за новостями, ещё понятны обновления, то для новичка "решение из коробки" выглядит неочевидным и непонятным.
В итоге, для составления плана, я обратился в сообщества новичков. Там люди прямо сейчас занимаются своим обучением, они знают все современные сервисы, актуальные статьи и каналы. Бесспорно, у них не хватает опыта оценить полезность знаний или профессионализм менторов, часто они натыкаются на бесстолковую информацию и временами на откровено мошенечские курсы, но это их актуальный путь, их шишки. Причём совсем новички теряются в большом потоке информации. Опытному не так страшно потерять несколько часов на изучение неактуальной/ненужной информации, в то же время новичок может потерять недели на изучение того, что ему не особо пригодится.

Не всегда Senior сможет составить актуальный план, он скорее предложит пройти подобный ему путь, как он это делал, но учтите эта информация может быть не совсем актуальной. Есть вещи, которые с годами не меняются, те же алгоритмы, структуры данных, паттерны и т.п. Но вот языки и фреймворки обновляются стремительно, многие книги из моей библиотеки утратили актуальность, в них разбирается более не существующий код и системы. Сервисы и курсы становятся всё совершенее (но желательно на них получать отзывы от других специалистов, которые ими действительно пользуются). Senior разработчики редко следят и проходят курсы на сервисах, тем более они не смотрят на курсы для новичков. Без исследования и самостоятельной оценки, они вряд ли смогут порекомендовать адекватный курс для начинающего.
👍12🔥4😢2❤1
Forwarded from Java: fill the gaps
Задачки на ООП

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

Очень классный тип заданий! Занимают 15-30 минут, выполняются прямо на собесе, отлично проверяют прикладные навыки кандидата👌

Поделюсь тремя примерами для тренировки.

1️⃣ Библиотека

У каждой книги есть несколько копий. Пользователь может взять до 5 книг на месяц. Затем он может продлить использование ещё на месяц.

Если книги не возвращены в срок, система генерирует алерт.

Если нужной книги в библиотеке нет, пользователь может её зарезервировать. Как только она появится, библиотекарь увидит сообщение “пользователь Х зарезервировал книгу Y”. Библиотекарь звонит пользователю X, и в течение 5 дней книга ждёт своего читателя.

Напомню задание: определить API и нарисовать диаграмму классов.

Усложнение: у библиотеки есть несколько филиалов. Пользователь может заказать книгу и сдать её в любой филиал.

2️⃣ Парковка

На парковке доступно определённое количество мест. Они могут быть 3х размеров — S, M и L.

На парковку заезжают транспортные средства разных типов — мотоциклы, легковые автомобили и грузовые. Они занимают места следующим образом:
▫️ S — помещается один мотоцикл
▫️ M — два мотоцикла или одна легковушка
▫️ L — 4 мотоцикла, 2 легковушки или один грузовичок

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

При въезде транспортного средства ему нужно указать, на какое место встать. Чем плотнее заставлена парковка — тем лучше.

Для каждого транспортного средства своя ставка. Также прайс зависит от времени стоянки. Например, для легкового автомобиля:
💲 первые 10 минут — бесплатно
💲 следующие 50 минут — 300 рублей
💲 1-3 час — 250 рублей в час
💲 3 час и далее — 200 рублей в час

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

3️⃣ Автомат с едой

В автомате есть несколько слотов. В каждом слоте лежит товар с указанной ценой.

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

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

В системе три роли:
👨 Оператор. Ставит новый рулон с чеками, балансирует наличные деньги
🙎‍♂️ Покупатель. Выбирает товар, способ оплаты и вносит деньги. При оплате наличными получает сдачу. Если сдачи нет, забирает свои деньги назад. Если всё ок, покупатель забирает чек и товар
🤵 Менеджер. Видит статистику по операциям и балансирует наличку

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

Если вы только подбираетесь к Junior позиции, можете взять эти примеры как основу для пет-проекта. Добавьте Spring, БД, потокобезопасность, юнит-тесты — и проект для портфолио готов👌
🔥11👍1
А PHP ещё не умер? На Ruby кто-то ещё пишет?

В 1990-2000 пророчили, что профессия бухгалтера исчезнет. Считали, что машины и, в частности, excel должны были взять на себя обязанности этих людей, они совершали меньше ошибок и проводили подсчёты в разы быстрее. Сегодня, эта специальность всё ещё жива, да, она претерпела множество изменений, появился аутстаф, но тем не менее всё ещё необходим человек, который будет вести отчётность, причём с использованием всех современных решений (которые должны были заменить, а не помогать им). Что произошло? - Специалисты либо стали вести сразу несколько компаний (аутстаф), либо сильно увеличивают круг своих обязаностей, например совмещают в одном лице рекрутера и офис-менеджера.
Тоже самое происходит и с технологиями, мир меняется, и если на cobol уже никто не пишет (я надеюсь, хотя и не уверен), то вот PHP - жив. Ему уже лет 10 назад предрекали забвение, специалисты массово ломанулись в более популярные языки, многие из них пошли в GO (сейчас не так много интересных вакансий), кто-то пошёл в Node.js. Некоторые компании постарались также избавиться от него и в попыхах переписывали приложения на Java и др. Тем не менее, сейчас некоторые вакансии на Node.js требуют знаний PHP, проекты всё ещё живут и их нужно поддерживать (с прицелом на переписывание, но когда-нибудь в будущем).
Так, из самых больших тенденций, сейчас замечаю, что разработчики PHP и C# пытаются перейти в Node.js.
Если вы пишите, например, на java и думаете, что вас это не коснётся, то вы глубоко ошибаетесь.
Мир пишет больше качественного кода и в разы быстрее, чем это было несколько лет назад, ведь ни технологии, ни языки не стоят на месте. Окружение разработчика развивается и даёт всё больше полезных подсказок, тот же copilot и chatGPT позволяют добраться до ответа быстрее, с этими сервисами возрастает компетенция среднего разработчика, а следовательно в вакансиях будет всё больше требований. Не получится отсидеться в тихой гаване.

PS есть ещё интересный момент из истории, когда никто уже не хотел учить cobol и специалисты буквально исчезли с рынка, их цена стала баснословной. Дело в том, что банковская система (да и крупные компании в целом) в штатах очень рано начали развивать IT, вследствие стали неповоротливыми и накопили много legacy. В одной книжке (уже не вспомню названия), автор писал, что когда такие специалисты перестали существовать, за час работы на cobol можно было получить до 500$
👍9🔥2
Будут ли нужны Junior разработчики в 2024+?

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

Меня как разработчика также не обошли стороной все эти сервисы, я успел попользоваться разными: ChatGPT, Bing, Bard, Github Copilot, GPT-4, пробовал и другие, но они менее интересны. Исходя из данного опыта, могу сказать, что пока такие системы не особо помогают Senior разработчикам. Возможно, я просто ещё не научился составлять правильные prompts, но мне не удаётся у них получить информацию на решение моих задач, хотя некоторые из задач прямо пересекаются с простейшим чтением документации. Один из моих тестов, для сервисов, был написание python скрипта, который через REST отправляет несколько простых запросов открытому API (который OpenSource с открытой документацией), спустя 2 часа попыток, я понял что проще дописать самому, т.е. нейронки мне дали некоторый каркас скрипта, но ни одна нейронка не выдала рабочего решения, какие бы исправления в запрос я не вносил.
Просмотрев примеры, которые распространяют авторы под заголовком "Нейросеть написала рабочее приложение", там действительно встречаются рабочие версии. Однако чувствуется, что там было потрачено много времени и на правильные запросы к нейросети, но самое важное, что эти примеры построены на других примерах. Как вы обучаетесь на курсах? Вы делаете приложение, которое уже раз 100 сделали до вас другие, также и нейросеть выдаёт код из портфолио других людей и это нормально. Тем не менее, мне кажется, что она не сможет вносить более сложные изменения в код, без специализированных запросов (допустим ментора), прямо как и ученики.

Возвращаемся к Junior, можете выдохнуть, от джунов мир не избавится. Это физически невозможно, так как вся градация Jun/Mid/Sen и т.д. это выдуманные названия ни привязанные вообще ни к чему, в одной конторе вы - Senior, в другой - Junior это нормально. Стать Middle без стадии Junior невозможно, даже если вас компания возьмёт без опыта на Middle, это просто будет означать, что когда вы, в их понимании, были Junior разработчиком, вы просто не получали деньги, а продолжали учиться. Значит ли это что можно учиться как и учились ранее? - Нет.

Современный мир уже подсказывает нам, что нейросети стали прочной частью IT жизни, если упустить из вида их влияние, вы будете сильно отставать. Ко всем будут предъявлять больше требований, особенно к Junior, поэтому ваша задача научиться жить вместе с нейронками, спрашивать у них совета, просить написать за вас код, но ни в коем случае не верить им наслово, а скептически относиться к получаемой информации (как и к моим постам 🙂 ). От вас действительно будут больше требовать, но это связано с тем, что информацию получать всё проще, уже не нужно искать в гугле "как отцентровать DIV", нейросеть даст вам готовый код и ответит на вопросы по нему, без тонны ссылок и сайтов. Не нужно искать на StackOverflow, способ как отсортировать строки, нейронки дадут ответ на вашем языке программирования и достаточно быстро.

Практикум (Лайфхак для подписчиков) как заставить себя работать с нейронкой:
Регистрируемся/Логинимся на StackOverflow, выбираем вопрос (желательно без ответа), на который вы не знаете точный ответ и пытаетесь разобраться в нём с использованием нейросети. Когда разобрались - выкладывайте свой ответ, таким образом вы повысите свой рейтинг и сможете указать это в резюме 🙂. Другой способ это решение задач на HackerRank и LeetCode.
❤15👍6🔥5
📍Собеседование не позволило продемонстрировать мои реальные способности и опыт📍

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

Особенно это касается Senior разработчиков, которые ждут, что я спрошу их про проекты, где они интегрировали Kafka, настроили CI/CD с нуля и, конечно-же, декомпозировали монолит на микросервисы. Это ценный опыт, особенно если у работодателя совпадает стек, но мне больше интересно, как они принимают решения и анализируют проблемы.

Я задаю стандартные вопросы по алгоритмам, многопоточности и архитектуре. Чаще всего, у меня есть всего 1 час, нужно проверить кандидата по этим основным блокам. Если кандидат застревает на каком-либо вопросе – нужно задать другой, но всё еще в рамках данной категории. Я стараюсь адаптировать вопросы к языку и стеку кандидата, чтобы он чувствовал себя комфортно.

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

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

Чем больше у вас понимания, тем меньше времени вам потребуется на реализацию и отладку. В результате вы сэкономите деньги и время компании, а это будет аргументом для повышения вашей ЗП, вы станете продуктивнее.
👍16🔥7
Forwarded from Русский HR
1.pdf
5 MB
Посмотрите, кажется, что я нашёл идеальный вариант книжки-путеводителя по Kubernetes и контейнеризации. Простым языком, в картинках, как для детей, объясняются сложные вещи. Идеально для рекрутеров или hr, которые хотят разобраться в страшных понятиях, чтобы разговаривать с кандидатами на одном языке.

Вот бы по всем технологиям были такие книги. Сохраняйте себе и пересылайте коллегам.
👍11🔥9😁3
А что у нас с АйТи в 2023?

Хотел бы зафиксировать итоги ушедшего года, так как он выдался довольно интересным для IT в РФ.

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

- С весны 2023 наметилась тендеция на кратный рост вакансий. Если до весны позиции техлида (Java и подобное) в среднем были на уровне 350 т.р. на руки, что ниже чем были в 2021, то сейчас снова появилось множество вакансий на 450-650 т.р. на руки (без учёта премий, где они есть). Однако из-за инфляции уровень зарплат всё ещё ниже, чем в 2021. В долларе специлисты стали дешевле, чем в 2022.

- Разработчики реже стали соглашаться на переезд.

- Стало больше компаний. Несмотря на возвращение специалистов, дефицит кадров увеличился. Приходят новые заказчики, стали чаще встречаться проекты косвенно связанные с ОАЭ, Индией и Китаем.

- Компании стали чаще проводить live-coding на собеседовании ( кандидаты больше жалуются на данный формат 🙂 ).

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

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

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

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

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

Надеюсь дальше будет ещё интереснее. Желаю всем в новом году - кратных повышений!
👍20
И снова про тестировщиков

Несколько месяцев назад, в нашу компанию потребовался ручной тестировщик. Мы выложили вакансию на HH. Требования были не высокие, нужен был просто адекватный и внимательный человек с базовым пониманием процесса тестирования. Вилка была 60-80, начинающий уровень, в общем.

За 2 недели размещения вакансии, откликнулось 390 кандидатов. 284 из них откликнулось в первую неделю.

Я лично просматривал резюме, так как мне интересно следить за рынком кандидатов. За время просмотра была обнаружена удивительная вещь. У 174 кандидатов, в опыте работы был написан один и тот же IT курс по тестированию, видимо мы попали на его выпуск. Однако что больше всего поразило это идентичность резюме этих кандидатов. Одинаковое форматирование, одинаковые слова. Немного отличается местоположение слов, но фразы один в один, как под копирку.
У меня есть 2 версии:
1. Им составили это резюме менторы/менеджеры/кто-либо ещё.
2. Одно из занятий было посвящено тому, как составлять резюме и преподаватель, который принимает это задание просто проверяет, что форматирование и слова совпадает с шаблоном.

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

Обычно больше тех, кому нет дела и именно они формируют мнение о данном курсе и группе людей.
😁16🔥6😱1