Наука - это сложно, и с ней следует постоянное обучение на протяжении всей жизни. Это одновременно и проклятие, и благословение, потому что это означает, что всегда есть чему поучиться - но вы также никогда не узнаете всего. Незнание всего может быть пугающим, особенно когда вы только начинаете работать в поле. В частности, к дисциплине Data Science может быть довольно сложно подойти просто потому, что трудно знать, с чего начать! Это связано с тем, что Data Science требует множества различных навыков, и не все специалисты по анализу данных на самом деле выполняют одну и ту же работу.
Некоторые специалисты по Data Science могут быть больше ориентированы на аналитику. С другой стороны, некоторые специалисты по данным работают исключительно над алгоритмами машинного обучения. Кроме того, специалисты по обработке данных также часто работают в тесном сотрудничестве с бизнес-решениями, которые, безусловно, могут быть непосильными, когда дело доходит до обучения. Не только изучение принципов естествознания, но и математика, бизнес, аналитика и программирование, помимо всего прочего, могут быть довольно сложными. Также может быть довольно сложно попасть в колею с этими различными навыками, не зная, над каким работать дальше. К счастью, есть несколько новых интересных навыков, которые вы всегда можете освоить, которые пригодятся вам во время вашей карьеры в области Data Science!
Один из аспектов работы в области Data Science, который, как мне кажется, очень часто упускается из виду, - это использование Unix-подобных операционных систем. Знание того, как использовать терминал, и инструменты, которые поставляются с ним, такие как Git, Wget и другие, являются очень важными навыками для эффективной работы специалиста по данным. В дополнение к жизненно важным или нормальным операциям, которые могут потребоваться специалистам по обработке данных, существуют также некоторые конкретные, но необходимые задачи, которые могут потребоваться для выполнения, которые включают многие из навыков администрирования Unix, обычно используемых в других областях.
Хотя эти навыки можно легко упустить из виду в огромном море других навыков, которые могут быть использованы для работы в области науки о данных, я думаю, что без этих навыков будет гораздо труднее выполнять многие задачи. Более того, знания Linux будут очень плавно перенесены в другие области работы, такие как развертывание. Без надлежащих знаний о том, как веб-серверы работают вместе с кодом и серверными системами, может быть довольно сложно развернуть ваши конечные точки, которые, безусловно, являются жизненно важным активом и навыком для Data Science.
Еще одна концепция, которую можно довольно легко упустить из виду, но которая очень важна для того, чтобы стать эффективным специалистом по данным, - это дистрибутивы. Хотя некоторые специалисты по данным могут включать функции распределений в качестве важной информации для науки о данных, я не согласен. Конечно, это связано с тем, что большинство из них уже легко доступны через программирование с открытым исходным кодом других людей на большинстве языков статистического программирования. При этом знание того, как тестирование и взвешивание фактически работают за кулисами, почти наверняка пригодится для работы в области науки о данных.
Некоторая абсолютно важная информация, безусловно, будет на самом деле знать, каковы сильные и слабые стороны каждого дистрибутива. Знание формы параболы в этих дистрибутивах может многому научить вас о том, как эти тесты будут работать с разными хвостами в разных дистрибутивах. Более того, знание того, как дистрибутивы хотя бы работают с соответствующими функциями CD и PD, может быть ценной информацией для эффективного тестирования и доказательства гипотез.
Хотя я не думаю, что специалистам по данным нужно знать Assembly и уметь писать на нем, я считаю, что знание того, как немного писать на Assembly, является ценным навыком для любого программиста. Я верю в это потому, что это научит вас многому о компьютерах в целом и о том, как они на самом деле работают. Конечно, в программировании понимание глубины и деталей того, как работают компьютеры, будет невероятно важным для эффективного написания кода, который выполняет поставленные вами цели. По этой причине я действительно думаю, что Assembly пригодится практически любому программисту, и код Data Science, безусловно, не исключение.
Важной частью процесса Data Science всегда будет получение данных. В зависимости от вашего домена вы можете в конечном итоге создать эти данные самостоятельно, но когда это не так, можно быть легко быть блаженным в неведении о том, откуда на самом деле берутся ваши данные. Данные, собранные с помощью исследований, автоматизированных алгоритмов и пользовательского ввода, такого как опросы, не появляются из ниоткуда.
При этом для некоторых наборов данных может быть крайне важно по-настоящему понять их происхождение. Кроме того, существует множество различных тактик, которые могут указывать на предвзятость в определенных наборах данных. Я думаю, что мы, специалисты по анализу данных, всегда должны помнить об этом. Никто не хочет, чтобы их исследования были безрезультатными из-за проблем с их наборами данных. На самом деле мне потребовалось очень много времени, чтобы проверить многие данные, которые я использовал для использования в медицинских психоделических средствах, на самом деле собеседовав и собрав больше знаний о первоисточниках. Это позволило мне узнать намного больше о данных в целом, а также дало мне возможность проверить источники от первого лица для моего исследования.
Еще одна важная тема, которую, я думаю, многие специалисты по анализу данных могут упустить из виду, - это декомпозиция. Хотя довольно популярно использовать методы декомпозиции, обычно предоставляемые внутри существующей библиотеки, я думаю, что истинное понимание декомпозиции и, возможно, даже попытка чего-то вроде разложения по сингулярным значениям с помощью матрицы вручную почти наверняка сделает использование этих методов намного проще, чем они могли бы быть иначе.
Декомпозиция - важная часть машинной интерпретации данных. С этим приходит наша интерпретация разложения, которая, на мой взгляд, не менее важна. Кроме того, часто существуют простые методы, которые мы перерабатываем снова и снова, такие как сингулярная декомпозиция, которые имеют свои сильные стороны, но я думаю, что расширение этого набора навыков и инструментов в вашем арсенале декомпозиции также является отличной идеей для того, чтобы сделать себя гораздо лучшим специалистом по данным!
В мире программирования мы избалованы множеством языков программирования с несколькими парадигмами, которые позволяют использовать несколько разных стилей программирования. Одна из этих парадигм программирования, парадигма функционального программирования, была переплетена с научными вычислениями с момента ее появления во втором в истории языке программирования высокого уровня! Имея это в виду, я думаю, что тем, кто еще не пробовал функциональную сторону вещей, непременно следует проверить язык, который так или иначе использует парадигму функционального программирования.
Я думаю, что декларативная речь - это естественный способ заниматься наукой, но, независимо от использования функционального программирования в вычислениях, я считаю, что языки являются ценным опытом обучения. На самом деле я следую многим советам других программистов, и эта идея исходит от автора C ++, который сказал, что вы должны попытаться изучить язык программирования из каждой парадигмы, потому, что это даст вам базовые знания об основах всего программирования, вместо того, чтобы сузить ваш обзор до нескольких разных стилей программирования. Это сделает вас более универсальным и, в свою очередь, более полезным программистом.
Предложение Assembly может быть довольно сложным для многих программистов, но я думаю, что изучение языка программирования более низкого уровня, такого как C, который является более итеративным и потребует гораздо большего реального управления компьютером, также может помочь вам лучше понять внутреннюю работу компьютеров и электронную обработку.
В C, например, вам все еще нужно делать такие вещи, как выделение памяти и создание указателей. Хотя мы не привыкли к этому в нашем мире высокоуровневого и декларативного программирования Python и R, я думаю, что изучение языка, который находится на несколько шагов ниже, может быть абсолютно жизненно важным для формирования твердого понимания того, как компьютер выполняет вычисления и как результаты, которые мы ищем, на самом деле достигаются за кулисами.
Мы немного коснулись того, почему я думаю, что знание того, как использовать терминал и Bash соответственно, пригодится в работе с Data Science. Однако это также относится и к навыкам dev-ops, о которых говорилось ранее. Я думаю, что знание того, как развертывать свои собственные модели и создавать собственные серверы, безусловно, будет иметь большую ценность для программиста в целом. Конечно, это еще более верно для специалиста по данным, поскольку часто наши модели развертываются на конечных точках и предназначены для запроса. Изучение того, как хотя бы использовать веб-сервер, такой как Nginx или Apache, безусловно, пригодится во многих различных приложениях Data Science и развертывания серверов.
Еще одна вещь, которую, я думаю, упускает из виду большинство специалистов по данным, - это то, насколько ценно изучение других языков на самом деле для ваших знаний о вычислениях и написании кода. Как обсуждалось ранее с языками более низкого уровня и языками функционального программирования, изучение большего количества языков программирования всегда поможет вам стать лучшим программистом на любом языке, на котором вы действительно хотите работать.
Если у вас не было возможности работать с фантастическими платформами параллельных вычислений, такими как CUDA от Nvidia, я думаю, вам непременно стоит купить себе соответствующую видеокарту и попытаться работать с ней на языке, который вам больше нравится! Индустрия идет по этому пути, и почти в каждом заявлении о приеме на работу в Data Science он указан как совершенно необходимый навык. Имея это в виду, я, конечно, думаю, что стоит потратить свое время на то, чтобы выглядеть более ценным в качестве актива в качестве специалиста по данным.
Ладно, значит, вы отлично владеете языком программирования. Вы умеете программировать что угодно - что дальше? Конечно, изучайте больше пакетов! Часто именно знание зависимостей и возможностей экосистемы языка программирования выделит вас из толпы приложений для вашей работы. Существует множество стандартных инструментов, которые используются многими программистами, но иногда использование другого инструмента может означать разницу между завершением проекта или остановкой из-за проблемы.
На самом деле в стандартной библиотеке Python есть много пакетов, которые, на мой взгляд, до сих пор остаются незамеченными.
В мире научных вычислений на самом деле довольно распространено резервирование тестирования для нескольких выбранных дистрибутивов, чаще всего для T-дистрибутива. К счастью для обучения, существует множество дистрибутивов и тестов, каждый из которых имеет свои сильные и слабые стороны. При этом я думаю, что как ученый, безусловно, может быть полезно подобрать некоторые новые тесты и стратегии тестирования, поскольку они часто могут пригодиться при попытках дальнейшего доказательства гипотезы.
Давным-давно я написал статью о том, почему я считаю Crontab совершенно потрясающим инструментом для автоматизации. Конечно, это до сих пор практически не изменилось, и я думаю, что Crontab пригодится во многих аспектах Data Science, таких как автоматизация скриптов и разработка. Вдобавок ко всему, я думаю, что он невероятно прост в использовании, поэтому, безусловно, стоит проверить только этот фактор.
Еще один отличный навык, который нужно иметь на стороне разработчиков / системного администратора навыков Data Science, - это навыки SSH / SCP. SSH - это инструмент, который очень часто используется для туннелирования команд между удаленными и автономными системами. Он пригодится для управления серверами и фактического развертывания ваших конечных точек. SCP - это еще один мост SSH, который позволяет вам безопасно копировать файлы из одного места в другое, поэтому я определенно рекомендую использовать оба в тандеме, чтобы ваши проекты помещались в облако и работали именно так, как вы хотите!
Еще кое-что, что во многих случаях может оказаться запоздалым, - это GIT. GIT - это инструмент, используемый для управления репозиториями кода, которые пишем мы, программисты. При этом сегодня это абсолютно необходимый инструмент для любого программиста. Я думаю, что в какой-то момент всем программистам придется взаимодействовать с Git. Знание того, как эффективно использовать программное обеспечение с вашего терминала для управления вашими репозиториями, значительно упростит управление программным обеспечением, которое вы фактически публикуете. При этом я думаю, что если вы не знаете каждую команду в Git, это отличная вещь, которую можно освежить практически в любое время.
Еще одна важная концепция, которую, как мне кажется, должны усвоить многие специалисты по анализу данных, - это концепция этики данных. В наше время существует множество очень актуальных вопросов этики данных. У большинства из нас есть данные о том, что мы храним их удаленно в случайных местах в Интернете, что часто может быть нарушением нашей личной конфиденциальности.
Предполагается, что к этой научной работе прилагается некая клятва. Тем не менее, это не очень хорошо соблюдается, поэтому я думаю, что исследование того, что правильно и что неправильно в силе ИИ и этике сбора данных, - это то, чему многим из нас нужно извлечь урок. Данные стали чем-то вроде валюты, данные продаются, данные обмениваются, и данные оцениваются. Имея это в виду, точно так же, как мы не стали бы красть чужую валюту, нам, вероятно, не следует красть их данные. Внутри этического мира существует так много разных моментов, что, я думаю, они вызывают серьезную озабоченность, и работа на местах, безусловно, означает, что вы должны хотя бы в некоторой степени участвовать в разговоре. Тем не менее, я думаю, что исследование этих проблем, безусловно, ценно для специалистов по данным, которые часто работают с данными людей и могут довольно легко нарушить эти этические проблемы.
Последнее, что я хотел бы сказать, касается воспроизводимости исследования. Для того, чтобы исследования и гипотезы были действительными, абсолютно необходимо, чтобы результаты исследования были воспроизводимы. Если ваше исследование невозможно воспроизвести, оно также может очень легко помешать экспертной оценке и публикации. При этом я думаю, что начать с некоторых простых тактик, чтобы сделать ваше исследование воспроизводимым кем угодно, будет очень важной концепцией для того, чтобы действительно прийти к ценным выводам.
Специалист по анализу данных должен многому научиться. При этом и отрицательным, и положительным моментом в этой области является то, что мир информации будет постоянно расширяться, и всегда есть что-то новое, чему можно научиться. Иногда бывает легко застрять в колее и не знать, чему учиться дальше. Однако, используя эти предложения, в идеале станет намного проще найти несколько новых вещей, которым нужно научиться! Большое спасибо за то, что прочитали мою статью, и я надеюсь, что она была поучительной! Продолжайте учиться!