- Стоит ли смотреть в сторону Data science?
- Почему в data science сложно попасть
- Это очень много учебы и практики
- Это дорого
- Аналитика — сестра Data science
- Маркетинговая/веб аналитика
- Продуктовая аналитика
- Data engineer — брат для Data scientist
- Ищете работу, которая вам подходит
- Самообучение в Data science, с нуля до Senior за два года
- Цель — учиться эффективнее и бесплатно
- Сначала надо понять, что такое Data science/машинное обучение и подойдет ли оно вам
- Что учить
- Принципы эффективного обучения
- Программирование: что и как учить?
- Следующие статьи по данной теме
- Для желающих могу выступить в роли ментора
Стоит ли смотреть в сторону Data science?
Очень много людей с самым разным бэкграундом, и не всегда даже техническим, в последнее время пытаются перейти в data science. И такой ажиотажный интерес — проблема для всех, кто рассматривает переквалификацию в эту сферу. Потому что рынок труда может оказаться наводнён соискателям без опыта.
С точки зрения потенциального работодателя: вы скорее возьмёте выпускника технического вуза, или человека за 40, без профильного опыта, решившего изменить свою жизнь? Ведь вузы тоже ведут активную подготовку профильных специалистов (пусть и не всегда высокого уровня). На рынке явный недостаток специалистов с профильным опытом. Но среди людей с непрофильным опытом — вероятно, больше шансов найти работу у выпускников с профильным образованием.
Написать этот пост меня натолкнуло то, что полгода назад я начал писать цикл статей о самообучении и переквалификации в data sceince. В итоге, за 5 месяцев мне написало больше сотни людей с разными вопросами по такой переквалификации. И, вероятно, многие недооценивают объем знаний, который необходимо получить для этого. В этом, наверное, виноваты и заголовки моих постов «с нуля до senior data scientist за 2 года». Как мне подсказали в комментариях к тому посту — мой начальный уровень был отнюдь не нулевой (был топовым разработчиком 1С).
Почему в data science сложно попасть
Это очень много учебы и практики
Идеальный data scientist — специалист максимально высокой квалификации, знающий, одновременно:
всё что должны знать «простые аналитики» (SQL+визуализация данных)
хороший Python программист
с неплохим владением английским (подавляющее большинство инструментов имеют документацию только на английском языке; многие книги и курсы не переведены, или переводятся с большой задержкой)
с отличным знанием хотя бы основ теории вероятностей (в идеале — значительно глубже + линал, мат.анализ)
хорошие коммуникативные навыки и понимание бизнеса (невозможно эффективно обрабатывать данные из предметной области, если вы её не понимаете)
По большому счету, это несколько лет профильного (само)образования + опыт работы.
Это дорого
Даже с большим опытом работы в ИТ я потратил 8 месяцев, не работая и проедая все свои накопления, только на учебу, оставаясь без работы. Мой уровень ЗП в первый год после того как я нашёл работу, был ниже, чем до этого. Только спустя 2 года я вышел на тот же уровень дохода. И это всё было достаточно страшновато, при том что у меня были своя квартира, большая финансовая подушка, и отсутствие финансово зависимых родственников. Большая часть людей, желающих поменять свою жизнь, не могут себе позволить такую траекторию переобучения, по её финансовым ограничениям.
Аналитика — сестра Data science
Когда говорят о дата сайенс обычно имеют в виду высшую квалификацию человека, способного работать аналитиком данных. Но квалификации промежуточных уровней тоже ценны.
Отличие аналитика: нет нужды хорошо знать статистику, нет нужны заниматься машинным обучением.
Статистика нужна тогда, когда ценность небольшого улучшения так огромна, что важно научиться различать небольшие отличия в эффективности, разделяя реальные различия, от случайных колебания.
Машинное обучение нужно тогда, когда какой-то процесс принятия решения, основанных на данных, нужно автоматизировать. По сути, это значит подменить работу аналитика, в решении отдельной типовой задачи. Обычно это требует намного больше времени, чем одноразовый анализ. За то же время аналитик может решить множество разных задач. Но когда какой-то тип анализа нужно проводить постоянно или для тысяч объектов (клиентов, товаров) — целесообразно это делать автоматически.
То есть аналитик нужен тогда, когда не нужно различать колебания эффективности, измеряемые в процентах, и когда не нужно анализ делать полностью автоматическим. Требуется меньше точность/автоматизированность. Ценны: скорость проведения анализа, его правильность, умение понятно и убедительно объяснить свои результаты. При этом, ценность аналитика может быть очень высока, т.к. подобные разовые анализы данных могут использоваться для принятия различных стратегических решений.
Суть решаемых задач аналитка: разобраться в данных, понять их и найти интересные закономерности, представить результаты в удобном и понятном для коллег виде (обычно, графики и презентации).
Ключевой набор навыков для подобной работы: это прирожденные «аналитические способности» + знания базовых инструментов (SQL+Excel) + инструменты визуализации данных (Tableau, PowerBI).
Можно с этим набором знаний + знания специфичные для определенных областей, уже найти большое число вакансий, с хорошими зарплатами и интересными задачами.
Знаний SQL + инструмента визуализации достаточно чтобы работать на позиции специалиста по отчетности, создающего необходимые отчеты и графики, для принятия каждодневных решений. Такая работа, обычно, требует большей усидчивости и чуть меньше креативности.
На позиции «аналитика» нужно будет создавать точно такие же отчеты. Но, чаще, задачей аналитика будет самому в чём-то разобраться и самому решить какими графиками эту информацию представить. Эта работа более творческая, требующая большей самоотдачи. По уровню зарплат оба типа позиций сопоставими. Но с позиций аналитика талантливные специалисты чаще могут вырасти в менеджеров и отвественных за какие-то большие объемы задач. Надо помнить, что данное деление не всегда видно из названия позиций, т.к. «аналатиком» могут назвать и человека, не занимающегося самостоятельным анализом данных, и толького готовящим их для других людей (в виде отчетов и графиков).
Кстати, позиции специалистов, занимающихся статистическим анализом, тоже называются «аналитик», и есть еще совсем другой тип позиций, которые называют «бизнес-аналитики». Поэтому, надо по описанию вакансии «аналитика» разбираться что под ней имеется в виду.
Рекомендуемый набор знаний для аналитика:
Когортный анализ (принципы)
Понимать парадокс симпсона, чтобы не делать ошибок, к которым он приводит
Нужно знать основы теории вероятностей:
вероятности зависимых и независимых событий, условные вероятности
разные статистики: среднее, медиана, мода, стандартное отклонение.
знать что такое АВ-тесты: понимать принципы, калькуляторы есть онлайн
знать основы regexp. Например, веб-аналитике он используется в инструментах типа google analytics
Аналитики нужны везде. Ниже типы аналитиков, востребованные в изначально «цифровых» бизнесах (связанных с интернет продуктами и услугами)
Маркетинговая/веб аналитика
Анализ и визуализация даных по продажам — огромная сфера. Большая часть подобных вакансий, с интересными и более творческими задачами — в онлайн компаниях.
Знания специфические для веб-маркетинга (помимо обще-аналитических):
Понимание принципов работы контекстной рекламы (основные метрики и схемы оплаты).
Знание как работают UTM метки.
Понимание основных принципов юнит-экономики.
Желательно знание основ HTML
Популярные инструменты: Google Analytics, Яндекс.Метрика (эти инструменты можно учить уже выйдя на первую работу)
Продуктовая аналитика
Это близко к маркетинговой аналитике. Пример задачи: понять паттерны по которым пользователи взаимодействуют с каким-то он-лайн продуктом (например, приложением интернет-банка).
По сути, тут могут быть достаточны только базовые знания, стандратные для любых аналитиков.
Data engineer — брат для Data scientist
Огромная часть задач в анализе данных, особенно в более продвинутом (статистический анализ, машинное обучение) требует хорошо организованных данных.
Задачи по организации данных занимают более половины всех усилий по работе с данными. Часть данных задач традиционная и решается специалистами по базам данных. Другая часть требует подготовки данных для обеспечения большего удобства и скорости анализа данных. Данными задачами занимаются дата инжененеры. Т.к. часто данная часть задач не решается ими полностью — квалифицированный дата сайентист должен уметь решать подобные задачи.
Но, потенциально, дата инженер, это не урезанный дата сайентист. К инженерам предъявляется больше требований по полной автоматизации процесса, по обеспечению высокого качества данных (без пропадания их кусков), высокой скорости их подготовки и доступности, настройке систем, способных обрабатывать данные о миллионах операций, товаров и клиентов за считанные секунды/минуты.
По сути, это позиция программиста, с акцентом на технологии и инструменты, позволяющие разрабывать системы работы с данными. И вместо создания интерфейса (как у фронтенд разработчиков, или разработчиков для андройд/ iOS), или какой-то бизнес-логики (бэкенд) — их продукт это система, автоматизировано готовящая данные для анализа. И поддержание это системы для работы коллег, занимающихся анализом данных.
Набор знаний в этой сфере очень сильно варьируется. Наверное, наиболее популярные навыки выглядят так:
Python (Java, Kotlin)
Эта сфера отлично подходит для людей, которым интересно писать системы обработки больших данных (big data) и которым менее интересно придумывать как повысить эффективность бизнеса, стараясь убедить в этом каких-то коллег.
Ищете работу, которая вам подходит
Цель этого поста — показать что есть море вариантов интересной работы.
Многим, желающим попасть в дата сайенс — будет интересно работать на позициях аналитиков и дата инженеров. Найти такую работу может быть проще, и финансовое вознаграждение, в итоге, может быть на том же или очень близком уровне.
Идти в дата сайенс без опыта работы в ИТ, примерно как захотеть стать нейрохирургом, без опыта работы в медицине. Разумнее получить хотя бы часть более простых смежных навыков, начать работать в этой сфере, и далее расти в ней «естествнным путём», получая релевантный опыт не только из теории, но и из регулярной практики работы.
Источник
Самообучение в Data science, с нуля до Senior за два года
Хочу поделиться методами освоения Data science с нуля человеком из другой ИТ специальности. Цель: дать понять, подходит ли Вам эта специальность в принципе, и рассказать про эффективные подходы к самообучению, которые мне помогли (отдельно планирую потом детальные статьи по отдельным темам).
Отличные материалы уже существуют по большинству конкретных тем, я сам по ним учился.
Думаю, многим будут полезны «мета» материалы о том, как выбирать курсы и статьи, по которым учиться. Например, я пересмотрел десятки статей и книг, пробовал много разных он-лайн курсов, но полезной оказалась лишь малая часть всего доступного. Надеюсь, что смогу серьезно сэкономить вам время и помочь достигнуть большего, показав более эффективный путь самообучения.
И важно сказать сразу: я верю, что любой человек с аналитическими способностями и структурным мышлением может стать специалистом по машинному обучению/data science. Еще 4 года назад я сомневался, потеряв веру в свои математические способности из-за преподавателей университета. Теперь верю: основы машинного обучения и минимально необходимую математику сможет выучить любой сильно замотивированный человек.
Когда я понял, что скоро мне стукнет 30 лет, решил уйти в другую сферу и переехать из РФ. В своей сфере (1С) я был карьерно успешен, но стало ясно, что дальнейший рост очень затруднителен и требует выполнять работу, которая мне неинтересна и почти противна.
Через полгода перебора вариантов решил, что Data science мне интереснее всего.
Ещё через год имел достаточную квалификацию и прошёл собеседование на работу в Чехии (оговорка: у меня еще до этого было неплохое знание английского).
Ещё через год стал Senior Data scientist в Vodafone (мой LinkedIn).
Цель — учиться эффективнее и бесплатно
Мне помогло то, что до этого я сформировал привычки к самообразованию, а экономность не позволила мне пойти по самому простому пути: найти онлайн курс с именитыми преподами, заплатить им много денег и довериться, что они всему научат лучше всего. В итоге я перебирал много бесплатно доступных книг и курсов (книги часто были найдены на b-ok.org). Из всех курсов и книг отбирал самые лучшие, забрасывая то, что казалось слишком теоретизированными или плохо структурированным.
На основе этих десятков книг и курсов я и сформировал то мнение, которым хочу поделить. Вероятно, существует еще более эффективный и быстрый способ научится этому всему. То, как учился я, было всего-лишь быстрее большинства платных программ, которые я видел, и заодно бесплатным (на многие лучшие англоязычные курсы всегда можно записаться бесплатно; покупал я только книги русских авторов и пару книг, которые иначе не смог найти).
Сначала надо понять, что такое Data science/машинное обучение и подойдет ли оно вам
Потому что если это просто модное слово и вы хотите получать много денег или работать в Гугл, то легче заработать на позиции маркетолога или веб-аналитика, и это тоже достаточно аналитичная работа.
Возможно, вы технарь-интроверт, желающий делать что-то своими руками и не желающий много общаться с другими людьми или вникать в бизнес (потому что DS очень прикладная штука, требующая погруженная в предметную область). Тогда есть варианты: или «просто программирование» вам будет интереснее (Не хочется разрабатывать сайты? — Нужны разработчики бэкенд приложений и дата-инженеры, в больших количествах), или если всё-таки хочется заниматься машинным обучением, то изучать все методы data science и знать их лучше всех, чтобы пойти сразу в более крупную компанию, где достаточно чисто-технических задач.
Если вы человек творческий, возможно, разработка интерфейсов (фронтенд, мобильные приложения) вам подойдёт больше.
Если вы от природы аналитик и любите разбираться в данных, но программирование вас не заинтересует, а на изучение всей математики вам не хватает времени, стоит выбрать тот же самый учебный путь! Просто сделать акцент на мнее математических задачах, и не лезть в программироване сложных систем. Аналитики, знающие основы data science, тоже нужны в компаниях.
Важно, чтобы работа зажигала. Без искреннего интереса «грызть» Data science будет тяжело, потому что надо разобраться в куче нюансов, особенно если у вас нет за плечами хороших знаний в статистике, линейной алгебре и мат.анализе.
Как понять, будет ли вам интересно заниматься именно data science?
Лучший способ — прочитать что-то лёгкое, но дающее представление о широтие используемых методов.
Мне кажется, что идеально эту роль выполняет книга Datasmart (выше писал сайт, на котором я нашёл её бесплатно). На русский она тоже переведена: «Много цифр. Анализ больших данных при помощи Excel, Джон Форман». Хотя, если вы хотите работать в data science, знание английского необходимо (технический английский выучить намного легче разговорного, и это будет очень полезно для любой работы в ИТ).
Эта книга показывет многие из технических методов Data science на уровне интуиции и даёт сразу достаточно детальное представление о решаемых задачах и где в бизнесе можно применить данные модели.
Если эта книга не вызовет интерес разобраться во всех указанных алгоритмах детальнее, вероятно, работа в data science не для вас.
Если книга интересн вызовет, но вам также хочется больше программировать, скорее всего, вам интересно будет стать machine learning engineer. Разница между data scientist и machine learning engineer в том, что первый должен общаться с людьми и понимать, какую задачу имеет смысл решать, а второй должен уметь состыковать программы с «искусственным интеллектом» с другими ИТ системами, мобильными телефонами или требованиями обрабатывать огромные объемы данных.
Кстати, подобная книга для тех, кто хочет понять стоит ли ему заниматься визуализацией данных (PowerBI, Tableau и т.п.) — «Storytelling with data». Если эта книга тоже вдохновила, вместе с предыдущей, вероятно вы data scientist, способный выполнять и роль аналитика. Если же заниматься объяснением данных вам неинтересно, вам стоит нацелеваться на позицию machine learning engineer или подумать, не легче ли быть «обычным» программистом.
Что учить
Если вы решили, что готовы «грызть гранит науки», то в образовании специалиста data science есть два кита:
Непосредственные методы Data science, которые стоят на трёх математических черепахах: теории вероятностей и статистике, линейной алгебре и основах мат.анализа (только основах, там требуется минимум сверх школьного курса «алегбра и начало анализа»). Кстати, вся эта математика далеко не так сложна. Проблема в том, что её плохо и неинтересно объясняют во многих вузах. Позже поделюсь советами, как её можно легче освоить.
Программирование на Python (+SQL и подобные), которое позволит применить все изученные методы с помощью логичных и простых в своей сути библиотек готовых функций.
Каждый data scientist немного программист. При этом именно python является стандартом де-факто для нашей сферы. Вероятно, этот язык занял своё положение благодаря тому, что он очень простой и логичный. Если вы программировали на чём угодно, и слова «цикл» или «if-then-else» вас не пугают, то вам не будет очень сложно освоить Пайтон. Если вы никогда не программировали, но считаете, что структурное и математическое мышление — ваш конёк, с программированием у вас не будет проблем. Даже если вы «конченный гуманитарий», освоить Python значительно легче, чем выучить многие иностранные языки (но, внимание! для людей без предыдущего опыта программирования обучаться ему эффективнее по-другому, не так, как для тех, кто уже имеет опыт программирования)
Даже примерный учебный план для изучения методов Data science требует отдельного поста. Ниже напишу чуть подробнее про Python и SQL
Английский необходим!
Как минимум, технический английский, на уровне чтения документации и профессиональных книг, — абсолютная необходимость. В этой сфере особенно: всё слишком быстро меняется. На русский язык все важные книги просто не будут успевать переводить, а многие критически важные библиотеки — даже и не будут пытаться. Поэтому, пока вы не способны читать упомянутые книги в оригинале, у вас вряд ли получится эффективно изучать data science. Хорошая новость: техническая терминология намного уже нормального разговорного языка и слэнга. Поэтому выучить английский на необходимом уровне не так уж и сложно. К тому же, знания языка могут пригодиться во многих других сферах, и даже в отпуске.
Принципы эффективного обучения
Эффективный учебный план. Хороший план позволяет вам учить вещи в таком порядке, чтобы каждая новая вещь базировалась на уже полученных знаниях. И, в идеале, он идёт по спирали, постепенно углубляя знания во всех аспектах. Потому что учить теоретически математику, без интересных примеров применения — неэффективно. Именно это является одной из проблем плохого усваивания материалов в школе и институте.
Учебный план — это именно та вещь, которую без опыта составить труднее всего. И именно с этим я стараюсь помочь.
Следует концентрироваться на понимании главных принципов — это легче, чем запоминать отдельные детали (они часто оказываются не нужны). Особенно важно это становится, когда вы учите язык программирования, тем более свой первый: не стоит зубрить правильное написание команд («синтаксис») или заучивать API библиотек.
Это вторая вещь, с которой я хочу помочь — разобраться, что важно, а на что не следует тратить много времени.
Программирование: что и как учить?
Что такое SQL и зачем его учить?
SQL является стандартом для получения данных в нужном виде из разных баз данных. Это тоже своеобразный язык программирования, который дополнительно к своему основному языку используют многие программисты. Большинство самых разных баз данных использует один и тот же язык с относительно небольшими вариациями.
SQL простой, потому что он «декларативный»: нужно точно описать «запрос» как должен выглядеть финальный результат, и всё! — база данных сама покажет вам данные в нужной форме. В обычных «императивных» языках программирования нужно описывать шаги, как вы хотите чтобы компьютер выполнил вашу инструкцию. C SQL намного легче, потому что достаточно только точно понять что вы хотите получить на выходе.
Сам язык программирования — это ограниченный набор команд.
Когда вы будете работать с данными — даже аналитиком, даже необязательно со знанием data science, — самой первой задачей всегда будет получить данные из базы данных. Поэтому SQL надо знать всем. Даже веб-аналитики и маркетологи зачастую его используют.
Как учить SQL:
Наберите в Гугле «sql tutorial» и начните учиться по первой же ссылке. Если она вдруг окажется платной, выберете другую. По SQL полно качественных бесплатных курсов.
На русском языке тоже полно курсов. Выбирайте бесплатные.
Главное — выбирайте курсы, в которых вы можете сразу начать прямо в браузере пробовать писать простейшие запросы к данным. Только так, тренируясь на разных примерах, действительно можно выучить SQL.
На изучение достаточно всего лишь от 10 часов (общее понимание), до 20 часов (уверенное владение большей частью всего необходимого).
Почему именно Python?
В первую очередь, зачем учить Python. Возможно, вы слышали что R (другой популярный язык программирования) тоже умеет очень многое, и это действительно так. Но Python намного универсальнее. Мало сфер и мест работы, где Python вам не сможет заменить R, но в большинстве компаний, где Data Science можно делать с помощью Python, у вас возникнут проблемы при попытке использования R. Поэтому — точно учите Python. Если вы где-то услышите другое мнение, скорее всего, оно устарело на несколько лет (в 2015г было совершенно неясно какой язык перспективнее, но сейчас это уже очевидно).
У всех других языков программирования какие-либо специализированные библиотеки для машинного обучения есть только в зачаточном состоянии.
Как учить Python
Прочитать основы и пройти все упражнения с этого сайта можно за 5-40 часов, в зависимости от вашего предыдущего опыта.
После этого варианты (все эти книги есть и на русском):
Learning Python, by Mark Lutz (5 издание). Существует и на русском.
Есть много книг, которые сразу обучают использованию языка в практических задачах, но не дают полного представления о детальных возможностях языка.
Эта книга, наоборот, разбирает Python досконально. Поэтому по началу её чтение будет идти медленнее, чем аналоги. Но зато, прочтя её, вы будете способны разобраться во всём.
Я прочёл её почти целиком в поездах в метро за месяц. А потом сразу был готов писать целые программы, потому что самые основы были заложены в pythontutor.ru, а эта книга детально разжевывает всё.
В качестве практики берите, что угодно, когда дочитаете эту книгу до 32 главы, и решайте реальные примеры (кстати, главы 21-31 не надо стараться с первого раза запоминать детально. Просто пробежите глазами, чтобы вы понимали что вообще Python умеет).
Не надо эту книгу (и никакую другую) стараться вызубрить и запомнить все детали сразу. Просто позже держите её под рукой и обращайтесь к ней при необходимости.
Прочитав эту книгу, и придя на первую работу с кучей опытных коллег, я обнаружил, что некоторые вещи знаю лучше них.
Python Crash Course, by Eric Matthes
Эта книга проще написана и отсеивает те вещи, которые всё-таки реже используются. Если вы не претендуете быстрее стать высоко-классным знатоком Python — её будет достаточно.
Automate the Boring Stuff with Python
Книга хороша примерами того, что можно делать с помощью Python. Рекомендую просмотреть их все, т.к. они уже похожи на реальные задачи, с которыми приходится сталкиваться на практике, в том числе специалисту по анализу данных.
Какие трудозатраты?
Путь с нуля до уровня владения Python, на котором я что-то уже мог, занял порядка 100ч. Через 200ч я уже чувствовал себя уверенно и мог работать над проектом вместе с коллегами.
(есть бесплатные программы — трекеры времени, некоторым это помогает для самоконтроля)
Следующие статьи по данной теме
Стоит ли смотреть в сторону дата сайенс? — показывает альтернативные специализации, куда можно и, вероятно, стоит целиться, если вы планируете начать путь в дата сайенс без знаний математики и опыта в программировании.
Для желающих могу выступить в роли ментора
Если после прочтения всех моих статей у вас остались вопросы, т.к. ваша ситуация специфична — могу помочь вам индивидуально. Пишите:
Источник