В декабре 2023 в очередной раз пошла на диспансеризацию. Предыдущие два раза приучили меня, что мероприятие вроде как для галочки, но приятно лишний раз услышать Сахар в норме, гемоглобин хороший. Однако тут что-то пошло не по плану. 27 декабря звонок:
- Пришли результаты вашей онкоцитологии. Вы не пугайтесь, это не диагноз, но подойдите, сделаем биопсию. 30-го числа.
- Прямо вот в предновогоднюю субботу вы меня приглашаете?
- Да, приходите.
И вправду, 30 декабря, вместо того чтобы начинать варить части чьих-то тушек на холодец, я оказалась в женской консультации. Еще раз повторили про анализы не айс, но вы держитесь.
- Но биопсию я у тебя сейчас не возьму. Ее же в праздники никто не посмотрит.
- И правда, послезавтра это будут уже прошлогодняя органика, кому она нужна.
- Ну вот и приходи ко мне сразу после праздников, чтобы всё свеженькое!
Таким образом, оливьешный загул был окончен процедурой по взятию из меня двух кусков меня. Ну ладно, не кусков, кусочков. Но разряд электричества и запах паленого мяса там были, зуб даю.
Диагноз из поликлиники дисплазия шейки матки. Как мне объяснили, это означает, что у меня там верхний слой клеток изменен, это предраковое заболевание. Отправили на посмотреть в онкоцентр. А там врачи суровые, в эвфемизмах не нуждающиеся, и называют эту штуку рак нулевой степени. И сообщают, что резать к чертовой матери, убирать слой с измененными клетками, ибо в перспективе могут разрастись в полноценную самодостаточную опухоль. А могут и не разрастись. Лотерея, в общем. Я порой человек удачливый, но в этот раз играть отказалась и с операцией согласилась. В бумажке, которую вынесла из онкоцентра, вместо аккуратного дисплазия утвердилась карцинома нулевой степени.
Вот дисплазия это как бы временно. Дисфункция, дизлексия, диспропорция будто слова-родственники. А карцинома - неведомая хищная хрень, там и приличных слов-родственников нет, только всякие трахомы да аденомы.
Меня отправили домой проживать пять стадий, от отрицания до принятия, с непременным заходом в депрессию. Параллельно чего бабе без дела грустить, пусть грустит по делу выдали список из 20 исследований, которые нужно пройти к дате госпитализации. И дату назначили 26 февраля. Аккурат сегодня, когда я пишу этот пост.
За истекший месяц я провела в медучреждениях больше времени, чем за предыдущие десять лет. Я сдавала кровь и другие биологические жидкости. Я сидела в очередях в неправильный кабинет. Узнала местоположение трех тайных филиалов нашей поликлиники. Но я не жалуюсь, не подумайте. На всех этих этапах мне рассказывали, какой я везунчик. Что женский рак не болит, а когда заболит, тогда уже поздно (мой гинеколог). Ого, диспансеризация и правда бывает полезна! (мой косметолог, которая делала мне торжественную пред-операционную эпиляцию всех значимых мест). И Хорошо, что зимой, а то летом на кого дачу бросить - это уже моё собственное.
Анализы собрала в срок, невзирая на праздничные дни. К слову, даже узи вен ног, которое обычно ждут месяц, мне досталось по ОМС через два дня. Озвучившая мне этот факт медсестра хирурга в ответ на моё О, как быстро! озадаченно произнесла Да мы сами очень удивлены, потому что час назад окошек не было.
Что-то сдавалось в частных клиниках, но это буквально два исследования из двадцати. Остальное в 10-дневный срок мне сделали по полису ОМС в обычной городской поликлинике. Чему мой кошелек, безусловно, рад.
Последний штрих компрессионные чулки. Мне достались белые с рюшами. Чес слово, не было других там, куда я заехала, а искать еще один магазин было лениво. Буду косплеить старшеклассницу на последнем звонке. Вместо фартука операционная простыня.
Сегодня прибыла в онкоцентр, и после кратковременного четырехчасового (серьезно, 4 часа) ожидания меня поместили в палату. Сказали, завтра в 10 утра будут меня усыплять, срезать ненужное, и потом пусть нарастает нужное.
Простыня эта написана от избытка свободного времени в палате. И с целью напомнить, что в РФ есть такая штука, как диспансеризация. Она как раз для того, чтобы на ранних стадиях выявить всякую бяку и заблаговременно ее обезвредить.
У меня всё. Пожелания удачи на операции принимаются с благодарностью, страшилки очень прошу не писать. Я и так очкую.
Телеги не будет.
И чукча не медик, в терминах и их объяснениях могу путаться.
Я 6 лет училась в университете, за деньги, покупаю постоянно
курсы повышения квалификации, вебинары, курсы лайфхаков и т.д. Я
потратила много времени и денег на то, что я сейчас умею!
И вот, начальница взяла на работу подружку, с базовым образованием,
и просит меня обучить ее работать быстро и качественно (для
понимания, то, что она делает за неделю, я делаю за 15 минут).
А я не хочу ее учить!
Мудак ли я?
Мне кажется, что современным школам очень не хватает предмета - Логика. Как раз вместо предмета Религия пришёлся бы к месту.
Ну не всегда же негатив, не всегда же грустные истории.
Так вот, с 1 января в силу встпил один очень приятный закон. Мы все
его ждали, мы все его хотели.
Справедливо? Очень даже справедливо, как по мне. А сколько это
несёт за собой последствий, ууууух.
Начнём с того, что получать гражданство для многих жён "иностранных
специалистов" из соседних солнечных республик станет
нецелесообразно, а значит уменьшится поток левых денег в ФМС, в
университеты, которые выдают справки о знании русского языка и
истории. Невыданный маткапитал-деньги в казне. Да, резонно будет
напомнить мне что деньги эти из казны можно и на другую х#ню
потратить, кроме как отдать их человеку который на русском языке и
не разговаривает, но всё же.
А почему пост пишется только сейчас, когда прошло уже 2 месяца с
принятия закона?
Да потому что как раз таки сейчас и начали выносить решение за
решением об отказе в выдаче сертификата, и я наслаждаюсь, ИСКРЕННЕ,
БЛЯТЬ, наслаждаюсь их возмущением, их разочарованностью, их злостью
и смятением. Я ловлю кайф, ибо нехуй человеку, который Россию
родиной не считает, котрый разговаривать на языке не умеет, который
никогда не платил и не заплатит ни рубля налога оформлять
сертификат, который формируется из твоих, из моих, и из чьих то еще
накоплений. Не заслужили, ни разу. Всё таки бывают у нас законы
здравые, что ни говори.
Транссиб ведет в Китай и к портам Приморского края Владивостоку, Восточному, Находке, Посьету, а БАМ к Ванино и Советской Гавани
Самые важные тоннели через таежные дебри необходимо перестроить для пропуска большего числа поездов. Для этого рядом со старыми пробиваются новые. Козинский тоннель один из немногих оставшихся, которые нуждаются в расширении
Первый Козинский тоннель возвели при прокладке трассы в 1960-е. Теперь параллельно существующему проходу под горой будут пробивать дополнительный
Двойная Джебская петля на схеме железной дороги. Перегон расположен на высотах 630805 метров над уровнем моря
После ввода в эксплуатацию нового тоннеля этот сложный горный участок железной дороги через Саяны существенно увеличит свою пропускную способность
Были на слуху, но никогда их не читал. Так получилось. Сейчас начал полдень читать. Это невообразимо! Оказывается я уже и забыл, как это, когда в груди все замирает от восторга! Вот это литература, а не фастфуд из попаданцев.
Транссиб ведет в Китай и к портам Приморского края Владивостоку, Восточному, Находке, Посьету, а БАМ к Ванино и Советской Гавани
Самые важные тоннели через таежные дебри необходимо перестроить для пропуска большего числа поездов. Для этого рядом со старыми пробиваются новые. Козинский тоннель один из немногих оставшихся, которые нуждаются в расширении
Первый Козинский тоннель возвели при прокладке трассы в 1960-е. Теперь параллельно существующему проходу под горой будут пробивать дополнительный
Двойная Джебская петля на схеме железной дороги. Перегон расположен на высотах 630805 метров над уровнем моря
После ввода в эксплуатацию нового тоннеля этот сложный горный участок железной дороги через Саяны существенно увеличит свою пропускную способность
Мадам жалуется что дети с мужем нос воротят от еды. То не хочу. Это не нравится.
Меня батя по детству за один раз научил.
Мне лет 8 было. Гоняли по двору в догонялки, футбол. Мама зовёт покушать. Я не хочу. Один раз позвали. Второй. Третий. Батя говорит. Не хочет ,не надо. Проголодается придет. Часов в 9 вечера я естественно домой завалился. А тогда из фастфуда только котлета на куске хлеба была. А мне суп предлагают. Не. Не хочу и не буду. А что хочешь? Картошки вареной. Пюре. А батя мне и говорит. Вот и вари раз хочется. Взял я картоху,нож. Кое как почистил и в кастрюлю. И на огонь. И сижу в телик втыкаю. А тут палёным несёт с кухни. Конкретно так. Мать на кухню а там картошка горит в кастрюле. Воды то я не налил. Спалил кастрюлю. Тут батя меня за руку и по новой. Только под его присмотром. Начистил картошки. Причем на всю семью. Перемыл её. И под Бахтиным присмотром варил и пюре сделал.
И с тех пор без выпендрежа. Хочешь что то поесть другого? Вон холодильник и плита. Готовь.
Транссиб ведет в Китай и к портам Приморского края Владивостоку, Восточному, Находке, Посьету, а БАМ к Ванино и Советской Гавани
Самые важные тоннели через таежные дебри необходимо перестроить для пропуска большего числа поездов. Для этого рядом со старыми пробиваются новые. Козинский тоннель один из немногих оставшихся, которые нуждаются в расширении
Первый Козинский тоннель возвели при прокладке трассы в 1960-е. Теперь параллельно существующему проходу под горой будут пробивать дополнительный
Двойная Джебская петля на схеме железной дороги. Перегон расположен на высотах 630805 метров над уровнем моря
После ввода в эксплуатацию нового тоннеля этот сложный горный участок железной дороги через Саяны существенно увеличит свою пропускную способность
Пост посмеяться.
Пренебрежение, не замечание вклада партнёра в совместный быт -
частая причина разводов. Помогайте партнёрам в быту
Откуда у людей столько злорадства на тему событий в Израиле? Там люди гибнут, сотнями. Видели кадры расстрелянных машин и валяющихся трупов обычных людей, не имеющих отношения к войне? А Израиль сейчас ответку будет давать, сколько гражданских погибнет там еще? Или вот эти кадры с убитой немкой с переломанными ногами в кузове пикапа, на которой сверху сидят чуваки с автоматами? Когда мы так оскотинились, что стали насилие и смерть воспринимать как должное, а еще и подхихикивать на эту тему. Не хочу казаться ханжой, но это пиздец, товарищи.
Поздравляю нашего президента Владимира Владимировича Путина с днём рождения. Такой человек сейчас нужен не только нашей стране, но и всему миру. Может я не прав, но мне кажется, что пи*дец был бы у же нам всем без его твердой руки.
Нахуй войну
Думаю, не секрет, что айтишники гребут деньги лопатой. Но вот что именно нужно сделать, чтобы получить такую работу - пишут редко. В марте этого года я решил сменить работу и весь апрель занимался прохождением собеседований, в итоге получил несколько предложений на зарплаты около 700к/месяц. Об этом и хотел бы рассказать.
Немного о себе: занимаюсь коммерческим программированием 13 лет, ещё несколько лет работал в других сферах. Основной язык С++, достаточно хорошо знаю Python и ML. Есть опыт работы как в мелких фирмах на 5 человек, так и в ИТ-гигантах.
Искал работу программистом, строго не руководителем. Это добавляло некоторых особенностей, т.к. существует мнение, что большие деньги можно получать только на руководящихся должностях. Это не всегда верно (но на руководящих должностях получать большие деньги проще, т.к. руководителей нужно больше, чем топовых специалистов).
Первым делом, когда я решил менять работу - я обновил профиль в linkedIn и на hh.ru, уже на следующий день мне начали писать рекрутеры. Меня стали звать на разные секции - как технические, так и "пообщаться". Про свои ответы либо не буду писать, либо очень коротко, т.к. ответы можно легко найти гуглением (а там, где не получится - спрашивайте в комментах), иначе пост совсем разрастётся.
Одна интересная секция была на собесе в Хуавей. Я там шёл на должность ML-разработчика, который будет не модельки обучать, а писать сами библиотеки для обучения моделей. На собесе было человек 5 и они по очереди спрашивали меня каждый по своей теме (всё это длилось в сумме часа два):
- Сначала знание С++. Зачем нужны умные указатели, зачем нужен виртуальный деструктор, как устроен vtable, ещё какая-то муть. Я отвечал на всё легко и уверенно, интервьюер быстро "кивнул" и мы перешли к следующему.
- Аппаратура и программирование на С. Какие есть архитектуры помимо x86? Рассказал про ARM. Дальше спрашивали про вычисления на GPU - рассказал про примерную архитектуру и принципиальные отличия от CPU. "Что ещё можно использовать для вычислений?" Назвал FPGA, немного рассказал про особенности. Дальше этот же чел расспрашивал про особенности С. Разные вопросы про отличие между int *a =malloc(20); и int a[5];, про устройство менеджера памяти, про страницы памяти и виртуальную память (почему номера новых страниц всегда больше, чем номера старых? чтобы происходит с номерами удалённых страниц?), про механизм работы extern, union, volatile.
- Дальше были вопросы по математике. Как посчитать синус и косинус без соответствующей функции? Рассказал про ряды Тейлора. Что-то спросили про градиенты, попросили посчитать производную для |x| (модуль икса), а потом вторую производную. Дальше какие-то вопросы про градиенты. Перешли к аффинным преобразованиям и способам их описания. Рассказал про кольцо матриц, собственные вектора и их связь с геометрическим смыслом преобразования. Дальше спросили про Якобианы и Гессианы. Меня этот вопрос позабавил, но я рассказал и заодно упомянул, что эти штуки полезны для определения сходимости некоторых численных методов.
- Многопоточка. Тут всё было как-то быстро, видимо после первых трёх частей народ уже заскучал. Базово про примитивы синхрониазции (мьютексы, семафоры), про атомарность, заодно про атомарность на уровне процессора. Это ответил, рассказал про контаминацию кэша и методы разрешения конфликтов в кэше процессора - достаточно.
- Собственно, ML. Какие бывают слои у сеток, какие сейчас есть популярные архитектруры, почему 20 лет назад это не взлетало, хотя многие знания уже тогда были. Как инференсится дропаут, зачем нужна батч-нормализация, почему L1-регуляризация позволяет увидеть значимость фичей. Как построить эмбеддинги для слов, почему это вообще работает?
Собеседование оказалось очень разносторонним. Но это ещё не всё, после этого был ещё созвон на час, на котором мы обсуждали (уже с другими людьми) мой прошлый опыт. В каких крупных проектах участвовал, какие продуктовые фичи сам делал, какие решения сам принимал, как это отражалось на бизнесе. Несмотря на то, что я шёл разработчиком - ожидалось, что я буду очень автономным и иногда даже смогу как-то помогать в управлении/организации процессов. Технические вопросы почти не задавали.
В итоге мне предложили оклад 480к (после вычета налогов) и премии, которые зависят от разных факторов (мои показатели, общие финансовые показатели фирмы и т.п.), которые в среднем должны были добить мой доход до 685к/месяц.
В Сбере было несколько секций с написанием кода и одна на "поболтать". Секции про общение везде проходят примерно одинаково, так что повторять тут не буду. Про написание кода:
- Чистый С++. Тут была секция на проверку моих знаний по самому языку. Мне показали код, в котором есть несколько классов, где-то виртуальные методы, какой-то класс наследуется от другого, где-то в конструкторах и деструкторах что-то нетривиальное написано. И вопрос был "что выведет программа?" Суть была в том, что там в родителе была функция print (которая что-то базовое пишет) и в наследнике она была переопределена. Небольшой gotсha момент был в том, что функция не была объявлена виртуальной. Дальше там эти принты возникали в конструкторе и десрукторе. В общем и целом - вопрос был о том, что в каком порядке вызывается. Я почти справился, но проглядел один вызов из-за невнимательно. Но это был простой момент (а на сложные я ответил), так что интервьюер кажется поверил, что это просто невнимательность, а не незнание. После этого спросили "а что задумывал автор кода?" и попросили исправить. Такие вопросы будут очень сложны для джунов, потому что "а откуда я знаю чего он хотел?" и относительно легки для опытных разрабов, потому что понимаешь, какие есть расхожие подходы и что "вот так обычно пишут, а вот так - не пишут". В общем, вопрос крутой для определения опытности человека. Потом дали ещё кусок кода с многопоточкой и надо было сказать, есть ли в нём баги. Был потерян lock_guard (типичная ошибка работы с мьютексом), попросили исправить и объяснить, как именно раскручивается стек в многопоточке при обработке исключений.
Отличительной особенностью этой секции было то, что весь код писался в онлайн-трансляторе и каждый раз, когда я отвечал на вопрос "что выдаст код" мы просто запускали и смотрели. Особенно круто это было когда я ответил "упадёт с std::terminate" и оно действительно падало с std::terminate.
- Алгоритмы. Задачи, которые можно писать на любом языке (но я писал на С++).
Есть датчики. Один датчик сначала выдаёт нули, а потом, с определённого момента, начинает выдавать единицы. Есть синхронные показания N датчиков (в виде набора массивов, каждый содержит M значений). Нужно найти номер датчика, который сработал первым. Сделать надо эффективно, я реализовал за O(N + log(M)).
Воссоздаём лотерею: есть набор людей, про каждого известно, сколько билетов купил человек. Нужно написать функцию, которая выберет случайного человека с вероятностью, пропорциональной количеству купленных билетов (и вывести на экран его имя).
Была ещё какая-то задача, но уже не помню, что-то мелкое и скучное.
Про эту секцию могу сказать, что на высоком уровне тут уже обращают внимание не только на то, решил ты или нет, но ещё и как быстро, и какой код ты пишешь. У меня на каждую задачу уходило не больше 15 минут в сумме с выслушиванием условия и обсуждением моего решения, т.е. чистое написание кода занимало минут 5-10.
- Секция про ML. Тут были разные вопросы о том, как подходить к экспериментированию с моделями (зачем нужны отдельно валидационные и отдельно тестовые выборки?), что такое аб-тесты и т.п. Достаточно много вопросов про ранжирующие системы (какие бывают, какие есть особенности) - рассказывал про коллаборативную фильтрацию и эмбеддинги. Много каких-то технических подробностей спрашивали, например, почему разложение матрицы делают через SVD. Но в целом ничего особого. Типичная ML-секция с обязательными вопросами типа "как понять, что модель переобучилась, что делать? Как понять, что данных мало, что делать?"
- Общая секция. Я шёл в СберДевайсы, поэтому было важно ещё понимание каких-то "железных" вопросов. Рассказал про архитектуру процессора, кэши, ядра, конвейер, о том что внутри процессора есть отдельный компьютер и за один такт выполняется несколько микро-кодов, про TLB и прочее. Дальше про видюхи, их особенности относительно процов, про взаимодействие с памятью. Был вопрос типа "вам надо ускорить перемножение матриц, как бы вы это сделали с помощью видеокарты?" или, например, "можно ли ускорить поиск кратчайшего пути на графе с помощью видеокарты?".
Сбер предложил оклад 455к и премии разные, в сумме выходило 675к в месяц.
Я уже раньше работал в Яндексе и даже успел провести больше сотни собеседований, так что достаточно хорошо понимал, что меня ждёт. А ждали меня несколько секций с написанием кода "в блокноте", т.е. без возможности запуска. И ещё одна секция по ML.
- Алгоритмы.
Удалить нули из массива. Тут всё просто, проверка на совсем новичка.
Написать свою реализацию shared_ptr. Уныло, но хорошо проверяет понимание внутренней структуры языка.
Написать условный рейт-лимитер. Есть функция, которая на вход принимает timestamp события и максимально допустимое число таких событий за последние 600 секунд. Нам надо на каждый вызов этой фукнции ответить, хороший ли это запрос или уже "лишний", т.е. за последние 600 секунд было больше запросов, чем пороговое значение. Гарантируется, что timestamp не убывают.
Есть названия программ (по сути, просто набор строк), и для каждой есть набор зависимостей (т.е. массив строк на каждую программу). Зависимости только из того же списка, т.е. если у нас есть программы a, b, c, то программа b может зависеть от a, но не может зависеть от f (потому что нет в списке программы f). Надо вывести эти названия программ в "корректном" порядке для установки, т.е. чтобы если пакет шёл в списке - все его зависимости были раньше него в данном списке.
Были и другие задачи, но я точно уже условия не помню. Здесь опять же важна скорость написания и наличие багов. Если посадить хотя бы один баг (и не отловить самому) - это достаточно критично.
- ML. Эту секцию мне не очень хочется подробно описывать, т.к. она была почти "по учебнику". Если есть желание подготовиться - HR присылает ссылку на youtube с видосами от Яндекса. Видосы очень крутые (можно искать по ключевым словам "Лекции по машинному обучению, Воронцов ШАД").
- Общая секция. Вот тут была основная "соль". Просто хорошо решать алгоритмические задачки - дело полезное, но не на 700к. Тут было общение с будущим руководителем и обсуждение потенциальных задач. Мне назвали примеры задач (увы, разглашать не могу, т.к. они сейчас в работы) и я с ходу предложил какие-то идеи по решению этих проблем. Дабы не быть голословным, приведу примеры того, что могли бы спросить. Это гео-сервисы, поэтому вопросы вполне тематичные:
Как строить маршрут так, чтобы водитель доезжал быстрее? это вопрос-бомба, вопрос-убийца. Потому что большинство программистов начинают рассказывать про прекрасные алгоритмы, а потом спотыкаются на вопросе "а как вы измерите тот факт, что водитель стал доезжать быстрее? Как вы докажете, что вы что-то заметно улучшили для клиента?" Суть вопроса в том, что надо думать не только про техническую составляющую, но и про конечного пользователя. Недостаточно написать алгоритм, который работает быстрее или точнее предсказывает маршрут. Надо ещё чтобы это было полезно для клиента, а программисты про это часто забывают.
Мы запускаем бизнес (например, Такси) в новом городе. У нас есть примерная карта дорог, но нет статистики проездов по этим дорогам. Как предсказывать время проезда чтобы честно оценивать стоимость поездки? Опять же, вопрос про бизнес, а не про технологии. Да, тут надо обязательно проявить знание технологий, но этого мало. Типичный программист "в теме" скажет, что надо найти поставщиков данных, можно поездить самим по этим дорогам чтобы насобирать статистику и т.п. Но все эти этапы занимают как минимум недели, а в реальности - месяцы. А для бизнеса запуститься с плохими данными на полгода раньше - это зачастую выгоднее, чем запуститься спустя полгода, но с хорошими и точными данными. Поэтому хороший кандидат должен сам сказать о том, что вот, мол "можно купить данные - но это плохо и долго. А мы с вами сделаем вот так и вот так, тогда будет качество хуже, но зато быстро. Насколько именно качество будет хуже - считать будем вот так. А на бизнесовых метриках (которые человек сам должен предложить) это отразится вот эдак. А потом мы спросим стейкходлеров сервиса, готовы ли они запускать сервис с вот таки вот (относительно плохим) качеством, но на полгода раньше".
Это тоже не всё, но суть, думаю, ясна.
Яндекс предложил мне оклад 490к и ещё разные премии, в сумме с которыми вышло 720к в месяц.
Другие фирмы
Помимо этого я проходил собеседования ещё в Тинькофф, Вк, 1С и некоторые мелкие фирмы. Но общение с ними выкладывать уже день, да и в целом получилось достаточно чтобы сформировать понимание того, какого плана вопросы мне задавали. Если будут вопросы или нужны какие-то уточнения - пишите в комментах.
Выбрал я в итоге Яндекс, но текущий размер зарплаты лучше не буду озвучивать во избежание казусов. Он больше, чем мне изначально предлагали.