Достаточно ли хорош ваш код для, чтобы называть себя data scientist’ом?

Соответствует ли качество вашего кода званию data scientist? Далее вы узнаете, как получить ответ на этот вопрос. Кроме того, мы рассмотрим ключевые рекомендации, следуя которым, вы сможете смело ответить «да!».

В какой момент карьеры вы можете начать называть себя data scientist’ом? Когда напишите это в LinkedIn или получите первую зарплату? И что же все-таки такое data science?

Основной докладчик конференции по data science ODSC Europe Гаэль Вароко (Gael Varoquaux) дал одно из самых лучших и самых лаконичных определений понятию data science:

Data Science = Статистика + Код

Шутя, он также процитировал другое остроумное определение: «Data scientist – это статистик, живущий в Сан-Франциско». Оставив юмор, можно сказать, что Гаэль попал в самую точку. Впрочем, по поводу определения data science часто возникают дебаты, в которых кроме прочего цитируются слова Нейта Сильвера (Nate Silver): «Я думаю, что data scientist – это более сексуальный термин, обозначающий статистика». Не вдаваясь в подобные дискуссии, мы посвятим наше обсуждение второму слагаемому из правой части уравнения, то есть коду.

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

Далее мы рассмотрим несколько простых инструментов и рекомендаций, которые сделают ваш код по-настоящему профессиональным.

Напишите несколько тестовых примеров

Большую часть своего времени data scientist’ы тратят на очистку данных, и это им не очень-то по душе. Этот процесс занимает слишком много времени, как для самой сексуальной профессии 21-го века. Согласно исследованию компании Crowdflower, 57% data scientist’ов считают очистку и подготовку данных наименее приятной частью их работы. В процессе обработки данные претерпевают изменения. Следовательно, ваш код также должен неизбежно изменяться, иногда он может просто не работать или давать несоответствующие результаты. Что же это, проблема кода или данных? Тестовые примеры сослужат вам хорошую службу в поисках ответа на этот вопрос.

Используйте инструменты для оценки покрытия кода

Когда создан какой-либо модуль, а также интеграционные или регрессионные тесты, приходит время применить какой-либо фреймворк для оценки покрытия кода (code coverage), например coverage.py для Python или covr для R. Коэффициент покрытия кода – это величина, показывающая, какой процент кода был охвачен в процессе тестирования. Мой совет: забудьте о 100% покрытии, вполне достаточно и намного меньшего значения, если тесты охватывают самые критичные и сложные фрагменты кода.

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

Следите за качеством кода

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

Применяйте систему управления версиями для данных

Если вас нужно убеждать в необходимости использовать систему управления версиями (version control system) – вы безнадежны. Для профессионала этот инструмент не просто полезен, он является обязательным. Однако, несмотря на то, что использование таких систем – это общепринятая практика, многие data scientist’ы не применяют их в отношении своих данных.

Рассмотрим простой пример. У вас есть CSV-файл, и вы сохранили (commit) его в репозитории git. Затем файл был изменен, и вы сохранили новую версию. Благодаря git, вы можете легко увидеть все изменения. Кроме того, реляционные и NoSQL базы данных предоставляют широкие (хотя, вероятно, не слишком очевидные) возможности для управления версиями данных.

Изучите различные шаблоны проектирования

Шаблоны проектирования программного обеспечения (software design pattern) применяются повсеместно. Использование стандартных библиотек языка имеет множество преимуществ. В частности они избавляют программиста от необходимости писать код для решения стандартных задач. Шаблоны проектирования для data science аналогичны по своему назначению, то есть предоставляют варианты возможных решений для распространенных задач. Безусловно, чтобы использовать шаблон в данном конкретном случае, могут потребоваться определенные модификации. На текущий момент в области data science шаблоны проектирования не находят широкого применения, но я надеюсь, что в течение следующих нескольких лет они станут более популярны, и их использование будет стандартной практикой.

Давайте рассмотрим еще несколько достаточно очевидных советов, призванных помочь вам стать профессионалом:

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

  • Подберите себе хороший редактор кода. Вы еще не используете Jupyter Notebook? Но почему?

  • Не бойтесь выполнять рефакторинг своего кода. Думаете, что пишете красивый код с первого раза? Весьма сомнительно.

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

  • Читайте исходный код открытого программного обеспечения. Все мы любим data science библиотеки с открытым исходным кодом, которые так помогают нам в повседневной работе. Однако вы когда-нибудь читали их исходный код? Такое чтение дается нелегко, но стоит начать, и вы почувствуете, что это дает вам множество новых идей и знаний.

В карьере data scientist’а большую роль играют контакты с коллегами, которые могут порекомендовать предпочитаемые ими языки программирования, инструменты и технологии. Конференции по data science, например, ODSC West, являются отличной возможностью наладить такие контакты. Подобные мероприятия позволят вам познакомиться с хорошими специалистами и быть в курсе наиболее актуальных тенденций в области программирования для data science. Кроме того, вы услышите доклады лучших программистов, создавших ваши любимые библиотеки.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован.

закрыть

Поделиться

Отправить на почту
закрыть

Вход

закрыть

Регистрация

+ =