Нужно ли читать книги. Изучая новые технологии, я люблю читать книги по данной технологии, так как я получаю не только сухую информацию, но и субъективное мнение автора по пригодности данных технологий. И в отличие от видео-курсов, мне не приходится ждать, пока автор из себя выдавливает мысль. Да и читаю, я быстро.
Подробно про книги на 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. Эту книгу можно условно разделить на два раздела:
- Что такое ГИС системы – очень ясно и адекватно
- Почему писать Гис приложение на 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)
MOtostrelok74
08.12.2017 08:49Python для детей. Как ни странно, но многие по ней быстрее понимают синтаксис
Reason89
08.12.2017 10:50Начинал с Лутца, соглашусь с тем, что написано очень доступно. В последствии постоянно на столе держу «Дэвид М. Бизли — Python. Подробный справочник», в качестве справочника.
scruff
08.12.2017 11:02А есть ли толковые видеокурсы?
Unforgiven
08.12.2017 11:22Что привлекает людей в видеокурсах?
Одно время из интереса просматривал разное, надеясь найти информацию, которой нет в книгах или документации. И даже приличные курсы с хорошими отзывами производили не самое лучшее впечатление. Это не про курсы по Python, а в общем. Кажется, что единственная цель видеокурсов — подать материал предельно доступно, чтобы сохранить аудиторию, при этом качество и полнота страдают.
Поэтому только письменные источники. На одной половине монитора — книга/документация, на другой — терминал/редактор/ide по вкусу.
scruff
08.12.2017 11:29По качеству и подаче материала — всё зависит от провайдера видеокусов. На счёт подачи — Вы правы — доступность — главная фишка. Не всегда у человека находится время почитать книжку, в отличие от просмотра видеокурсов. В дороге (автобусе и даже метро) лично мне очень неудобно читать книжку, даже сидя. С видеокурсами намного удобнее. Но практику ни книжкой ни виедокурсом не заменишь, поэтому доступность терминала/редактора — вопрос открытый.
RomanPokrovskij
08.12.2017 13:30Не надо противопоставлять. И книги и видео имеют свое место.
Видео записывается быстрее чем выходят книги, т.е. последнии версии, рассматриваются последнии актуальные вопросы.
lobzanoff
08.12.2017 18:24Не видеокурсы, но онлайн пошаговый учебник для чайников по питону и другим есть тут:
https://www.sololearn.com/
Есть веб-версия (правда только на английском), и мобильные приложения (есть и на русском) — удобно в транспорте время коротать. Пошаговое обучение с тестами в конце каждой главки.
RootHub
09.12.2017 03:12itvdn и Сергей Лебедев, очень хорошие видеокурсы. Плюс в новом cs50 ввели python, только там на английском.
FelixFelicis
09.12.2017 06:44— отличные видеокурсы, имеются две программы (для новичков, и более углубленный для тех же новичков :) )
elBroom
10.12.2017 03:10Это не совсем видеокурс, но набор лекций от Сергея Лебедева: www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
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-специфичных конструкций. Не скажу, что коммерческий код нужно писать именно так, но как минимум для расширения сознания книга хороша.
foldr
08.12.2017 11:45Почему во всех подобных списках рекомендуют Лутца? Признайтесь, хоть кто-нибудь прочитал его целиком? Обе книги по 1600+ страниц. Сплошная вода. Саммерфилд (Mark Summerfield) пишет намного более лаконично. Programming in Python 3 (объем 600 страниц, есть на русском) — исчерпывающее описание основных особенностей языка, дополнительно — Python in Practice
Еще рекомендую Python Cookbook от David Beazley — как писать идиоматичный код на питоне
hatman Автор
08.12.2017 13:13Если человек изучает Python, как первый язык, и он осилил Лутца, то он сможет стать программистом = тест на усидчивость, педантичность и настойчивость =)
tenzink
08.12.2017 12:00A как же эти 2 книги?
1. Джейсон Бриггс. Python для детей. Самоучитель по программированию
2. Крэйг Ричардсон. Программируем с Minecraft. Создай свой мир с помощью Python
kitchip
08.12.2017 13:10«Two Scoops of Django 1.11: Best Practices for the Django Web Framework» большое кол-во дельных советов о том, как стоит и не стоит писать на Django. Правда, с выходом django 2 эта книга местами устарела.
vmm86
08.12.2017 14:55Поскольку 1.11 — текущая LTS-версия (кажется, до 2020 года), в этом плане информация актуальна. Наверняка уже готовится большое обновление книги в связи с отказом от Python 2 во второй версии Django и прочих новшеств.
vdm_mar
08.12.2017 13:10Лутц — это стимул. Особенно, когда на учебу мало времени и характер «по волнам, по морям». Сел, расписал скорость одоления книги, офигел: и как часы, каждый день. Хочешь, не хочешь. Прошёл часть, и уже обидно бросать. И сразу же на Лутца стали нанизываться статьи, сайты-задачники типа CheckiO, видео. В общем, увлекающимся и отвлекающимся я бы точно Лутца рекомендовал.
RomanPokrovskij
08.12.2017 13:36А есть ли книга для начинающих с упором на graphene, graphene-django, time series analysis, graphite?
artemisia_borealis
08.12.2017 13:45> time series analysis
Уэс Маккинни "Питон и анализ данных" (автор pandas). Но всё же быть начинающим в Python и начинающим разбираться в анализе временных рядов на Python — это довольно разные ипостаси, полагаю их сложно параллелить.RomanPokrovskij
08.12.2017 16:34Спасибо. К сожалению эта книга 2013 года и не то чтобы устрарела, но не убеждает в необходимости спускаться на уровень NumPy, pandas, matplotlib… По крайней мере в «современной книге» хотелось бы найти что вот такое представление возможно: тут graphite — запрашивай данные, трансформируй (мерж, апроксимация, фильтрация, выравнивание), вот тут graphene django публикуй данные (с возможностью drill in), а где-то по середине еще и кэш.
Srakandaev
08.12.2017 14:07Еще неплохая книга Рейтц, К. Таня Шлюссер Т. «Автостопом по Python». Но это уже для тех, кто немного знает Python.
Sevensenn
09.12.2017 06:44Learning Python the hard way не рассматривали?
hatman Автор
09.12.2017 08:13Если честно, то после прочтения 5-8 книг по питону + официальной документации, перестаешь видеть в книгах что-то уникальное и сверхполезное.
Самым полезными книгами я считаю базовую книгу Лутца + книгу по машинному обучению. Все остальные книги просто в более удобной форме рассказывают про какие-то библиотеки и тулзы (например, я встречал на Youtube 30 минутный ролик какого парня из Украины, который пишет парсер применяя все, что дано в книге по веб-скрапингу). Поэтому, не обязательно читать книгу.
Что касается книги про вершину мастерства, то опять же частично это есть в книги лутца, частично это видно на практике (когда начинаешь работать с крупным проектом).
Т.е. например, при написании большого сложного проекта надо думать о памяти, использовать слоты, кортежи и прочее. Но чаще всего это не нужно, поэтому зачем читать и запоминать то, то тебе скорее всего никогда не понадобится (и ты это забудешь через месяц), я не вижу.
EmmGold
Эрик Мэтиз. Изучаем Python. Интересно и по существу.