Обновить
4

разработчик

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

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

Отличное «сначала добейся». Но нет, пока мне нечего сообщить полезного для комьюнити — я лучше помолчу, чего и остальным желаю.

Впрочем, главный стыд ХАБРА_2020 — что писулька такого формата набрала 300+ рейтинга. Показательно.
Не совсем, все же while под капотом — тоже ветвление.

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

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

Практический: ну да ну да, конечно «особый случай с if» — это плохой код, а ломать глаза над &(*p)->next, вспоминать в каком порядке применятся операторы, и вообще осознавать на кой хрен сделано именно так — дофига хороший?
Зато с xml то все в порядке!
Ждём поста “как я выгорел в универе”.
Блин, да ты даже поработать не успел.
Хм, что-то я подумал это отчет по вестингу. Да, получается около 500тр. Что-то я думал там чуть больше
это опционы, а к ним еще добавить зп порядка 250тр, и парочка премий (погоды не делают) получается около 700тр в месяц.
Это довольно много.
Я бы ставил на то, что это было где-то в договоре. Про жилье — не знаю, возможно оно отдельно идет.
Конкретно мой кейс был не сайнап, а ретеншн-бонус (который мне в итоге пришлось возвращать самостоятельно, потому что год не продержался) — но уверен, что с сайнапом та же история.
Оформлялось все какими-то доп. договорами или соглашениями, которые нужно подписывать в бухгалтерии
Да, именно так, это оформляется как договор беспроцентного займа, который через год гасится премией (которую ты даже не видишь, она просто закрывает твой долг)
60к в Я это что-то около младшего разработчика (но еще дают бейдж с 10к съедобных денег)
Некоторые мысли написаны достаточно однобоко, а некоторые — откровенная неправда.

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


У ЯМ есть ПИРы (планы индивидуального развития). Хочешь развиваться — пожалуйста, к твоим услугам 100% оплата сторонних курсов (брал otus, мне зашло), поездки на конференции (в штаты меня не пустили, но в питере и москве пару конференций за год, на которые хотел попасть, я посетил)

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

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

Насчет текучки… сложно сказать, я не согласен — но это моя дельта-окрестность. Где-то из 40 человек за время моей работы, на вскидку, ушло не больше 10. Ну и наняли кучу.

Насчет зп ниже рынка — ну да, Яндекс позиционирует себя аналогом забугорных компаний, с соответствующей моделью оплаты. На старте у тебя зп ниже рынка, но даже на 16 грейде, если щелкать клювом (ревью на C) за 4 года у тебя соберется достаточно опционов чтобы выигрывать (с приличным отрывом) по суммарному годовому доходу большинство российских IT-компаний. Но за 4 года. А если еще и вкалывать (17D например), то там выходит что-то довольно космическое по сумме компенсаций.

Ну и при этом, я допускаю что переработки — это все же проблема людей, а не компании. У меня есть живой пример друга, который в большом Я получал D на 16, работая строго 8 часов в сутки + обед. Он просто хороший разработчик=)

Я ушел из Маркета года назад, после 2 лет работы, и совсем об этом не жалею. Но все не так однозначно.
Ну нет же, не для этого придумали volatile. И даже deprecated ему собираются прикрутить в таких сценариях.
В некоторых больших и широко известных на территории снг кампаниях притащить внешний оффер — это чуть ли не официальный способ поднять себе зп больше, чем на 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


веб-разработка. веб-разработчикам.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность