Первые шаги Python программиста
Дошли руки до Питона. Я не гуру и покажу вам основы Python. Сила любого программиста в хорошем знании основ. Глупо изучать сложные разделы языка если вы не знаете элементарных вещей. Вам советую пройти мои шаги и начать самостоятельное развитие. Если вы в прошлом PHP программист, то python вы изучите сравнительно легко. Я покажу вам переход с PHP на Python. Многие примеры будут написаны на РHP и Python. Очень часто говорят, что питон - лёгкий язык. Не верьте ). Он сложно устроен. Написать сайт на питоне сложнее чем на PHP.
Плюсы Python
- Короткий код
- Отсутствие знака ; в конце строк
- Синтаксический сахар
- Новые типы данных. Это даёт широкий простой для оптимизации скриптов.
- Подключаемые модули
- Внутренние модули
- PIP - система управления пакетами
- Крутые фреймворки для сайтов и API: FastApi, Flask, Django
- Хорошо дружит с linux. Серверное программирование
- Процессы, многопоточность threading, асинхронные функции корутины async/await
- Десктопные приложений Qt
- Отлично подходит для data science. Большая часть приложений data science работает на питоне.
Минусы Python
- Сложное администрирование. Непростая настройка окружения для ваших скриптов.
- Отсутствие констант
- Сложное внедрение кода python на веб страницы.
- Мало документации на русском языке
Сотрудники яндекса показали как используют код python. Благодаря короткому синтаксису они смогли обработать значение переменной 7-10 функциями. Причём визуально обработка переменной вытянулась в одну строку. Посмотрите на пример. Символ \ - это перенос строки. У меня код просто не поместился в окне.
#!/usr/bin/python3
str = 'приехали автомобили: #1#, #2#, #3#'\
.replace('#1#', 'мерседес')\
.replace('#2#', 'ауди')\
.replace('#3#', 'бмв')
print(str)
'''вывод:приехали автомобили: мерседес, ауди, бмв'''
На PHP подобное решение выглядит довольно громоздко. Сам язык python не является экзотикой. На django написаны многие сервисы yandex. Python любят использовать в google.
До выхода PHP 7 python считался самым быстрым языком для веба. Теперь трудно судить что быстрее? Возможно через некоторое время выйдет более быстрая версия python. Смотрите pdf-версию схемы обучения python. Её можно увеличить и рассмотреть.
Для обучения необходимо время. Скажу сразу, что нужно учить 1 год и более. Я потратил пол года и не смог выучить питон. Основы я уже хорошо понимаю.
Вы должны решить, что именно вам учить? Вам может быть и не нужно ООП и сложные фреймворки? Вы можете легко писать скрипты при помощи процедурного стиля. Сам создатель питона Гвидо ван Россум рекомендует писать простым стилем и не усложнять скрипты.
Предлагаю вам на сайте stepik.org посмотреть 2 курса: Python: основы и применение, программирование на Python. Так у вас появится представление о Python. Потом советую почитать мои статьи.
Типы данных
Это фундаментальная часть языка python. На собеседованиях очень часто прокалываются люди на типах данных. Её надо знать очень хорошо! У меня есть страница Типы данных в Python. В ней есть красочная схема типов данных. Советую посмотреть.
- коллекции
- числа
- целые
- целое
- длинное целое (python 2.X)
- булевское
- с плавающей точкой
- комплексное
- десятичное
- дробное
- целые
- вызываемые
- функция
- генератор
- класс
- метод
- связанный
- не связанный
- прочие
- модуль
- экземпляр
- файл
- None
- представление
- внутренности (python 3.X/2.7)
- тип
- код
- фрейм
- трассировка стека. исключения (exceptions)
Функции
- внутренние
- анонимные lambda
- пользовательские
- замыкания
- генераторы
- декораторы
Циклы
Условные операторы
- if-else
- match
Модули
- numpy
- pillow
- itertools
- collection
- os
- sys
- json
- xml
- csv
- math
- re
- random
- configparser
- imghdr
- logging
- shutil
- pickle
- Базы данных
- sqlite3
- MySQLdb
- postgresql
- кеширование
- memcached
- redis
- парсинг
- urllib.parse
- requests
- Время
ООП
- Классы
- методы
- Волшебные/магические методы
- геттеры
- сеттеры
- переменные
- экземпляры класса
- свойства
- методы
- метаклассы
Фреймворки
- синхронные
- Django. Это самый популярный фреймворк. Он легко осваивается. Из коробки доступна масса фишек: ORM, миграции, админка. Этот фреймворк пытаются сделать асинхронным, но пока не получается следать DjangoORM асинхронной.
- Flask. Достаточно простой фреймворк с голым каркасом. Второй фреймворк по популярности после джанго.
- Bottle
- Cherrypy
- Pyramid
- асинхронные
- FastApi. Самый модный фреймворк на сегодняшний день. Он имеет голый каркас. Фреймворк довольно шустрый вам придётся одевать на каркас миграции, orm.
- LiteStar
- Twisted
- Masonite
- Tornado
Хочу вас предупредить, что набор модулей что вы видите - это только базовый набор. Модулей в разы больше. Фреймворков у python масса. Посмотрите на список фреймворков. Я думал их мало, но я ошибался ). Начните с самого простого. Основы - это то, с чего надо начать! Если смотреть на схему, то сложность нарастает сверху вниз. В схеме есть сложные разделы: ООП, фрейморки, парсинг. Парсинг сайтов и документов - сложное занятие. Тут без опыта тяжело писать код. Фреймворки - это особая тема для опытных программистов. Сначала изучите классы потом переходите к фреймворкам. Все фреймворки основаны на классах. Вы можете сделать вылазку и написать сайт на django. Если вы плохо знаете основы, то не сможете сделать сайт со сложный функционалом. В django активно применяются декораторы. Вы должны легко писать пользовательские функции. Регулярные выражения Python применяются чуть ли ни на каждом шагу. Любой фрейворк постоянно требует подключения различных модулей. Игра стоит свеч!
Эта схема достаточно велика для обучения. Если вы работаете простым менеджером и решили автоматизировать отчёты, то вам не нужно изучать ООП + фреймворки + асинхронное программирование. Вам хватит уровня джуна и даже меньше. Вам нужно освоить планировщик крон и слепить несколько заданий.
Если вы планируете стать программистом, то изучайте питон по моей схеме шаг за шагом. Будет трудно, но интересно. Этот путь тернист, но в конце пути вас не ждёт конец с лавровым венком. Вас ждет дорога без конца. Постоянно что-то новое появляется и мир программирования меняется. Раньше джанго был самым популярным языком, но потом Flask и FastAPi начали вытеснять лидера.
Если вы хотите быть data scientist, то вам придётся изучать типы данных и реляционные базы данных (постгрес) + нереляционные NoSQL базы специализированные для ваших задач. Мало того вам нужно выучить классы + фреймворки для вывода данных. Еще вам предстоит понимать и применять сложную математику. Будет сложно.
Предлагаю вам интересный ресурс для обучения: онлайн-курс по Python. Там есть бесплатные и платные уроки по python.
Вот схема с заданиями для развития навыков. В схема сложность нарастает сверху вниз. В низу самые сложные задания.
Заданий много. Знание одной теории - этого мало. Теория подкреплённая практикой - лучшее обучение. Постарайтесь сделать некоторые задачи из моей выдуманной схемы. На картинке вы не увидите слова написать скрипт. Вам придётся писать скрипт для выполнения задания. В фреймворке для выполнения задания вам придётся либо использовать один роут, либо писать отдельную команду.