-
Сообщений
19 417 -
Зарегистрирован
-
Посещение
-
Дней в лидерах
5 -
Время онлайн
171д 6ч 58м 57с
Все публикации пользователя Index
-
>1) хуй зайдёшь в сферу. многолетний аттракцион пиздеца В приницпе дело касается любой квалифицированной сферы. Попробуй например вайти в пилотирование на гражданских авиалиниях >2) готовят по кд 10 армий людей с курсов Тут скорее дело в том, что это легко продать. Плюс сложно валидировать качество курсов. Когда ты пойдешь на курсы сварщика ты понимаешь насколько хорошо у тебя получается, представляешь чем должен заниматься сварщик и не учат ли тебя хуйне. >3) если устроился - то джун надолго и вялые повышения. если не сьебёшься сам, сеньёром станешь через 20 лет. зп в айти устроена так, что в большистве случаев только смена работы бустит зп. т.е. имеем необходимость постоянно менять работу, что определённо стресс Тут должно быть ссылка на иследование но мне лень искать, вкратце – смена места работы для буста ЗП прослеживается во всех сферах. За себя скажу, что вырос с 750$ на испыте до 3600$ работая на одном месте, причем сам бабок не просил, их просто повышали сверху. >4) то недобор в айти, то перебор, что челики месяцами работу ищут. теперь ещё и ии и мнение компаний типа сбера, что можно под нож отправить каждого пятого на похуй Да тут наверно когнитивное искажение, мы тут варимся просто. Я думаю на рынке каких-нибудь логопедов-дефектологов тоже есть спад и рост спроса и предложения. >5) 40+ уже биологическая конкуренция с молодняком. где-то на это не смотрят, но чаще редфлаг Тут мне кажется тоже скорее искажение вызванное тем, что либо 40+ чел вчерашний вкатун без опыта в айтишке. На такого в любой сфере будут косо смотреть. Либо, если не вкатун, то не дотягивает по хардам, раз в 40+ за 20+ лет опыта не стал ещё принципалом, либо ретроград. В целом да, рекомендую двигаться вместе с трендами, чтобы не стать ненужным. Это вопрос не возраста. >6) топ компании то набирают народ, то потом нахуй не надо и под нож, затем снова набор Было в пункте 4 Или это просто exaggeration и с жиру бесятся. Как бы люди не ныли на нестабильность в айтишке, айти челы закрывают ипотеки. При поиске работы имеют из чего выбирать, находят зачастую условия лучше чем на прошлом месте работы. Ну и да, как говорит madvlaydin, в других сферах все ещё хуже. Тестовые задания, ещё больше откликов. У меня тянка 4 месяца искала работу в каком-нибудь колцентре/эйчаром/оператором пк/вотевар. На 40 откликов кинутых в один день, 30 гостигнов, 8 автоотказов, 2 гостинга после принятия отклика. Потом анкетирования, неоплачиваемые стажирвки по 2 недели - месяцу. Так у неё там наверно за три сотни откликов было и три неоплачиваемые стажировки прежде чем нашла что-то комфортное.
-
Бля тех AQAшников про которых я писал вообще увольняют с выплатой за месяц работы. Как будто бы сейчас такой рыночек, что сраться с работодателем себе дороже. Сейчас, с засилием волков накрутчиков, обратно набирает силу институт отзывов с предыдущего места работы. Рыночек на стороне работодателя, так что молча шлепаем КРУДы увеличивая пропускную способность JSON на 60% за квартал пока ещё дают деньги.
-
В тиньке годовая от х2 до х5 на синьорском грейде, на мидл+ от х1.5 до х4
-
Самая сдохшая ветвь айти в наше время это пожалуй AQA. Челиков нейросети похоронили у меня на работе сокращают ребят отдавших овердохуя лет галере и чет их так жалко, для разработки нехватает квалификации а быть мануальщиком - проседать по бабкам. Не говоря уже о том, что мануальщиков не только лишь нейросети уничтожают, а ещё и вкатуны готовые заполнять формочки по 12 часов ради печенек в оупенспейсе.
-
Это за успешный ребейз на ремоут хромиума? Получил утку с ножом
-
Тимлид это линейный менеджер. Низшая ветвь в менеджерской иерархии. Это как ефрейтор в армии, как козлы на зоне. Над тобой стоят управленцы, рядом с тобой корпоративные рабы (как и ты) управленцев интересует как рабы хуячат, и ты являешься их глазами и ушами, а зачастую и жопой куда можно пнуть юнит, чтобы работал лучше. На этой роли имеет смысл сидеть тогда, когда либо есть какая-то перспектива двинуться вверх по лестнице, и иметь своих тимлидов. Либо команда нормально перформит и за это дают бабки. Но если у тебя в команде дауны, а над тобой дохуя инициативных, то будет больно. Как правило у Лида-лидов один начальник, а у тебя их будет куча, всякие деливери менеджеры, ХРы и прочие будут приходить и требовать тащить команду в разные стороны как лебедь рак да щука. Мне было бы тяжело ещё и из того, что я живу по принципу - хочешь сделать хорошо, сделай сам. Не получается у меня делегировать задачи. Хочется все время держать руку на пульсе.
-
Так это вроде стандартный кейс, делают тим-лидом, через пол года часть говорит ну нахуй
-
А ну получается в сисярпе для пересечения создаются хэшсеты под капотом? Классно, вот бы не создавать хэшсеты по итератору коллекции которая уже и так хэшсет Вообще пересечение можно трактовать по разному. С учетом дубликатов или только уникальные значения например. Мой оригинальный тейк был про list.removeAll(collection) в java Как реализовано пересечение в сисярпе меня не ебет. Но добавлю следующее. С точки зрении асимптотической сложности func() { for(1 .. n) { /*O(1) operations*/ } for(1 .. n) { /*O(1) operations*/ } for(1 .. n) { /*O(1) operations*/ } } и func() { for(1 .. n) { /*O(1) operations*/ } } Эквивалентны O(n) но с моей точки зрения, в общем случае долбоебизм решать алгоритм первым способом, если он без каких-либо трейдофов может быть решен вторым. Хотя опять же, тут могут быть нюансы, где func() { for(1 .. n) { /*O(1) SIMD code*/ } for(1 .. n) { /*O(1) SIMD code*/ } for(1 .. n) { /*O(1) SIMD code*/ } } предпочтительнее func() { for(1 .. n) { /*O(1) non-SIMD code*/ } }
-
А ты про какие хеш-сеты? На цепочках или на открытой адресации? С множественным хэшированием? А может про вероятностные? У тебя лист может быть задизайнен всратее сета. А какой-нибудь EnumSet может быть на битовой маске, где пересечение находится битовым &, тупой уебан
-
@grok это правда? Нет, это неправда. В общем случае пересечение двух массивов не быстрее пересечения двух сетов. Наоборот — пересечение сетов почти всегда намного быстрее. Когда массивы теоретически могут выиграть Только в очень специфических случаях: Массивы уже отсортированы → можно сделать O(n + m) двумя указателями без доп. памяти. Элементы — только маленькие целые числа (0..1000), и можно использовать битовые массивы или счётчики. Объёмы данных совсем крошечные (десятки элементов) — тогда константы перевешивают асимптотику. Нужно сохранить порядок и дубликаты из первого массива, а превращение в set их уничтожит. Но в 99 % обычных задач (особенно когда массивы содержат строки, объекты, большие числа, UUID и т.д. — превращение в set и пересечение через него будет на порядки быстрее. А ты знаешь, как устроены хэш-сеты? Неа, расскажи пожалуйста
-
Нахуя мне смотреть имплементацию, если метод работает с ИТЕРАТОРАМИ блять. В java collectionA.removeAll(collectionB) вызывает contains() на collectionB который для хэшсетов O(1) Пройти да, проверить есть ли элемент в хэш-сете - O(1) епта
-
Какая разница какой язык, если у тебя пересечение двух листов это O(n*m) В то время как Пересечение двух сетов это O(n), если ты используешь правильный алгоритм. Проходишь по элементам одного сета за N и вызываешь O(1) contains на другом. >а шарп, где просто есть Except/Intersect Intersect<TSource>(IEnumerable<TSource>, IEnumerable<TSource>) Ну и говно, получается оно всегда использует итерацию по коллекциям, цикл в цикле. Похуй что у тебя, лист или сет. Охуеть конечно нормальная манипуляция Даже у листов пересечение можно найти быстрее чем за O(n*m) если их отсортировать, получается O(n log n + O m log m) но в шарпе мыслят иначе , так что хавай сложность близкую к квадратичной
-
Индусы пишут хуевый не сопровождаемый код. Плюс кто-то же должен оркестрировать индусов.
-
Бизнесу не поебать сколько это стоит бабок и сколько времени будет разрабатываться фича.
-
@Benchmark public boolean listRemoveList(Blackhole bh) { boolean r = listA.removeAll(listB); bh.consume(r); return r; } @Benchmark public boolean listRemoveSet(Blackhole bh) { HashSet<UUID> hashSet = new HashSet<>(listB); boolean r = listA.removeAll(hashSet); bh.consume(r); return r; } Померял на таком бенчмарке Benchmark (sizeA) (sizeB) Mode Cnt Score Error Units ContainsAllBenchmark.listRemoveList 1 1 avgt 5 0,006 � 0,001 us/op ContainsAllBenchmark.listRemoveList 1 10 avgt 5 0,010 � 0,001 us/op ContainsAllBenchmark.listRemoveList 1 100 avgt 5 0,064 � 0,003 us/op ContainsAllBenchmark.listRemoveList 10 1 avgt 5 0,022 � 0,002 us/op ContainsAllBenchmark.listRemoveList 10 10 avgt 5 0,048 � 0,002 us/op ContainsAllBenchmark.listRemoveList 10 100 avgt 5 0,065 � 0,002 us/op ContainsAllBenchmark.listRemoveList 100 1 avgt 5 0,211 � 0,003 us/op ContainsAllBenchmark.listRemoveList 100 10 avgt 5 0,703 � 0,054 us/op ContainsAllBenchmark.listRemoveList 100 100 avgt 5 3,708 � 0,072 us/op ContainsAllBenchmark.listRemoveSet 1 1 avgt 5 0,029 � 0,001 us/op ContainsAllBenchmark.listRemoveSet 1 10 avgt 5 0,123 � 0,008 us/op ContainsAllBenchmark.listRemoveSet 1 100 avgt 5 1,202 � 0,051 us/op ContainsAllBenchmark.listRemoveSet 10 1 avgt 5 0,071 � 0,005 us/op ContainsAllBenchmark.listRemoveSet 10 10 avgt 5 0,150 � 0,006 us/op ContainsAllBenchmark.listRemoveSet 10 100 avgt 5 1,185 � 0,037 us/op ContainsAllBenchmark.listRemoveSet 100 1 avgt 5 0,496 � 0,023 us/op ContainsAllBenchmark.listRemoveSet 100 10 avgt 5 0,606 � 0,034 us/op ContainsAllBenchmark.listRemoveSet 100 100 avgt 5 1,553 � 0,202 us/op Считаю что все правильно сделал что топил за обернуть в хэшсет. Во-превых в реальном коде хэш сет потом кучу раз переиспользуется, в бенчмарке я тестирую в том числе создание сета. Во-вторых, это лучше отражает семантику коллекции. На containsAll цифры конечно другие, но не отменяет факта что дуит хуйню несет, а пытаться заигрывать с кодом для дружбы с компиляторами черевато проблемами.
-
без деталей не понятно не долбаеб ли ты более лучшая асимптотика может давать худший перформанс в частных случаях особенно на небольших значениях и с jit какие там размеры листов? Че блять, че ты несешь? Какие нахуй jit и частные случаи? Ты про premature optimization слышал? А ну давай частный случай, где listA containsAll listB дает лучшую производительность. O(n+m) хуже чем O(n*m) только если M блять равна 1. Это тебе чисто из математики. А вот какие там волшебные оптимизации у JIT ты знаешь, а, мудень? Ты понимаешь что containsAll что на сете что на листе вызывает equals, он блять не векторизируется. Это блять не сравнение примитивов. Ебаный долбоеб наделяющий JIT какими-то волшебными свойствами кроме эскейп анализа, инлайна и бранч предикшонов . Давай JMH в руки и принеси сюда пример. Конченый дебил блять. И знаешь что я тебе скажу, долбоящер. Даже если там блять listB в один ебучий элемент, то JIT прекрасно заинлайнит и listB -> hashSetB -> containsAll в listA containsElement. Ебать, как же с тобой тяжело наверно работать душный и некомпетентный даун. Ебучий даун блять, лучшее что ты можешь сделать для JIT - писать асимптотически-корректный код. Если у тебя блять listB состоит из уникальных элементов, но он протобафом генерится как лист просто потому что в ПРОТОБАФЕ БЛЯТЬ НЕТ СЕТОВ, и ты делаешь listA containsAll listB, то ты ебучий долбоеб. Не надо тут выдумывать с обосранными штанами какие-то одолжения для JIT блять. Кстати, добавлю уточнение, там был не containsAll а removeAll, что сути не сильно меняет
-
Ну по факту напихали. Если ты видя цикл в цикле не можешь докумекать это n*n, n*m или n на константу (может вложенный цикл это цикл по алфавиту например) то ты реально проседаешь по хардам которые в современном мире нужны не только для байпаса душных собесов, но и в работе. на днях ревьюил МР чела, там list.containsAll(anotherList) я ему конечно тыкнул что у тебя тут асимптотика o(n*m) переделай в линейную
-
Как писал один чувак в своем тг канале И вот реально для прототипирования платформенных задач, интеграций эта хуйня очень хороша. Можно в один промпт попросить поднять сервис настроить метрики дашборды алерты интеграции трассировки прочую хуйню. А самому уже писать бизнес-логику. И собственно где тут СТАЖЕРСКИЙ скоуп задач? Стажер будет это пол года делать и потом занесет себе на пол страницы CV в достижения как он все поднял и настроил. Обычно стажерам как раз дают в уже всем готовом скоупе писать как раз какую-то минорную бизнес-логику и обмазывать это все тестами.
-
Ну резать собаку ножом в шею как минимум сомнительно. У ножа никакое останавливающее действие. Когда он её пырнул собака и так в целом была на похуях и убежала себе даже не поджав хвост, точно так же можно было и уебать ногой/вообще ничего не делать. Ну а была бы собака под адреналином, её бы это тоже не остановило бы. Вот и спрашивается, нахуя? Понятно что для МУЖИКА С ЯЙЦАМИ нож это как-бы более статусно чем девчачий перцовый балончик. Но перцовый балончик позволит тебе не сесть на бутылку, особенно если ты Степашка.
-
Семеру этому некропостеру
-
Если бэкенд, то читай кабанчика / учи внутрянку постгри и кафки. шо, кроме систем дизайна... этож потолок рынка вроде. Ну там web3, крипта,go -где средняя по рынку 500+ ? ну, вообщем да... инженер - это тебе не судья/прокурор или мент. О каких заработках в ит может вообще идти речь... тут согласен. Потолок - это средний класс. Ну тоже неплохо... Ну если ты в рашке хочешь 500к+ лутать, то тебе либо быть синьором по верху рынка (а для этого нужно красиво на собесах напиздеть за технологии и баззворды), либо олдфагом-принципалом. Ну либо расти в менеджерские роли. >go Что за миф, что в go большие зарплаты? >web3, крипта Ну это можно сказать удаленка валютная, только вместо валюты тебе хэшами отсыпят. Много ты знаешь судей/прокуроров/ментов лутающих больше 500к? Какой это процент от общей массы судей? Ты хочешь со средними знаниями/навыками не быть средним классом?
-
Если бэкенд, то читай кабанчика / учи внутрянку постгри и кафки.
-
Спасибо, Пыня, почитал книжечку.
-
Папич сракич всем похуй, потухшая звезда.
-
Душить терпил налогами пока есть возможность, после договорняка новые налоги так просто не навесишь
