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

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

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

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

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

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

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