лучший учебник по python
Обзор книг по Python для новичков
Лучшие книги в 2021 году
(дополняется)
Коротко об обзоре
Мы купили и изучили все популярные книги по Python для новичков по 6 параметрам:
На каждую книгу мы записали видео-обзор, а также написали текстовую рецензию. Краткие выводы вы можете посмотреть ниже, а подробный отчет доступен по ссылке рядом с книгами.
Книги
Начинаем программировать на Python
Одна из лучших книг по Python для новичков в программировании. Автор рассказывает не только про язык, но и про программирование в целом.
В книге много блок-схем, подробные описания приводимого кода и большое количество интересных бизнес-задач, а также заданий на развитие навыков алгоритмирования и логического мышления.
Книге будет скучноватой для тех, кто уже умеет программировать на других языках.
Изучаем Python
Дружелюбная книга с простыми, но емкими объясненями для новичков в Python
В первой половине автор объясняет базовые возможности языка: начиная от переменных и типов данных и заканчивая классами и юнит-тестами.
Вторая часть книги посвящена проектной деятельности: вы научитесь создавать игры на PyGame, обрабатывать данные и строить графики с помощью matplotlib, а также напишете сайт на Django.
Отлично подойдет начинающим разработчикам, которые хотят не только освоить Python, но и научиться проектировать и программировать проекты.
Программируем на Python
Автор рассказывает о Python через написание небольших текстовых игр. В книге подробно описаны как основные возможности языка, так и много времени уделяется проектированию и написанию приложений с большим количеством строк кода.
Помимо текстовых игр в книге рассматриваются и графические игры на PyGame: с анимацией и звуком. А также оконные приложения.
Книга отлично подойдет новичкам без опыта программирования.
Изучаем программирование на Python
Отличная книга для тех, кто уже умеет программировать на других языках. Автор в непринужденной форме, со схемами и иллюстрациями, подробно объясняет основы Python, а также рассказывает как создавать сайты на Flask и работать с базами данных на примере MySQL
Также в книге рассматриваются продвинутые возможности языка: генераторы, декораторы, виртуальные окружения и тд.
Изучаем Python
Из-за сложности изложения книга плохо подходит новичкам, но она должна быть в библиотеке любого Python-разработчика, которых хочет стать профессионалом.
В книге глубоко раскрывается большая часть возможностей Python и приводятся реальные примеры применения языка. Однако оригинал был написан в 2013 году и некоторые современные возможности Python не рассматриваются.
Простой Python. Современный стиль программирования
В книге содержится много практических примеров и рассматриваются популярные и часто используемые Python-библиотеки и инструментов. Для новичков может быть сложно, но отлично подойдет программистам с небольшим опытом в—Python, а также разработчикам на других языках (PHP, Java и т.д.).
Особенно будет полезна если вы хотите развиваться в области web-программирования.
Python. Экспресс-курс
Книга для программистов на других языках, которые хотят быстро освоить Python. Первые две части посвящены основам Питона, а далее идет обзор популярных библиотек и инструментов, включая библиотеки для работы с файлами, сетями, регулярными выражениями и базами данных.
Завершается книга обзором Pandas и Jupiter.
Программирование на Python 3. Подробное руководство
Книга для профессиональных программистов, которые хотят быстро освоить Python. Будет сложной для новичков и разработчиков с небольшим опытом.
Первая часть книги раскрывает не только основные возможности Python, но и содержит много реальных практических примеров, а также описание стандартных модулей, что позволяет пользоваться ей как справочником.
Вторая часть служит комментариями к исходным кодам, которые идут к книге. Из-за этого текст сложно воспринимается и зачастую трудно понять, что автор имеет ввиду.
ТОП-15 книг по Python: от новичка до профессионала
Книги по Python для начального уровня
Эрик Мэтиз. Изучаем Python. Программирование игр, визуализация данных, веб-приложения
Руководство по языку Python c многочисленными примерами, которые обучают шаблонам чистого кода. После освоения базы языка обучение продолжается на рабочих проектах с использованием известных библиотек: 1) аркадная игра в стиле Space Invaders (библиотека pygame), 2) интерактивная визуализация данных (библиотеки matplotlib и plotly) и 3) веб-приложение на Django.
Отмеченные читателями достоинства книги:
Пол Бэрри. Изучаем программирование на Python
Читая эту книгу, вы без труда создадите собственное веб-приложение и узнаете, как управлять базами данных, обрабатывать исключения, пользоваться контекстными менеджерами, декораторами и генераторами.
Марк Лутц. Изучаем Python
Классический учебник Python со всесторонним глубоким введением в язык программирования и для новичков в программировнии, и для профи. Основана на популярном учебном курсе Лутца. Учит писать эффективный качественный код.
Билл Любанович. Простой Python. Современный стиль программирования
Возможно, простым в изучении Python делает не его понятный синтаксис или принципы, а большое количество доступной и простой литературы, рассчитанной на начинающих программистов. В этой книге вы узнаете об основах языка, о современных пакетах и библиотеках Python 3. Автор рассматривает такие сложные темы, как отладка, тестирование, повторное использование кода и многое другое. Объяснения автора перемешаны с примерами кода, которые помогут быстро освоить язык и перейти к программированию реальных приложений.
Книги для среднего уровня владения Python
Дэн Бейдер. Чистый Python. Тонкости программирования для профи
Словосочетание «для профи» – выдумка российских издателей. В оригинале книга называется Python tricks, то есть в ней собраны всякие «фишки», которые полезны тем, кто уже успел разобраться с основами языка и попрограммировать на Python. Для чтения достаточно базовых знаний языка. Особенно книга будет полезна тем, кто пришел в мир Python из других языков и некоторые мощные конструкции языка ускользнули от внимания.
Лучано Рамальо. Python. К вершинам мастерства
Простота Python помогает быстро повысить производительность труда, но зачастую она же означает, что вы используете далеко не все возможности языка. С помощью этого практического руководства вы узнаете, как писать эффективный и идиоматический код на Python, используя потрясающие, но зачастую незаслуженно забытые фичи Python.
Даг Хеллман. Стандартная библиотека Python 3. Справочник с примерами
Стандартная библиотека Python содержит сотни модулей, позволяющих взаимодействовать с операционной системой, интерпретатором и Интернетом. В этой книге Даг Хеллман описывает основные разделы библиотеки Python 3.x, сопровождая изложение материала компактными примерами исходного кода и результатами их выполнения. Приведенные примеры наглядно демонстрируют возможности каждого из модулей, предлагаемых библиотекой, и пригодны не только для изучения, но и для использования в реальном коде.
Бизли и Джонс. Python. Книга рецептов
Книга соответствует третьему стандарту Python. Приведены рецепты, охватывающие различные темы Python, а также задачи, имеющие широкий спектр областей применения. Каждый рецепт содержит примеры кода, которые можно использовать в своих проектах и обсуждение принципов работы данного решения.
Гарри Персиваль. Python. Разработка на основе тестирования
Книга демонстрирует преимущества методологии разработки через тестирование (TDD). Вы научитесь писать и выполнять тесты для создания любого фрагмента вашего приложения и затем разрабатывать минимальный объем программного кода, необходимого для прохождения этих тестов. Рассказано, как работать с различными инструментами и фреймворками, такими как Django, Selenium, Git, jQuery и Mock. Издание предназначено для разработчиков, которые уже освоили начальный уровень программирования на Python и хотят перейти на следующий.
Книги Python для продвинутого уровня и специальные разделы
Мигель Гринберг. Разработка веб-приложений с использованием Flask на языке Python
Пошаговые примеры создания законченного приложения на Flask. Автор книги Мигель Гринберг знакомит с основными функциональными возможностями фреймворка и показывает, как расширять приложения дополнительными веб-технологиями.
Андреас Мюллер и Сара Гвидо. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными
Полноцветная книга, источник информации для каждого, кто собирается использовать машинное обучение на практике. Подробно объясняются все этапы, необходимые для создания успешного проекта машинного обучения, с использованием языка Python и библиотек scikit-learn, NumPy и matplotlib. Авторы сосредоточили свое внимание исключительно на практических аспектах применения алгоритмов машинного обучения, оставив за рамками книги их математическое обоснование.
Дж. Вандер Плас. Python для сложных задач. Наука о данных и машинное обучение
Подробное руководство по вычислительным и статистическим методам для Data Science. Читатели, уже имеющие опыт программирования и желающие эффективно использовать Python в сфере Data Science, найдут в этой книге ответы на всевозможные вопросы, например: 1) как мне считать этот формат данных в мой скрипт? 2) Как преобразовать, очистить эти данные и манипулировать ими? 3) Как визуализировать данные такого типа? Как при помощи этих данных разобраться в ситуации, получить ответы на вопросы, построить статистические модели или реализовать машинное обучение?
Франсуа Шолле. Глубокое обучение на Python
Как упомянуто выше, книга Вандер Пласа не затрагивает темы нейронных сетей. Следующая книга подойдет для погружения в тему как нельзя лучше – ее написал Франсуа Шолле, один из создателей Keras – высокоуровневой оболочки для работы с нейросетевыми фреймворками.
Ян Эрик Солем. Программирование компьютерного зрения на Python
Если вы хотите разобраться в основах теории и алгоритмов компьютерного зрения, то эта книга – как раз то, что нужно. Вы узнаете о методах распознавания объектов, трехмерной реконструкции, обработке стереоизображений, дополненной реальности и других приложениях компьютерного зрения. Изложение сопровождается понятными примерами на Python. Объяснения даются без погружения в сухую теорию. Издание подойдет для студентов, исследователей и энтузиастов-любителей с базовыми знаниями математики и навыками программирования.
Хуан Нуньес-Иглесиас и Штефан Ван дер Уолт. Элегантный SciPy
На протяжении книги вы будете работать с примерами из обширной научной экосистемы Python, используя программный код, который иллюстрирует кратко очерченные принципы. Используя реальные научные данные, вы будете работать с практическими задачами вместе с SciPy, NumPy, pandas, scikit-image и другими библиотеками Python.
Если вы не увидели любимую книгу в списке, пожалуйста, не стесняйтесь порекомендовать ее в комментариях. Если вы читали перечисленные книги, дополните наши описания – какие преимущества и недостатки отметили бы вы.
Библиотека программиста любит язык Python. Вот три недавних публикации:
На Python создают прикладные приложения, пишут тесты и бэкенд веб-приложений, автоматизируют задачи в системном администрировании, его используют в нейронных сетях и анализе больших данных. Язык можно изучить самостоятельно, но на это придется потратить немало времени. Если вы хотите быстро понять основы программирования на Python, обратите внимание на онлайн-курс «Библиотеки программиста». За 30 уроков (15 теоретических и 15 практических занятий) под руководством практикующих экспертов вы не только изучите основы синтаксиса, но и освоите две интегрированные среды разработки (PyCharm и Jupyter Notebook), работу со словарями, парсинг веб-страниц, создание ботов для Telegram и Instagram, тестирование кода и даже анализ данных. Чтобы процесс обучения стал более интересным и комфортным, студенты получат от нас обратную связь. Кураторы и преподаватели курса ответят на все вопросы по теме лекций и практических занятий.
Мой топ книг о Python
Привет, Хабр! Я Слава, руководитель команды «Профессиональные инструменты» в Циане, член ПК Moscow Python Conf и член core-команды авторов в Яндекс.Практикуме.
Вместе с ребятами мы развиваем курс «Мидл python-разработчик», и сегодня я хочу поделиться моим личным списком книг, которые помогут вам структурировать и углубить свои знания о разработке на языке Python.
«Изучаем Python», Марк Лутц
Открывает топ книга Марка Лутца «Изучаем Python». Она занимает особое место в моей карьере — моё изучение Python проходило именно по ней. В студенчестве она казалась мне фундаментальным трудом — в книге почти полторы тысячи страниц!
Книга позволит войти в Python, что называется, с нуля. Почему люди программируют на Python? Кто использует Python сегодня? Что можно делать при помощи Python? Каковы сильные стороны Python? Ответы на эти вопросы позволят получить общее представление о языке.
Книга знакомит читателя с интерактивным режимом — командной строкой Python. Вы узнаете о том, как выводить текст в стандартный поток вывода, о модулях и об их импорте, об особенностях использования Python в Windows.
Дальше следует описание типов данных и особенностей работы с ними. Отдельными главами раскрывается работа со строками и словарями. Вы узнаете о ветвлении и циклах, итераторах, генераторах, функциях и их аргументах, о модулях и пакетах как способах организации кода. Затем следует введение в ООП: классы, наследование, перегрузка операторов, полиморфизм и метаклассы. Рассказывается об исключениях, о их роли в языке.
На мой взгляд, «Изучаем Python» очень плавно и всеобъемлюще знакомит читателя с миром Python, с одной стороны, не углубляясь в детали, с другой — давая всю полноту картины.
«Высокопроизводительный Python: практическое пособие для людей», Миша Горелик, Ян Освальд
Второе место топа занимает книга М. Горелика и Я. Освальда «Высокопроизводительный Python: практическое пособие для людей».
Книга позволит вам немного заглянуть под капот языка. Что вообще такое высокая производительность применительно к Python? Книга знакомит с виртуальной машиной Python, учит пользоваться инструментами профилирования для поиска узких мест в использовании процессорного времени, рассказывает о типах данных с точки зрения их внутреннего устройства.
Вы узнаете о многопоточности, асинхронном и мультипроцессорном исполнении, о том, как организовать кластерные вычисления и как потреблять меньше оперативной памяти. Для особо искушённых есть отдельная глава о компиляции кода на Python в C.
Ваш код может быть абсолютно верным, но работать недостаточно быстро. Чтобы ускорить его работу, вам нужно понять, как устроен язык, на котором вы пишете. Это практическое руководство поможет вам получить глубокое понимание реализации Python.
«Python. Разработка на основе тестирования», Гарри Персиваль
Следующая книга топа — «Python. Разработка на основе тестирования» Гарри Персиваля. Мне посчастливилось пообщаться с Гарри в рамках прошедшей Russian Python Week 2020. Говорят, британцы чопорные, со странным чувством юмора. Я думаю, что это стереотипы. Гарри много и смешно шутил, улыбался, рассказывал истории из жизни, был очень открыт. Лучше всего о своей книге Гарри расскажет сам.
Меня иногда спрашивают, как я пришёл к тому, чтобы написать эту книгу. Впервые я изучил Python по книге «Dive Into Python» — это было примерно в 2008-м. Я изучал словари, строки, узнавал различные фичи языка — все вот эти вещи. И где-то к 14-й главе впервые появились слова о юнит-тестировании. Там нужно было написать калькулятор римских чисел. И было написано, что гораздо легче это сделать, если вы пишете юнит-тесты. Я подумал: «О, это звучит круто!» Но это звучало как что-то, что вам следует делать. Как чистить зубы зубной нитью — хорошо бы, чтобы вы это делали каждый день. Разумеется, с таким посылом я проигнорировал этот совет полностью и сразу же о нём забыл. К тому моменту я программировал на Python уже три недели — зачем мне какое-то юнит-тестирование? У меня и так дела идут хорошо! Если я напишу небольшое Django-приложение, несколько веб-страниц — без проблем, я могу всё это проверить. И знаете что? У меня действительно было всё отлично. Поначалу.
Когда моё приложение было небольшим, было очень просто проверить руками, работает оно или нет. Где-то на второй неделе разработки у меня уже было восемь различных модулей, 12 веб-страниц, появилось множественное наследование веб-форм, и перед очередным изменением я стал рассуждать так.
– Я внесу изменения сюда. О, нет, это поломает мне вон тот класс. Лучше изменю здесь. Хотя… есть риск, что перестанет работать веб-форма. Лучше вот сюда. Да, точно, сюда! Ах, черт, всё равно сломалось!
И довольно быстро даже крошечное изменение стало для меня очень болезненным. Я не представлял, что на самом деле от чего зависит, страх вносить изменения сковал меня, я не мог ничего отрефакторить — мой код превратился в лапшу.
Когда я пришёл на свою первую работу, там практиковали разработку через тестирование и экстремальное программирование. И я был уже готов усвоить свой урок, но всё ещё много жаловался: «Юнит-тесты и функциональные тесты? Зачем так много тестов?» Разработка была примерно такой: ты делаешь микроизменение — и запускаешь тест. Делаешь ещё микроизменение — снова запускаешь тест. И так всё время. Я говорил: «Вы серьёзно? Неужели мы не можем пропустить этот шаг, мы сэкономим время!» На что мне спокойно говорили: «Нет-нет, Гарри, продолжай делать так». Я жаловался, я ныл, это было тяжело, это занимало много времени. Но! Через какое-то время мне открылась вся прелесть такого подхода! Я понял, что до этого делал что-то не так, и что вот он — правильный путь. Спустя пару лет я решил написать книгу об этом.
Разработка на основе тестирования — не естественная вещь; чтобы проникнуться, нужна практика. В книге я как раз и пытаюсь дать немного практики.
Книга позволит вам переосмыслить вашу работу и подход к ней, буквально перевернёт сознание. Многие рутинные вещи обретут новый смысл, к ним появится интерес. Качество тестов заметно улучшится, и это неизбежно повлияет на качество кода и архитектуру приложения.
«Architecture Patterns with Python: Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices», Гарри Персиваль, Боб Грегори
Я не мог не поговорить с Гарри Персивалем о новой книге, над которой он работает в соавторстве с Бобом Грегори, — «Архитектурные паттерны в Python». Книгу можно почитать бесплатно на сайте www.cosmicpython.com. Гарри продолжает.
В конце первой книги я стал говорить о разных типах тестов. В проекте могут быть низкоуровневые юнит-тесты, интеграционные тесты, где мы проверяем интеграцию с API, или с файловой системой, или с базой данных, а также высокоуровневые тесты — e2e-тесты, функциональные тесты; возможно, тесты на всю систему целиком. Я начал рассуждать о правильном балансе, как много каких тестов должно быть, — об идее пирамиды тестирования. Я также рассуждал о цене, которую нужно за тесты платить: некоторые тесты проходят очень быстро, некоторые медленно, некоторые более надёжные, некоторые менее. Оказалось, что это тяжело — найти правильный баланс скорости тестов и уверенности в том, что они надёжные.
Новая книга пытается дать ответ на этот вопрос. Она о выборе архитектурных шаблонов, о способах структурировать ваш код, которые позволят получить максимальное покрытие юнит-тестами и минимальное количество тяжёлых e2e- и интеграционных тестов. И достигается это как раз хорошим дизайном вашего приложения. Это непросто.
Мне невероятно повезло: я встретил своего коллегу Боба, который оказался экспертом в вопросе. Он стал соавтором книги и рассказал мне о том, как он решает эту задачу. Мы транслировали несколько хороших идей из мира Java и C# (представителей энтерпрайз-мира) в мир Python. Разумеется, мы не просто вставляли код Java в Python (это было бы ужасно), мы пытались ответить на вопрос, как это лучше всего делать в стиле pythonic way.
Основной вопрос, на который я пытаюсь дать ответ в этой книге, — каким образом архитектура приложения может помочь нам получить тесты наивысшего качества.
Книгу стоит читать как продолжение «Python. Разработка на основе тестирования». Если вам понравилась первая книга, а идеи, рассказанные там, нашли у вас отклик, то вторая книга ответит на все ваши вопросы и поможет воплотить подход в жизнь — на работе или в вашем личном проекте.
«Python. К вершинам мастерства», Лучано Рамальо
Замыкает сегодняшний топ книга «Python. К вершинам мастерства» великолепного Лучано Рамальо. Книга стала очень успешной и была переведена на восемь языков.
Если попытаться одной строкой раскрыть, о чём эта книга, то я бы сказал так: она о том, как использовать Python 3 наилучшим возможным способом.
Лучано 66 лет, он живёт и работает в Сан-Паулу в Бразилии. Мне посчастливилось пообщаться с ним в рамках прошедшей Russian Python Week 2020. Несмотря на возраст, Лучано показался мне очень живым, открытым и жизнерадостным собеседником.
Сейчас Лучано работает над вторым изданием книги. Он поделился, что основным изменением в новой книге будет глава «Введение в Type Hints» — она ещё не закончена, но уже сейчас в ней 60 страниц, и это будет самая большая глава книги!
Однажды Лучано позвали играть в волейбол.
— Я не умею играть в волейбол, — сказал Лучано.
— Да никто понятия не имеет, как играть в волейбол, нам просто нужен ещё один человек, чтобы сформировать команду, — ответили ребята.
В команде только капитан был профессионалом. Он объяснил: игрок с дальней части поля передаёт мяч игроку в центре, он делает передачу игроку под сеткой, который в свою очередь отправляет мяч на сторону противника. Это Best Practice, так играют Pro.
Игра началась, команда действовала по инструкции и со временем начала проигрывать.
Реальность была такова, что никто за исключением капитана не умел играть достаточно хорошо, и часто при передачах команда теряла мяч — он падал на землю, и ход переходил к противнику.
Лучано собрал команду.
— Давайте перестанем притворяться, что мы Pro — на самом деле мы не умеем профессионально играть! Давайте сразу закидывать мяч на сторону противника без передач внутри — так, как мы делали когда-то давно в школе!
И это сработало! Это не было Best Practice, но эта тактика лучше всего подходила к ситуации и для команды, которая у них была. И в конце концов это привело к победе.
Эта небольшая история показательна и для мира Python. Нужно понимать, что Python используют очень много людей, которые не являются профессиональными разработчиками — это физики, биологи, социологи и другие. Нужно, чтобы инструмент не требовал от них выполнения Best Practice, а позволял решать насущную задачу. И Python это позволяет.
Лучано очень любит программировать. Он начал изучать Python 20 лет назад и с тех пор обучил ему многих других людей. Лучано обнаружил, что поскольку Python очень лёгок для обучения, иногда люди даже не читают tutorial полностью. Из-за этого иногда, читая чужой код, можно обнаружить, что человек пишет Java-код на Python или Ruby-код на Python, то есть пытается повторить на другом языке то, к чему он привык. Лучано создал курс «Python для тех, кто знает Python». После этого он много выступал на тему того, как делать те или иные вещи в стиле pythonic way. Так и родилась книга.
Книга стала очень успешной и в мире, и для самого Лучано: он получил работу в ThoughtWorks. Он очень хотел там работать, но не решался отправлять к ним своё резюме из-за высоких требований к кандидатам. После того как книга вышла в свет, они сами к нему пришли. Сегодня ThoughtWorks поддерживают Лучано как публичного спикера точно так же, как поддерживают Мартина Фаулера.
Русское название для книги предложил Python core developer Юрий Селиванов. Лучано считает, что это хороший перевод его книги.
Если вы серьёзно настроены построить карьеру Python-разработчика, то эта книга для вас.
Зачем читать книги
Я глубоко убеждён, что читать книги необходимо людям всех возрастов. Не только литературу профессиональную, но и художественную. Книги действуют на человека, как точильный камень действует на саблю, — они придают знаниям остроту.
Стивен Р. Кови в своей книге «7 навыков высокоэффективных людей» называет это «затачиванием пилы». Этот навык — ваши личные ресурсы и средства. Он поддерживает и развивает самый ценный ваш ресурс — вас самих.
«Как ты узнаёшь новое?» — вопрос, который обычно я задаю кандидатам на собеседованиях. Ответ на него для меня действительно важен, и тут мне недостаточно услышать про чтение статей, просмотр видео на ютубе или прослушивание подкастов. Только книги придают знаниям структуру, без разрывов и со всей полнотой контекста проводя читателя к просветлению.
Перефразируя Антона Птушкина, скажу: «Читайте, оно того стоит!»