Очень часто можно увидеть вопросы на том же тостере: «А какую книгу взять книгу, чтобы выучить технологи Х», и естественно в комментариях идет большое число мнений и большое число различных книг. В данной теме, я сделаю обзор самых популярных книг по Python для начинающих программистов, и дам четкое мнение – нужно ли их читать или нет (субъективно).

Нужно ли читать книги. Изучая новые технологии, я люблю читать книги по данной технологии, так как я получаю не только сухую информацию, но и субъективное мнение автора по пригодности данных технологий. И в отличие от видео-курсов, мне не приходится ждать, пока автор из себя выдавливает мысль. Да и читаю, я быстро.

Подробно про книги на Python


Марк Лутц – Изучаем Python и Программируем на Python (2 тома). По моему мнению, данную книгу должен прочитать каждый программист на Python, который хочет связать свою жизнь с этим языком.

  • Она дает обширное понимание языка
  • Она объясняет плюсы и минусы языка
  • Она показывает эволюцию языка.

Мне очень нравится, как автор ведет свои рассуждения от возникновения проблемы, до её решения через эволюцию программы. Так же дается отличное понимание эволюции языка (сравнивая python 2.7 и python 3.4).

Минусами книги можно назвать огромное количество, огромное количество устаревшей информации, огромное количество информации, которую вы никогда не будут использовать в своей работе. Но если вы хотите понять суть Python – это обязательная книга.

По моему мнению, ни одна другая книга, например, Майкл Доусон — Программируем на Python, Билл Любанович – Простой Python, не могут влить понимание языка, как это делает Лутц.

Прочитав эту книгу и скачав PyCharm без it-бекграунда, я смог написать свои первые программы (небольшое десктоп-приложение, парсер сайтов и ребус).

Форсье Дж., Биссекс П., Чан У., Django – веб-разработка приложений на Python. Я считаю эту книгу полностью бесполезной, так как она не справляется со своей главной задачей – научить писать веб-приложения на Django.

  • Материал в книге очень отстает от актуальных версий Django
  • Материал дается слишком быстро, в итоге уже к середине книги ты не понимаешь, что происходит

Для изучения Django рекомендую посмотреть вступительный обучающий ролик на Youtube от украинского центра (дает базовое понимание, того как эта штука работает), а потом двигаться со своим проектом по документации и гуглению вопросов.

Так за 3 месяца я смог собрать рабочий проект (а по пути выучить html/css/js), который мне уже 4 года приносит доход. Сейчас постепенно наращиваю в функционал.

Вестра Э. — Разработка геоприложений на языке Python. Эту книгу должен прочитать каждый разработчик, который хочет написать адекватное ГИС приложение на Python. Эту книгу можно условно разделить на два раздела:

  1. Что такое ГИС системы – очень ясно и адекватно
  2. Почему писать Гис приложение на Python – это больно

Типичная фраза второй части книги: «Под язык C++/Java есть отличная ГИС библиотека, для Python есть багнутый порт без адекватной документации, поэтому открываем документацию на C++/Java, открываем исходный код порта, и начинает ковырять». В итоге, приходишь к пониманию, что давайте лучше сразу возьмем Java и не будем заниматься мракобесием.

Андреас Мюллер, Сара Гвидо. Введение в машинное обучение с помощью Python. Небольшая книга, которая дает четкое понимание того, что такое машинное обучение, на каких принципах оно базируется, какие инструменты для этого применяются. Для базового понимания – лучшая книга, что есть на данный момент.

Лично я всегда думал, что машинное обучение – это какой-то рокет саенс, а прочитав эту книгу, я увидел, что базовые принципы достаточно просты, просто надо заморачиваться, чтобы добиться хороших результатов. Определенно рекомендую.

Ноа Гифт, Джереми М. Джонс Python в системном администрировании UNIX и Linux. Я считаю эту книгу абсолютно бесполезной для прочтения, так как она дает сжатый курс питона, сжатый курс по IPython, сжатый курс по скриптингу в Unix. В итоге, все какое-то поверхностное, однобокое, и устаревшее. Если вы прочитали хотя бы одну книгу по Питону до этого, смело проходите эту книгу стороной.

Р. Митчелл. Скрапинг веб-сайтов с помощью Python. Занимаясь в свое время достаточно много парсингом данных с различных сайтов, я могу сказать, что данная книга охватывает практически все аспекты данного ремесла. Другое дело, что вся эта информация без проблем гуглится в небольших статьях, которые дают куда более простое объяснение и руководство к действию. Поэтому эти книга подходит исключительно для тех, кто раньше не занимался парсингом (для них она будет интересна), остальные проходят книгу стороной.

Ян Эрик Солем Программирование компьютерного зрения на языке Python. Еще одна бестолковая книга, которая фактически дает краткое описание популярных библиотек по работе потоками данных и мультимедиа файлами. Не имеет какой-либо четкой структуру, не имеет понятной повествовательной линии. Впустую тратит ваше время. Да, надо признать, разработка компьютерного зрения на Python – это исключительно pet-проект, для серьезных условий это не особо котируется. Это описание также подходит под книгу: «Цифровая обработка сигналов на языке python»

В заключении


Напоследок, я бы хотел расказать про одну книгу, которая не совсем учит вас питону, однако в ней все примеры идут на Python: «Test-Driven Development with Python» — в данной книге показывается пример разработки веб-приложения на Django, где сначала пишутся тесты, а потом под это дело подгоняется функционал.

Имея опыт написания коммерческих приложения на Django, а также опыт работы тестировщиком веб-приложений, я просто подгорал от того, какая же нелепая эта методология, и как сильно она ломает мозг. Если у кого-то есть свободное время, прошу к прочтению.

P.s. Все книги из моего обзора можно найти в открытых источниках, либо в магазинах. Не все они имеют перевод, но благо для разработчика это не должно быть проблемой.

Комментарии (38)


  1. EmmGold
    08.12.2017 06:08
    +1

    Эрик Мэтиз. Изучаем Python. Интересно и по существу.


  1. resetme
    08.12.2017 08:48

    И в послесловие добавить: после прочтения этих книг, читайте Рамальо Лучано «Python. К вершинам мастерства».


    1. vmm86
      08.12.2017 14:50

      +1. Книга уже не для начинающих, но крайне полезна для имеющих опыт разработки на Python — много интересных и малоизвестных нюансов.


  1. MOtostrelok74
    08.12.2017 08:49

    Python для детей. Как ни странно, но многие по ней быстрее понимают синтаксис


    1. Varim
      08.12.2017 13:43

      Уточню. «Python для детей» или «Python для детей и родителей»?


  1. Skaild
    08.12.2017 08:49

    Благодарствую. Сохранил список.


  1. whoosaa
    08.12.2017 10:47

    image

    Тоже считаю отличной книгой. Открыла мне многое.


    1. Jenyay
      08.12.2017 14:57

      Поддерживаю, одна из лучших книг про Python, но не для новичков.


  1. user-vova
    08.12.2017 10:48

    Забыли Бизли "Подробный справочник" 4-ое издание


  1. Reason89
    08.12.2017 10:50

    Начинал с Лутца, соглашусь с тем, что написано очень доступно. В последствии постоянно на столе держу «Дэвид М. Бизли — Python. Подробный справочник», в качестве справочника.


  1. scruff
    08.12.2017 11:02

    А есть ли толковые видеокурсы?


    1. Unforgiven
      08.12.2017 11:22

      Что привлекает людей в видеокурсах?


      Одно время из интереса просматривал разное, надеясь найти информацию, которой нет в книгах или документации. И даже приличные курсы с хорошими отзывами производили не самое лучшее впечатление. Это не про курсы по Python, а в общем. Кажется, что единственная цель видеокурсов — подать материал предельно доступно, чтобы сохранить аудиторию, при этом качество и полнота страдают.


      Поэтому только письменные источники. На одной половине монитора — книга/документация, на другой — терминал/редактор/ide по вкусу.


      1. scruff
        08.12.2017 11:29

        По качеству и подаче материала — всё зависит от провайдера видеокусов. На счёт подачи — Вы правы — доступность — главная фишка. Не всегда у человека находится время почитать книжку, в отличие от просмотра видеокурсов. В дороге (автобусе и даже метро) лично мне очень неудобно читать книжку, даже сидя. С видеокурсами намного удобнее. Но практику ни книжкой ни виедокурсом не заменишь, поэтому доступность терминала/редактора — вопрос открытый.


      1. RomanPokrovskij
        08.12.2017 13:30

        Не надо противопоставлять. И книги и видео имеют свое место.
        Видео записывается быстрее чем выходят книги, т.е. последнии версии, рассматриваются последнии актуальные вопросы.


    1. yourihdx
      08.12.2017 13:10

      На Cousera и кажется на YouTube курсы Dr.Chuck Lawrence. Доступно, наглядно, с самых азов.


      1. yourihdx
        08.12.2017 17:12

        Chuck Severance!


    1. lobzanoff
      08.12.2017 18:24

      Не видеокурсы, но онлайн пошаговый учебник для чайников по питону и другим есть тут:
      https://www.sololearn.com/
      Есть веб-версия (правда только на английском), и мобильные приложения (есть и на русском) — удобно в транспорте время коротать. Пошаговое обучение с тестами в конце каждой главки.


    1. RootHub
      09.12.2017 03:12

      itvdn и Сергей Лебедев, очень хорошие видеокурсы. Плюс в новом cs50 ввели python, только там на английском.


    1. FelixFelicis
      09.12.2017 06:44

      — отличные видеокурсы, имеются две программы (для новичков, и более углубленный для тех же новичков :) )



    1. elBroom
      10.12.2017 03:10

      Это не совсем видеокурс, но набор лекций от Сергея Лебедева: www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW


  1. Unforgiven
    08.12.2017 11:28

    Для такого языка, как Python, двухтомник Лутца — имхо, перебор.


    Legality guide (что есть в языке): Марк Саммерфилд — «Программирование на Python 3. Подробное руководство»
    В книге есть вся необходимая информация по языку. Издание 2009 года, чтобы поддерживать актуальные знания, читаем официальные обзоры нововведений: What’s New in Python.


    Morality guide (как этим пользоваться): Brett Slatkin — «Effective Python»
    Бо?льшая часть советов может показаться слишком очевидными. Если же опыта нет, то это неплохой гайд по идиомам языка.


    Programming-by-example guide: Mark Summerfield — «Python in Practice»
    В книге есть Pythonic реализации классических паттернов, а также показаны примеры продвинутого использования Python-специфичных конструкций. Не скажу, что коммерческий код нужно писать именно так, но как минимум для расширения сознания книга хороша.


  1. barbuda
    08.12.2017 11:43

    Что скажете о The Quick Python Book by Naomi Ceder?


  1. foldr
    08.12.2017 11:45

    Почему во всех подобных списках рекомендуют Лутца? Признайтесь, хоть кто-нибудь прочитал его целиком? Обе книги по 1600+ страниц. Сплошная вода. Саммерфилд (Mark Summerfield) пишет намного более лаконично. Programming in Python 3 (объем 600 страниц, есть на русском) — исчерпывающее описание основных особенностей языка, дополнительно — Python in Practice


    Еще рекомендую Python Cookbook от David Beazley — как писать идиоматичный код на питоне


    1. hatman Автор
      08.12.2017 13:13

      Если человек изучает Python, как первый язык, и он осилил Лутца, то он сможет стать программистом = тест на усидчивость, педантичность и настойчивость =)


  1. tenzink
    08.12.2017 12:00

    A как же эти 2 книги?
    1. Джейсон Бриггс. Python для детей. Самоучитель по программированию
    2. Крэйг Ричардсон. Программируем с Minecraft. Создай свой мир с помощью Python


  1. tangro
    08.12.2017 12:06

    1. Vicking
      09.12.2017 14:30

      Недавно приобрел ребенку. Очень понравилось


      1. gban
        09.12.2017 15:11

        начали с питона для майнкрафта, потом
        image


  1. kitchip
    08.12.2017 13:10

    «Two Scoops of Django 1.11: Best Practices for the Django Web Framework» большое кол-во дельных советов о том, как стоит и не стоит писать на Django. Правда, с выходом django 2 эта книга местами устарела.


    1. vmm86
      08.12.2017 14:55

      Поскольку 1.11 — текущая LTS-версия (кажется, до 2020 года), в этом плане информация актуальна. Наверняка уже готовится большое обновление книги в связи с отказом от Python 2 во второй версии Django и прочих новшеств.


  1. vdm_mar
    08.12.2017 13:10

    Лутц — это стимул. Особенно, когда на учебу мало времени и характер «по волнам, по морям». Сел, расписал скорость одоления книги, офигел: и как часы, каждый день. Хочешь, не хочешь. Прошёл часть, и уже обидно бросать. И сразу же на Лутца стали нанизываться статьи, сайты-задачники типа CheckiO, видео. В общем, увлекающимся и отвлекающимся я бы точно Лутца рекомендовал.


  1. RomanPokrovskij
    08.12.2017 13:36

    А есть ли книга для начинающих с упором на graphene, graphene-django, time series analysis, graphite?


    1. artemisia_borealis
      08.12.2017 13:45

      > time series analysis

      Уэс Маккинни "Питон и анализ данных" (автор pandas). Но всё же быть начинающим в Python и начинающим разбираться в анализе временных рядов на Python — это довольно разные ипостаси, полагаю их сложно параллелить.


      1. RomanPokrovskij
        08.12.2017 16:34

        Спасибо. К сожалению эта книга 2013 года и не то чтобы устрарела, но не убеждает в необходимости спускаться на уровень NumPy, pandas, matplotlib… По крайней мере в «современной книге» хотелось бы найти что вот такое представление возможно: тут graphite — запрашивай данные, трансформируй (мерж, апроксимация, фильтрация, выравнивание), вот тут graphene django публикуй данные (с возможностью drill in), а где-то по середине еще и кэш.


  1. Srakandaev
    08.12.2017 14:07

    Еще неплохая книга Рейтц, К. Таня Шлюссер Т. «Автостопом по Python». Но это уже для тех, кто немного знает Python.


  1. Sevensenn
    09.12.2017 06:44

    Learning Python the hard way не рассматривали?


    1. hatman Автор
      09.12.2017 08:13

      Если честно, то после прочтения 5-8 книг по питону + официальной документации, перестаешь видеть в книгах что-то уникальное и сверхполезное.

      Самым полезными книгами я считаю базовую книгу Лутца + книгу по машинному обучению. Все остальные книги просто в более удобной форме рассказывают про какие-то библиотеки и тулзы (например, я встречал на Youtube 30 минутный ролик какого парня из Украины, который пишет парсер применяя все, что дано в книге по веб-скрапингу). Поэтому, не обязательно читать книгу.

      Что касается книги про вершину мастерства, то опять же частично это есть в книги лутца, частично это видно на практике (когда начинаешь работать с крупным проектом).

      Т.е. например, при написании большого сложного проекта надо думать о памяти, использовать слоты, кортежи и прочее. Но чаще всего это не нужно, поэтому зачем читать и запоминать то, то тебе скорее всего никогда не понадобится (и ты это забудешь через месяц), я не вижу.