📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Как бы я учила Python в 2024 году, если бы начинала с нуля. БЫСТРЫЙ СПОСОБ.

Анастасия Никулина23:17

Transcription

В этом видео я поделюсь с вами самым быстрым способом изучения Python с нуля до продвинутого разработчика.

Имея восьмилетний опыт программирования, я поняла несколько вещей, которые бы очень упростили мне моё обучение. Зная это раньше, многие обычно не понимают, с чего им начинать, в каком порядке им изучать те или иные темы, а что им конкретно необходимо для той или иной сферы деятельности, которую они, возможно, уже потенциально выбрали именно в Python.

Я потратила лично огромное количество не только своего времени, но и своих ресурсов, чтобы вообще понять, а что мне нужно изучать, если я хочу работать в анализе данных. Именно поэтому для вас я записала это видео.

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

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

Что же можно делать при помощи Python? Если мы берём, к примеру, машинное обучение, то здесь вы можете обучить свою модель для поиска похожих товаров по изображению на сайте маркетплейса. Либо же другой вариант — использовать Python в качестве разработки серверной части вашего сайта или приложения.

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

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

Почему он подходит новичкам? Потому что он достаточно прост в изучении, очень понятен синтаксис. Он позволяет освоить те самые основы программирования, которые в дальнейшем можно применить уже в изучении других языков.

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

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

Python всегда можно использовать для своих повседневных задач, создания Telegram-ботов, и всё это делается просто в разы легче по сравнению с другими языками программирования.

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

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

Плюс, материал должен быть оптимально наполнен с точки зрения как теории, так и практики. Потому что если только учить теорию, понятное дело, мы ни к чему не придём. Если чисто делать какие-то теоретические задания, понятно, мы можем какую-то часть теории отбросить.

Плюс, обязательно смотрите на структурированность материала, иначе начинающему специалисту будет очень тяжело ориентироваться в этом языке. Многие компоненты просто связаны между собой, поэтому здесь структура — это must-have.

Как я ранее сказала, чтобы изучать Python, у вас есть просто интернет и море бесплатных ресурсов. Это те же самые популярные курсы на Stepik, есть куча материалов на YouTube, есть куча уроков Python с нуля, есть и другие каналы по Python. Их тоже не раз уже упоминал, но об этом мы сегодня чуть позже ещё поговорим.

Конечно, стоит сказать про бесплатные ресурсы. Бесплатные ресурсы эффективны, когда вы умеете управлять своим временем. Если вы не умеете управлять своим временем, то такое обучение может растянуться на годы.

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

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

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

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

Потому что мы все по-разному воспринимаем ту или иную информацию. Поэтому обязательно предварительно ознакомьтесь с демо-наполнением того или иного бесплатного либо платного курса.

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

Если говорить, например, обо мне и моих ресурсах, вы уже можете со мной лично познакомиться. Нравится, не нравится вам мой стиль изложения, насколько он вам понятен. Я стараюсь достаточно понятно объяснять и сложные вещи в том числе.

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

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

Для нас самое главное — не упрощать программу, чтобы вам было легче или проще, а для нас самое главное — делать программу сложной, но чтобы вы потом были конкурентоспособными. Мы объясняем эти сложные темы простым языком, так чтобы вы поняли.

Если вас заинтересовало моё замечательное предложение, переходите по ссылке в описании и записывайтесь на курс. Лучше предложения не будет.

Ну а мы переходим дальше. Я сегодня очень много сказала про базу, но вы меня, наверное, спросите: "А как же понять, изучил я эту базу или нет?" Здесь есть определённый ряд тем, которые вы должны усвоить.

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

Что это за конструкции такие? Это переменные, циклы, условия и функции. Не пугайтесь, чуть позже мы об этом тоже обо всём поговорим.

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

Наконец, вы должны себя чувствовать уверенно, когда используете какие-то базовые структуры Python. Что это за базовые структуры? Это списки, кортежи, множества и словари. Да, и, конечно же, уметь ещё работать с файлами.

Первый пункт, о котором мы коснулись, вам важно уметь не просто оперировать в теории, а уметь именно с практической точки зрения писать этот код. Круто, если вы ещё пишете его бегло.

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

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

Блестящие идеи, замечательная инициатива, но вообще хорошо бы начинать не с самого языка Python, как такового языка программирования, а вообще с базовых концепций основ программирования.

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

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

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

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

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

Страх перед какими-то новыми темами, потому что это всегда стресс для организма. Хочется, конечно же, оставаться в какой-то комфортной кроватке, попить чаёк и ничего не делать, но в этом нет развития.

К сожалению, нужно иногда сталкиваться с реальностью и чуть-чуть себя хотя бы подгонять. В связи с этим всплывают вопросы: "Вот я это всё изучаю, вдруг у меня не получится, вдруг я не справлюсь?"

По опыту, если вы постепенно, поочерёдно всё делаете, делаете, делаете, в этом случае с точки зрения программирования, вот как по алгоритму, то всё получится. Вероятность неуспеха значительно мала, если вы всё делаете верно.

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

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

Мы продолжим нашу тему изучения Python и поговорим о том, что же вам стоит изучать. Давайте начнём с каких-то базовых понятий. Конечно же, нужно изучить какой-то базовый сценарий.

Первое — это типы данных: числовые типы данных (int, float), строковые типы данных (str) и булевые (bool). Это структуры данных: списки, кортежи, словари, множества. Это циклы (for, while), когда их применять.

Плюс сюда можно включить работу с range и итерацию по коллекциям. Конечно же, это условные операторы (if, else). Есть ещё такой оператор, как if, и тернарный оператор.

Что же такое тернарный оператор? Это просто компактный способ написания каких-то простых ваших условных выражений в одну строку. Очень классная штука, я вам рекомендую, особенно начинающим, с ними ознакомиться, чтобы сократить ваши строки кода, которые, скорее всего, в начале будут очень большими.

Дополнительно я вам рекомендую изучить, как правильно писать функции, что это вообще такое, и базовые какие-то работы с файлами. Давайте ещё сюда добавим обработку исключений — тоже достаточно важная тема.

Если мы переходим на уровень чуть выше, intermediate level, то здесь вам необходимо, когда вы изучили какие-то базовые концепции, упомянуть о более продвинутых таких штуках, как объектно-ориентированное программирование.

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

Помимо вот этих плюшек, есть куча и других. Обязательно про них прочитайте. Что же важно в объектно-ориентированном программировании? Это концепции ООП.

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

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

Вот здесь вам поможет достаточно классный инструмент, он называется Git. Здесь вам нужно изучить хотя бы для начала базовые какие-то команды: это init, add, push, pull, ветвление, слияние ваших веток.

Очень суперски полезный инструмент не только для Python-разработчиков, но и для дата-сайентистов, дата-аналитиков и для прочих сущностей в мире программирования.

Если вы захотите, например, изучать Data Science, то вам здесь понадобятся в самом начале базовые фреймворки. Это NumPy — библиотека, которая позволяет вам работать с массивами и производить минимальные статистики, и даже визуализировать.

С такими понятиями обязательно нужно познакомиться, как DataFrame, Series и библиотека такая, как Matplotlib. Она нужна для визуализации ваших данных.

Ну и дополнительные библиотеки для обучения ваших каких-то классических моделей — это scikit-learn, просто must-have, LightGBM, CatBoost и XGBoost. Многие сейчас больше всего предпочитают LightGBM, CatBoost и стандартные библиотеки.

О них я забыла вам рассказать, но они являются достаточно важной частью Python. Это OS, sys, datetime, которые вам очень помогут вне зависимости от той сферы, которую в дальнейшем потом выберете.

А также такие популярные библиотеки, как requests. Давайте поговорим чуть подробнее про каждую из библиотек.

Вот, например, про Pandas. Я сказала, что он позволяет вам работать с табличными данными. Здесь вы можете как загружать, так и выгружать ваши данные в формате CSV либо в каком-то другом формате, например, Excel.

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

В общем, незаменимый инструмент, в особенности как для дата-сайентистов, так и для дата-аналитиков. Дальше мы с вами говорили про такую библиотеку, как NumPy. Это просто must в мире анализа данных.

Эта библиотека предназначена для работы с матрицами, с массивами. Data Science — это по сути вся одна большая матрица, и работа с этими матрицами.

Сейчас краткий курс вам был в Data Science: умножение, перемножение этих матриц, сложение этих матриц и так далее. Благодаря этой библиотеке именно можно эффективно работать с такой структурой данных.

Плюс, решение систем линейных уравнений может кому-то даже в ВУЗе, кстати, помочь. Можно проводить статистические различные анализы.

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

Я вам предлагаю не просто изучать какой-то язык программирования ради языка программирования, а сфокусироваться на какой-то сфере, которая вам потенциально может быть интересна. Например, это Data Science.

Data Science — это наука о данных, где при помощи языка программирования и математики вы находите закономерности в данных, и на основе этого вы уже делаете какие-то предсказания.

Что здесь можно сделать при помощи языка Python? Здесь можно сделать просто персональный поиск на маркетплейсе, который будет учитывать историю ваших покупок, а также тот запрос, который вы, например, вводите. Это тоже как вариант.

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

Там я постоянно рассматриваю не только практическое применение машинного обучения, но и также у меня там есть куча полезного контента, в том числе и по Python.

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

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

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

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

Это категориальные данные, это числовые данные. Что вам по итогу нужно получить? Вам нужно получить число, вам нужно получить класс, либо у вас вообще нет этих меток, мы ещё и называем как таргет.

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

На текущий момент какие у вас доступны ресурсы для обучения вашей модели? Здесь тоже очень важно. Если у вас 500 ЦОД, центров обработки данных, ну как бы сам Бог велел использовать какие-то трансформеры и так далее.

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

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

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

Здесь можно использовать, кстати, такие фреймворки, как Flask. Это очень популярные фреймворки. На самом деле этих проектов может быть куча.

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

Куча всего. Данные, они на самом деле повсюду. Что можно ещё делать? Здесь можно саммари отзывы. Если используете более продвинутые модели, здесь можно даже проводить какую-то кластеризацию.

В общем, полёт фантазии здесь просто не ограничен. Также есть популярные крупные площадки, как Kaggle. Там есть как множество соревнований, так и датасетов.

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

Эти данные, как правило, будут уже реальными. И очень важно делать проект на ту тему, которая вам нравится. Почему? В особенности, когда вы будете изучать, к примеру, Python.

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

Не знаю, либо это кошечки, либо собачки, либо это сайт маркетплейса, где вы саммари ете отзывы. Вас это должно драйвить.

Чтобы вы не задавали мне вопрос: "Сколько же мне нужно времени тратить на моё обучение в день? Анастасия, 5 или 4 часа? Вот я не успеваю." Вот таких вопросов у вас не должно быть.

Вы должны сесть, и вас эта задача должна захватить просто полностью. В общем, счастливого пути.

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

Потому что если вы сразу на сколько начинаете на неё наседать, конечно же, результат, скорее всего, будет печальный. Если у вас что-то не получается, ищите поддержку в коммьюнити.

Попробуйте найти ментора, либо спросить у друзей, а либо просто написать в каких-то целевых чатах по изучению Python. Не знаю, там для изучающих, либо спросить на форуме, написать комментарии YouTube-блогеру.

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

Смотрите, Python как сейчас мир в целом. Да, он развивается, он не стоит на месте, и большое обновление запланировано на конец осени этого года.

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

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

Конечно же, это канал Коли Свиридова. Уча нас его канал — это можно сказать просто бесплатный курс. Переходите, учитесь, там один полезный контент, куча бесплатного материала, достаточно грамотно всё разжевано.

Канал Палау — тут как бы аналогично, море полезного контента разнообразного. Достаточно. Ну а для более продвинутых канал Digitalize.

Также все ребята доступным, понятным языком всё это объясняют. Если вы хотите, ещё в особенности как-то пройти в мир Data Science, пожалуйста, комьюнити ODS. У них есть замечательный канал ODS.

Там есть и бесплатные курсы, и записи мероприятий, и данные, кстати, в том числе с нами. Это случится, если мы покажем лучшее.

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

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

И поверьте, вероятность успеха очень велика, если вы стараетесь структурно подходить к своему изучению языка программирования. Если вы всё делаете правильно, если вы с интересом изучаете эту область, это всегда видно, особенно вашему будущему работодателю.

Ну а чтобы узнать ещё больше полезного контента, обязательно подписывайтесь на мой канал, ставьте лайк этому видео.