Как изучить Python самостоятельно и бесплатно: алгоритм
Отдел продаж проклял нас за эту статью! От вас — пара часов в день, от нас — список бесплатных материалов для входа и прокачки в Python.
Иллюстрация: Альберто Блинчиков для Skillbox Media
Python — основной язык в data science и один из трёх главных языков в веб-разработке — наряду с PHP и JavaScript. Кроме того, он широко используется для администрирования сетей, автоматического тестирования, создания приложений и даже 3D-анимации.
- Для каких задач подходит Python
- 5 проектов на Python
- Для чего нужен Python
- Сколько зарабатывают Python-разработчики
Ко всему прочему, Python считается лёгким в изучении: у него десятки тысяч подключаемых библиотек на все случаи жизни, глобальное сообщество разработчиков и нереальное количество учебных материалов.
Так что если вы решаете, с какого языка вам вкатиться в программирование с нуля, то Python — ваш кандидат! А в этом самоучителе расскажем, как освоить Python самостоятельно и бесплатно:
- С чего начать обучение
- Основы языка программирования
- Пишем первое приложение
- Python для data science
- Что в итоге
Как убедиться, что Python — отличный язык для старта в разработке? Простой алгоритм:
- Прочитайте нашу статью «Выбираем язык программирования: что нужно знать о Python». Мы сравнили детище Гвидо ван Россума с Java и JavaScript.
- Если этого мало — изучите увлекательную краткую историю Python.
- Стереотипы и сомнения всё не отпускают? Мы развеяли 10 главных мифов о Python.
- Теперь мы точно на одной волне: пора приобщиться к тайным знаниям и прочитать, какие ошибки совершают новички при изучении Python.
С чего начать обучение Python
Мы собрали для вас ссылки на обучающие материалы, которые накопились за годы работы Skillbox Media. Они бесплатны и разбиты по трём направлениям: основы, приложения, data science. Внутри каждого направления статьи отсортированы по возрастанию сложности: от простых до заковыристых.
Как вам выучить Python по нашим материалам:
- Читаете статьи.
- Смотрите видео.
- Повторяете за преподавателем или автором.
- Гуглите, если что-то совсем не получается.
- Вбиваете в Telegram слово «Python» и присоединяетесь к лучшим чатам, где опытные питонисты смогут ответить на любой ваш вопрос — если захотят, конечно.
Настало время добрых советов — часть из них могут показаться банальными, но они и правда работают!
Выделите на занятия 1–2 часа ежедневно, чтобы знания не успевали выветриваться (согласно кривой забывания), и постарайтесь продержаться в таком темпе три недели — говорят, за этот срок вырабатывается привычка.
Не бойтесь ошибок. Их будет много — и в процессе обучения, и когда вы станете настоящим программистом. Воспринимайте ошибки как повод впасть в депрессию узнать что-то новое. Цикл вашего обучения должен выглядеть приблизительно так:
- Проба.
- Ошибка.
- Google, чат или помощь друга.
- Исправление ошибки.
- GO TO п. 1.
- ???
ВоскресеньеPROFIT!
Только учтите: статьи и вебинары могут не отражать самые новые фишки языка. Что-то могло измениться: исчезли команды, обновились библиотеки, сервисы стали другими. Это не помешает учиться, но в каких-то мелочах придётся разобраться самостоятельно — и да, это часть ежедневной работы программиста.
Python: основы языка программирования для начинающих
С помощью нашего самоучителя Python вы изучите язык на базовом уровне: установка интерпретатора, синтаксис языка, импорт библиотек, основные типы данных и операции над ними. Кстати, этого вполне достаточно, чтобы создавать довольно сложные и полезные программы — и стать начинающим разработчиком.
Установка
Программировать на Python можно на своём компьютере, скачав и установив дистрибутив (рекомендуем пакет Anaconda или среду разработки PyCharm), либо в браузере с помощью специальных сервисов (например, Google Colab).
- Как запустить Python на Linux, Windows, macOS
- Как использовать сервис Google Colab
- PyCharm: как её установить и использовать
Базовый синтаксис
Путь питониста начинается с основных операторов, базового синтаксиса языка и установки библиотек. Чтобы изучить Python с нуля, советуем начать с этих материалов:
- График курса доллара в Anaconda. Установим дистрибутив Anaconda, изучим синтаксис и нарисуем график курса доллара.
- Типы данных в Python. Когда с языком познакомились, пора узнать, что такое типы данных и какие они бывают в Python.
- Облако слов на Python. Нарисуем облако самых частотных слов со страницы «Википедии» прямо в браузере с помощью Google Colab.
- Устанавливаем библиотеку в Python. Основные способы: ручная установка, с помощью easy install и самый популярный — c помощью утилиты PIP.
- Вебинар «Рисуем дерево с помощью Python». Изучим чуть больше команд и функций, разберёмся с циклами и условиями, импортируем библиотеку для рисования.
Списки
Списки — самый популярный тип данных, с которым вы будете работать большую часть своего времени, поэтому стоит узнать, что это такое. Начинающий Python-разработчик должен знать:
- Списки в Python. Начинаем, конечно же, с основ и разбираемся, как устроены списки.
- Удаляем элемент из списка в Python. Узнаём о четырёх способах удаления элемента из списка.
- Методы append () и extend () в Python. Разбираемся, в чём различия двух методов добавления элементов в список.
- Преобразование списка в строку. Ещё полезно знать, как разные типы данных можно переделывать в другие — например, списки в строки.
- 11 вопросов про списки. Если на собеседовании вас начнут гонять по этому типу данных, вы не потеряетесь.
Строки
Постмодернисты говорили: мир как текст и текст как мир. Это особенно актуально в программировании — в том числе на Python. Поэтому важно уметь работать со строками.
- Форматированные строки на примерах. Разбираем удобный и наглядный способ вывода строк.
- Объединение строк. Их вечно приходится объединять, поэтому пора узнать самые эффективные методы.
- Регулярные выражения. Они полезны, когда вам нужно проанализировать и обработать строки.
Инструменты и фишки
Хороший программист — любопытный программист. Знание фишек и неочевидных нюансов языка — один из признаков хорошего программиста, даже начинающего.
- Генераторы в Python: что это и зачем они нужны. Одна из характерных фич Python — создание сложных объектов буквально в 1–2 строки. В этом помогут и генераторы.
- 15 коротких программ на Python. Короткие и понятные программы позволяют лучше понять язык.
- Библиотека collections. Инструменты, которые вы будете постоянно использовать в разработке.
- Vim как IDE для Python. Если вы хотите стать хардкорным разработчиком, то скорее учите Vim. Он круто выглядит, быстро работает и имеет кучу классных фишек.
Продвинутые возможности
Python снисходителен к новичкам — потому что позволяет решать какие-то задачи довольно небрежно, жертвуя чистотой кода в обмен на скорость разработки. Но это не значит, что правильного и красивого решения не существует.
- Корректное объединение строк в Python. Да, можно просто объединять строки с помощью знака +, но это не лучший способ.
- Декораторы: что отвечать на собеседовании. Функция, которая изменяет (декорирует) другую функцию. Звучит перспективно!
- Случайные числа в Python. Случайностей не бывает, особенно в Python. Или…
- Рефакторинг кода в Python. Большая часть работы программиста — не написание нового кода, а чтение и переделка (рефакторинг) старого. Будем же делать это правильно!
- Рекурсивные функции. Функции могут вызывать сами себя. Это называется «рекурсия». Разбираемся, как она работает и где бывает полезна.
Объектно-ориентированное программирование
Однажды вы увидите, что ваши программы становятся всё больше и больше, а их поддержка становится сложнее. Тогда вы задумаетесь, как это всё исправить. Ответ простой — используйте ООП.
- ООП в Python. Наверное, самая важная тема из всех остальных. Вы узнаете, что такое объекты и классы, и научитесь писать лаконичный код.
- Создаём «Змейку» на Pygame. Попробуйте закрепить знания и переписать код игры по принципам ООП. Уверены, что у вас получится.
Чтобы глубже изучить тему ООП, советуем также прочитать наши статьи о главных концепциях этой парадигмы:
- Классы и объекты. Базовые элементы всего ООП, от которых строится всё остальное.
- Особенности работы с объектами. Нюансы при работе с объектами.
- Инкапсуляция и модификаторы доступа. Доступ к методам внутри объектов иногда нужно защищать, делается это с помощью инкапсуляции и модификаторов доступа.
- Перегрузка методов и операторов. Приём в объектно-ориентированном программировании, который позволяет определить несколько методов с одним и тем же названием.
- Полиморфизм. Более подробно про перегрузку на концептуальном уровне.
- Наследование и ещё немного полиморфизма. Избавляемся от дубликатов кода и делаем проекты ещё лаконичнее.
- Абстрактные классы и интерфейсы. Удаляемся от всех материальных вещей и думаем абстрактными идеями — или абстрактными классами и интерфейсами в случае ООП.
Python: пишем приложения
Лучшего способа обучения, чем многократное повторение за учителем, пока что не придумали. Повторяйте все действия за нашими преподавателями, и вы научитесь работать в PyCharm, взламывать пароли и создавать настоящие мессенджеры.
Можно проматывать и ускорять видео, пересматривать сложные места — записи именно для этого и сделаны.
Считаем калории и пишем голосового ассистента
Анастасия Борнева, ведущий исследователь данных в Сбербанке, демонстрирует процесс создания нескольких простых программ в PyCharm. Бонусом — советы по началу карьеры в Python.
«Нет неподходящего возраста, есть неправильно преподнесённое резюме».
Вебинар «Как стать Python-разработчиком».
Подбираем пароли и работаем с сетью
Никита Левашов, технический директор в Lia, учит основам хакинга на Python.
- В первый день вы вспомните основы Python и напишете простую программу — парсер паролей.
- Во второй день изучите работу с файлами и сетью, а также закодите утилиту для автоматического подбора паролей.
- На третьем, итоговом, занятии Никита разберёт домашние задания — можно будет сравнить со своими решениями.
Интенсив «Хакинг на Python»: день первый, день второй, день третий.
Создаём мессенджер с формами и интерфейсом
Алексей Коновалов, старший разработчик «ООО МТС-Диджитал», показывает, как написать мессенджер на Python.
- Традиционно первый день посвящён основам языка и написанию простой программы.
- Во второй день вы напишете ещё одну программу, сделаете формы регистрации пользователей и настроите отправку и получение сообщений.
- В третий день Алексей рассказывает о пользовательском интерфейсе и подводит итоги.
Интенсив «Мессенджер на Python за 3 дня»: день первый, день второй, день третий.
Парсим данные
Парсинг — это когда мы собираем данные с сайтов и потом что-то с ними делаем, например анализируем или создаём базу данных.
- Парсинг сайта вместе с Python и библиотекой Beautiful Soup
- Парсим данные в Telegram на Python
- Чат-боты в Telegram на Python
Пишем десктопное приложение
На Python можно и приложения с графическим интерфейсом писать. Делать это удобно, потому что:
- Python — простой и понятный язык;
- в Python есть много инструментов, которые ускорят разработку;
- вы всегда сможете найти ответ на свой вопрос.
Лучший способ написать десктопное приложение — с помощью библиотеки Tkinter.
Python для data science
Наверняка кто-то уже написал статью о причинах популярности Python среди дата-сайентистов. Эти причины нам, по правде сказать, не слишком важны, просто запомним, что на данный момент Python главный язык в науке о данных.
Если вы планируете карьеру в этом направлении, то в дополнение к основным вебинарам прочитайте статьи:
- Карта развития дата-сайентиста: с чего начать и куда идти.
- Как изучить Data Science по-настоящему (а не развлекаться трюками).
- Семь базовых понятий из статистики для Data Science.
А также статью про математику для джунов.
Первые модели
Одна из сильных сторон Python — это то, что настоящую модель машинного обучения можно закодить буквально в пару десятков строк, а то и меньше. И, разумеется, чтобы написать эти строки, глубокое знание Python не требуется.
- Галопом по Python: языковой минимум для начинающего дата-сайентиста
- Первичное преобразование данных: использование библиотеки Pandas
- Работаем с Pandas: основные понятия и реальные данные
- Библиотека NumPy: всё, что нужно знать новичку
- Ваша первая модель машинного обучения
Делаем умного чат-бота
Михаил Овчинников, директор по разработке в лондонской компании Noon Academy, научит вас делать умных чат-ботов.
- В первый день познакомимся с архитектурой будущего чат-бота, узнаем, что такое NLU, а также, как обычно, освежим в памяти основы Python.
- Во второй день научим чат-бота понимать текст. Для этого подготовим данные, превратим слова в числа, обучим модель и встроим её в чат-бота.
- На третий день создадим телеграм-бота и запустим наконец-то наше приложение. Восстание машин уже близко!
Интенсив «Чат-бот с искусственным интеллектом на Python»: Первый день, Второй день, Третий день.
Пишем зрячую нейросеть
Уже знакомый нам Никита Левашов покажет, как сделать приложение с нейронкой внутри.
- Первый день: основы Python для работы с нейросетью, работа в Google Colab, что такое компьютерное зрение.
- Второй день: обучение модели распознаванию объектов.
- Третий день: написание приложения, подключение его к стриму.
Интенсив «Пишем нейросеть для распознавания предметов и слежки»: первый день, второй день, третий день.
Что в итоге
Вдумчивое освоение указанных материалов даст вам достаточно навыков, чтобы претендовать на позиции стажёра или, если повезёт, даже джуниора, в зависимости от требований в конкретной компании.
Самое главное — не останавливаться. Путь программиста — это путь постоянного обучения, и Python-программисты не исключение. Эта статья — лишь начало вашего путешествия в огромный мир IT. Заметим, что совершенно необязательно входить в него в одиночестве.