Как я не стал специалистом по машинному обучению
Истории успеха любят все. И на хабре их достаточно много.
«Как я получил работу с зарплатой 300 000 долларов в Кремниевой долине»
«Как я получил работу в Google»
«Как я заработал 200 000 $ в 16 лет»
«Как я попал в Топ AppStore с простым приложением курса валют»
«Как я …» и еще тысяча и одна подобная история.
Это же здорово, что человек добился успеха и решил об этом рассказать! Читаешь и радуешься за него. Но большинство таких историй объединяет одно: ты не можешь повторить путь автора! Либо ты живешь не в то время, либо не в том месте, либо ты родился мальчиком, либо…
Я думаю, что истории неуспеха в этом плане часто бывают полезней. Тебе просто не нужно делать то, что сделал автор. А это, согласитесь, гораздо проще, чем пытаться повторить чей-то опыт. Просто такими историями люди обычно не хотят делиться. А я расскажу.
Я много лет проработал в системной интеграции и тех.поддержке. Несколько лет назад я даже поехал работать системным инженером в Германию, чтобы получать больше денег. Но область системной интеграции меня уже давно не вдохновляла, и я хотел сменить сферу на что-то более денежное и интересное. И в конце 2015 года наткнулся на хабре на статью «Из физиков в Data Science (Из двигателей науки в офисный планктон)», в которой Владимир описывает свой путь в Data Science. Я понял: это то, что мне нужно. Я неплохо знал SQL и мне было интересно работать с данными. Особенно меня впечатляли вот такие графики:
Даже минимальная зарплата в этой сфере была выше, чем любая моя зарплата за всю предыдущую жизнь. Я твердо решил стать инженером по машинному обучению. Последовав примеру Владимира, я записался на coursera.org на специализацию из девяти курсов: «Data Science».
Я делал по одному курсу в месяц. Я был очень прилежным. На каждом курсе я выполнял все задания, пока не получал высший результат. Параллельно с этим я брался за задания на kaggle, и у меня даже получалось!!! Понятно, что призовые места мне не светили, но в 100 несколько раз я попадал.
После пяти успешно выполненных курсов на coursera.org и еще одного «Big Data with Apache Spark» на stepik.ru я почувствовал в себе силы. Я понял, что начинаю врубаться в тему. Я понимал, в каких случаях какие методы анализа следует использовать. Я достаточно неплохо разобрался с Python и его библиотеками.
Моим следующим шагом был анализ рынка вакансий. Необходимо было выяснить, что еще нужно знать, чтобы получить работу. Какие предметные области стоит изучить, которые интересны работодателям. Параллельно с оставшимися 4 курсами я хотел взять еще что-то узкоспециализированное. То, что хочет видеть конкретный работодатель. Это повысило бы мои шансы получить работу для новичка с хорошими знаниями, но без опыта.
Я зашел на сайт по поиску работы, чтобы провести свой анализ. Но вакансий в радиусе 10 километров не было. И в радиусе 25 километров. И даже в радиусе 50 км!!! Как так? Быть не может!!! Я зашел на другой сайт, потом на третий… Потом я открыл карту с вакансиями и увидел примерно ЭТО:
Оказалось, что я проживаю в самом центре аномальной зоны отчуждения питона в Германии. Ни одной грёбаной приемелемой вакансии специалиста по машинному обучению или хотя бы разработчика на Python в радиусе 100 километров!!! Это фиаско, братан!!!
Эта картинка на 100% отражает мое состояние в тот момент. Это был удар ниже пояса, который я сам себе нанёс. И это было реально больно…
Да, можно было поехать в Мюнхен, Кёльн или Берлин — там были вакансии. Но на этом пути встало одно серьёзное препятствие.
Первоначальный наш план при переезде в Германию был такой: ехать туда, куда берут. Нам было абсолютно без разницы, в какой город Германии нас забросит. Следующий шаг — освоиться, оформить все документы и подтянуть язык. Ну, а потом рвануть в большой город, чтобы зарабатывать больше. Нашей предварительной перспективной целью был Штутгарт. Большой технологичный город на юге Германии. И не такой дорогой, как Мюнхен. Там тепло и растет виноград. Много промышленных предприятий, поэтому много вакансий с хорошей зарплатой. Высокий уровень жизни. Как раз то, что нам нужно.
Нас забросила судьба в небольшой городок в самом центре Германии с населением около 100000. Мы обжились, освоились, оформили все документы. Город оказался очень уютным, чистым, зеленым и безопасным. Дети пошли в садик и школу. Всё было близко. Кругом очень дружелюбные люди.
Но в этой сказке не оказалось не то, что вакансий специалистов по машинному обучению, тут даже Python оказался никому не нужен.
Мы с женой стали обсуждать вариант переезда в Штутгарт или Франкфурт… Я начал искать вакансии, смотреть требования работодателей, а жена принялась присматривтать квартиру, садик и школу. Примерно через неделю поисков жена мне сказала: «А знаешь, я не хочу ни во Франкфурт, ни в Штутгарт, ни в любой другой большой город. Я хочу остаться тут».
И я понял, что полностью с ней согласен. Я тоже устал от большого города. Только пока я жил в Санкт-Петербурге, я этого не понимал. Да, большой город — идеальное место, чтобы строить карьеру и зарабатывать деньги. Но не для комфортной жизни семьи с детьми. И для нашей семьи этот маленький городок оказался как раз тем, что надо. Здесь было всё то, чего нам так не хватало в Питере.
Мы решили остаться, пока наши дети не подрастут.
Ну, а как же Python и машинное обучение? И те полгода, что я уже потратил на всё это? Да никак. Вакансий рядом нет! Тратить 3–4 часа в день на дорогу до работы я больше не хотел. Я так уже работал в Питере несколько лет: ездил с Дыбенко в Красное село, когда еще не построили кольцевую. Полтора часа туда и полтора обратно. Жизнь проходит мимо, а ты смотришь на мелькающие дома из окна автомобиля или маршрутки. Да, в дороге можно читать, слушать аудиокниги и все такое. Но это быстро надоедает, и через полгода-год ты просто убиваешь это время, слушая радио, музыку и бесцельно глядя вдаль.
У меня и раньше были провалы. Но таких глупостей, как эта, я уже не делал давно. Осознание того, что работу инженера по машинному обучению мне не найти, выбило меня из колеи. Я бросил все курсы. Я вообще перестал чем-либо заниматься. По вечерам я пил пиво или вино, ел салями и играл в LoL. Так прошел месяц.
На самом деле, не столь важно, какие сложности преподносит тебе жизнь. Или даже ты преподносишь себе сам. Важно то, как ты их преодолеваешь и какие уроки из этих ситуаций извлекаешь.
«Что нас не убивает, то делает сильнее». Вы же знаете эту мудрую фразу? Так вот, я считаю, что это полная чушь! У меня есть знакомый, который на волне кризиса 2008 потерял работу директора достаточно крупного автосалона в Питере. Что он сделал? Правильно! Как настоящий мужчина, он пошел искать работу. Работу директора. А когда работу директора не нашел за полгода? Он продолжил искать работу директора, но уже в других сферах, т.к. работать менеджером по продажам автомобилей или кем-то кроме директора для него было не комильфо. В итоге он ничего не нашел и за год. А потом забил на поиск работы вообще. Резюме же висит на HH — кому надо, тот сам позвонит.
И сидел он без работы четыре года, а жена его всё это время зарабатывала деньги. Спустя год она получила повышение, и денег у них стало больше. А он всё сидел дома, пил пиво, смотрел телевизор, играл в компьютерные игры. Конечно, не только это. Он готовил, стирал, убирал, ходил по магазинам. Он превратился в отожравшегося борова. Сделало его всё это сильнее? Я так не думаю.
Мне тоже можно было и дальше пить пиво и винить работодателей, что они не открыли вакансий в моей деревне. Или винить себя в том, что я такой дурак и даже не удосужился посмотреть вакансии прежде, чем взяться за Python. Но толку в этом не было. Мне нужен был план Б…
В итоге я собрался с мыслями и занялся тем, с чего стоило начать в самом начале — с анализа спроса. Я проанализировал рынок вакансий в сфере ИТ в моем городе и пришел к выводу, что рядом со мной есть:
- 5 вакансий java разработчиков
- 2 вакансии SAP разработчиков
- 2 вакансии С# разработчиков под MS Navision
- 2 вакансии каких-то разработчиков под микроконтроллеры и железо.
Выбор оказался невелик:
- SAP имеет наибольшее распространение в Германии. Сложная структура, ABAP. Это, конечно, не 1С, но с него потом будет сложно соскочить. А если переезжать в другую страну, то перспективы найти хорошую работу резко падают.
- С# под MS Navision штука тоже специфическая.
- Микроконтроллеры отпали сами собой, т.к. там нужно было еще электронику учить.
В итоге, с точки зрения перспектив, зарплаты, распространённости и возможности удалённой работы, победила Java. На самом деле, это Java выбрала меня, а не я её.
А что было дальше — многие уже знают. Об этом я писал в другой статье: «Как стать Java разработчиком за 1,5 года».
Поэтому не повторяйте моих ошибок. Несколько дней вдумчивого анализа могут сэкономить вам уйму времени.
О том, как я изменил свою жизнь в 40 лет и переехал с женой и тремя детьми в Германию я пишу в своем телеграм-канале @LiveAndWorkInGermany. Пишу о том, как это было, что хорошо и что плохо в Германии, о планах на будущее. Коротко и по делу. Интересно? — Присоединяйтесь.