Всем привет, меня зовут Крамаренко Владислав. В этом году мне исполнилось 30 лет, а также случилось много событий, в том числе и позитивных. Во первых, я устроился на вторую в жизни работу(и первую в айти), а во вторых, стал грандмастером. Это сложный путь, на котором было несколько ключевых решений, которые привели меня к себе нынешнему. О нём я и поделюсь далее, начав с детства.

Детство

Я родился в селе на дальнем востоке в простой семье учителя и военного и первое время выживал только благодаря огороду. Но в 4 года, когда родители переехали в региональный центр, всё изменилось. И хоть это принесло в жизнь нотки криминальных 90-х(кражи, стрелки, расстрел машины на моих глазах и др), это так же дало доступ к учителям более высокого уровня, которые привили мне любовь к техническим наукам.

Следующее событие случилось в 5 классе, когда, на заработанные мною в музыкальной школе деньги, мне купили Денди. Тогда я проникся, какие же это крутые ребята - разработчики. Они написали тысячи строк кода, а получилось такое великолепие.

Mario Bros. Единственная игра, в которую я играл с отцом
Mario Bros. Единственная игра, в которую я играл с отцом

Через год мать взяла с собой на работу в университет, где был один из немногих ПК в городе, и я сразу залип. Не то, чтобы там было много игр, но хватало и поле чудес. (до сих пор жду миллиард, на котором зависал пк). Увидев интерес, родители решили меня порадовать и купить уже по-настоящему персональный компьютер. И я покатился по наклонной.

Первую винду я переустановил в 12 лет. Когда на хватало места на диске, емкостью в 40гб, я удалил драйвера на видеокарту, после чего уменьшилось разрешение экрана и перестали запускаться игры. Я запаниковал, и не нашел ничего лучше, как переустановить 98ю винду.

Далее был момент, когда в 8 классе родители решили отдать меня в лучшую школу города, где были подготовительные курсы, в том числе, почему-то, по программированию на языке Pascal. Это первый и последний раз, когда я очно изучал в программировании что-то для себя новое. Важным было одно из последних занятий, где нужно было нарисовать и анимировать взлет ракеты. А это не современные движки, где можно просто двигать объект «картинка с ракетой», там надо было вручную рисовать и стирать каждую линию. В итоге я добавил еще и движущегося человечка и справился быстрее и лучше остальных и, помимо шоколадки, получил уверенность в своих силах.

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

Отрочество

Когда я, в 9 классе, ездил в лагерь на региональный этап по математике, то познакомился с бумажной игрой лабиринт. Правила следующие, есть лабиринт, вид сверху, изначально всё покрыто туманом войны. Игроки не знают где находятся их соперники и последовательно говорят направления ходьбы. Ведущий после этого говорит, где какие стены окружают каждого игрока. После нескольких ходов можно пробовать начинать сопоставлять направление ходов других игроков с открытой частью карты и, если это удастся, то есть вероятность, что там враг и можно выстрелить в него. Чтобы победить, нужно, или убить всех других игроков, или найти клад и выход и уйти с деньгами.

Эта концепция и легла за основу моей первой игры. Писал на Паскале, так как ничего другого не знал. Все было хорошо, пока не дошел до части, где нужно было создать ИИ и серверную часть. В качестве ИИ выбрал следующую тактику. Каждый ПК выбирает направление согласно весов клеток. Уже посещенной клетке давалось большое число, и она выбиралась реже для следующего хода. Каждый ход веса всех клеток уменьшались. Таким образом ПК очень редко повторял один и тот же ходы и старался исследовать карту. Каждые n ходов ИИ анализирует k шагов других игроков и если есть похожая область на карте, то, с вероятностью p, начинает преследовать игрока (если новые шаги не противоречат его потенциальному расположению) и после убивает его. Параметры регулируются сложностью игры.

Новая версия, написанная на Unity3d. Версия на pascal не сохранилась
Новая версия, написанная на Unity3d. Версия на pascal не сохранилась

И, если ИИ я в итоге осилил, то с серверной частью не справился. Книжек по программированию у меня не было, да и где искать ответы в моем 64кбитном интернете я не знал. На этом всё и закончилось. Игра работала, но за время разработки уже надоела.

Затем я начал учить Delphi. В качестве учебного проекта стал разрабатывать игру о персонаже, который просыпается дома с мертвой женой. Его сажают в тюрьму, из которой он и должен сбежать и найти виновных. Это RPG с квестами и выборами реплик, а в качестве экшен части были QTE, заимствуемые из игры фаренгейт. Графику рисовал одноклассник (хотя и не умел). Сложность в разработке опять была в ИИ. Нужно было чтобы противники честно шли за игроком, пока тот в поле видимости, патрулировали территорию и продолжали искать после потери игрока из обзора.

Третий проект это стратегия, где каждым юнит должен быть личностью. И, если, например, нужен танкист, то персонажа отправляем на переобучение. Каждый поднимает любое оружие, но эффективность была бы разной. Опыт получается, или в академии, или при использовании. Для проекта был написан редактор карт, строительство зданий, юнитов и много сил было потрачено на то, как сделать перемещение отряда юнитов. Особенно, в узких щелях, мостах и при построении траектории на большие расстояния.

Черновая версия редактора карт
Черновая версия редактора карт

Далее была еще одна интересная игра. Мы с братом и друзьями в детстве много рисовали на бумаге уровни, а потом давали друг другу их проходить. Выглядело это так. Игрок придумывал действие, а автор говорил, к чему это приведет. И я решил реализовать эту концепцию в виде квеста. 

Картинка, нарисованная в 10 лет и по совместительству скрин видеоигры
Картинка, нарисованная в 10 лет и по совместительству скрин видеоигры

Юность

Далее появилась задача поиска университета. Так как разработчиков игр тогда не готовили, а кроме создания сайтов, других отраслей я не знал, то выбор пал на направление инженера. Математику и информатику я знал тогда хорошо, так как выступал на олимпиадах, а вот с физикой были проблемы. Поэтому переехал в Питер и поступил на радиофизику. Изучал Wi-Fi, влияние 5G на коронавирус, занимался схемотехникой, программировал микроконтроллеры на Ассемблер, Verilog и тд. Не сказать, чтобы уровень программирования там был высокий, но общий кругозор сильно расширился.  Так как идти разрабатывать аппаратуру для военных подводных лодок мне не хотелось, то по специальности я почти не работал.

На втором курсе пошел на первое в жизни собеседование, причем в компанию Intel. Там был мой час позора, я даже не смог сказать, что такое преобразование Фурье. Мне сказали, что я втираю какую-то дичь, поэтому я решил, что вернусь уже после окончания вуза. Но наступил 2014 год, и intel в Питере закрылся.  

А так как мне всегда нравилось объяснять сложные темы простым языком, то когда предложили поработать в физцентре 239 лицея, который тогда только открылся, то я согласился. Я был третьим сотрудником, после основательницы и парня, который на следующий год ушел, поэтому пришлось формировать центр. В итоге, через 7 лет, там уже больше 20 человек, а число призеров по физике выросло в 10 раз. Там было много интересного, от организация региона и преподавание в сириусе в Сочи на всеросе на 200 человек, до участие в экспериментальном межнаре и премий правительства. Еще создал сайт с задачами и отслеживанием успехов детей(статья). Единственное, чего не было, это денег. И так как я не считаю себя хорошим педагогом, то через 7 лет, уже выпустив первую группу, я решил, что пора двигаться дальше.

Скриншот сайта с олимпиадными задачами по физике и меню формирования листа для печати
Скриншот сайта с олимпиадными задачами по физике и меню формирования листа для печати

Постепенно продолжал изучил базовый синтаксис c#, javasript,php, c++, Unity. Начал делать так же мобильные игры, но все забрасывал после создания основных механик. Сделал умный дом на ардуино и автоматизировал рулонную штору. Но эта часть статьи была удалена.

Выживач. Реализовано: генерация карты, инвентарь, сундуки, строительство, враги(ежи, птицы) смена для и ночи и тд, Из дерева можно добыть яблоки(здоровье и можно посадить для нового дерева) и древесина для строительства. Люблю этот проект, как и все остальные
Выживач. Реализовано: генерация карты, инвентарь, сундуки, строительство, враги(ежи, птицы) смена для и ночи и тд, Из дерева можно добыть яблоки(здоровье и можно посадить для нового дерева) и древесина для строительства. Люблю этот проект, как и все остальные
Картинки, полученные классическими свертками из фото моим редактором изображений
Картинки, полученные классическими свертками из фото моим редактором изображений

Молодость

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

После школьной зарплаты я решил, что пора уже начать обеспечивать семью(которая, правда, пока состоит только из меня одного, пишите в личку) и пойти работать программистом. Из всех вариантов наиболее интересным был путь в датасайнтисты, так как он объединял в себе все мои интересы. Недолго думая, я начал изучать python, проходить курсы по ML и параллельно взялся за проект синтеза речи. Взял готовую реализацию Tacotron 2, начал изучать код, подкручивать гиперпараметры и обучил на русском языке, а потом и на нескольких голосах знаменитостей на небольшом датасете. Как "поет" Путин можно послушать тут. С самого начала у меня была какая-то тактика изучения МО, и я ее придерживался. Всем советую параллельно с теорией иметь какой-то пет-проект. Статья про это.

На второй месяц взялся за усовершенствование под двухязычную модель с клонированием. Пока это делал наткнулся на проект RTVC и перешел на него. Добавил двухязычный g2p с собственным алфавитом и обучил на русском и английском. В итоге получил кучу звезд на гитхабе и написал первую статью на хабр. Это дало некоторую известность и приглашение на второе в жизни собеседование(и первое в Айти). Там, помимо простых вопросов по подходам, нужно было рассказать и про SOTA архитектуры с чем я и не справился.

Архитектура синтеза речи
Архитектура синтеза речи

На третий месяц наткнулся на соревнование по машинному обучению от сбербанка AI Journey, в котором надо было научить машину решать ЕГЭ по русскому языку. Задания были разные. Где-то вставить слово на место пропуска и тут помогал BERT, где-то найти ошибку в слове с чем справлялись словари, а где-то требовались обширные знания, там были смесь кода с трансформерами, pymorphy, словарями и условиями. Все способы шли в бой, так что одно из заданий я вообще решил, просто написав 250 условий. И как-то так вышло, что тестовую часть у меня была лучше остальных участников.  Еще было сочинение, но его я пытался честно сгенерировать с помощью gpt2 у которой тогда не было русской версии, поэтому пришлось обучать самому на colab. Он постоянно отключал меня, а потом и вовсе переставал выдавать видеокарту. Остальные участники собирали сочинение из шаблонов, поэтому получали лучший результат. Но это соревнование дало мне деньги и отсрочило мое устройство на работу еще на несколько месяцев.

У меня не было главной целью найти работу в IT. Я изначально стал этим заниматься так так как с детства любил программировать Если бы не это, то я бы точно всё забросил, потому, что самообучение требует колоссальной мотивации и запаса энергии, которые нужно от куда-то черпать.

Далее наступил ковид и началось соревнование по прогнозированию числа новых случаев заражения от Сбера. В качестве моделей лучше всего себя показали градиентные бустинги. Но у бустингов есть проблемы, они не могут предсказывать значения существенно больше тех, что были в трейне. Поэтому я предсказывал процент прироста, по сравнению с прошлым днем, и это хорошо работало. Так я научился работать со временными рядами и получил еще денежные призы.

Прошло уже больше полугода погружения в ML и было решено начать искать работу, поэтому я подал заявку на стажировку в одну компанию. Тестовое задание было реализовать вокодер MELGAN по тексту статьи. И, вроде, всё было хорошо, но после собеседования мне сказали, что они нашли кого-то лучше. Пока же я ждал итогового результата, решил поучаствовать в соревновании по звуку на Kaggle.

Это был мой первый опыт участия в Kaggle. Соревнование было по обнаружению птиц на аудиозаписях. Я прочитал весь форум, посмотрел текущие ноутбуки и начал писал код. Сложностей было несколько. Во-первых, сдвиг домена. Тренировочные аудио записаны на узконаправленные микрофоны, а тестовые на обычные, записывающие птиц на больших расстояниях в присутствии разных шумов. Вторая проблема была в том, что в разных 5 секундных фрагментах находилось от 0 до 5 разных птиц, что при низком пороге давало много ложных срабатываний, а при высоком просто никого не обнаруживало. Еще проблемы были в плохой разметке трейна, да и была она на уровне всего файла. В качестве решения были обычные свёрточные модели на мел спектрограммами.

Далее было еще несколько безуспешных собеседований. Но всегда чего-то не хватало, то не мог решить алгоритмическую задачу на рекурсию, то допускал глупые ошибки по обычной логистической регрессии. Поэтому было решено еще некоторое время потратить на обучение. Путь совсем не был простым.

Затем было соревнование по распознаванию рукописей Петра 1 от Сбера. Тут я использовал две модели. Первая это свертки и рекурентки с СТС лоссом. Идея такая, что после того, как мы применили свертки и сжали картинку по вертикали у нас получились по горизонтали набор векторов, но мы не знаем за какую букву отвечает каждый вектор, причем за каждую букву может отвечать и несколько векторов. Зато мы знаем, что в первом векторе будет, или первая буква, или пока еще слово не началось. Других вариантов быть не может. Во втором векторе может быть, или продолжение первой буквы, или слово еще не началось, или пропуск между буквами, или уже вторая буква. И так далее, а значит мы можем обучать такую сеть. Второй же подход это seq2seq модель, которая так же с помощью сверток получает набор векторов, а потом, с помощью трансформера, буква за буквой будет предсказывать строку с текстом. И такое уже можно обучать кросэнтропией. В итоге, у меня seq2seq модель генерирует несколько предложений, из которых я выбираю лучшее, Одним из критериев выбора, например, было похожесть на выход RNN сетки. Еще одно призовое место.

Далее было соревнование от VTB, где были даны чеки и две задачи по ним. Во первых, предсказать категорию товара(молочка, алкоголь, вода и тд), а во-вторых, найди бренд товара(кола, данон и тд). Лучше всего работали берты, регулярки, fasttext и тд. Еще одно денежное место.

Далее я угорел и начал участвовать сразу в 3-5 соревнованиях на Kaggle. Во-первых, это были соревнования по звуку, в которых у меня уже были наработки, а во вторых, соревнования на текстах, где почти всегда были лучше трансформеры. Единственное, хочу выделить соревнование по нахождению упоминания датасетов в текстах научных статей. Многие так же использовали Бертоподобные архитектуры, на что так же много сил потратил и я, но, оказалось, что регулярки работают лучше. В итоге моё решение это 20 строк, в которых в статье ищутся словосочетания, где все слова с большой буквы, а уже в них хорошие слова(study, dataset, и др) и плохие(university, и др). Ответ это словосочетания с хорошим словом, но без плохого. Это решению дало мне денежное место, так что не всегда нужно мощное железо и большие сети. Четыре месяца трудов дало мне 3 золота и несколько других медалей. Вместе с тем я устал от кагла, и решил, что пора искать работу.

Параллельно с поисками работы было еще одно соревнование – Яндекс cup. Там было три задачи,

  1. Звук. Спотер ключевых слов, решение это просто свёрточная сеть над спектрограммами. 1 место.

  2. NLP. исправление токсичных комментариев. Решение – последовательная замена перебором токсичных слов, пока растут метрики. 3 место.

  3. Картинки. обучить clip. 5 место.

К этому моменту я стал уже более-менее известным, поэтому смог, по рекомендации, устроился в крупную компанию и путь в IT можно считать законченным. А еще через полгода я вернулся на Kaggle и получил 5 золото в еще одном соревновании по обнаружению птиц и стал solo Kaggle Grandmaster.

Если Вы спросите, как мне удавалось почти во всех соревнованиях достигать высоких позиций, в чем секрет успеха, то, к сожалению, у меня нет простого ответа. Надо много работать, и надеяться, что повезет. Поэтому я не уверен в ценности статьи, ведь у всех разный начальный опыт. Я ее писал для ностальгии и по просьбе нескольких людей. Надеюсь, вам было интересно читать. Советы по Kaggle можно почитать тут.

Итого:

  • 2 года пути

  • 2 отклика

  • 9 собеседований

  • 3 оффера

  • 2.5 млн руб выигрыша на соревнованиях

  • Звание Kaggle Grandmaster

Какие курсы я просматривал и могу рекомендовать

  1. ML от ODS

  2. DL от ODS

  3. DL от Deep Learning School

  4. ML от МФТИ и Яндекса на курсере(теперь тут платно)

  5. Курсы Samsung(NLP,CV) на Stepik

  6. Другие курсы на Stepik

Старость

Послесловие. Что-то случилось, и я уволился с работы. Я все еще не умею программировать, не знаю, что такое абстрактный класс, пугаюсь, когда вижу чужой код. Единственные map reduce которые я знаю это функции в python. Молюсь каждый раз, когда делаю каммит в git. А про Jira, Jenkins, Hadoop, даже говорить не буду. Если вы думаете, что за несколько месяцев платных курсов станете хорошими специалистами, то спешу вам разочаровать. Это тяжелый путь с массой проблем, и если сам процесс вам не нравится, то дальше будет только хуже.

Комментарии (63)


  1. MacJei
    15.08.2022 12:04
    +4

    Спасибо, что поделился своим опытом и маленьким экскурсом про свой путь. Пишешь очень уютно.


    1. Vlomme Автор
      15.08.2022 12:09
      +5

      Спасибо. Решил, что если начать сразу с ML, то у людей сложится ложное впечатление о сложностях ML, как будто я с нуля сразу стал побеждать во всех соревнованиях.



  1. NikolayRussia
    15.08.2022 12:26
    +5

    Прекрасная статья, спасибо большое! Взял для себя кое-что полезное из нее! Я только не понял - последний раздел "Старость" - это прикол или ты реально уволился с работы? )


    1. Vlomme Автор
      15.08.2022 12:35
      +9

      Спасибо. Да нет, все так. Просто статья получалась слишком позитивной, и я решил добавил шепотку реальных будней, чтобы не складывалось впечатление, что мне все легко даётся


      1. NikolayRussia
        15.08.2022 13:47
        +4

        Очень странно, не оставить золотого медалиста Kaggle, победителя соревнований, учитывая твое рвение и упорство - для меня большая загадка. На месте работодателя я бы уперся, но сохранил бы специалиста такого уровня. Сейчас специалисты ML на рынке крайне востребованы, да и в мире во всем, и я помню в апреле их средняя ЗП в России превышала 300 по данным сервиса zarplan. Возможно, просто эти тряски по вакансиям, по рынку в целом из-за перестройки мира. Но профессия ML в TOP-3 профессий всего IT, и круто, что ты добился своего. Другой работодатель с руками оторвет за 400. Ты молодец, желаю успехов! Как бы там ни было, тебе удалось своими силами зайти в сферу ML, получить реальный опыт, а это очень дорогого стоит!


        1. Vlomme Автор
          15.08.2022 14:05
          +5

          Спасибо, но у вас странное представление о мире. В хороших компаниях, если человек хочет уйти, то наручниками его никто не пристегивает.


          1. cxFaust
            16.08.2022 17:41

            Я считаю, что коментатор думал, что вас уволили. А не вы сами ушли. Поэтому и недопонимание)
            А вообще конечно интересный путь. Вы могли бы немножко подучиться, побегать по собесам и давно уже грести на какой-нить галере за бешенные деньги, а вместо этого готовитесь к крутым соревнованиям и получаете медали.
            Я думаю многие кодеры давно получают дофига, но при этом нету у них даже четверти ваших скилов.
            Успехов вам, я надеюсь вы не спроста выбрали такой не простой путь)


            1. Vlomme Автор
              16.08.2022 17:45
              +1

              Спасибо. В каких-то скиллах я сильнее, а в другими меня наголову выше.
              В соревнованиях активно я уже не участвую, так что я тоже уже простой работяга


              1. cxFaust
                16.08.2022 21:21

                Удачи вам. Я думаю вы легко найдете работу.
                Главное немного потренировать базовые скиллы)


  1. noonv
    15.08.2022 12:36
    +1

    Спасибо за рассказ! Успехов!


  1. Iva_nych
    15.08.2022 12:37

    А что за стажировка такая, где нужно реализовать статью?

    Стажировки джунам рекомендуются, а тут такое.


    1. Vlomme Автор
      15.08.2022 12:40
      +2

      Чем ниже позиция, тем больше желающих. Сейчас на одну вакансию стажера откликается сотни человек, и, чтобы их отсеять, и дают тестовое. Вакансия была исследовательская, поэтому и требование выше.


  1. mikkal
    15.08.2022 12:56
    +13


    1. Dreaming
      15.08.2022 14:38

      Кто понял, тот понял)


      1. WooHoo
        17.08.2022 18:27
        -1

        А кто не понял, тот поймет?)


  1. Neom1an
    15.08.2022 15:07
    +5

    Оооо, адекватом повеяло. Приятно почитать человека, который может реально оценить свои навыки и понимает, что он хочет. И реально понимает разницу между спортом и реальными задачами


    1. Vlomme Автор
      15.08.2022 15:33
      +3

      Спасибо, но люди разные. Кто-то наоборот считает, что я прибедняюсь, или ставят дизлайки профилю. Но в этом нет ничего плохого. И уж точно не стоит делить людей на адекватов и нет


  1. DimaFromMai
    15.08.2022 16:23
    +3

    Спасибо за статью, увидел себя во многих моментах.


    1. Vlomme Автор
      15.08.2022 16:28

      А есть где почитать? Увидел статью про трейдинг, я им тоже немного занимался, даже как-то утроил деньги на форекс, после чего по неопытности все слил(


      1. DimaFromMai
        15.08.2022 16:31

        Когда только начинал, читал вообще всё подряд, но когда начинаешь торговать всё получается по другому, не так как написано. По крайней мере мне так показалось.


  1. Feeel
    15.08.2022 16:38
    +1

    В целом все понятно, автору хочу пожелать дальнейших творческих успехов!

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


    1. Vlomme Автор
      15.08.2022 16:40

      Спасибо за совет, подумаю об этом


      1. Feeel
        15.08.2022 17:52
        +1

        Придумалась тут аналогия с физическим миром - всякие резчики по дереву и прочие художники чаще всего не могут работать в цеху по деревообработке, т.к. нет творческой составляющей. А вот вырезанный по приколу полутора метровый дракон, прям вот аж с каждой чешуйкой, легко может перевалить по цене за 500к, но как бы его продать...


  1. diogen4212
    15.08.2022 17:28
    +2

    Старость

    Может, Вам не следует работать в команде в кровавом энтерпрайзе, а остаться одиночкой на фрилансе? То, что Вы описали, больше про отношения и субъективное восприятие, чем про реальную работу (ну неужели нельзя выучить основы ООП «на отвали» хотя бы по какому-нибудь metainit.com? а Гит — это вообще обезьянья работа при наличии визуального интерфейса «создать ветку, запушить, создать пулл-реквест в релиз, устранить замечания, завершить». Устранять замечания по коду — это сложнее всего, но если тимлид адекватный и нет адских дедлайнов и тупых менеджеров, то можно и это одолеть и адаптироваться за несколько месяцев. )


    1. Vlomme Автор
      15.08.2022 18:12
      +1

      Может стоит уйти во фриланс, а может и стоит потратить пару недель на основы этих технологий. Кто же знает...
      Статья это сугубо мои ощущения и ничего больше. Просто дополнение о том, что даже после моих достижений, я все равно многое не знаю, а в чем-то даже хуже стажеров
      С работы я уволился не из-за этого


      1. AirLight
        16.08.2022 19:14

        Психологи знают. Есть книжки по периодизации развития. И да, надо уметь то, что делает большинство - гит и ооп. Это второй уровень. На третьем уровне - бунтарский поиск себя, может быть индивидуальная работа. По мерез развития дальше надо присоединяться к успешной команде.


  1. Perlovich
    15.08.2022 20:42
    +7

    Все способы шли в бой, так что одно из заданий я вообще решил, просто написав 250 условий. И как-то так вышло, что тестовую часть у меня была лучше остальных участников.

    Недавно у меня была похожая ситуация, но наоборот. Делал тестовое задание для одной компании. Нужно было написать бота, который покупает лоты на аукционе. Надо было купить максимальное количество лотов за минимальные деньги. Мой бот будет играть против других 200+ ботов, которые уже написаны самой компанией.

    По результатам тестов мне сообщили, что мой тестовый бот работает лучше, чем у 99% соискателей. "А что же накодили эти оставшиеся 1% гениев?" - спросил я. "Захардкодили десятки if/else", - ответили мне.


    1. Vlomme Автор
      15.08.2022 20:48

      Ну, это зависит от задачи. Иногда не надо обучать огромные и дорогие сети, если можно все решить классическими подходами


    1. Izaron
      16.08.2022 19:28

      купить максимальное количество лотов за минимальные деньги

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


      1. Perlovich
        16.08.2022 20:39

        Нет, другая задача. Мой бот играет против другого бота. Мы оба делаем ставки. Кто поставил больше, тот забирает лот. Но поставленные деньги теряют оба бота. В начале игры у каждого бота одинаковое количество денег (задаваемое при старте игры). Количество лотов тоже известно (опять же, только в момент старта игры).


  1. vasiliy_moscow
    15.08.2022 20:51
    +2

    Спасибо за рассказ!

    Впечатляющий и вдохновляющий путь и достижения! С трудом могу себе представить, какой вовлеченности и трудозатрат это потребовало. Сам второй год хожу на курсы, пытаюсь в свободное время изучать программирование и ML, дальше fit_predict не особо продвинулся...

    Желаю успехов в поисках устраивающей работы. Уверен, у вас все получится. Ну или нет, но с меньшей вероятностью )


    1. Vlomme Автор
      15.08.2022 20:53
      +2

      Спасибо. Советую поучастовать хотя бы в одном соревновании. Почитать чужие решения и форум. Так же рекомендую начать делать пет проект.


      1. dimka11
        16.08.2022 11:08
        +1

        Лучше пет проект или мелкие соревнования. А Kaggle рассматривать в качестве источника полезных решений.

        Т.к. попасть даже топ 10 % лидербоарда достаточно тяжело и требует много усилий, времени, что сильно демотивирует по началу.


  1. Xewus
    15.08.2022 23:42
    -6

    Привет. Я Краморенко Владислав. В этом году мне исполнилось 40 лет, а также случилось много событий, может даже и позитивных. Во первых, мне окончательно надоела прошлая работа, а во вторых, найти другую, благодаря всем известно чему, шансы весьма призрачны. Это был не сложный путь, на котором были, в основном, случайные решения, которые привели меня к себе нынешнему.

    Я родился в отдалённом селе в простой семье из трёх детей и одной матери, а проведя ретроспективный анализ можно прийти к несложному выводу, что компьютер в детстве мне не светил даже путём стрелок и краж.
    Несмотря на то, что в детстве меня обзывали вундеркиндом и я любил точные науки, ещё задолго до совершеннолетия окружающая действительность привела меня к выводу, что ученье - ни разу не свет. И т.д.


    1. Vlomme Автор
      15.08.2022 23:46
      +6

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


    1. screwer
      16.08.2022 12:08
      +4

      ещё задолго до совершеннолетия окружающая действительность привела меня к выводу, что ученье - ни разу не свет. И т.д.

      Ну и зря. Я тоже родился в селе. Правда нас у матери было двое - я и сестра. Зато неработающий, пьющий отец инвалид. "Болел" компьютерами лет с 6ти. В 13 получил копеечный кассетный Спектрум, через полгода писал на ассемблере, практически без какого-либо обучения (нечего было учить и негде). В 16 лет поступил в институт в соседнем городе, на мехмат, жил в общаге, перебивался подработками. В 23 года купил первую квартиру. В 26 переехал в Санкт-Петербург. Сейчас у меня жена-домохозяйка, двое прекрасных деток, отличная работа, собственная 3ккв, очередная новая машина.


  1. HellWalk
    16.08.2022 08:58

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

    Золотоые слова.

    Автор, не было идеи сделать какой-то свой проект? Не в плане чего-то простого поиграться и забросить, а что-то серьезное (с серьезным подходом)?


    1. Vlomme Автор
      16.08.2022 09:08
      +1

      Пока на хватает мотивации. И я терпеть не могу заниматься рекламой. Возможно, когда-нибудь, найду близкого по духу человека, который возьмет на себя маркетинг. Но пока планов таких нет.


      1. HellWalk
        16.08.2022 10:10
        +1

        Пока на хватает мотивации

        Финансовый вопрос не мотивирует? Или бесплатное жилье и голод не грозит? Просто когда руки и мозги на месте, а с работой не складывается (это отдельная тема, почему казалось бы умные люди с необходимыми знаниями не могут найти работу) - то единственный вариант как-то жить - делать свои проекты (вариант в 30-40 лет жить с родителями не рассматриваю).


        1. Vlomme Автор
          16.08.2022 10:17
          +1

          У меня сейчас нет проблем с поиском работы, есть свое жилье и с голоду не умираю.
          Чтобы начать зарабатывать, или хотя бы выйти в ноль на своем деле, обычно нужно несколько лет работать в убыток


  1. m85
    16.08.2022 10:30
    +2

    Спасибо за статью. Ретроспектива согревает своей ламповостью, а пройденный путь впечатляет и мотивирует. А почему решил уволиться с последнего места работы? Стало скучно?


    1. Vlomme Автор
      16.08.2022 10:34

      Спасибо. Приятно, что писал не зря.
      Ушел по личным причинам. С компанией это никак не связанно


  1. Francyz
    16.08.2022 11:15
    +2

    Пора бы уже запомнить, что платные курсы приносят пользу только их создателям.


    1. Vlomme Автор
      16.08.2022 11:52

      Я не проходил платных курсов и никому в статье их не советую(кроме одного классического, но его раньше можно было пройти бесплатно)


      1. Francyz
        16.08.2022 11:55
        +1

        Сорян, видимо не так понял фразу:

        Если вы думаете, что за несколько месяцев платных курсов станете хорошими специалистами, то спешу вам разочаровать.


  1. VSOP_juDGe
    16.08.2022 13:11

    Спасибо, интересно. Советую заглянуть в крипту. Там есть области типа flashbots MEV, где соревнования с самыми умными людьми происходят в реале, а призами могут быть миллионы $. Например https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest


  1. marimero
    16.08.2022 19:44

    Эх старость, как это мне знакомо: немного писал про свои ощущения тут: https://habr.com/ru/post/662600/

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

    Это может быть просто депрессия, когда почти ничем не обусловленные самобвинения говорят: пора уступить дорогу молодым. На это можно сказать: хорошо подобранный антидепресант и жизнь удалась.

    Это может быть возрастное падение гормонов: когда апатия и астения просто ставят крест на работе. Как минимум можно сдать общий тестостерон и ТТГ - это совсем не дорого и показаться хорошему эндокринологу. Если обратитесь в частную клинику могут вобще выписать целый лист анализов.

    Это может быть началом когнитивного дефицита: с младших классов ваш мозг работал с запредельными нагрузками и иногда за такую предрасположенность приходиться расплачиться уже к 40 годам: с препаратами тут не очень, но вместо того, чтобы все бросать лучше продожить заниматься тем на изучение чего вы потратили больше всего усилий - так как по мере нарастания дефицита новые знания будут усваиваться со все большим трудом и фору молодым удасться дать только на текущем багаже знаний


    1. Vlomme Автор
      16.08.2022 22:06

      Как лихо вы диагнозы раздаёте по комментариям.
      Но совет чаще ходить по врачам можно только приветствовать


      1. marimero
        16.08.2022 23:19

        Прошу прощения, в статье недостаточно данных, чтобы задуматься о каком-то диагнозе, так лишь намеки на какие-то непонятные симтомы, не позволяющие даже понять к какому специалисту стоит обратиться ... возможно ситуацию поправит какая-то таблетка, возможно даже никакого заболевания нет, а просто нужна консультация хорошего психолога.

        Но просто как-то это все выглядит ненормально - такие карьерные перспективы, такое хорошее место и уйти от всего этого в никуда ... без каких-то планов на будущее - эта история выглядит незавершенной

        Но совет чаще ходить по врачам можно только приветствовать

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


        1. Vlomme Автор
          16.08.2022 23:27

          Можно быть, я не спорю. У кого в тридцать ещё нет проблем.
          В моей картине мира некрасиво искать работу пока есть действующая. Если что-то не устраивает, то увольняйся и ищи новою. Но никакого к такому подходу не призываю.
          Плюс у меня низкая продуктивность и пока я работал, накопилось куча дел, которые я и решил после увольнения
          Планов на будущее у меня много


          1. marimero
            16.08.2022 23:46

            А ну тогда пожалуй все в порядке, видимо меня просто смутило очень пессиместичное окончание статьи.

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

            И видимо аффигенная подушка безопасности, когда деньги копятся от того, что не успеваешь их тратить.

            Мда такой подход к жизни мало кто сможет себе позволить ... Впрочем везет сильнейшему


  1. duke_alba
    16.08.2022 22:25

    Автор, уважаю! Программировал много на чем, и знаю, что такое абстрактные классы и преобразование Фурье, но тем не менее, считаю Вас программистом с бОльшей буквы "П", чем я сам. Именно программистом, а не кодировщиком.


    1. Vlomme Автор
      16.08.2022 22:30

      Спасибо. Так то и я немножко знаю абстрактные классы, просто не использовал ни разу.
      А преобразование Фурье само собой на радиофизике потом изучил.


  1. tegrato
    17.08.2022 10:39
    +1

    Спасибо за интересную статью. Посмотрел несколько видео, ничего не понял - много незнакомых слов :)
    Повеселила фраза про молитвы во время коммита.


  1. Solar5503
    17.08.2022 14:41

    Благодарю за интересную статью, написанную увлекательным и живым языком! Может быть автору попробовать себя техническим писателем хотя бы в качестве подработки в начале ?


    1. Vlomme Автор
      17.08.2022 14:43

      Спасибо, но я не писатель. Я это не люблю и не умею. Проблем ни с деньгами, ни с поиском новой работы в ML у меня нет


      1. marimero
        17.08.2022 15:36

        Проблем ни с деньгами, ни с поиском новой работы в ML у меня нет

        Вот это было бы великолепным окончанием статьи, а то старость-старость :)


        1. Vlomme Автор
          17.08.2022 15:39

          Мне казалось, что глава "Итого" об этом)


          1. marimero
            17.08.2022 15:58
            +1

            Мне тоже это часто кажется - но если к статье набирается под сотню коментов, то как правило в ответы на несколько из них можно копипастить небольшую часть из самой статьи, а на пару тройку из преддыдущих.

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

            Но в любом случае это великолепная статья, хотя сколько не старайся все равно читателям что то придется пересказывать в коментариях


  1. s60
    17.08.2022 14:48

    А про Jira, Jenkins, Hadoop, даже говорить не буду.

    1) jira и не надо теперь думать…
    Одна из старейших платформ для управления задачами – Jira, особенно популярная у ИТ-отрасли. Она разработана компанией Atlassian и находится под юрисдикцией Австралии. В марте 2022 компания заявила об уходе Jira с российского рынка: пользовательские лицензии уже отозвали у госкомпаний и некоторых предприятий, а продажа решений новому бизнесу не планируется.

    2) Jenkins
    Программная система для обеспечения процесса непрерывной интеграции программного обеспечения.

    хз как в домашних условиях с ней ознакомиться… как с ней не на работе знакомятся?

    3) Hadoop
    набор утилит, библиотек и фреймворк для разработки и выполнения распределённых программ, работающих на кластерах из сотен и тысяч узлов.

    а, ну тут всё просто — сотню узлов накидаете и «размажете» по ним свои игрушки…


  1. Alexcei64
    17.08.2022 20:28
    +1

    Привет, Владислав! С первой твоей победы на Kaggle и интервью отслеживал твой прогресс и болел за тебя, особенно за пятое золото. Спасибо за статью, ждал что то такого, как раз была интересна предыстория.


    1. Vlomme Автор
      17.08.2022 20:32

      Спасибо. Очень приятно. Если бы не поддержка, я бы забросил после 4 золота.