Часть 1. "4 месяца борьбы за место DS джуна" - тут - "А у вас тоже свой бизнес, а такси так, для души?" - пошутил пассажир на заднем сидении. До Нового 2020 года оставалось три часа. Праздновать я собирался за рулем, принимая заказы. Никто еще не слышал ни про какую Ухань. А если ты чихнул, не прикрывшись, людей вокруг это совершенно не волновало.  На голове - новогодние оленьи рога, в бардачке - конфеты. Но девять из десяти заказов - это замученные последним рабочим днем люди, и мои конфеты были им абсолютно не интересны. - "Нет, к счастью, никакого бизнеса у меня нет." На самом деле, историй из прошлого про бизнес у меня более, чем достаточно. Но это закрытая страница. Мог бы завести разговор, что не так давно решил рискнуть и начал учиться Data Science. Но не стал. За время поездки я вряд ли объясню обычному человеку, что значат эти два слова. Да, честно говоря, тогда и сам еще не до конца понимал.  Желание это было еще не до конца оформлено и существовало только в виде тетрадки (которую я завел несколько лет назад, понятия не имея ни про какой "машин лёрнинг") с размытыми идеями о том, как бы я разрабатывал свой искусственный интеллект, если бы делал его с нуля. К этому времени уже 4 месяца я сидел за рулем одновременно в Яндекс.такси и Убере, катаясь  по 12-14 часов в сутки 5-6 дней в неделю. - "Такси, как наркотик. Я вот 12 лет назад пришел подработать, и до сих пор здесь", - сказал как-то управляющий моего первого таксопарка. Очень обнадеживающе. Прогрессивная шкала. Ежедневная погоня за максимальной ставкой. Абсолютно бесполезная техподдержка. Пьяные, надменные, иногда вонючие пассажиры. Бесконечные пробки. Говорили, что кто-то умудрялся даже по 50-60т.р. в месяц зарабатывать. Но это - один перерыв на 15 минут за 12 часов, педаль в пол, постоянные нарушения. И дежурная чекушка для снятия стресса, как только сдал ключи сменщику. Сдавая машину в конце смены, я вглядывался в лица этих простых водил. В них не было ничего. Разведенные, понурые, уставшие люди, у которых в жизни больше ничего не осталось, кроме таксометра на смартфоне.  До сих пор с уважением отношусь к их работе, но не вижу никаких причин, по которым надо в ней  оставаться на тех скотских условиях, которые сформировали такси-агрегаторы, захватив рынок. Было, конечно, в этой работе и что-то хорошее. Иногда попадались интересные люди: вертолетчик-ликвидатор пожара на ЧАЭС, директор областной школы для детей с задержкой в развитии с амбициями регионального депутата, участник команды Уральские пельмени, техник-водитель в арктической экспедиции.  Можно было даже представить, что это тоже бизнес. Практически сам себе хозяин. Захотел - включил таксометр, захотел - выключил. Никаких начальников, просто отдавай часть денег в парк и все. Считай доходы-расходы-прибыль. Сколько накатал, столько и заработал. В ту новогоднюю ночь я заработал, как в самую обычную смену. Все встало на свои места. Такси начало затягивать меня в трясину, выбраться из которой через год-два я уже не смогу. Можно считать, с этого момента началось мое полноценное обучение. Для начала я пересел на свою машину. На парковой или арендной первые 6-8 часов ты, по сути,  отбиваешь аренду, потом уже работаешь на себя. На своей можно хоть что-то заработать даже за 4 часа. Время важнее. Число смен сократил до 3-4х в неделю, чтоб оставался необходимый минимум денег на жизнь. Если ответственно относиться к бюджету и отложить на неопределенный срок все, что не горит, вполне можно прожить и на 20т.р. в месяц. Если есть ради чего (должен отметить, что без поддержки близких было бы куда тяжелее). Остальное время - учеба.  Тут наверно многие скажут: - "Ага, ага, как же. Что за развод? Какой-то тупой таксист затащил вышмат и залез в технологичную сферу, рассказывай..." Ок, я не платные курсы, поэтому не буду убеждать, что так может каждый. Вероятно, не каждый. Тут уж надо себя адекватно оценивать. Тем более, если сейчас ты -  таксист :) Вообще, я учился в одной из лучших физ-мат школ Екатеринбурга, потом поступил на мат-мех. На 3м курсе пошёл на вторую вышку. Еще через год вместе с братом открыл компанию, став партнером СКБ Контура. И вобщем-то неплохо развернулся, продавая и обслуживая контуровский софт. Даже немного поруководил партнерской сетью Контура в Москве. Так что IT для меня - это не дальний космос. Да и софт скилы какие-никакие есть. Но в жизни всякое бывает. Случилась долгая черная полоса (хотя это совсем другая история). А  мат-мех был 15 лет назад, опыта в разработке - ноль, и мне уже стукнуло 37. Успех мероприятия был совсем не очевиден. А весь прошлый опыт не давал никаких бонусов в новой специальности. Скорее, наоборот - пришлось вычеркнуть его из резюме по советам бывалых, оставив только размытые формулировки об опыте в продажах и СММ, чтобы не пугать hr-ов. С марта 2020 началась самоизоляциия, и из такси я ушел в учебу на 100%, самоизолировавшись в саду, где регулярно поливал морковку, редис и даже вырастил полную теплицу огурцов, чтобы было чем отвлечься в перерывах. - "Куда уходишь то?" - поинтересовался управляющий моего последнего таксопарка. - "Учиться делать беспилотное такси", - подколол я. - "Надо бы сломать тебе пальцы, пока не поздно", - задумчиво парировал он. На том и попрощались. Когда на меня нападает прокрастинация, я вспоминаю это "прекрасное" время и понимаю, что не хочу больше в него возвращаться НИКОГДА. И сразу хочется учиться и работать. В первой части меня спрашивали, где и как конкретно я учился. Отвечаю. Платил по 5т.р. в месяц только за специализацию на coursera.org, да и то оказалось, что можно было написать письмо на фин. помощь и учиться бесплатно. Говорят, никому не отказывали, по крайней мере раньше.     1. STEPIK Программирование на Python: https://stepik.org/course/67  Введение в Linux: https://stepik.org/course/73  Нейронные сети: https://stepik.org/course/401  Нейронные сети и компьютерное зрение: https://stepik.org/course/50352  Практикум по математике и Python: https://stepik.org/course/3356  Линейная алгебра: https://stepik.org/course/2461  Python: основы и применение: https://stepik.org/course/512  Теория вероятностей: https://stepik.org/course/3089 Что-то пройдено полностью, что-то в достаточном для понимания объеме.     2. COURSERA Легендарная специализация "Машинное обучение и анализ данных": https://www.coursera.org/specializations/machine-learning-data-analysis Первые 4 курса - must have любому, кто хочет вкатиться в тему. 5й и 6й курс - тут уже по желанию. На мой взгляд, за практикой лучше сразу идти на kaggle.com и/или на собесы, решать тестовые задания.     3. ODS Открытый курс машинного обучения: https://habr.com/ru/company/ods/blog/322626/   Это как конспект с подробными лекциями. Как только нужно копнуть поглубже или освежить какую-то тему - иду сюда.     4. Ну и какой-нибудь из известных онлайн-транажеров по SQL.  Я тут занимался: https://learndb.ru     5. Вся моя практика - это 1я часть истории, с сентября 2020 до января 2021: https://habr.com/ru/post/536014/ Три недели назад я узнал, что успешно прошел испытательный срок в питерской компании ADRIVER (группа компаний Internest). Собственно, этого момента и ждал, чтобы написать продолжение. А то было бы забавно... "Всем привет. Я стал дата саентистом, но не вытащил"... Думаю, AdRiver это лучший вариант куда я мог попасть, с учетом моего прошлого опыта и пути развития. За три месяца работы я уже успел поработать над несколькими задачами. Основной продукт, в котором я участвую - это система управления баннерной рекламой. На пальцах все просто - кто-то в интернете заходит на один из десятков миллионов площадок, где мы можем показать рекламу. Получаем запрос, хотим ли показать этому человеку какой-то из десятков тысяч баннеров наших клиентов и сколько готовы за это заплатить. Задача - оценить вероятность клика в каждом конкретном случае и, исходя из прогноза, предложить свою максимальную ставку. Короче говоря, то же, что я делал руками, настраивая тергетированную рекламу ВКонтакте, только теперь Data Science, Big Data и вот это вот всё. Компания существует много лет, команда отличная (в этом я уже убедился, даже пожаловаться не на что), клиенты - в плюсе. Даже странно, что до работы здесь я никогда про нее не слышал, хотя наши технологии используют серьезные бренды и рекламные агентства, вроде Ламоды, МВидео, Digital BBDO и т.д. Но есть одно маленькое "но". В скором времени все известные браузеры закроют возможность передачи "кук" 3й стороны, а это значит, что мы, как и все остальные участники этого рынка, заметно потеряем в качестве прогноза, т.к. информации о том, кому показывать баннер теперь будет меньше. С этим надо что-то делать. Собственно, я и делаю. И тут уже такой простор для творчества, что можно только позавидовать самому себе. Штатно в задачах "click prediction" используется градиентный бустинг. Пришлось погрузиться в тонкости XGBOOST, CatBoost, форматы данных libsvm, написание скриптов для сбора статистик из файлов на 30-80млн. строк и фильтрации 400тыс. признаков, формирования всяких выборок и т.д. Погонять модели, поискать гиперпараметры для обновленных моделей. (А тут, знаете, модель в полном фарше может и сутки учиться). Короче, реальный Data Science - это вам не Титаник на Kaggle). Сейчас начал изучать Hadoop и Java, чтобы мог сам вытаскивать данные для моделей. Дальше - больше. У нас есть баннеры, площадки, посадочные страницы. Это все кладезь информации, которая должна помочь улучшить модели в условиях надвигающегося дефицита. Здравствуйте, нейронки. Bert для выдергивания фичей из текста. CV-нейросетки. Данных - тьма! Скучно не будет. Что-то уже начал проверять. Первая моя задача, чтобы влиться в работу, тоже порадовала.  Нужно было разобрать действующий в компании алгоритм визуальных рекомендаций(читай ResNet на Keras, который я в глаза не видел). Разобраться и оценить перспективы модели CLIP, выложенной за неделю до начала моей работы в компании. Если есть смысл - поменять ResNet на CLIP. Поначалу, конечно - шок, паника, депрессия... Первые пару часов. Но глаза боятся - руки делают. Между делом пришлось обновить код под 3й питон, что, наверное, было самым неприятным. Постоянно вылазили какие-то непонятные баги. На выходе получилась модель, выдирающая признаки с картинок и их описаний в виде определенного вида векторов. А по этим векторам можно уже и расстояние оценить. Русские части описаний картинок предварительно переводятся на английский другой нейросеткой(CLIP-то на английский заточен). И если кому-то на Ламоде приглянулось модное платье, модель готова предложить 10 похожих по стилю, бренду, цвету и фасону. Визуально выглядит очень круто, как само по себе, так и по сравнению с ResNet50. Кстати, если вы не пробовали CLIP для классификации картинок, рекомендую срочно это исправить. Фичи с картинок какого-нибудь известного датасета, пропущенные через банальную логистическую регрессию, вас приятно удивят при оценке результата на тестовой выборке. Подводя итог, все хорошо! Даже не верится. Но потом вспоминаешь, сколько сил и нервов ушло. И тогда вполне верится. В течение недели после публикации первой части я получил 3 оффера (еще до конца новогодних каникул). Один из них был как раз в AdRiver. Еще один в стартап по обработке документов. И еще один в белорусскую компанию, тоже по части NLP. Везде было неплохо, но AdRiver подкупил предстоящей широтой задач, на которых можно учиться новому. Удивительно, но в отличие от всех прошлых собеседований, до статьи, по каждому из офферов меня совсем никак не гоняли по теории. Просили рассказать о прошлом опыте, о проекте для Почты России с хакатона, в стартапе дали 2 задания на время (пару несложных алгоритмов за 3 часа написать). И никакой теории. Было еще несколько предложений "поднять data science" в каких-то непонятных проектах, где я так и не понял, что от меня хотят. И, как последний штрих, собеседование на Аналитика в Сбер. Скажу прямо, такого унижения я не испытывал со времен первого настоящего мат-меховского экзамена.  Гоняли по всем возможным темам и разделам, заставляли "зашэрить" экран и писать код в блокноте, засыпали перекрестными вопросами. Больше половины вопросов жестко слил. Думал - без шансов. Но нет:  - "Все, конечно, на базовом уровне...", - и дали тестовое задание на следующий этап. Тем не менее пришлось отказаться, т.к. надо было давать ответ по офферам. А гарантий прохождения в Сбер никто не давал. Внутри осталось ощущение, что раз в жизни в Сбере стоит поработать, хотя мнения о работе там очень неоднозначные. Но это уже как-нибудь потом, может быть.