𝗜𝗧 СОБЕСЕДОВАНИЯ
401 subscribers
26 photos
2 videos
2 files
35 links
Андрей Табаков
𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿 - О собеседованиях в IT
Download Telegram
А нужно ли вам идти в программисты?

Серьёзно, задайте себе вопрос, готовы ли вы всю жизнь посвятить программированию и всему что с ним связано. Сейчас об IT говорят абсолютно все, люди стремятся бросить стройки, такси, юриспруденцию, экономику и стать джунами в 30-40 лет. Школьники старших классов выбирают программерские направления в университетах. Самое ужасное в этой ситуации, что люди идут за деньгами, а не потому что им это нравится.

Все мы жаждем хорошей жизни, но вы должны трезво оценивать свои желания и возможности. Если у вас не будет страсти к этому виду деятельности, то на зарплату в 80-120к, и уж тем более, в 200-400к в месяц вы не выйдете. Самая большая проблема в знаниях. Те кто выбрал путь программирования без увлечения, будут знать сильно меньше, чем те, у кого есть огромный интерес. Ни один университет, ни один курс не привьёт вам страсть к этой профессии и не положит в ваш мозг те знания, которые вам будут необходимы для работы.

В моей группе в университете, по специальности программирование, на 1 курс поступило 30 человек, из них только 15 закончили бакалавриат и 11 магистратуру. Самое интересное, что только 6-8 человек пошли работать программистами. Многие мои одногруппники поняли, что сделали ошибку и начали её исправлять, один пошёл в театральный, другой стал монтировать видео, третей была интересна бизнес-аналитика. Это прекрасно, что они вовремя осознали, что выбрали неверный для них самих путь. Они демонстрируют отличные успехи в той области, что им по душе.

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

Всё дело в кругозоре, если человек кроме одного языка ничего не видел, то скорее всего он либо новичок, либо ему программирование в целом не доставляет удовольствия и он просто погнался за деньгами. Мышление интервьюера в такой ситуации следующее: если человек писал даже простейшую программу, на языке, который сильно отличается от его основного (например C++ и Java), то скорее всего у него больше заинтересованность в том, что он создаёт и делает. Действительно, такие кандидаты показывают лучше результаты, так как понимают, что некоторые из задач бизнеса гораздо быстрее и проще решить используя более проработанный подход, нежели изобретать велосипед.

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

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

Разговор начался с нескольких простых технических вопросов и немного затронули сам язык Java. В целом он смог сообразить как на них ответить, но у меня закралось чувство, будто он не совсем понимает, что говорит. Далее мы обсудили его желания по поводу проекта и технологий и вот здесь вскрылся важный момент, он не совсем понимал, что он хочет от компании и от проекта. Затем я прямо спросил, хватит ли ему знаний по Java, чтобы пройти техническое интервью, он решил не подавать виду. На вопрос как вы оцениваете свои знания по Java от 0 до 10, он ответил 8, я предложил ему получше оценить свои знания, так как далее последуют технические вопросы на основе этой оценки. Кандидат хмыкнул и ответил: "Ладно, на 7 твёрдо знаю". После этого ответа, от меня посыпались несложные вопросы, однако было видно, что он сильно плавает в тематике, более того, он плохо разбирался в типах и структурах данных, имел отдалённое понятия зачем нужны интерфейсы. Задача с наследованием поставила его в тупик. В то время когда я задавал вопрос, было слышно, что он пытается загуглить информацию. Вопросы были из разных категорий, так что он вполне мог проявить себя со знаниями Python, но и этого не произошло.

За 30 минут разговора стало понятно, что кандидат кроме как на Python ничего и не писал. Более того мы обсудили его репозитории и стало понятно, что он в коде очень плохо разбирается. Не могу судить о его опыте, впрочем, есть подозрение, что и он "нарисованный". В конце нашего разговора, я спросил зачем же он с опытом Python хочет пойти на Java, ответ поступил незамедлительно: "А вдруг я именно вам и подойду. Я на шару попробовал. У вас ЗП хорошая. Какая разница, какой язык? Все языки одинаковые, то что вам нужно - вы же и научите.". Такой настрой конечно порадовал, но пробелы в основах программирования и желание получать ЗП минимум 120к выглядит смешно.
Техлид или багфиксер?

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

В начале описания вакансии вас завлекают тем что вам действительно хотелось бы видеть на данной должности: поиск и выбор технологий, разработка архитектуры, управление командой разработки с технической стороны и т.п. В общем всё по делу, то что и должен делать настоящий лидер, а именно вести команду разработки к решению бизнес проблем. Однако далее описание дополняется довольно интересными требованиями. Приведу некоторые из них и ранжирую в порядке популярности:
- Доступность 24/7
- Сопровождение ночного деплоя (Частота разная, от 1 раза в месяц, до 1 раза в неделю)
- Немедленное исправление критичных багов, о которых сообщает QA или тех. поддержка
- Доработка функционала за другими участниками проекта в сжатые сроки

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

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

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

На просторах интернета всё больше рекламы различных IT курсов: "Стань Junior разработчиком с ЗП 500к", "Научись DevOps и получай 300к в час", "Data Scientist профессия будущего, 400к в секунду".

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

Стоимость данных курсов от 30к до 500к. Где-то имеется только видео, хотя на мой взгляд такие источники надо обходить стороной, так как практической пользы мало, а стоимость, мне кажется, неоправданной. Лучше зайти на тот же CourseHunter, где вы получаете доступ к тем же видео с множества ресурсов, стоимостью 2-3к за ГОД. Другие курсы предлагают менторов и преподавателей, с ними уже интереснее, но там и ценник выше.

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

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

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

А что же происходит в небольших компаниях и стартапах? Можно разделить такие организации на три категории.

В одной категории основатель и руководитель - это человек, который не имеет прямого отношения к IT. Если он ещё и с опытом открытия успешного бизнеса, то это может быть хорошо для развития организации, однако здесь кроется важная проблема для нас, как разработчиков. Случается, что такой руководитель не понимает аспектов работы и не представляет как устроен рынок разработчиков, ему будет казаться, что, наняв 5 джунов с ЗП 20к и одного Senior с ЗП 100к, можно построить Google. Зарплаты скорее всего будут занижаться, это самая главная статья расходов в бизнесе, надо их урезать. Заказов можно брать много, это прибыль компании, а разработчики всё равно целый день в монитор смотрят, что там может быть сложного, можно их загружать ещё.

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

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

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

Года 3 назад проходил собеседования в различных компаниях и в некоторых из них ловил взгляды Senior Java программистов, которые не понимали, почему я Middle прошу зарплату 120000 на руки. Они и сами получали не больше, а я тогда удивлялся почему такой разрыв, ведь в то время Senior должен был получать от 170.

Время прошло и сейчас я понял, что всё меняется, особенно ценники. Сейчас вакансия Senior Java в Петербурге предполагает оплату в 300+ и это не максимальная планка, как было когда-то, а средняя. Буквально за год IT компании сильно подняли эту планку. Те Senior программисты, которые не просили повышения и не пытались сменить место работы даже и не подозревают о таком изменении рынка.

В итоге на собеседование приходят Junior программисты с просьбой о ЗП в 90к, Middle программисты просят 200к, а Senior программистов ещё попытайся найти. Это нормально.
Полезные рекрутеры

Всякий раз, когда разработчик выкладывает резюме, на нас сваливается лавина звонков и писем рекрутёров. Cитуация в мире IT очень интересная, Senior разработчиков хантят ещё до того момента, как они решат выложить резюме. К сожалению, назойливость и повышенное внимание вызывает негатив. Технические специалисты становятся раздражительными и начинают снисходительно относиться к рекрутерам.

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

Рекрутер не враг, не в его интересах выкинуть ваше резюме и не показывать компании. Он рассчитывает продать вашу кандидатуру компании и чем дороже, тем лучше, т.к. в большинстве случаев, оплата зависит от ЗП на вашем новом месте. Это может быть 1-5 оклада или процент от вашей годовой ЗП.

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

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

Общение с рекрутером сэкономит вам гораздо больше времени, чем вы можете потратить на собеседование и понять, что эта работа вам не подходит. Не пропускайте данный этап и будьте вежливы, в конце концов, кто знает, может именно этот рекрутер в будущем поможет вам устроиться в Google/Amazon/Apple и т.п.
Forwarded from АйТи собес
Media is too big
VIEW IN TELEGRAM
Типичный собес на позицию сеньора со ставкой 20к рублей
🔹Главное поставить цель🔹

В университете, на последних курсах, я решил попробовать себя в роли наставника и проводить занятия по Android-разработке. Желающих было не много, 10 человек пришло на первое занятие, на пятом занятии их оставалось уже 3. Позже и у этих троих возникли неотложные дела (мама не пускала, кошка рожала и тд). Занятия прекратились. Спустя месяц мне написала девушка Женя, которая интересовалась занятиями и говорила, что очень хочет ходить и заниматься. Я сообщил ей, что занятия уже не проходят, да и у меня уже не было столько времени и желания, тк я в тот момент перешел на новую работу. Спустя еще неделю Женя попросила меня скинуть литературу/курсы/статьи, по которым она могла бы обучаться. После обсуждения источников, она задала мне вопрос: "Можешь ли ты раз в неделю встречаться и задавать мне вопросы по тому материалу, который я изучу?". Она была настроена приезжать в любую точку города, чтобы я лично задавал ей вопросы. По видеосвязи она не хотела, аргументируя тем, что так она сможет подсмотреть ответ. Мне показалось, что Женя как и все мои "студенты" сольется после 2 занятия, поэтому я согласился. Мы обозначили, что каждую неделю она читает по 3-4 главы книги, смотрит курсы по этим темам, а потом я просто задаю вопросы.

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

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

Здравствуйте! Меня зовут Егор и мне 28 лет, работаю в IT-сфере 4 года в качестве Frontend-разработчика. Хочу поделиться историей, как я пришёл в эту отрасль. Возможно, Вам и вашим подписчикам она покажется интересной.

После окончания школы я поступил в университет на химика-технолога, учеба шла в тягость. На 4 курсе я устроился работать в Макдональдс. Там я познакомился с Олегом, который учился на программиста и был на 3 курсе. Ему нравилось программирование и он показывал свои личные проекты (это были и сайты с товарами, и различные игры, VR и AR). Мне казалось, что Олег может сделать все. Я был очень удивлён, что человек с такими навыками работает на кассе Макдональдса. Олег рассказал историю, как он устроился программистом в компанию за 12 тыс, однако его девушке не нравилось, что он так мало зарабатывал, поэтому он бросил работу и ушел работать в мак за 30 тыс. Да и сам он был не в восторге от этой работы, тк компания периодически задерживала ЗП и имела систему штрафов за опоздание, за уход с работы раньше времени и далее..

В тот момент моя мама открывала свой цветочный магазин и ей нужен был сайт. Денег не было, поэтому я решил спросить у Олега, может ли он помочь. На что Олег предложил мне самому попробовать написать сайт с его менторством, чтобы в дальнейшем я сам мог его поддерживать. Я согласился. Так начались наши уроки программирования. Спустя 3 месяца я сделал свой первый сайт для цветочного магазина. Мне это очень понравилось и я решил поискать работу. Откликнулся на 30 вакансий и стал ждать. Только 6 компаний со мной связались, и только 4 позвали на собеседование. Собеседования я провалил. В одной из компаний мне дали очень развернутый фидбек(за что я им очень благодарен), и составил план учёбы. Учился я по вечерам, на выходных, по дороге на работу, в перерывах. Мне приносило это удовольствие, поэтому усталости я не ощущал.

Прошло пракически пол года, я чувствовал себя гораздо увереннее, дополнил резюме, сделал несколько собсвенных проектов и пошел искать работу. Сходил на 6 собеседований и всех их провалил, хотя в эти разы они не заканчивались после 5 минут со старта. Одно из них длилось примерно 2 часа.
Олегу в этот период предложили повышение, он бросил учебу и стал менеджером. Он всячески отговаривал меня продолжать, тк у меня не было диплома и из опыта работы только "Свободная касса!", да и по интеллекту я ему в этой сфере значительно уступал. Мы поругались. Спустя еще несколько собеседований мне предложили пройти стажировку за 20 тыс. И, О БОГИ, я был счастлив и согласился. Да, это было меньше, чем я получал в Маке, но я ощущал себя супергероем, приходя на работу каждый день. Спустя 3 года работы моя зарплата выросла в 7 раз.
Стоит сказать, что я ни на минуту не пожалел о своём решении стать программистом. Этот опыт помог мне выработать принципы, которые помогают мне в работе и жизни:

не получилось - попробуй ещё;
кто-то всегда будет умнее, но это не делает тебя хуже;
быстрые деньги - не всегда хорошо;
свой опыт - всегда лучше чужого.
❤1🔥1
Учителя, менторы и их курсы

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

Однажды ко мне на собеседование пришёл преподаватель с достаточно известного курса по backend-разработке. Сначала, как всегда, я прошу кандидата рассказать о себе, о своем опыте работы и тд. Кандидат не был скромным в своих ответах, отметил знание Java и различных фрейморков как 10 из 10, вырастил и обучил 100+ программистов за свои 3 года опыта, в общем компания держалась только на нём. Сразу, конечно, возникли вопросы о его желаемой заработной плате, ожидал услышать цифры от 2500$, но нет, кандидат просил не больше 1000$. Мы приступили к технической части собеседования, на все вопросы кандидат отвечал четко, как по учебнику, без ошибок и запинок. Все стандартные вопросы были для него простыми. И я решил сменить русло нашего собеседования в задачу на понимание в глубину и рассуждение. И вот тут кандидат поплыл, я начал понимать, что он знает теорию, но не знает как ее применять в реальных проектах. В ходе собеседования выяснилось, что его пригласили быть учителем на этих курсах сразу после их окончания. Его знания были как стартовый туториал по нейронным сетям, он знает как отличить кошечек от собак, а бизнес-задачу решить не может.

Еще пример с индивидуальными менторами. Как-то наткнулся на профиль 15-летнего парня, который продавал свой авторский видеокурс, больше рассмешило описание обо мне: "Прошёл собеседование в гугл, но не пошёл туда". И тут вопрос, какое это было собеседование? На сайтике, где был опрос, могли бы Вы работать в Google? Бывают такие, которые пишут, что имеют 10+ опыта разработки, и прилагают свой гитхаб. Заходишь в репозиторий и понимаешь, что да, молодец, ты смог зарегистрировать гитхаб. В лучшем случае там будет проект-калькулятор, написанный год назад.

И что в итоге мы имеем? По hh.ru можно даже определять какие курсы только что закончились, появляется толпа программистов, у которых резюме, сертификаты и проекты на гите одинаковые. К сожалению, большинство хотят продать, а не научить. Опытные разработчики просто понимают, что обучение других не очень благодарное дело. У тебя должны быть: хорошая аппаратура, качественный материал, последовательная информация, доступность 24/7, а главное это время и желание. Нужно спокойно относится к таким вопросам: "а как мне смотивировать себя?", или "когда я буду получать миллион?", или "а давай ты отдашь мне свой курс бесплатно, потому что у меня денег нет, а братишка?". Проще становится взять проект на фрилансе и за неделю заработать те деньги, которые тебе заплатит 100 человек за курс.

Я не могу посоветовать конкретный курс, однако все они +/- одинаковые и затрагивают общие темы. Старайтесь оценивать современность, ищите отзывы. В начале пути, любой курс будет полезен, т.к. всё будет в новинку. Поищите бесплатные видеоуроки и курсы, сформируйте мнение и только после этого переходите на следующий уровень.
Задачка в портфолио Frontend: Сапёр

Среди Frontend-разработчиков распространены следующие проекты: Калькулятор, TODO List, Магазин, Список покупок, Сайт Визитка. Реализаций столько, что начинающим программистам достаточно открыть первую страницу Google и скопировать тот проект, который понравится больше всего. К сожалению, если вы копируете код без понимания, это быстро вскрывается на собеседовании. Мы, интервьюеры, почти всегда просматриваем Github потенциального кандидата и если там один проект калькулятор или список задач, то мгновенно закрываем его.

Если вы хотите продемонстрировать свои навыки и умения, надо выделяться на фоне остальных. Предлагаю реализовать проект "Сапёр". Плюсом будет, если вы развернёте его на Github Pages и будет возможность не только изучить ваш код, но и насладиться игрой :)

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

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

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

Если вы Backend разработчик, то скорее всего, для портфолио вам все советуют реализовать CRUD приложение для работы с базой. Возможно вы уже написали "Ветеринарную клинику", "Веб калькулятор", "Прогноз погоды".

Предлагаю решить задачку поинтереснее: Реализовать веб-сервер для индексации текстовых документов. Класс хранилища (БД) должен быть реализован вами, в выбранной вами структуре данных. Напишите свой класс, который предоставляет возможность поиска и сортировки по тексту. Желательно не прибегать к стандартным методам sort, а реализовывать свои.

Сервер должен иметь 3 Endpoints:

POST /api/v1/document - сохранение документа в базе. На вход принимается текст документа в RequestBody.

Пример запроса:

POST /api/v1/document

RequestBody: {"text":"Very Very Happy Day"}

GET /api/v1/document/search/{phrase} - поиск всех документов в которых содержится запрашиваемая поисковая строка {phrase}. Ответ должен содержать массив объектов, где будут указаны текст и количество вхождений данной поисковой фразы.

Пример запроса:

GET /api/v1/document/search/Very

Response: [{"text":"Very Very Happy Day", "count": 2}]

POST /api/v1/document/process - На вход принимается массив строк в RequestBody. Каждая строка содержит поисковую фразу. Обработка заключается в следующем: Из базы выгружаются все сохранённые документы, которые содержат данную поисковую строку. Затем тексты сортируются по количеству найденных поисковых фраз. После сортировки, все поисковые фразы в текстах заменяются на хеш.

Пример запроса:

POST /api/v1/document/process

Response: [{"text":"151 151 Happy Day", "count": 2}]

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

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

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

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

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

Технологии не для девушек. Разумеется, самое распространённое, чего боится работодатель, что женщина может уйти в декрет. Также знаком со случаем, когда молодую девушку не взяли на работу ввиду того, что она вела инстаграм-блог. Работадатель счёл, что такой кандидат будет отвлекаться на себя и свою внешность больше, чем на работу. Однако существует и обратная сторона медали для женщин. Из-за нехватки женщин-разработчиков, многие крупные компании поддерживают движение Women In Tech. Благодаря которым, женщинам предоставляются бесплатные курсы и стажировки с последующим трудоустройством. Слушал подкаст, в котором говорилось, что на стажировку в Apple девушки проходят чаще, даже если их проекты более слабые, чем у парней.

Социальные сети. Это, наверное, самый распространенный случай, из-за которого Вас могут не взять на работу. Есть вероятность, что шутку, которую вы опубликовали у себя на странице, работодатель может принять всерьёз.
🔹Возрастной разрыв🔹

В текущих реалиях, должность 𝚃𝚎𝚊𝚖𝙻𝚎𝚊𝚍\𝚃𝚎𝚌𝚑𝙻𝚎𝚊𝚍, по большей части, относится к человеку, который дольше всех участвует в разработке проекта. Часто, это джун, который пришёл поддерживать небольшие фичи и хотелки заказчика. Проект начал развиваться и вокруг него выросла команда, приходят новые разработчики, тестировщики, аналитики. Всё хорошо до той поры, пока в команде все +/- одного возраста, но когда к такому зелёному 22х-летнему тимлиду в роли рядового разработчика на проект нанимают 35-летнего, тогда начинаются проблемы.

В силу возраста и уважения к старшим, приходится считаться с их мнением, оно и понятно, возраст то больше, значит и опыт... должен соответствовать? - Нет, сейчас людей за 30-35 решивших пойти в айти пруд-пруди, и вот появляется он, взрослый, со своим мнением и "опытом", желающий только одного, получить свою ЗП, а в 18:00 сбежать домой, ведь там семья, солнце, шашлыки. Программирование и проект - это уже дело десятое. Это всё утрировано, но такое встречается.

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

Ещё существуют застрявшие в прошлом, которые считают, что все эти ваши модные кубернетесы, микросервисы, машин лёрнинги не нужны, на 𝙹𝚊𝚟𝚊 7 и 𝙹𝚚𝚞𝚎𝚛𝚢 нормально жить можно. Старое ведь надёжнее.

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

Судя по комментариям в Instagram к предыдущему посту, в повседневной жизни я выгляжу так как на фотографии 😄 Мне нравится, когда люди демонстрируют свою реакцию и дают обратную связь. Не думал, что пост вызовет столько активности, комментариев и сохранений. История собрала в себе весь негативный образ человека, который пытается за счёт возраста, а не опыта, влиять на процессы компании. Возможно, расстрою Вас, но со мной это никак не связано. Это лишь выдуманный пример, на основании вопроса к кандидатам, почему они покинули свое предыдущее место работы. Естественно, это не применимо ко многим специалистам, которые и в 30, и 40 лет меняют свою специальность.

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

Если вы уделяете значительное время образованию и работе, то наверняка сможете стать Senior разработчиком через 5-6 лет. Не важно, во сколько начнёте в 20 или в 30. Что же думают на этот счёт в Google и Amazon? Медианный возраст сотрудников там составляет 30 лет. В Facebook - 28.

Резонный вопрос, почему в таких больших компаниях такой небольшой медианный возраст? Для многих разработчиков большие компании являются трамплином для основания своих стартапов, они зарабатывают опыт, начальный капитал, связи. Только затем открывают свой стартап. Среди успешных предпринимателей медианный возраст 45 лет! Дело в том, что стартап это долгий и итеративный процесс, со взлётами и падениями. В среднем успешной компании для капитализации в 1 млрд $ требуется 8-10 лет.

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

https://www.instagram.com/p/CPBv5s2AflQ/
🔹Вопросы, которые необходимо задать после собеседования🔹

По моим наблюдениям, вопросы после собеседования задают лишь 30% кандидатов, в основном это Senior-разработчики. Чаще всего, молодые специалисты не задумываются, в каких условиях они будут работать, т.к. цель такого кандидата просто устроиться на работу, а там уже привыкнет. Однако, это крайне неправильный подход. Работодатели как раз и надеются нанять таких джунов, которые не знают свою цену и не прихотливы к условиям. В итоге, Вы получаете подвал без окон, компьютер с процессором Intel Pentium, жёсткие дедлайны, работу по ночам и полную ненависть к себе (всё, конечно, утрированно).

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

1️⃣ Самое важное, конечно, чем Вам конкретно предстоит заниматься? Постарайтесь узнать как можно больше о воркфлоу. Кто пишет задачи, как производится тестирование/аналитика, какие системы контроля версии используются, от кого поступают задачи, как происходит ревью кода, созвоны/митинги, методология разработки. Приходится ли каждый день отчитываться о своей работе, сколько часов на задачу было потрачено. Спросите у разработчика, как проходит его типичный рабочий день. Ответ в стиле: "мы не можем Вам рассказать, мы подписали NDA", должен Вас насторожить, нередко это просто отговорка, чтобы не раскрывать какие-то карты.

2️⃣ Ноутбук или компьютер, его характеристики. Предоставляют ли дополнительные аксессуары (наушники, мышь, монитор, мобильные телефоны). В случае, если работодатель не предоставляет технику, то стоит обговорить изменение ЗП.

3️⃣ Рабочее место. Бывает так, что Вы приезжаете на собеседование в шикарный офис в центре города, а конкретно Ваша команда находится где-то в другой части здания в маленькой комнате. Обязательно, просите показать Ваше рабочее место. Плохо, если программисты сидят в опенспейсе вместе с бухгалтерами и отделом продаж.

4️⃣ Зарплата/премия/штрафы. Белая ЗП, конечно плюс. Обязательно почитайте отзывы о компании, бывают ли задержки ЗП. Выясните, как часто происходит пересмотр ЗП. Узнайте, есть ли премии. Хотя, премии - это ЗП, которую Вам могут и не дать, поэтому на нее рассчитывать не стоит. В госконторах любят устанавливать штрафы за опоздания, неформальный внешний вид, уход с работы раньше времени и тд.

5️⃣ Как в компании реагируют на факапы. Нужно ли Вам срываться на выходных/ночью, чтобы быстрее поправить баг в проде. Узнайте, как именно оплачиваются переработки, есть ли звонки по ночам от службы поддержки.

6️⃣ Удаленка или офис. В случае удалёнки, все расходы на рабочее место ложатся на Вас, поэтому стоит обсудить изменение ЗП.

7️⃣ Плюшки компании. Конференции, кофе, печеньки, ДМС, стоматология, занятия английским - это уже стандартный соцпакет хорошей IT-компании.

8️⃣ Отпуск/больничный/гибкий график. Можете ли Вы работать из дома в случае болезни. Если Вы студент - обязательно обговорите наличие гибкого графика.

9️⃣ ИП - это довольно трудный вопрос, особенно, если у вас его нет, а работодатель просит. В первую очередь, всё нужно выяснить самостоятельно с помощью гугла или консультационных центров, т.к. в компании вам скажут, что сейчас всё просто и делается одной кнопкой онлайн. На деле, есть огромное количество подводных камней и взносов, штрафы за неуплату вовремя и т.п. Если вы идёте на этот шаг, то обговорите все этапы, просите ЗП, как минимум, на 20% выше желаемой + оплату всех налоговых взносов со стороны компании.

🔟 Будет ли TeamLead. Если Вы Junior-разработчик и Вас хотят сделать архитектором на новый проект, 10 раз подумайте, хотите ли Вы взять всю ответственность на себя, и не спать ночами, чтобы уложиться в срок. Вряд ли Вам понравится

https://www.instagram.com/p/CPSRGRTDg_q/
🔹Тестовые задания, или докажите, что вы не робот🔹

❓Зачем же нужны тестовые задания?

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

❓Нужно ли выполнять тестовое задание кандидату с опытом?

Опытные разработчики редко встречают данное требование в вакансии. Большинство компаний, которые готовые нанимать программистов Middle+, скорее всего обойдутся устным общением. Кандидат может не захотеть тратить время на бесплатную работу, да и за 1-2 часа можно сформировать общее мнение о потенциальном кандидате, а дальше на испытательном сроке всё станет понятно. Если компании настаивает на выполнении - тогда стоит обсудить оплату тестовой задачи.

❓Что делать начинающим разработчикам?

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

1️⃣ Вы о компании ничего не знаете, также и о Вас никто ничего не знает. Такие тестовые задания редко проверяются тщательно, на них сложно получить фидбэк, да и не факт, что их вообще посмотрят. В то же время, начинающие программисты бросаются сразу их выполнять, нередко тратятся дни, а то и недели, а в ответ может прийти стандартное: "Вы нам не подходите". Может ревьюер был в плохом настроении или ожидал код, написанный Senior'ом. Что делать? Вы наверняка уже писали свои pet-проекты, отправьте ссылку на репозиторий, пусть смотрят его, не стоит тратить время на компании, которые будут требовать
ваше время, без непосредственного общения с вами.

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

3️⃣ В последние годы, популярность набирают платные тестовые задания. Компании после устного собеседования могут предложить тестовое с вознаграждением. Они идут на этот шаг, т.к. понимают, что время деньги, а достойных кандидатов мало, случайно можно отсеять очень хороших кандидатов, а так хотя бы будет мотивация выполнять работу. В любом случае для
работодателя это дешевле, чем нанять неподходящего кандидата. Если такое тестовое задание занимает более 1-2 дней разработки - скорее всего, Вам просто подсунули реальный проект за меньшую оплату. В данном случае делать или нет - дело Ваше, если необходим опыт (который потом можно указать в резюме) или деньги - делайте.

❓Подытожим

На мой взгляд, необходимость тестовых отпала с появлением открытых репозиториев. Если у вас есть открытые проекты на Github, которыми вы гордитесь, то ВСЕГДА демонстрируйте их. Если компания просит выполнить тестовое, предложите заменить его на просмотр вашего готового репозитория, если это не "калькулятор", а интересный проект, то с большой вероятностью интервьюеры одобрят такой шаг.

P.S. Был один случай, я проходил собеседование в небольшую компанию. После разговора с руководителем технического направления, мне предложили пройти тестовое задание,
я спросил: "Зачем?", ответ очень позабавил: "У нас принято предлагать, но можете отказаться, мы и так вас берём".

https://www.instagram.com/p/CPpyyLYDmHM
🔹Зарплатные ожидания🔹

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

- Я: Сколько просить? Нет, сколько я стою?
- Мозг: Ставь миллион у.е.
- Я: Да кто же меня возьмёт за столько?
- Мозг: Ладно, ладно, я не жадный, 100 тыс💰 в месяц тебе будет достаточно

После таких мыслей, мы сосредотачиваемся и начинаем размышлять разумно:

- Я: Так, у меня есть 2 года коммерческого опыта с языком N, я знаком с технологиями [M]
- Мозг: ... с такими навыками компании предлагают от 50к до 250к
- Я: И как нам это поможет?

⏰ Прошло 2 часа

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

⏰ Прошло 2 часа

- Я: Так, кандидаты тоже странные, есть парень, который просит за такие же навыки 300к
- Мозг: хе-хе, ну пусть ищет, будто ему кто-то заплатит. Так сколько просить?
- Я: Ты у нас мозг, я тебя зачем кормлю? Думай давай.
- Мозг: 🗿🗿🗿🗿

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

Почему специалисты с одинаковыми навыками получают разные ЗП? - Потому что они столько попросили. Безусловно, надо разумно подходить к оценке своих возможностей, не стоит на должности Junior просить 300к, это Вас конечно не обязывает, но на техническом собеседовании от Вас будут ожидать сильно больше, чем вы сможете дать. У каждой компании есть вилка на кандидата, которая формируется следующим образом (пункты расставлены по приоритетам):

1️⃣ Возможности компании. Если компания может позволить себе нанять мидла за 4 тыс $ в мес, то она и предложит такую ЗП, несмотря на то, что в других компаниях это ЗП Senior-разработчика.
2️⃣ Ожидания кандидатов. Компании просматривают ожидания кандидатов, которые выставили ЗП в резюме. При этом, Senior-разработчики вытягивают зарплаты джунам и мидлам, т.к. формируется мнение, что джун и мидл стоят N% от зарплаты Senior.
3️⃣ Зарплаты конкурентов. В последнюю очередь смотрят на то, сколько предлагают конкуренты за аналогичного специалиста.

По моему опыту, специалисты, которые ищут первую работу или им срочно нужна работа, ставят очень низкую планку и попадают в непростую среду. Рекрутеры хороших IT-компаний могут просто пропустить резюме, потому что в критериях поиска забита минимальная ЗП в 50к, а вы поставили 30к. В итоге, Вы можете попасть в "ООО Рога и Копыта", где будете работать по 12 часов, а не головой. Если у Вас есть время на поиск, меньше ваших ожиданий просить не стоит.

Когда у Вас уже есть опыт и Вы работаете в компании, но решили её сменить, ставьте зарплатные ожидания по комфортной вам цифре (можете докинуть 10-30% сверху).
Если вы понимаете, что вам в месяц будет достаточно 1 тыс $ (чтобы жить, а не выживать), то и ставьте в резюме столько. Если Вы понимаете, что опыт позволяет и хотите 7 тыс $
в месяц, отлично просите столько, это ни Вас, ни компанию ни к чему не обязывает. На каждый товар найдётся свой покупатель.

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

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

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

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

https://www.instagram.com/p/CP78UPpDd5G
Значимость заголовков

Представьте, что вам написали рекрутеры двух компаний. В первом письме было предложено рассмотреть должность "Программист-разработчик", а во-втором "Senior Software Engineer". Что из этого звучит солиднее? Возможно, подсознательно, вам сперва захочется прочитать второе письмо. Такая должность гораздо точнее описывает вашу позицию, компания лучше понимает кто им нужен + на английском это звучит лучше, возможно и компания больше "в теме".

Бывает так, что под громкими заголовками, скрывается ничем не примечательная позиция, неинтересные рутинные задачи, а то и вовсе не то, что подразумевается вами. Компании завлекают лучших специалистов указывая самые разные названия. Стоит обговорить всё что написано на скрининг интервью с рекрутером. За должностью "Middle Python Developer" может скрываться должность "QA Automation".

Точно также это работает и в обратную сторону, когда кандидат пишет абстрактно "Программист" или "Junior Разработчик" в названии резюме, это выглядит менее привлекательно, чем "Java Junior Software Engineer". Интервьюеры и рекрутеры на просмотр резюме в самый первый раз, тратят около 30 секунд, ваша задача заинтересовать их за секунды. Заголовок одна из важнейших частей резюме, он должен быть краток и полностью описывать вашу желаемую должность. Укажите в нём ключевые слова для поиска, подумайте: если бы вы были рекрутером, на какой заголовок вы бы обратили внимание и по каким словам искали бы подходящего кандидата?

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

https://www.instagram.com/p/CQYJD0xDSrk/