Всем доброго времени суток!
Публикую обзор книги "Python для чайников" от автора Джон Пола Мюллера.
Ссылку на бесплатную электронную версию этой книги оставлю в конце поста.
Стоит читать? Нет! Почему? Опишу в статье.
Python - хороший первый язык программирования, а это худшая книга для его изучения.
Кто целевая аудитория книги?
Книга ориентирована на тех, кто только начал Python с нуля, по крайней мере, так должно быть. Но, по итогу я не советую кому-либо вовсе читать эту книгу. Почему - подробно опишу ниже.
Что в книге?
Перейдем к содержанию и особенностям книги.
Начинается книга с того, как автор описывает процесс установки Python на компьютер на Linux, MacOS и Windows.
Описывая процесс установки на Linux, автор предлагает изначально загрузить архив исходников, далее же самостоятельно собрать их в командной строке Linux с помощью команд ./configure и make.
Что же, это явно не самый простой способ установки Python на компьютер, тем более он точно не для "чайников".
После того, как вы осилите установку Python, если осилите, в течение двух страниц автор будет рассказывать вам, как запускать интерпретатор с использованием различных параметров из командой строки.
Зачем Джон Пол Мюллер начинает с таких вещей объяснять новичкам работу с Python - для меня загадка.
Я понимаю, если запустить Python с параметрами -u (python -OO -u) и -OO, то он будет запущен с оптимизацией, что будет достигнута с помощью удаления строк документации и поддержкой небуферезированного двоичного ввода для устройств stder и rstdout. Но, зачем всё это человеку, что начинает изучать Python с нуля? Понимаю, что данные параметры важны, но, по мне, автор забивают голову новичкам на старте ненужной информацией.
Что же, теперь перейдем к описанию создания первого приложения по данной книге.
Я прочитал уже больше чем 70 страниц, но всё что я узнал за это время - как запускать интерпретатор и как выводить текст с помощь функции "print". Мягко говоря, не густо и хотелось бы чего-то более интересного.
В книге автор вводит понятие IDE и в качестве IDE выбирает Jupiter Notebook.
Тут же начинаются первые несостыковки. Jupiter Notebook - это не IDE. Его можно больше назвать интерактивной средой для запуска Python.
Но, автор упорно говорит о Jupiter Notebook как о IDE. Советую обратиться к официальному списку IDE для Python, в котором Jupiter Notebook не числится, чем окончательно закроете этот вопрос.
"Косяков" в книге, к сожалению, достаточно.
Обратите внимание на переменную "myVar", как видим, автор подзабил на PEP8 и символы подчеркивания.
Описание программирования на Python в книге
Начинается работа с типов данных. Постепенно автор переходит к описанию чисел в различных системах счисления.
Далее автор описывает работу с операторами сравнения
После чего переходим к функциям, с которыми, исходя из описания в книге, боле-менее всё понятно
Далее автор описывает циклы. Всё максимально сжато автором и достаточно просто в понимании. Какого-то глубинного описания работы с циклами, к сожалению, тут не найдете. Только базовые примеры работы с ними.
После циклов автор пишет главу про ошибки, где сперва рассказывает о их видах, далее же объясняет исключения.
Из за чего книга провальна
Автор удивляет своей компетентностью, ведь эта книга рассчитана на новичков. Видимо автору неизвестно, что списки также можно вкладывать друг в друга. Компетентность Джона Пола Мюллера в программировании на Python - крайне сомнительна.
Тезисно по преимуществам и недостаткам книги:
Преимущества книги:
Их нет! Серьезно. Не советую никому покупать эту книгу, если только-только начинаете свой путь в Python. Только засорите свою голову ненужной и осложненной информацией.
Недостатки книги:
1. Опечатки и нарушение PEP8
2. Усложнение информации
3. Цена.
О цене пожалуй подробнее.
Это самая низкая цена в интернете, что я смог найти.
Как видим, на OZON данная книга ощутимо дороже
Как видим, на OZON данная книга ощутимо дороже
Как видим, максимальная цена на этот "шедевр" достигает 2103 рублей. Одним риторическим вопросом "За что?!!!!!" , тут не обойтись..
Красная цена этой книге 300 рублей в разделе уцененной литературы. Но никак не выше 1000 рублей. Поэтому, будьте внимательны к той литературе, что хотите приобрести, чтобы не потратить деньги попусту.
Итог по книге:
Никогда и ни за что не покупайте эту книгу. Порекомендовать новичкам я её точно не могу. В книге очень много ляпов и неточностей, возможности Python раскрыты крайне сжато, примерами книга также не фонтанирует.
Мой канал в телеграмм:
Если статья показалась вам интересной, то буду благодарен за подписку на мой ТГ-канал IT-старт,, где я также публикую обзоры технической литературы и полезную информацию как для действующих, так и для начинающих программистов.
Ссылка на бесплатную электронную версию книги t.me/it_begin/156
Комментарии (47)
Liroluka
28.06.2022 12:42Судя по этим страницам, книга скорее не сложная, а просто ни о чем не рассказывает
Меня вообще умиляют вот эти "открой то, кликни сюда, почешись вот здесь и готово". Зачем человеку знать что и для чего он делает, зачем ему понимать как это работает, пфф. Это же надо уметь объяснять, структурировать информацию и делать прочие сложные штуки. Вместо этого влепим недогайд. Чтобы потом люди боялись шаг в сторону ступить, а то ведь будет не по гайду, а как будет - нипанятна, сложна...
В общем, да, книга максимально отвратительная, в бесплатном доступе есть материал на порядки лучше, который, к тому же, даст понимание, а не научит быть обезьянкой с гранатой
Pavel1114
29.06.2022 04:31Меня вообще умиляют вот эти «открой то, кликни сюда, почешись вот здесь и готово». Зачем человеку знать что и для чего он делает, зачем ему понимать как это работает, пфф
Да ладно бы ещё все эти «кликни здесь, введи это» сработали. Но в большинстве случаев у читателя что то идёт не так — начиная от изменения адреса страницы, до отсутствия какой то утилиты или библиотеки.
От таких книг больше вреда
alexesDev
28.06.2022 13:29+5Это вы еще не видели книги по PHP в 2000-2010... с кучей дыр и тп. Примерного с того времени не прочитал ни одной книги по коду. Есть документация, статьи, примеры и тп. Достаточно. Книги не успевают за кодом, а тут просто попытка попасть в рынок думаю.
DMGarikk
28.06.2022 13:56+2вообще серия 'для чайников', это тот еще жанр, помню в гуглплее от нечегоделать листал список книг которые можно купить, так там были перлы в стиле 'андройд 4.1 для чайников' (при актуальной на тот момент 8 версии) и тоже с ценником в 2-4тыр… за бл… электронную книгу, которая, судя по скринам — просто мануал в стиле 'учимся устанавливать обои в цветочек'
alan008
28.06.2022 17:54Главное выпустить несколько таких книг — Android 4, Android 5 и т.д., тогда можно брить чайников несколько раз) Хотя их не жалко,
лохчайник не мамонт — он не вымрет.
ubuntuandrew
30.06.2022 10:13Не соглашусь, что прям все - я начинал путь в программировании с "C++ для чайников" и, будучи, 12-и летним пацаном, читал её с огромным интересом. И по содержанию претензий особых нет - работа с памятью, типами и даже указателями и ссылками там изложена достаточно хорошо. Проблемы с изложением начались на векторах, но к тому времени читатель уже научился искать информацию самостоятельно :)
nikolas78
29.06.2022 11:37Зачем писать книги? Сделать свою обучающую платформу гораздо выгодней.
OlegZH
29.06.2022 20:46Интересное предложение. Как бы Вы эту платформу описали?
nikolas78
30.06.2022 00:48Интерактивная платформа. Набор уроков по выбранному ЯП. Каждый урок это: короткое видео по теме + текстовое описание + задание, которое надо сделать. При этом надо, чтобы «компилятор» принимал только уже пройденные темы. Всё в одном окне. 100 уроков хватит с головой для базового знакомства с любым ЯП.
Neikist
30.06.2022 11:05Для базового знакомства обычно достаточно cheatsheet, если это не особо хитрый язык.
nikolas78
30.06.2022 13:52Думаю, что cheatsheet это уже для опытных программистов, которым нужны особенности реализации конкретного ЯП. А если человек только учится программировать, выбрав для этого какой-то ЯП, то тогда, книги и курсы — самое то.
OlegZH
30.06.2022 11:12Почему именно видео? Чем плоха простая компьютерная графика (анимация, например)?
Что за «компилятор»? Вы имеете в виду возможность запуска интерпретатора?
Курс должен быть реализацией некоторой методики, а методику кто должен составлять? Программист? Или специальный обученный специалист (например, по психологии)?
Помниться, была такая книжка по Дел(ь)фи Сергея Орлика с реконструкцией внутренних структур. Может быть, нужна какая-то подобная изюминка? Чтобы как-то системно постигать язык программирования.
nikolas78
30.06.2022 13:461. Да, видео или анимация — совершенно не важно, главное визуальная и звуковая информация, так человеку будет намного легче вникать в тему. А потом уже и текст, чтобы глазами можно было быстро искать какие-то детали темы.
2. Ну да, конкретно для Python должен быть строенный интерпретатор. Причем по возможности он должен работать «узко» — только в пределах данной темы + предыдущие темы. Тогда обучение будет идти по нарастающей, чтобы нечаянные «лайфхаки» не нарушали логику обучения.
3. Да, конечно, должна быть методика, но достаточно сделать «от простого к сложному», как преподают в учебных заведениях. Думаю, что разумный программист справится с этим достаточно успешно. Главное, чтобы человеку «с нуля» было все понятно и просто. Чтобы информация подавалась пошагово и только та, которая необходима на данном уроке.
4. Не знаком с этой книгой. Основная цель — это дать человеку, только немного знакомому с программированием простой способ познать данный ЯП. Еще может быть два-три больших этапа: сначала обо всем без нюансов (чтобы почувствовать общий подход, принятый в этой технологии, стать джуном), потом с вариантами реализации (для мидла), для сеньора делать уже может и не надо (а может и надо).
Ну а изюминкой может стать приятный UI/UX — простой и современный одновременно.Neikist
30.06.2022 14:52+1Да, видео или анимация — совершенно не важно, главное визуальная и звуковая информация, так человеку будет намного легче вникать в тему.
Я один в упор не могу такое воспринимать? Ужас же, особенно для программирования, это же не изучение дизайна или чего то подобного (хотя и там как по мне текст с иллюстрациями удобнее.DMGarikk
30.06.2022 14:56+1не один, у меня разжижение мозга начинается когда из 25 минутного видео суть в 2х минутах ближе к концу, а тебе надо тыкать в таймлайн пытаясь угадать где…
а уж чтото скопипастить из видео… если нигде больше это не написано… ууу
Причем чем больше опыт, тем больше это бесит, я уже даже книжки читать не могу без раздражения, когда начинается вода 'берем переменную, переменная это… блаблабла 5 страниц' — а книжка вообще про кубер и тебе надо роутинг настраиватьnikolas78
30.06.2022 15:09у меня разжижение мозга начинается когда из 25 минутного видео суть в 2х минутах ближе к концу, а тебе надо тыкать в таймлайн пытаясь угадать где
Да, даже хорошую идею можно превратить в ужасную, если преследовать цель не обучение человека, а чтобы он рекламы побольше посмотрел.а уж чтото скопипастить из видео… если нигде больше это не написано… ууу
Именно поэтому должно быть короткое видео + текст. А пример кода из текста чтобы можно было скопировать.Причем чем больше опыт, тем больше это бесит
Согласен, я больше держал в голове что-то типа «Python для чайников». Вот сделать универсальный курс для опытных разработчиков намного сложнее, так как не понятен бекграунд каждого из них. Но если взять наиболее распространенные случаи, то можно сделать пару+тройку курсов типа «Python для джавистов», «Python для плюсовиков» и т.д., где будут описаны только отличия двух ЯП.DMGarikk
30.06.2022 15:19+1Да, даже хорошую идею можно превратить в ужасную, если преследовать цель не обучение человека, а чтобы он рекламы побольше посмотрел.
98% видео по языкам и технологиям именно такие
Это даже не цель, достаточно посмотреть какихнить блогеров, особенно забугорных по любой теме, типа 'строим скворечник'
из 30 минут — 20 будет рассуждение -какие хорошие птички, 5 минут почему мы выбрали дерево, а не пластик… и 5 минут — изготовление скворечника
Я конеч понимаю что я старенький и такой формат для меня чужд… но вот да!Именно поэтому должно быть короткое видео + текст
«Жаль только — жить в эту пору прекрасную уж не придется — ни мне, ни тебе» ©Neikist
30.06.2022 15:22+1из 30 минут — 20 будет рассуждение -какие хорошие птички, 5 минут почему мы выбрали дерево, а не пластик… и 5 минут — изготовление скворечника
В тексте такое тоже распространено, просто в тексте можно быстро глазами это пробежать и выкинуть.
nikolas78
30.06.2022 15:29«Жаль только — жить в эту пору прекрасную уж не придется — ни мне, ни тебе» ©
Не, ну мы же должны быть идеалистами, а иначе зачем вот это всё…DMGarikk
30.06.2022 15:36мой опыт подсказывает что надо быть реалистами
у меня был начальник — противник бекапов, потому что 'все наши сотрудники ответственные, никто ничего не сломает', 'ограничивать доступ не нужно — это все понимают, никто не накосячит'
ну и чё, через два года отправили drop table в продовую базу в табличку на 200Тб перепутав её с тестовой
и такого очень много… можно долго обсуждать как надо делать книжки, а в реальности и в профи книгах полно воды и тупых ошибок (вроде опечаток в коде или откровенно деприкейтед кода (кирпич с размаху в сторону гугла и его офиц.документацию)… или вообще неверно написанного кода который совершенно случайно работает из-за фазы луны
nikolas78
30.06.2022 15:51мой опыт подсказывает что надо быть реалистами… у меня был начальник — противник бекапов
Так он как раз и не был идеалистом. Идеализм это — стараться делать как можно лучше, а подход «мир и так хорош, авось пронесет» — это уже про что-то другое. Хотя в жизни на самом деле трудно различать эти две вещи.
DMGarikk
30.06.2022 15:59Так он как раз и не был идеалистом. Идеализм это — стараться делать как можно лучше
именно так!
он делал так чтобы код был как можно более меньше, оборудование загружено меньше, усилий на написание и поддержку было ниже
в итоге у нас не было проверки некоторых ошибок, просто потому 'а не нужно косячить', а код который сработает раз в 100 лет и то врятли — в проде не нужен, он там память занимает
разве не идеализм?
nikolas78
30.06.2022 16:25Если и идеализм, то выборочный какой-то. Здесь сделаем идеально, поэтому подстраховываться в других местах и не будем. Идеализм + наивизм? )) Надо спросить кого-то хорошо знающего философию…
upd
nikolas78
30.06.2022 14:59Я один в упор не могу такое воспринимать? Ужас же, особенно для программирования, это же не изучение дизайна или чего то подобного (хотя и там как по мне текст с иллюстрациями удобнее.
Так можно и не смотреть видео, а сразу к тексту перейти. Просто вы уже опытный разработчик и вам нужны только отличия Python от других ЯП, а сами алгоритмы и подходы у вас уже на уровне интуиции вбиты. А когда человек только знакомится с программированием всё намного сложнее. Но я все таки соглашусь с вами — всё зависит от ЦА такого курса. Можно затачивать обучение только для одной категории ЦА, или сделать удобным для разных ЦА.
OlegZH
30.06.2022 22:30+1Да. Мне было бы интересно сделать такой интерактивный самоучитель. Попробую такой сделать на досуге.
fishHook
29.06.2022 12:27+1Python - хороший первый язык программирования
Не согласен категорически.
Ровно по тем же причинам, почему коробка-автомат плохо подходит для обучения вождению. Почему детей сначала учат таблице умножения, а уже потом дают калькулятор. Да потому что процесс обучения начинается с элементарных основ - математика с арифметики, музыка с нот, а электротехника с лампочки и батарейки. Если вам с вашим первым языком дали из коробки ООП, встроенные структуры, сборщик мусора и пр. то каким образом у вас сформируется понимание, а зачем собственно все это нужно и какие проблемы решает? А главное, как это все дефолтное разумно применять?DMGarikk
29.06.2022 12:40коробка-автомат плохо подходит для обучения вождению.
спорно, подавляющему числу людей коробка автомат единственно нужный вид трансмиссии и за всю свою жизнь они никогда не столкнутся с вещами когда бы им пригодилось знание ручной.
Питон кстати очень неплохой вариант, учитывая что многие 'старички' ратуют за изучение программирования с Паскаля (того самого досовского)
Кирпич в сторону питона только в том что там динамическая типизация, но это отражение веяний отрасли на самом деле и (хоть я и не согласен) и еще вопрос насколько актуально учить программирование сразу с Си и упарываться управлением памяти если в дальнейшем человек никогда вообще эти знания использовать не будет и даже не будет видеть — зачем он это будет учить?
Это в теории хорошо порассуждать, а пофакту вы предлагаете очень высокий барьер входаfishHook
29.06.2022 15:00спорно, подавляющему числу людей коробка автомат единственно нужный вид трансмиссии и за всю свою жизнь они никогда не столкнутся с вещами когда бы им пригодилось знание ручной.
Это смотря кого вы воспитываете. Большинству людей, о которых вы переживаете, питон нафиг не нужен. Если же предполагается обучить специалиста, то и подход должен быть соответствующий. А так то да, большинству и теорема Пифагора ни разу в жизни не пригодилась.
DMGarikk
29.06.2022 15:12Это смотря кого вы воспитываете.
а кого мы воспитываем? сеньора-рокстара или рядового миддла?
я вот переживаю о том что сейчас зачастую придя на новую работу, со мной работают сеньоры которые с трудом sql знают и вообще в областях сторонних от их основной специализации очень поверхностно плавают… хотя у них и образвание профильное и на сях они чёто там в институте царапали.
==
будующий рокстар сам выучит то что ему нужно, а кто не выучит — никогда таким не станет даже насильноfishHook
29.06.2022 16:42а кого мы воспитываем? сеньора-рокстара или рядового миддла?
Программиста, насколько я понимаю. Книга же не во вышиванию крестиком
DMGarikk
29.06.2022 16:44книга для людей вообще далеких от темы,
хотя интересно было бы почитать обзор на чёнить такое и сравнить
www.amazon.com/C-Dummies-Stephen-R-Davis/dp/0470317264
alexesDev
29.06.2022 12:55Коробка автомат отлично подходит для обучения вождению. Ездить в поле на механике можно научить даже обезьяну, наверное. Трудно водить по ПДД в потоке, тут механика ничем не поможет, только будет отбирать внимание у загруженного мозга.
P.S. Учился на механике, потом как-то не подворачивались такие машины. Механика в основном встречается в бюджетном сегменте, купить новую машину в нормальной комплектации с механикой довольно сложно.
fishHook
29.06.2022 18:26Коробка автомат отлично подходит для обучения вождению.
Для обучения домохозяек. А язык программирования (даже питон) всё-таки профессиональный инструмент. Профессиональным инструментом невозможно правильно пользоваться не понимая, какие принципы лежат в его основе.
DMGarikk
29.06.2022 18:36Профессиональным инструментом невозможно правильно пользоваться не понимая, какие принципы лежат в его основе.
крамольную мысль выскажу — а как вы считаете что 'правильно?' правильно — это когда бизнесу нравится в метрике стоимость/выхлоп, а не 'код написан по феншую' sad but true как говорится
потом есть куча языков созданных чтобы «научился писать непрофессионал»
Вон например SQL — язык создававшийся для людей далеких от программирования вообще, фактически для менеджеров… и (удивительно для меня было) успешно менеджерами и даже операторами используемый как основной интерфейс в некоторых АРМ-ах
alexesDev
29.06.2022 18:53Вы кажется не помните как учились или у вас розовые очки. В процессе обучения придется перечитать тонну всякого хлама и найти там алмазы, которые и будут приносить бабки. Нельзя выучить 100% правильного материала банально потому, что без знания где херня все равно ничего не выйдет (именно поэтому не одобряю всякие курсы ДЛЯ НОВИЧКОВ, где дают самую мякотку).
Поэтому проще говорить "python - отличный язык для начала", а не "ну ты начни, потом разберешься", даже если этот язык кажется посредственным.
Ogra
30.06.2022 07:04Вот именно, начинать нужно с элементарных основ, постепенно наращивая свои знания. Сначала сборщик мусора, потом - ручное управление памятью, но никак не наоборот.
Сначала коробка-автомат, если учимся ездить по городу в потоке; потом добавляем механику, если нужно. А вот если хочется стать спортсменом, то напротив, езда в потоке вам будет только мешать, а значит, ваш выбор - картинг! Вот там вы будете знакомиться с нужными для "профессионала" вещами - передачами, загрузкой осей, пятном контакта и так далее. Езду по городу добавите потом.
Neikist
30.06.2022 11:09А вот фиг его знает. Мои первые попытки в самообучение программированию стопорились на том что меня бесило то что я не понимаю как работают всякие там методы стандартной библиотеки и сам ЯП под капотом. С мертвой точки все сдвинулось когда почитал про C, немного про asm, и полирнул книгой «Код. Тайный язык информатики».
DMGarikk
30.06.2022 11:56меня бесило то что я не понимаю как работают всякие там методы стандартной библиотеки и сам ЯП под капотом
так вот это и есть субъективность
Я вообще начинал с бейсика и у меня не было вообще никаких мыслей по поводу 'как оно под капотом работает' и уже сильно позже читал книжку по ассемблеру (просто для общего развития, а не с целью понять как ЯП работает)… а в принципе вернулся я к этому только уже в Яве и Питоне когда уровень задач стал переходить в сеньорские, а за си так вообще не решился взяться до сих пор
OlegZH
29.06.2022 20:45Интересно, а какого рода книги могли бы иметь смыл писать? Что могло бы быть полезным для новичков? Что могло бы быть полезным для профессионалов? Может быть, нужны какие-то узко направленные вещи? Например, "разработка ... систем на [ЯП]"...
Vasile4ek
30.06.2022 10:11Лично я несколько раз за пять лет подступался к питону, и каждый раз начинал с книг, под которые спал, не смотря на то, что всё в них понятно и хорошо сказано, без какой-либо практики синтаксис не освоить.
Последний раз я забил на книги и просто открыл семичасовой видос python hub studio, где он заставил меня установить питон(да мне было лень это делать, когда начинал читать, ведь и так всё понятно, я же не тупой), открыть его, настроить и повторять за ним. Понадобилось часа два, а дальше для всех вопросов гугл или тот же ютуб.
Книги это здорово, но не для чайников и не в прикладных вещах. Сейчас хочу научиться вязать и моим помощником вряд ли будет книга.
night_admin
30.06.2022 10:15Установка Python... на Linux?)
Такое ощущение, что автор книги ни питон, ни линукс ни разу в руках не держал.
DMGarikk
30.06.2022 10:35а это не так тривиально как кажется, коненечно для задач этой книги это кажется оверхедом но по факту:
в убунте системный питон может быть не той версии которая вам нужна
— вы легко и просто установите 3.10 если системная 3.8?
— у вас без проблем заработает pip в таком варианте, учитывая что многие либы ставятся apt-get + pip install?night_admin
30.06.2022 19:55sudo apt install python3.10 sudo apt install pip3.10
А в чем собственно проблема?
Плюс, я уверен, что новичку вообще не важно, какая у него версия питона. Исходя из своего опыта все версии 3.6+ отлично подходят для всех листингов из книг по питону. Ничего специфического там нет.
alan008
Хотел пошутить «Хабр не место для жалоб», а потом мне взгрустнулось. Почему? Да потому что добрая половина книг про программирование (если не больше) мечется от сложной теоретической академичности к алгоритму «введи это, введи то, опа — оно работает», как в примере выше. Наверно, нормально можно изучить только на практике. Плюс всегда есть сложность, что на написание книги и её издание зачастую уходят годы, а за это время уже многое может поменяться.
eugensk
Поэтому нужно читать только немногочисленных мэтров, кому действительно есть что сказать. И тогда из ждущих в засаде остаётся только халтурный перевод.