Есть пара вопросиков, один теоретический — другой практический
Теоретический: что с эффективностью? Взятие указателей и разыменования не бесплатные. Ветвление тоже, но там то хочется верить branch-prediction не подведет
Практический: ну да ну да, конечно «особый случай с if» — это плохой код, а ломать глаза над &(*p)->next, вспоминать в каком порядке применятся операторы, и вообще осознавать на кой хрен сделано именно так — дофига хороший?
Я бы ставил на то, что это было где-то в договоре. Про жилье — не знаю, возможно оно отдельно идет.
Конкретно мой кейс был не сайнап, а ретеншн-бонус (который мне в итоге пришлось возвращать самостоятельно, потому что год не продержался) — но уверен, что с сайнапом та же история.
Оформлялось все какими-то доп. договорами или соглашениями, которые нужно подписывать в бухгалтерии
Да, именно так, это оформляется как договор беспроцентного займа, который через год гасится премией (которую ты даже не видишь, она просто закрывает твой долг)
Некоторые мысли написаны достаточно однобоко, а некоторые — откровенная неправда.
Развивать своих сотрудников Компания так же не заинтересована. Никаких индивидуальных планов развития – здесь так не принято. Можешь заниматься чем угодно, но в свободное от работы время.
У ЯМ есть ПИРы (планы индивидуального развития). Хочешь развиваться — пожалуйста, к твоим услугам 100% оплата сторонних курсов (брал otus, мне зашло), поездки на конференции (в штаты меня не пустили, но в питере и москве пару конференций за год, на которые хотел попасть, я посетил)
Также не согласен со всей секцией про нигилизм и руководство. Если у тебя есть крутая идея — ты всегда можешь попробовать ее продвинуть, при этом нужно оценить возможные трудозатраты и профит. Если что-то нужно делать пол года ради хрен знает чего, то извините — никакое разумное руководство на это не пойдет.
Но есть и другая сторона вопроса, если у тебя есть идея, а лучше еще и с доказательствами (историческими, статистическими) что она сработает — это могут взять в работу целым подразделением (и для этого даже есть формальный процесс, скоринг идей сотрудников. Они редко получают высокий приоритет, но хороший идеи и правда не так много). Ну а ты получишь за эту идею свою плюшку.
Если ты хочешь что-то переделать ради того, чтобы твоя жизнь была спокойнее — да, на это не выделяется ресурсов. Очень большой акцент ставится на фичи и продуктовую разработку. Даже можно поговнокодить, если это выиграет тебе неделю времени.
Насчет текучки… сложно сказать, я не согласен — но это моя дельта-окрестность. Где-то из 40 человек за время моей работы, на вскидку, ушло не больше 10. Ну и наняли кучу.
Насчет зп ниже рынка — ну да, Яндекс позиционирует себя аналогом забугорных компаний, с соответствующей моделью оплаты. На старте у тебя зп ниже рынка, но даже на 16 грейде, если щелкать клювом (ревью на C) за 4 года у тебя соберется достаточно опционов чтобы выигрывать (с приличным отрывом) по суммарному годовому доходу большинство российских IT-компаний. Но за 4 года. А если еще и вкалывать (17D например), то там выходит что-то довольно космическое по сумме компенсаций.
Ну и при этом, я допускаю что переработки — это все же проблема людей, а не компании. У меня есть живой пример друга, который в большом Я получал D на 16, работая строго 8 часов в сутки + обед. Он просто хороший разработчик=)
Я ушел из Маркета года назад, после 2 лет работы, и совсем об этом не жалею. Но все не так однозначно.
В некоторых больших и широко известных на территории снг кампаниях притащить внешний оффер — это чуть ли не официальный способ поднять себе зп больше, чем на 5%
Мне почему-то не понравился тут swap массивов
просто заменив на работу с указателями получилось срезать ещё почти 20%
(запуски произвоизводил бесконечным циклом, результат воспроизводим)
13:24:02 dkorchagin@desktop:/tmp$ git diff test.cpp test2.cpp
diff --git a/test2.cpp b/test.cpp
index 286bd4a..f954792 100644
--- a/test2.cpp
+++ b/test.cpp
@@ -26,25 +26,28 @@ lev_dist(const std::string &s1,
auto v1 = v0;
+ auto v0_ptr = &v0;
+ auto v1_ptr = &v1;
+
for (size_t i = 0; i < m; ++i) {
- v1[0] = i + 1;
+ v1_ptr->operator[](0) = i + 1;
for (size_t j = 0; j < n; ++j) {
- const auto subst_cost = (ca1[i] == ca2[j]) ? v0[j] : (v0[j] + 1);
- const auto del_cost = v0[j + 1] + 1;
- const auto ins_cost = v1[j] + 1;
+ const auto subst_cost = (ca1[i] == ca2[j]) ? v0_ptr->operator[](j) : (v0_ptr->operator[](j) + 1);
+ const auto del_cost = v0_ptr->operator[](j + 1) + 1;
+ const auto ins_cost = v1_ptr->operator[](j) + 1;
// std::min({ subst_cost, del_cost, ins_cost }) is slow.
- v1[j + 1] = std::min(subst_cost, del_cost);
- if (ins_cost < v1[j + 1]) {
- v1[j + 1] = ins_cost;
+ v1_ptr->operator[](j + 1) = std::min(subst_cost, del_cost);
+ if (ins_cost < v1_ptr->operator[](j + 1)) {
+ v1_ptr->operator[](j + 1) = ins_cost;
}
}
- std::swap(v0, v1);
+ std::swap(v0_ptr, v1_ptr);
}
- return v0[n];
+ return v0_ptr->operator[](n);
}
int
13:21:29 dkorchagin@desktop:/tmp$ clang++ -std=c++17 -O3 test2.cpp
13:20:37 dkorchagin@desktop:/tmp$ while true; do ./a.out; done
Finished in 0.492s
13:21:29 dkorchagin@desktop:/tmp$ clang++ -std=c++17 -O3 test1.cpp
13:21:32 dkorchagin@desktop:/tmp$ while true; do ./a.out; done
Finished in 0.579s
Тяжеловато будет для реалтайм-обработки
Отличное «сначала добейся». Но нет, пока мне нечего сообщить полезного для комьюнити — я лучше помолчу, чего и остальным желаю.
Хотя, в плане оверхеда — действительно, while и там и там, так что разницы нет
Теоретический: что с эффективностью? Взятие указателей и разыменования не бесплатные. Ветвление тоже, но там то хочется верить branch-prediction не подведет
Практический: ну да ну да, конечно «особый случай с if» — это плохой код, а ломать глаза над &(*p)->next, вспоминать в каком порядке применятся операторы, и вообще осознавать на кой хрен сделано именно так — дофига хороший?
Блин, да ты даже поработать не успел.
Это довольно много.
Конкретно мой кейс был не сайнап, а ретеншн-бонус (который мне в итоге пришлось возвращать самостоятельно, потому что год не продержался) — но уверен, что с сайнапом та же история.
Оформлялось все какими-то доп. договорами или соглашениями, которые нужно подписывать в бухгалтерии
У ЯМ есть ПИРы (планы индивидуального развития). Хочешь развиваться — пожалуйста, к твоим услугам 100% оплата сторонних курсов (брал otus, мне зашло), поездки на конференции (в штаты меня не пустили, но в питере и москве пару конференций за год, на которые хотел попасть, я посетил)
Также не согласен со всей секцией про нигилизм и руководство. Если у тебя есть крутая идея — ты всегда можешь попробовать ее продвинуть, при этом нужно оценить возможные трудозатраты и профит. Если что-то нужно делать пол года ради хрен знает чего, то извините — никакое разумное руководство на это не пойдет.
Но есть и другая сторона вопроса, если у тебя есть идея, а лучше еще и с доказательствами (историческими, статистическими) что она сработает — это могут взять в работу целым подразделением (и для этого даже есть формальный процесс, скоринг идей сотрудников. Они редко получают высокий приоритет, но хороший идеи и правда не так много). Ну а ты получишь за эту идею свою плюшку.
Если ты хочешь что-то переделать ради того, чтобы твоя жизнь была спокойнее — да, на это не выделяется ресурсов. Очень большой акцент ставится на фичи и продуктовую разработку. Даже можно поговнокодить, если это выиграет тебе неделю времени.
Насчет текучки… сложно сказать, я не согласен — но это моя дельта-окрестность. Где-то из 40 человек за время моей работы, на вскидку, ушло не больше 10. Ну и наняли кучу.
Насчет зп ниже рынка — ну да, Яндекс позиционирует себя аналогом забугорных компаний, с соответствующей моделью оплаты. На старте у тебя зп ниже рынка, но даже на 16 грейде, если щелкать клювом (ревью на C) за 4 года у тебя соберется достаточно опционов чтобы выигрывать (с приличным отрывом) по суммарному годовому доходу большинство российских IT-компаний. Но за 4 года. А если еще и вкалывать (17D например), то там выходит что-то довольно космическое по сумме компенсаций.
Ну и при этом, я допускаю что переработки — это все же проблема людей, а не компании. У меня есть живой пример друга, который в большом Я получал D на 16, работая строго 8 часов в сутки + обед. Он просто хороший разработчик=)
Я ушел из Маркета года назад, после 2 лет работы, и совсем об этом не жалею. Но все не так однозначно.
просто заменив на работу с указателями получилось срезать ещё почти 20%
(запуски произвоизводил бесконечным циклом, результат воспроизводим)