3205

О собеседованиях на 700к (часть 2)

Серия О собеседованиях

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

Ошибки в предыдущем посте

Много людей указали мне на то, что я некорректно указал асимптотику для задачи про нахождение левой единички. Там есть два алгоритма: за O(N + M) и за O(N * log(M)). Нельзя строго сказать, какой лучше, т.к. зависит от значения M и N. Когда писал статью, написал первую, когда проверял - мне показалось, что второй вариант какой-то более интуитивный и решил поправить, но не исправил знак. Всем, кто заметил - респект. Всем, кто не заметил - мои извинения за косяк.

Вторая ошибка была в термине "контаминация кэша". Я подразумевал там состояние рассогласованности кэшей в контексте понятия "когерентность кэшей". Но мне указали (чего я сам не знал) на то, что вообще-то контаминация - это о другом https://en.wikipedia.org/wiki/Cache_pollution. Пикабу образовательный.

Salary Negotiations

Ещё вопросы вызвал тот факт, что моя зарплата не совпадает с тем, что в оффере. И ещё часть людей проигнорировала этот факт и просто спрашивала - не нарушаю ли я NDA, разглашая свою з/п? Ответ - не нарушаю, т.к. з/п действительно другая (и её я не назову из-за NDA), а вот как так вышло - сейчас расскажу.

Когда вы обычно устраиваетесь на работу, то вы просто проходите собеседование и либо выходите на новую работу, либо нет. И тут всё просто. Но иногда так всё удобно складывается, что вы можете проходить собеседование параллельно в несколько фирм и получить от них параллельные офферы. В IT это совсем не редкость. Настолько не редкость, что в Америке даже распространены курсы по salary negotiations - переговоры о (будущей) зарплате. В России эта практика не очень-то распространена, но тоже имеет место быть. В моём случае это было примерно так:

- Я прошёл все собесы и все финальные собеседования, жду ответ от каждой организации. Дальше кто-то (не помню точно, кто), допустим, Сбер, говорит, что готовы мне предложить "вот такие" деньги (сумму можно поглядеть в предыдущем посте). И я НЕ соглашаюсь, а говорю, что мне надо подумать и подождать ответ от других фирм. Тут важно вести себя вежливо и культурно. Рекрутер - человек взрослый и (обычно) опытный. И у него кроме вас ещё куча работы, так что было бы хорошо ему максимально упростить общение с вами. Не надо его как-то обманывать, выдумывать какие-то глупые причины для затягивания своего ответа. Можно напрямую сказать: "Я жду, пока другие фирмы тоже назовут свои числа и потом уже выберу". Это вполне прагматичный и понятный подход. Да, есть шанс, что вас просто пошлют, но... на самом-то деле если вы крутой спец - вы нужны этой фирме. И она будет готова немного подождать.

- Дальше я сообщаю всем остальным фирмам, что мне "вот столько предложили". Или, если я не совсем спешу, то можно ещё денёк подождать (но не сильно долго, чтобы не наглеть) - вдруг кто-то "вслепую" предложит сильно больше. Но потом всё же я сообщил всем, мол "А мне вот Сбер предложил 675к/месяц". И у фирмы дальше два варианта - либо сказать "мы не готовы", либо сказать "ок, сейчас мы предложим больше". В моём случае часть фирм "отвалились", но Хуавей и Яндекс, подумав, предложили свои 685к и 720к соответственно.

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

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

За что платят такие деньги и почему у врачей/учителей зарплаты меньше?

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

Зачем математика программисту

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

- Ряды Тейлора. Тут всё просто - если нужно вычисление какой-то функции, а ты пишешь под нестандартную архитектуру (встраиваемые системы, например) или ПЛИС, то математику придётся реализовывать самому.

- Градиенты и производные. Это базис для обучения нейросетей (метод SGD и его усложнённые модификации), а с помощью них как раз вы можете общаться с ChatGPT или рисовать картинки с помощью Stable Diffusion

- Аффинные преобразования и собственные вектора. Например, у вас есть набор объектов и их признаков. И надо понять, а нужны ли нам вообще все эти признаки? Можно записать все признаки как вектора, из векторов собрать матрицу. И если посчитать для этой матрицы собственные вектора, то моно оценить (по величине собственного значения), какие из этих признаков будут наименее полезными. Этот метод изобрёл не я, он называется PCA (простите за такое вольное описание метода).

- Якобиан и Гессиан. Всё это используется для оптимизации функций и я нигде кроме моделирования физических процессов не встречал. Но зато там это используется сплошь и рядом.

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

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

Неуспешные собеседования

Ещё могло сложиться мнение, я просто приходил на собесы, отвечал на все вопросы и уходил с ощущением превосходства. На самом деле - нет. За апрель я успел пообщаться с более, чем 10 разными фирмами и часть собеседований просто завалил.

Например, завалил секцию по Systems Design, на которой меня попросили спроектировать сервис а-ля Яндекс.Еда. Я сделал всё неплохо, но явно не на ту сумму денег, которую просил. Было ощущение, что я вроде делал всё правильно, но медленно.

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

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

Ещё были собесы, где я просто зажал баги в код. Такое бывает, я в целом невнимательный человек по жизни.

Про личные вопросы

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

Спрашивали про образование - я учился на мехмате МГУ, но не окончил его. После этого учился на психфаке РГСУ и его тоже не окончил. После этого учился на экономическом факультете МЭСИ и там получил диплом.

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

Больше постов по тегу «Собеседование». А интересные предложения о работе в проверенные компании ищите на сайте Пикабу Работа.

Лига программистов

2.1K постов11.9K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

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

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

А как изменялась ваша ЗП от первой работы и последующих до текущей, которую мы уже знаем из предпоста?

раскрыть ветку (12)
13
Автор поста оценил этот комментарий

Напишу размеры з/п по годам (некоторые годы пропущу т.к. не было изменений)

2006 год - педагог дополнительного образования, 4к/месяц

2009 год - младший научный сотрудник (по факту - кодер в НИИ), 12к/месяц

2010 год - 17к/месяц

2012 год - 25к/месяц

2013 год - 35к/месяц

2015 год - научный сотрудник 50к/месяц + репетиторство 20к/месяц

2016 год (декабрь) - перешёл из НИИ в стартап, кодер - 100к/месяц

--- тут я перестал работать педагогом, но на доходе это почти не отразилось ---

2017 год - python-кодер, ML-исследователь - 180к/месяц

2018 год - С++ кодер, 300к/месяц

2019 год - 400к/месяц

2020 год - 500к/месяц

2021 год - Java-кодер, ML-разработчик - 600к/месяц

2022 год - 700к/месяц

несмотря на очевидную закономерность - сейчас у меня не 800к/месяц. Но пока и не конец года.

раскрыть ветку (11)
1
Автор поста оценил этот комментарий

Насколько легко было менять область?

Вижу, что идут разные языки, Python, Java, C++. Причём с повышением з/п. Мне казалось, что лучше выбрать один стек технологий и в нем добиться совершенства. Так как чем больше узких навыков, в которых ты разбираешься лучше всех, тем больше з/п. Чем если ты знаешь много разных областей, но на среднем уровне.

На ваш взгляд лучше быть специалистом широкого профиля или узкого?

раскрыть ветку (3)
3
Автор поста оценил этот комментарий
Мне казалось, что лучше выбрать один стек технологий и в нем добиться совершенства. Так как чем больше узких навыков, в которых ты разбираешься лучше всех, тем больше з/п.

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

На ваш взгляд лучше быть специалистом широкого профиля или узкого?

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

раскрыть ветку (2)
2
Автор поста оценил этот комментарий
Было ли у такое, что текущий коллектив тебя переставал устраивать по компетенциям и ни у кого больше нечему научиться? И как следствие смена работы?
раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Да, было два раза
1
Автор поста оценил этот комментарий
Это вы меняете работу так или договариваетесь о повышении зп?)
раскрыть ветку (4)
2
Автор поста оценил этот комментарий

Там, где менялась должность - это смена работы (кроме 2015, там повысили).

раскрыть ветку (3)
2
Автор поста оценил этот комментарий

Вижу, что есть переход в 2018 году на С++ разработчика. Как удавалось без опыта коммерческой разработки на С++ перейти с Python разработчика на C++ разработчика без потери дохода?

Тоже самое по Java.

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

У вас наоборот, в обоих случаях доход повысился сильно.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
На момент 2018 года у меня уже было больше 10 лет опыта использования С++ в личных проектах. Там, конечно, есть специфика, и мне пришлось потратить некоторое время на то, чтобы убедить интервьюеров в своих скиллах.
Про Java - существует мнение, что после С++ уже не так сложно другие языки изучать, т.к. концепции ты уже знаешь, остается только синтаксис выучить и какие-то особенности.
Автор поста оценил этот комментарий
Ну круто))
0
Автор поста оценил этот комментарий

В 2019 и 2020 годах компания сама поднимала ЗП? Или вам приходилось приносить оффер от другой компании?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Сама поднимала, но в основном за счёт опционов (и процедуры вестинга).

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества