книги по архитектуре приложений python
57 отборных репозиториев для всех разработчиков Python
Специально к старту нового потока курса «Python для веб-разработки» представляем подборку из 57 репозиториев, которые будут полезны как начинающему, так и опытному разработчику: это репозитории с ответами на вопросы собеседований, репозитории с книгами, небольшие, но полезные консольные инструменты и проекты, которые вдохновят вас написать красивый, работающий и полезный код.
Эксперт вы или начинающий разработчик — не важно. В любом случае вы задаете себе такие вопросы:
Почему Python?
Разработчики со всего мира выбрали Python основным языком многих проектов. Python — это простой в использовании язык. Он универсален, у него большая коллекция пакетов, которая удерживает и привлекает новых разработчиков. Немного фактов:
Итак, список
С этими репозиториями я сталкивалась лично. Они помогают мне в работе с кодом: я у них учусь, восхищаюсь ими, вдохновляюсь ими, нахожу их полезными в чём-то ином. Этот список даст вам преимущество в смысле кода и повысит вашу ценность как специалиста. Я разобью подборку на такие категории:
1. Книги.
Hitchhiker’s Guide to Python от Real Python (21.9к ★)
Эта книга — руководство по установке, настройке и применению Python.
Python Machine Learning от Sebastian Raschka и Vahid Mirjalili (1.6к ★)
Блокноты с кодом из классических учебников ML.
Cosmic Python (1.3к ★)
Книга об архитектуре приложений на Python в смысле управления сложностью.
Byte of Python от Swaroop C H (1.3к ★)
Книга для начинающих. Прочитайте ее, если программирования для вас неизвестная область.
2. Собеседования.
Cracking the Coding Interview от Bogdan (140 ★)
Решения вопросов с собеседований, представленных в шестом издании «Cracking the Coding Interview» (CTCI).
Interactive Coding Challenges от Donne Martin (21.2к ★)
Более 120 интерактивных задач по кодированию Python (алгоритмы и структуры данных) — поставляется с картами программы для запоминания Anki.
Python Interview Questions от Ian Stapleton Cordasco (108 ★)
Список вопросов, которые могут быть заданы работодателями Python
300 Python Interview Questions от Learning Zone (64 ★ы)
Более 300 вопросов на собеседовании по Python.
3. Обучение.
The Algorithms/Python от The Algorithms (91.5к ★)
Все алгоритмы из компьютерной науки на Python. Отлично подходит для технических собеседований.
Awesome Python от Vinta Chen (88.7к ★)
Отобранный список потрясающих фреймворков, библиотек, программного обеспечения и ресурсов с кодом, охватывающим практически все, для чего используется Python.
Full Speed Python от João Ventura (2.9к ★)
Это книга для самообразования. Она призвана научить Python через практику.
Python Robotics от Atsushi Sakai (10.6к ★)
Примеры кода на Python для робототехники.
Learn Python 3 от Jerry Pussinen (2.8к ★)
Блокноты Jupyter Notebook для преподавания и обучения Python 3.
Learn Python от Oleksii Trekhleb (5.3к ★)
Песочница и список трюков Python. Коллекция скриптов Python, разделенная по темам и содержащая примеры кода с пояснениями.
Python Reference от Sebastian Raschka (2.5к ★)
Полезные функции, учебники и другие связанные с Python вещи.
Manim от 3b1b (27.8к ★)
Анимационный движок для создания объяснительных видеоматериалов по математике. В основном он используется при программном создании анимации.
NLTK от NLTK (9.4к ★]
Коллекция библиотек и инструментов с открытым исходным кодом для обработки естественного языка.
Free programming books от Free Ebook Foundation (164к ★)
Бесплатные книги по программированию. Есть раздел Python с большим количеством бесплатных электронных книг.
100 Days of ML Code от Avik Jain (30.5к ★)
Рабочие листы с пошаговыми описаниями, которые знакомят пользователей с основами машинного обучения. Содержит ссылки на примеры кода, наборы данных и полезные видео, объясняющие ключевые математические понятия.
D2L от Dive Into Deep Learning (8к ★)
Интерактивный углубленный учебник с кодом, математикой и дискуссиями. Работа идет с несколькими фреймворками. Принято в 140 университетах и 35 странах.
Models от TensorFlow (67.1к ★)
Репозиторий с открытым исходным кодом, где вы найдете множество связанных с глубоким обучением библиотек и моделей.
TensorFlow examples от Aymeric Damien (39.2к ★)
Справочник для всех, кто начинает работать с фреймворком машинного обучения Google TensorFlow. Содержит множество примеров кода, демонстрирующих все, начиная от базовых операций TensorFlow и заканчивая построением нейронных сетей.
Project Based Learning от Tu V. Tran (40к ★)
Список ориентированных на проекты учебников по программированию, в том числе по созданию веб-скреперов, приложений, ботов и т.д.
Coding Problems от Meto Trajkovski (1.4к ★)
Решения различных проблем кодирования/алгоритмики и множество полезных ресурсов для изучения алгоритмов и структур данных.
Крутые проекты
Airflow от Apache (19.1к ★)
Платформа для разработки программ, планирования и мониторинга рабочих процессов.
Hug от Hug API (6.4к ★)
Цель Hug — сделать разработку API на Python как можно проще.
Rebound от Jonathan Shobrook (3.4к ★)
Инструмент командной строки, при возникновении исключения немедленно показывающий результат со Stack Overflow — [прим. перев. — сайта с ответами на вопросы по программированию].
You Get от Mort Yao (36.9к ★)
Крошечная утилита командной строки для загрузки медиаконтента (видео, аудио, изображений) из интернета.
Snallygaster от Hanno Böck (1.7к ★)
Инструмент сканирования на предмет скрытых файлов на серверах HTTP.
DeepFaceLab от iperov (21.1к ★)
Инструмент, который может создавать изображения и видео DeepFake, позволяя вам делать много забавных вещей, например, удаление и замена лиц.
Пример обмена лицами.
Photon от Somdev Sangwan (7.2к ★)
Мощный и простой в использовании веб-скрепер. Он следует рекомендациям из OSINT — методологии, которая делают возможным сбор и анализ информации, полученной из открытых или общедоступных источников.
ZeroNet от ZeroNet (16.2к ★)
Децентрализованные веб-сайты с помощью криптовалюты Bitcoin в сети BitTorrent.
Gym от OpenAI (22.6к ★)
Инструментарий для разработки и сравнения алгоритмов обучения с подкреплением.
Detectron от Facebook Research (23.8к ★)
Исследовательская платформа Facebook AI Research (исследования искусственного интеллекта Facebook) для исследования обнаружения объектов, реализующая популярные алгоритмы, такие как Mask R-CNN и RetinaNet.
Magenta от Magenta (15.9к ★)
Исследовательский проект, исследующий роль машинного обучения в создании произведений искусства и музыки. В первую очередь это связано с разработкой новых алгоритмов глубокого обучения и обучением с подкреплением для написания песен, создания изображений, рисунков и других материалов.
Mopidy от Mopidy (6.7к ★)
Расширяемый музыкальный сервер — он воспроизводит музыку с локального диска, Spotify, SoundCloud, Google Play Music и других сервисов.
Face Recognition от Adam Geitgey (37.1к ★)
Распознавайте и управляйте лицами на Python или из командной строки с помощью самой простой в мире библиотеки распознавания лиц.
Определение изображения Джо Байдена с помощью инструмента распознавания лиц.
Wagtail от Wagtail (9.6к ★)
Система управления контентом на Django, ориентированная на гибкость и впечатления пользователей.
YAPF от Google (11.2к ★)
Берет код и переформатирует его в лучший формат в соответствии с вашим руководством по стилю, даже если первоначально код не нарушал руководство.
Zulip (12.8к ★)
Мощное приложение для группового чата с открытым исходным кодом, которое сочетает в себе незамедлительность чата в реальном времени с преимуществами продуктивности тредовых бесед.
4. Фреймворки, модули, инструменты.
Dash от Plotly (13.3к ★)
Фреймворк Python для создания аналитических веб-приложений без JavaScript.
Приложение-карта с указанием дат открытия магазинов Walmart. Изображение на Plotly.
Django (53.5к ★)
Django — это веб-фреймворк Python высокого уровня, который способствует быстрой разработке и чистому, прагматичному дизайну.
scikit-learn от scikit-learn (42.9к ★)
Модуль Python для машинного обучения, созданный на основе SciPy.
Falcon от Falconry (8.1к ★)
Серьезный, минималистичный фреймворк REST-сервисов и серверной части приложений для разработчиков Python с акцентом на надежность, корректность и производительность в масштабе.
Flask от Pallets (52.8к ★)
Flask — это легкий WSGI фреймворк для веб-приложений. Он разработан, чтобы сделать начало работы быстрым и легким, есть возможность масштабирования до сложного приложения.
Keras от Keras Team (2.1к ★)
Высокоуровневый API нейронных сетей, написанный на Python и способный работать поверх TensorFlow, CNTK или Theano. Он разработан с упором на возможность быстро экспериментировать.
Kivy от Kivy (12.1к ★)
Кросс-платформенная среда Python с открытым исходным кодом для разработки приложений, использующих инновационные пользовательские интерфейсы с поддержкой мультитач.
NumPy от NumPy (15.4к ★)
Библиотека Python с открытым исходным кодом для работы с n-мерными массивами, она предлагает обширный набор инструментов для численных операций для достижения повышения производительности и сокращения времени выполнения.
pandas от pandas (27.2к ★)
Гибкая и мощная библиотека для анализа и обработки данных для Python, предоставляющая структуры маркированных данных.
Requests от Python Software Foundation (43.9к ★)
Библиотека Python, которая позволяет отправлять запросы HTTP/1.1, добавлять заголовки, данные форм, составные файлы и устанавливать параметры с помощью простых словарей Python.
SciPy от SciPy (7.7к ★)
Мультидоменная библиотека Python с открытым исходным кодом для Data Science, которая охватывает естественные науки, математику и инженерию.
Seaborn от Michael Waskom (7.8к ★)
Библиотека для визуализаций, основанная на Matplotlib и предлагающая дополнительный уровень настройки графиков и диаграмм, созданных Matplotlib.
Statsmodels от Statsmodels (5.7к ★)
Статистический модуль, предлагающий различные классы и функции для множества статистических моделей, делающий возможным статистический анализ и исследование данных.
Theano от Theano (9.3к ★)
Theano — это библиотека, которая позволяет эффективно определять, оптимизировать и оценивать математические выражения, включающие многомерные массивы.
Tornado от Tornado Web (19.6к ★)
Веб-фреймворк Python и библиотека асинхронных сетей, первоначально разработанные FriendFeed.
Visdom от Facebook Research (7.7к ★)
Гибкий инструмент для создания, организации и совместного использования визуализаций меняющихся, насыщенных данных. Поддерживает Torch и Numpy.
Matplotlib от Matplotlib (12.6к ★)
Библиотека для создания двухмерных графиков, позволяющая получать пригодные к публикации изображения в различных форматах твердых копий и в интерактивных средах на разных платформах.
Заключение
Я надеюсь, что вы найдете эти репозитории такими же полезными и вдохновляющими, как и я, и воспользуетесь ими для расширения своих навыков и знаний. Приятного программирования!
Подборка книг о языке Python для программистов любого уровня
Авторизуйтесь
Подборка книг о языке Python для программистов любого уровня
В этой подборке мы собрали самые полезные книги о языке программирования Python, которые помогут в изучении как начинающим, так и опытным программистам.
Здесь вы найдете материалы для создания приложений, а также учебные пособия, которые помогут вам ознакомиться с инструментарием, освоить базы данных и повысить свои профессиональные навыки.
Разделы:
Для начинающих
Learning Python
Пособие представляет собой отличное и признанное во всем мире введение в язык Python. Она быстро научит вас писать эффективный высококачественный код. Подойдёт как начинающим программистам, так и тем, у кого уже есть опыт использования других языков. Помимо теории в книге есть тесты, упражнения и полезные иллюстрации — всё, что нужно для изучения Python 2 и 3. Кроме того, вы познакомитесь с некоторыми продвинутыми фичами языка, которые освоены еще не многими специалистами.
Изучаем программирование на Python
Python является мультипарадигменным кроссплатформенным языком программирования, который в последнее время стал особенно популярен на Западе и в таких крупных компаниях, как Google, Apple и Microsoft. Благодаря своему минималистичному синтаксису и мощному ядру он является одним из наиболее производительных и хорошо читаемых ЯП в мире.
Прочитав эту книгу, вы быстро и в увлекательной форме изучите основы языка, затем перейдете к обработке исключений, веб-разработке, работе с SQL, обработке данных и Google App Engine. Также вы узнаете, как писать приложения под Android и многое другое о силе, которую дарует вам Python. Подробнее об изучении Python для начинающих.
Learn Python the Hard Way
Еще одна признанная книга по Python, в которой вы найдёте 52 специально подобранных упражнения для изучения языка. Разобрав их, вы поймёте, как устроен язык, как правильно писать программы и как исправлять свои собственные ошибки. Рассматриваются следующие темы:
Python Programming: An Introduction to Computer Science
Эта книга предназначена для начинающих изучать программирование. В ней используется весьма стандартный подход к обучению, но нестандартный язык 🙂 Стоит отметить, что это скорее книга об основах программирования, чем о Python.
Python. Программирование для начинающих
Книга «Программирование на Python для начинающих» — отличный вариант для старта. Она является подробным руководством, написанным специально для новичков, желающих освоить данный язык. Познакомившись с основами, вы перейдете к объектно-ориентированному программированию и созданию CGI-сценариев для обработки данных веб-форм, научитесь создавать графические приложения с оконным интерфейсом и распространять их на другие устройства.
С помощью данного учебника вы сможете пройти все ступени от установки интерпретатора до запуска и отладки полноценных приложений.
Python Crash Course
«Python Crash Course» — это емкое повествование о языке Python. В первой половине книги вы познакомитесь с основными понятиями языка, такими как списки, словари, классы и циклы, и научитесь писать чистый и хорошо читаемый код. Кроме того, вы узнаете, как тестировать свои программы. Во второй половине книги вам будет предложено применить знания на практике, написав 3 проекта: аркадную игру наподобие Space Invaders, приложение для визуализации данных и простое веб-приложение.
Python Pocket Reference
Это очень удобная карманная шпаргалка, созданная для Python 3.4 и 2.7. В ней вы найдёте самую необходимую информацию по различным аспектам языка. Затронутые темы:
Python Practice Book
Книга для изучения Python с кучей практических примеров.
Практические примеры можно почерпнуть и в нашей рубрике материалов по Python. Например, читайте наше руководство по самостоятельной реализации функции zip.
Автостопом по Python
Цель данной книги — познакомить читателя с популярными инструментами и принятыми в open source сообществе различными рекомендациями по написанию кода. Основы языка Python в этой книге не рассматриваются, ведь она совсем не про это.
Первая часть книги содержит описание различных текстовых редакторов и сред разработки, которые можно использовать для написания Python-программ, а также множества видов интерпретаторов для различных систем. Во второй части книги рассказывается о принятом в сообществе, работающем с открытым исходным кодом, стиле написания кода. Третья часть книги содержит краткий обзор множества библиотек для Python, которые используются в большинстве open source проектов.
Программируем на Python
Главное отличие данной книги от всех других пособий для начинающих изучать Python в том, что параллельно с изучением теоретического материала читатель знакомится с реализацией проектов различных игр. Таким образом будущий программист сможет лучше понять, как те или иные возможности языка используются в реальных проектах.
В книге рассматриваются основы как языка Python, так и программирования в целом. Отличная книга для первого знакомства с этим языком.
Для продвинутых
Python Cookbook
Если вы хотите перейти на Python 3 или правильно обновить старый код, написанный на Python 2, то эта книга для вас. А еще для вас — наше руководство по переводу проекта с Python 2 на Python 3 без боли.
В книге вы найдёте много практических примеров на Python 3.3, каждый из которых подробно разобран. Рассматриваются следующие темы:
Test-Driven Web Development with Python
В ходе чтения этой книги вы разработаете веб-приложение, параллельно изучив практические преимущества разработки через тестирование. Вы разберёте такие темы, как интеграция баз данных, JS-инструменты для автоматизации, NoSQL, веб-сокеты и асинхронное программирование.
Кстати, рекомендуем вам почитать нашу ознакомительную статью по TDD.
Python 3 и PyQt 5. Разработка приложений
В книге подробно рассматривается Python 3: типы данных, операторы, условия, циклы, регулярные выражения, функции, инструменты объектно-ориентированного программирования, работа с файлами и каталогами, часто используемые модули стандартной библиотеки. Кроме того, в книге также уделено внимание базе данных SQLite, интерфейсу доступа к базе и способам получения данных из Интернета.
Вторая часть книги целиком посвящена библиотеке PyQt 5, позволяющей создавать приложения с графическим интерфейсом на языке Python. Здесь рассмотрены средства для обработки сигналов и событий, управления свойствами окна, разработки многопоточных приложений, описаны основные компоненты (кнопки, текстовые поля, списки, таблицы, меню, панели инструментов и др.), варианты их размещения внутри окна, инструменты для работы с базами данных, мультимедиа, печати документов и экспорта их в формате Adobe PDF.
High Performance Python
Может, ваши программы на Pyhton и работают, но они могут работать быстрее. Это практическое руководство поможет вам лучше понять устройство языка, и вы научитесь находить в коде узкие места и повышать скорость работы программ, работающих с большими объёмами данных.
Django. Подробное руководство
Как понятно из названия, цель данной книги — дать наиболее полное понятие фреймворку для разработки веб-приложений Django. Из-за того, что книга была выпущена на русском языке в далеком 2010 году, в ней рассматривается устаревшая версия фреймворка, Django 1.1. Но все равно книга рекомендуется к прочтению, поскольку в ней можно почерпнуть основы Django. А хороших книг по этому фреймворку на русском языке, кроме этой, практически нет.
Авторы Адриан Головатый и Джейкоб Каплан-Мосс подробно рассматривают компоненты фреймворка. В книге достаточно много материала по разработке интернет-ресурсов на Django – от основ до таких специальных тем, как генерация PDF и RSS, безопасность, кэширование и интернационализация. Перед прочтением книги рекомендуется освоить базовые понятия веб-разработки.
Разработка игр
Making Games with Python & Pygame
«Making Games with Python & Pygame» — это книга, которая посвящена библиотеке для разработки игр Pygame. В каждой главе даются полный исходный код новой игры и подробные объяснения использованных принципов разработки
Invent Your Own Computer Games with Python
Книга «Invent Your Own Computer Games with Python» научит вас программировать на Python на примере разработки игр. В поздних игр рассматривается создание двумерных игр при помощи библиотеки Pygame. Вы научитесь:
Анализ данных и машинное обучение
Think Complexity
Прокачайте свои навыки, поработав со структурами данных и алгоритмами в новом ключе — научном. Изучите примеры сложных систем с понятными объяснениями. В книге предлагается:
Python для сложных задач. Наука о данных и машинное обучение
В данной книге язык Python рассматривается как инструмент для решения задач, требующих вычислений с обработкой больших объемов данных. Цель данной книги — научить читателя применять стек инструментов исследования данных языка Python для эффективного хранения, манипуляции и понимания данных.
Каждая глава книги посвящена определенной библиотеке для работы с большими данными. В первой главе рассматривается IPython и Jupyter, во второй — NumPy, в третьей — Pandas. Четвертая глава содержит материал о Matplotlib, пятая — о Scikit-Learn.
Python for Data Analysis
«Python for Data Analysis» повествует о всевозможных способах обработки данных. Книга является отличным вводным материалом в области научных вычислений. Вот с чем вы познакомитесь:
Вы также научитесь измерять данные на временных промежутках и решать аналитические задачи во многих сферах науки.
Mastering Python for Data Science
В этой книге предлагается изучить различные методы анализа данных при помощи Python. Вот чему вы научитесь после прочтения:
Natural Language Processing with Python
Это пособие понятным языком объясняет принципы обработки естественных языков. Вы научитесь писать программы, способные обрабатывать большие наборы неструктурированных текстов, получите доступ к обширным наборам данных и познакомитесь с основными алгоритмами.
Прочее
Automate the Boring Stuff with Python
Если вы когда-нибудь часами переименовывали файлы или обновляли сотни ячеек таблицы, то знаете, как это выматывает. Хотите научиться автоматизировать такие процессы? В книге «Automate the Boring Stuff with Python» рассказывается о том, как создавать программы, которые будут решать различные рутинные задачи за минуты. После прочтения вы научитесь автоматизировать следующие процессы:
Python for Biologists
Отличная книга с минимальным порогом вхождения. Рассказывает больше о биологии, нежели о языке, но всем работающим в этой сфере она точно пригодится. Снабжена большим количеством разобранных примеров различной сложности.
Programming the Raspberry Pi
В этой книге рассказывается об основах программирования системы Raspberry Pi. Автор уже составил для вас множество скриптов, а также предоставил доходчивое и подробное руководство по созданию своих. Помимо обычных упражнений вам предлагается реализовать три проекта: игру «Виселица», LED-часы и программно управляемого робота.
Hacking Secret Ciphers with Python
«Hacking Secret Ciphers with Python» не только рассказывает об истории существующих шифров, но и учит создавать собственные программы для шифрования и взлома шифров. Отличная книга для изучения основ криптографии.
Делитесь полезными книгами по Python в комментариях!