Книг для вивчення Python — сотні. Для початківців і розробників із досвідом, які коротко пояснюють ключові концепції в картинках або докладно занурюються в основи на 1000 сторінок, розповідають мідлам про архітектурні патерни або дітям — що таке взагалі програмування. Ми склали підбірку з 15 найкращих книг для різних професій та ґрейдів та описали їхні особливості, переваги та недоліки.
Ілля Кошмак раніше навчався на Python Developer, комбінуючи курси, книги різних рівнів складності та інші ресурси. Згодом він захопився аналітикою, а зараз працює на позиції Marketing Analyst в OBRIO з екосистеми Genesis та проходить курс із Data Science від Мічиганського університету. Вивчивши Python і застосовуючи його в різних сферах, він поділився порадами із самонавчання, розповів, як практикуватися, на що звернути увагу розробникам і аналітикам, а також прокоментував свої улюблені книги з Python.
> Вивчаємо Python, Марк Лутц
> Пришвидшений курс Python. Практичний, проєктно-орієнтований вступ до програмування, Ерік Маттес
> A Byte of Python, Swaroop Chitlu
> Програмуємо на Python, Майкл Доусон
> Починаємо програмувати на Python, Тоні Геддіс
> Python без проблем: розв'язуємо реальні завдання та пишемо корисний код, Даніель Зінгаро
> Head First. Python, Пол Беррі
> Чистий Python. Тонкощі програмування для профі, Ден Бейдер
> Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People, Aditya Y. Bhargava
> Learn Python The Hard Way, Zed A. Shaw
> Книга рецептів Python 3, David Beazley
> Python Essential Reference, David Beazley
> Robust Python: Write Clean and Maintainable Code, Patrick Viafore
> Beyond the Basic Stuff with Python: Best Practices for Writing Clean Code, Al Sweigart
> Fluent Python: Clear, Concise, and Effective Programming, Luciano Ramalho
> Як вивчати Python за книжками
Книги з Python для початківців
МАРК ЛУТЦ
Англ: Learning Python, 5th Edition, Mark Lutz
Книга розрахована на широку аудиторію, містить базові концепції та основи мови Python. Підходить тим, хто починає з нуля або вже проходив курси та відеоуроки, проте не має ґрунтовної бази. Книга складається з двох томів: перший розповідає про синтаксис та базові можливості мови, другий — про ООП.
«Марк Лутц починає з базових речей для тих, хто взагалі не розуміє, що таке програмування, і доходить до складних концепцій, таких як метакласи, декоратори, багатопоточність. Близько третини книги займають приклади коду, що допомагає глибше зануритися і зрозуміти викладений матеріал. Саме з цієї книги я почав вивчати Python. У ній даються фундаментальні основи, які допомагають впорядкувати отримані раніше фрагменти знань, не просто знати як вирішити певні завдання, а розуміти, як це працює. Тим, хто вивчає Python для аналітики, рекомендую обмежитися першим томом», — ділиться Ілля Кошмак.
Переваги:
ґрунтовна книга з максимальним охопленням основ, що допомагають засвоїти філософію мови;
у кінці кожного розділу наведене самарі та домашнє завдання: питання та практичні вправи;
книга регулярно оновлюється і перевидається, містить актуальну інформацію.
Недоліки:
виклад матеріалу може здаватися сухим і складним для людей, що починають з нуля;
книга містить понад 1000 сторінок, досить громіздка та не дуже зручна у користуванні.
ЕРІК МАТТЕС
Англ: Python Crash Course: A Hands-On, Project-Based Introduction to Programming, Eric Matthes
Книга призначена для тих, хто тільки починає вивчати Python, передбачає швидке охоплення базових концепцій та відпрацювання на практиці. Матеріал представлений просто і доступно. Складається з двох частин. У першій представлені основи програмування, потрібні для написання програм на Python (види та колекції даних, написання функцій та класів, які можна перевикористовувати, написання чистого коду, як працювати з циклами та робити програми інтерактивними, тестувати код тощо). У другій частині є три практичних проєкти. Читачу пропонують створити аркадну гру у стилі Space Invaders, працювати з візуалізацією різних наборів даних та створити невелику вебпрограму Learning Log — журнал ідей та концепцій.
Переваги:
Короткий вступ;
наявність трьох практичних проєктів.
Недоліки:
перша частина містить занадто прості базові приклади, а друга частина — на рівень вищу практику;
деякі концепції занадто спрощені та поверхневі;
наведені приклади — на фреймворку Django 2, книга дещо застаріла.
SWAROOP CHITLU
A Byte of Python — посібник з мови Python з легким та спрощеним вступом до основ програмування. Книга орієнтована на початківців та надає чіткі пояснення базових концепцій, не перевантажуючи читача складними деталями. Охоплює основи Python, включаючи змінні, умови, цикли, функції та обробку помилок. Автор пропонує практичний підхід, де читачі навчаються шляхом написання коду та розв'язання завдань.
Переваги:
легкий та доступний старт для початківців;
практичний підхід.
Недоліки:
може не вистачати деталей та глибини;
не розкриває деяких важливих тем та практик програмування.
МАЙКЛ ДОУСОН
Англ: Python Programming for the Absolute Beginner, Michael Dawson
Книга Майкла Доусона створена як вступ для початківців у програмуванні. Автор використовує графічне програмування та створення ігор як основний засіб навчання.
Переваги:
підходить для абсолютних початківців;
графічне програмування та створення ігор, багато практичних завдань;
підтримка версії Python 3.
Недоліки:
може виглядати надто спрощеним;
фокус на ігри, що може бути нерелевантним для інших завдань.
ТОНІ ГЕДДІС
Англ: Starting Out with Python, Tony Gaddis
Книга відрізняється своєю простотою та легкістю, що робить програмування доступним для новачків. Автор структуровано та зрозуміло пояснює основні концепції Python, пропонує багато вправ та завдань для практики.
Переваги:
легкі, зрозумілі приклади та пояснення;
велика кількість вправ та завдань для відпрацювання навичок.
Недоліки:
Фокус на початковому рівні
ДАНІЕЛЬ ЗІНГАРО
Англ: Learn to Code by Solving Problems: A Python Programming Primer, Daniel Zingaro
Книга пропонує вивчати програмування через розвʼязання реальних завдань. Книга зорієнтована на вивчення основних концепцій та синтаксису Python, дозволяє читачам одразу застосовувати отримані навички в різних сферах.
Переваги:
навчання через вирішення реальних завдань;
зрозумілі пояснення та практика для початківців.
Недоліки:
фокус на початковому рівні, не вистачає глибини.
ПОЛ БЕРРІ
Англ: Head First Python, Paul Barry
«Head First» — серія книг з унікальним підходом до вивчення мов програмування. В його основі — активна взаємодія читача з матеріалом. Автор використовує багато візуальних пояснень, гумор та інтерактивні завдання для полегшення вивчення та розуміння Python. Книга підійде тим, хто шукає доступного та захопливого вступу до програмування.
Переваги:
Head First підхід до вивчення, містить інтерактивний матеріал;
легкий вхід до програмування.
Недоліки:
не охоплює глибокі аспекти Python.
ДЕН БЕЙДЕР
Англ: Python Tricks: The Book, Dan Bader
Ця книга підходить тим, хто вже програмує, проте ще почуває себе невпевнено в загальних концепціях мови. Ця книга містить тонкощі, знання яких допоможе використати широкі можливості Python, писати чистий, красивий, зрозумілий та набагато ефективніший код. Автор часто пропонує в тексті поглянути на речі з іншого боку та розширити загальне уявлення щодо програмування.
«Ця книга підходить людям, які вже знайомі з мовою та хочуть підвищити свій рівень через знання лайфхаків. Усі наведені приклади з практики автора допомагають розширити розуміння мови, покращити стиль кодування, виконувати завдання швидше та якісніше, щоби код був підтримуваним та читабельним» — ділиться Ілля Кошмак.
Плюси:
зручний формат, книгу можна носити з собою та використовувати як довідник;
корисні лайфхаки з практики автора;
концепції описані змістовно та зрозуміло.
ADITYA Y. BHARGAVA
Книга-легенда про алгоритми, проте усі приклади в ній наведені саме на Python. Автор зрозуміло пояснює складні концепції через візуальні засоби та ілюстрації, приділяє особливу увагу реальним сценаріям застосування алгоритмів.
«Grokking Algorithms — чудовий спосіб зрозуміти алгоритми без математичного бекграунду. У книзі доступно пояснюються такі теми як сортування, пошук, регресія, графи, динамічне програмування, жадібні алгоритми тощо, — розповідає Ілля. — Незнання математики часто стають серйозним барʼєром для людей, які починають вивчати програмування. Вважається, що без цієї дисципліни двері до нової професії зачинені. Насправді ж аналітику цієї книги цілком достатньо для розуміння основних концепцій. Для розробника вона може стати точкою входу, щоби надалі заглибитися в тему алгоритмів і структур даних».
Переваги:
наочне пояснення алгоритмічних концепцій та складних ідей;
конкретні приклади та практичні поради.
Недоліки:
обґрунтування деяких алгоритмів може виглядати занадто спрощеним та недостатньо глибоким;
книга не охоплює деякі теми, а також останні тенденції у роботі зі структурами даних та алгоритмів.
Книги з Python для спеціалістів із досвідом
ZED A. SHAW
Книга спрямована на активне навчання через виконання вправ і написання коду. Автор ставить перед читачем складні виклики, основний акцент робиться на розвитку навичок розв'язання проблем.
«Автор фокусується на практичній частині. Серед іншого надає приклад коду з помилками та пропонує знайти їх — це досить нестандартний підхід. Розв'язуючи такі задачі та шукаючи підказки, ви досить швидко «набиваєте руку», — вважає Ілля.
Переваги:
зосередження на практичному вивченні;
покращення навичок розв’язання проблем.
Недоліки:
спрощені підходи автора можуть підійти не всім.