Мацей:
Позволь мне сначала рассказать историю из моей жизни о том, как выглядела моя карьера и ML на горизонте. За 8 лет работы в компаниях я лишь однажды столкнулся с ML в бизнес-приложении, и то только потому, что мы сами решили попробовать создать такой прототип в рамках хакатона, что и сделали.
По завершении хакатона компания заявила, что это своего рода успех, что это в некотором роде может произвести революцию в том, что мы делаем, и после этого заявления об успехе ничего не произошло. Обычно компании много говорили о ML, но почему-то этого ML не было ни там, где я работал, ни на горизонте.
Может быть, это совпадение, может быть, нет, но шансы на то, что спустя более чем месяц после окончания курса мне все же удастся встретиться с ML на производстве, реальны, и все потому, что в новом проекте, к которому я скоро присоединюсь, он есть. Конечно, из того, что я знаю на данный момент, это нечто очень простое, поскольку использует модели линейной регрессии, но это уже дает перспективу уверенного старта, который я искал.
Я, например, в настоящее время не собираюсь менять работу, я не особенно зациклен на темах ML и продолжаю относиться к своему приключению с машинным обучением как к эксперименту, хотя теперь это эксперимент немного другой категории, потому что я думаю, что я готов к этому и имею некоторый опыт.
С другой стороны, если спрашиваешь меня о рынке труда и о том, включает ли Fullstack уже или будет включать ML или нет - это очень хороший вопрос, потому что, глядя на объявления о работе, для работодателей Fullstack - это человек, который будет заниматься разработкой как frontend, так и backend, и, честно говоря, я не видел объявлений о работе, где упоминалось бы что-то о ML. Возможно, я не искал таких объявлений, но они не особенно привлекли мое внимание. Если посмотреть на мое окружение, то получается, что либо кто-то занимается ML и темами data scientist или data engineering и не слишком много программирует, либо программирует, а ML занимается кто-то другой.
Здесь мы также подходим к теме специализации. Возможно, другой пример. Часть того, чтобы быть Fullstack, - это заниматься фронтендом визуальной части, и сейчас некоторые люди в своих командах имеют выделенного UX-дизайнера (человека, который готовит дизайн пользовательского интерфейса), в то время как есть проекты, где такого выделенного человека нет. Затем такой программист самостоятельно готовит дизайн интерфейса, сам его реализует, внедряет в производство, а потом, в идеале, должен еще и проверить, как пользователи реагируют на этот интерфейс - нравится ли он им или здесь нужно что-то улучшить.
Мне кажется, что этот пример можно легко перенести и на вопросы ML в таких проектах. По крайней мере, когда дело касается вопросов науки о данных, feature engineering. Я, например, после курса не особо люблю feature engineering - она меня не так уж и позабавила.
Я бы лично предпочел иметь в проекте человека, который будет отвечать только за эту область. Тот, кто будет знать область, понимать ее, и для него все пройдет лучше, чем для меня. С другой стороны, также после курса DataWorkshop я очень хорошо понимаю, что знания области недостаточно для качественного feature engineering. Вам приходится думать о том, что может понадобиться модели, создавать гипотезы и быстро проверять их, не говоря уже о том, что могут быть данные, которые ничего не значат для человека, и вы должны найти выход из этой ситуации.
В целом, мне кажется, что нельзя быть специалистом во всем. Темпы развития этой отрасли просто бешеные. Важно не отставать от этого темпа, по крайней мере, в тех областях, которые имеют отношение ко мне и моей карьере.
Еще одно, что я скажу вам, Владимир. Я думаю, это важный вопрос с точки зрения разработчиков. Остается вопрос разделения по технологиям. Основной язык, на котором я специализируюсь, - Java.
Последний раз я использовал ML в Java в колледже. В настоящее время, по крайней мере, с точки зрения Java-разработчиков, ML равен в основном Python, где-то, возможно, позже R. В моем окружении бытует мнение, что если вам нравится Java, то вряд ли вам понравится Python, а это может означать, что вы не имеете дело с ML на ежедневной основе. Ведь почему вы должны расстраиваться, если вас раздражает язык? Возможно, это изменится, благодаря распространению машинного обучения в компаниях и изменению требований на рынке труда, т.е. в объявлениях будет требоваться, что вы должны знать это, потому что это стандарт. Или, может быть, через развитие технологий. Возможно, эта монополия Python на ML закончится или мы начнем использовать какие-то другие технологии.
Я лично надеюсь быстро проверить эти гипотезы в новом проекте, потому что, что интересно, это проект, где у нас есть сочетание и Java, и Python. Существуют микросервисы на базе Python, которые занимаются этой частью машинного обучения, но есть и Java.