Dyzzet|
C++ Data Science Алгоритмы Темы · Блог · YouTube
День дельфийского сурка

Уникальный в каком-то смысле труд. Шесть книг по программированию. Четыре из них — по языкам Pascal и Delphi, а две другие — по языку Python. И хотя тема не C++, мимо названия «Полезное программирование» было трудно пройти, да и сам автор время от времени высказывается о C++.

ЭБС «Лань»

«Лабиринт»: Комлев

Николай Юрьевич Комлев. Полезное программирование

256 страниц. СОЛОН-пресс, 2016

Аннотация обещает сделать из читателя большого профессионала.

«Книга для тех, кто умеет программировать и уже готов этим зарабатывать.

Курс молодого, но профессионального программиста. Практические советы.

Что пригодится вам из пройденного и сданного. Что вы будете программировать сначала, а что позже, когда наберётесь опыта. К чему ещё можно применить ваш программистский талант, чтобы руководство одобрило и поощрило. Кратко, доступно, убедительно».

Подзаголовок книги — «Уникальное руководство к действию».

  1. Всё-таки учебная. Но в хорошем смысле
  2. Не совсем учебная. Графики
  3. С чего начинается работа
  4. Как продолжается работа. Что-то ветвистое
  5. Системы контроля версий
  6. О скучном — динамические библиотеки
  7. Мелкие технические подробности
  8. Техника программирования, или Это вы обязательно должны знать
  9. Что должен знать программист? Как он должен себя вести?
  10. Для дома, для семьи

Приложения («Справочник обо всём»): «Всё о данных», «Всё об организации программы на нескольких страницах», «Всё о процедурах и функциях», «Всё продвинутое программирование на нескольких страницах», «Всё о списках. Или почти всё...», «Всё объектно-ориентированное программирование», «Простенький модуль для работы со строками. Простой, но очень полезный». Отдельно — «Задания для самостоятельного развития».

Долго и витиевато автор рассказывает, для кого он писал книгу: для тех, кто только что закончили университет и начинают работать, больше нигде не учатся и в аспирантуру не собираются.

// Уточнение

Всё вышесказанное о недостатках студентов касается в первую очередь их ненадёжности как работников, а совсем не их ума. Бывают и невообразимо [...], но чаще всё-таки наоборот. Один из бывших у нас студентов позже состоял в команде, выигравшей то ли чемпионат, то ли олимпиаду России по программированию. Занудства ради, на тот момент он был ещё студентом колледжа, бывшего индустриального техникума. Наберите в Google «колледж имени Коняева хакер». Нет, это не он.

// конец Уточнения

У книги своеобразный стиль.

«...Я даже не буду объяснять, что такое класс и что такое — экземпляр класса. Но, поскольку я очень добрый, я это объясню».

«Хотя все примеры в книге на Delphi (в девичестве Pascal), программистам на C++ беспокоиться нечего. Как всем известно, Дельфи гораздо проще и примитивнее C, так что они (сишники) поймут всё просто с полпинка».

Мысли автора о тех, кто пишут на разных языках, вызывают противоречивые чувства.

«И просто на всякий случай, я вовсе не считаю всех пишущих на C++ идиотами, даже если складывается такое впечатление. Это вполне приличные, милые, забавные люди. Бывают даже и девушки. Просто я глубоко убеждён, что C — язык для очень умных людей, а все остальные должны писать на Delphi».

Автор рекомендует книги. Тут и интересные старые книжки вроде «Элементов стиля программирования» Кернигана и Плоджера (1984), и книжки по компьютерной графике, и всякая всячина (интересная, но нерелевантная), особенно «Что такое математика» В. И. Арнольда (2002), задачи которого автор цитирует:

«Какую долю от объёма пятимерного куба составляет объём вписанного в него шара? А от десятимерного?»

Далее нас ждёт «самореклама» будущих книг автора в одноимённом подразделе: «Абсолютное руководство по написанию игр» в трёх томах, «Книга для больших программистов и маленьких начальников», «Программы-мутанты, или Почему они придут за вами!» («книга о самомутирующих программах»).

На «виртуальном диске», то есть в приложении — половина книги «Школа игры на Паскале». «Шестиструнном Паскале», по выражению автора.

Структура книги непростая.

Глава 1. Всё-таки учебная. Но в хорошем смысле

Вступление в предисловие

Продолжение вступления в предисловие

В начало книги попало эссе автора о резюме с историями из жизни. Например, о соискателе, которого не взяли на работу, хотя он знал 30 языков, но не знал Фортран.

Не совсем понятно, зачем объяснять молодым профессионалам, что такое пузырьковая сортировка. Но автор это пытается сделать.

Много на страницах книги (и других книг тоже) личного отношения автора к каким-то техническим вещам.

Опишите действия данного кода:

MyThread := TMyThread.Create(True);
MyThread.FreeOnTerminte:=true;
MyThread.Resume;

Не люблю я эти потоки.

Также много цитат из известных и малоизвестных фильмов без особой на то надобности.

Автор делает такие вольные заявления:

«Ось абсцисс (ось X) в программировании расположена так же, как и в математике, слева направо. А вот ось ординат (ось Y) расположена строго наоборот».

Попробуйте угадать, что такое «ось абсцисс в программировании».

В главе «С чего начинается работа» написано что-то про массивы и объекты. К терминам автор относится вольно: «Классы, они же объекты». К математическим терминам — тоже: «Что такое кривая? Это функция, ось \(X\) и ось \(Y\)».

Понять, зачем автор что-то упоминает, иногда сложно:

«Этот список хранит просто указатели. Ещё он легко и непринуждённо может хранить любые совместимые с указателями по размеру (четырёхбайтовые) данные, но в данном конкретном случае нам это ни к чему».

Оригинальный подход — показывать классы на примере гипотезы Гольдбаха (любое чётное, начиная с 4, можно представить в виде суммы двух простых). Некоторые ложные вещи подаются как факты. Так, правда в том, что сигнатура exe-файлов MZ названа в честь Марка Збиковски, а не того, о ком нафантазировал автор. Остаётся вопрос: зачем вообще эта информация в главе «А теперь о главном. Важное» и вообще в этой книге? А что делает в книге рекомендация почитать «Философию программирования Windows 95/NT»?

А что делает в книге этот пассаж?

// Вечность

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

[Здесь автор пишет про магнитные ленты и теории заговора: о полёте на Луну, о «Титанике», политике и т. д. — Прим. DZ]

// Конец Вечности

Глава о системах контроля версий очень необычная. Это рассказ о системе Visual SourceSafe Explorer, которая больше не поставляется с Visual Studio. А ещё эта глава про то, что́ нужно хранить на дисках C, D и E (что-то горячее). Вы догадались, что глава про динамические библиотеки («О скучном») будет в основном не про динамические библиотеки?

Глава «Мелкие технические подробности» — о сортировках. Они просто упоминаются: быстрая, коктейльная, сортировка расчёской... Без начала и конца.

Что автору удаётся — так это провокации. Глава «Техника программирования, или Это вы обязательно должны знать». Становится любопытно. Оказывается, нужно знать указатели. И всё бы было хорошо, если бы не история, как автор когда-то программировал на M-20 («а может, M-220») в машинных кодах. История без выводов и морали. Только бесконечно скучные примеры кода:

MS.SetSize(skoka);
Move( p^, MS.Memory^, skoka);

После этого глава «Что должен знать программист? Как он должен себя вести?» не вызывает энтузиазма. «В этой главе будет много о моём личном опыте», — пишет автор. А также о Петре Первом, Ломоносове и проверке орфографии в текстовом редакторе. Раздел «Математика» — это биография автора, в которой он рассказывает, как учился играть на гитаре, и жалуется, что ему хотелось, чтобы его больше учили языкам программирования (на специальности «Прикладная математика»). У автора, надо сказать, довольно превратное представление о том, как учат инженеров ПО. А в разделе «Информатика» автор говорит о случайном наборе языков, о которых он слышал, и физике.

Корчеватель

А «Для дома, для семьи» (название главы), оказывается, нужно прочитать пару книг по Турбо Паскалю начала 1990-х годов. И написать языковую модель на основе цепей Маркова («бредогенератор»; в пример автор приводит знаменитый «Корчеватель» — наукообразную статью, которую удалось опубликовать в журнале как настоящую). Мимоходом что-то рассказывает про Лисп.

У автора есть страсть к тому, чтобы писать книги. Несколько раз он упоминает, что в интернете есть его не опубликованные официально книги (или нет) или что он собирается их написать. Например, анонсирует «Полное введение в теорию вероятностей на Дельфи за пятнадцать минут, с цветными пошлыми картинками». Сюда же попала задача под условным названием «Библейский код» — перемешать символы в тексте и найти там смысл и предсказания.

В приложениях тоже попадаются интересные вещи. Приложение C «Всё о процедурах и функциях»:

«Как знает каждый образованный человек, в C++ секса нет».

В конце книги есть «Задания для самостоятельного развития», вот пример:

«Найдите [...] картину „Масленица“, автор то ли Куклин, то ли Окуклин. Если долго смотреть на картину, можно заболеть той же болезнью, что и автор. Угадайте, какой именно болезнью. Об этом вас обязательно спросят на собеседовании. Говорят, правильному психиатру для правильного диагноза достаточно надеть белый халат».

Многие вещи в книге видятся оскорбительными, так что их процитировать здесь невозможно. Идеи скачут. Всё в вольном стиле. И в авторской редакции. С мемуарами, цитатами из фильмов и анекдотами. Книга в прошедшем времени.

Николай Юрьевич Комлев. Объектно-ориентированное программирование. Хорошая книга для хороших людей/Настольная книга программиста

Рик Гаско. Объектно-ориентированное программирование. Настольная книга программиста

298 страниц. СОЛОН-пресс, 2014/2018

Оригинальное название на обложке написано неправильно. Выглядит эта книга так же, как и предыдущая. Только автор у неё то Н. Ю. Комлев, то Р. Гаско, а «редактором» указан Н. Ю. Комлев. Кстати, Рик Гаско (Гэсско) — персонаж фильма «Мальчишник» (1984), которого сыграл Том Хэнкс. В своих книгах автор цитирует и фильм «День сурка» (1993), в котором главную роль сыграл тот же актёр.

Книга «посвящается, естественно, Хорошим Людям. Нас так мало осталось».

  1. Теория
    1. Простая программа. И как будто ничего нового
    2. То же самое. Весело и с объектами
    3. То же самое. Delphi. Глава очень короткая
    4. Речь в данной главе пойдёт только и исключительно о свойствах
    5. Теперь по-научному. Инкапсуляция
    6. Понятная программа про наследование без терминов
    7. Теперь по-научному. Наследование
    8. Практические занятия по наследованию. И по тестированию
    9. Наследование очень коротко
    10. Что-то с виртуальными методами
    11. Теперь по-научному. Полиморфизм
    12. Вся теория вместе и коротенько. Раз и навсегда
    13. Коротко. Особенности ООП применительно к Delphi
    14. Эскиз очень сложной программы. Карты
    15. Эскиз программы. Пускай умрёт слабейший
  2. Практика

Приложения: «Немного о карточных играх», «Как настроить Delphi», «Как рисовать в TP. На одной странице. Нет, на двух», «Как рисовать в Delphi», «Простой объект для работы с клавиатурой через BIOS», «Программа о словах. Полностью и даже лучше», «Очень полезные процедуры, функции и классы».

Хотя книга разбита на две части — теорию и практику — в части по теории есть практические задания.

Этот труд никогда не видел корректора и редактора:

Язык C+ [sic] замечательный язык [...]

Если честно, вообще непонятно, что делает цитата Вильяма Похлёбкина из книги «Моя кухня и моё меню». И рассуждения про зелёный суп.

Книга — листинги кода с комментариями в виде анекдотов, историй о жизни и киноцитат. Идея с картами, пожалуй, хорошая (но, наверное, не для учебных заведений), некоторые приёмы работы с объектами удобно показывать на картах, но у автора что-то выловить здесь сложно.

Написано очень вязко. Конечно, об объектно-ориентированном программировании, проектировании, каких-то приёмах мы почти ничего не узнаем.

Отзывы на «Лабиринте»

Рик Гаско. Простая математика для простых программистов

260 страниц. СОЛОН-пресс, 2018

Здесь автор уже «новый».

«Посвящается тем непростым программистам, которые всё-таки знают математику»

Видимо, к таковым себя причисляет автор.

  1. Просто цифры. А также системы счисления и кодировки
  2. Простая арифметика
  3. Математическая логика. А надо? Пожалуй, всё-таки надо
  4. Комбинаторика и... И всё
  5. Теория вероятностей. Очень полезная на самом деле вещь
  6. Теория вероятностей. Некоторые бесполезные применения
  7. Теория вероятностей. Скучные и важные понятия в виде конспекта
  8. Настоящая Математика — математический анализ и что с ним делать

Приложения: «Простая процедура для рисования графиков с уместными комментариями. Длинное приложение, но полезное. Но длинное», «Просто колода карт. Полезна для простых опытов из теории вероятностей», «Та самая гравюра из Невского альманаха. И бонус», «Баллада о синусе», «Приложение Е, печальное. Чего в книге нет, но могло быть» (отсылка к фильму «Любовь и голуби»; а в книгу не вошли: матрицы, высшая алгебра, графы, теория игр, вычислительная математика, аналитическая геометрия), «Приложение F, радостное. Чем заняться на досуге, по главам».

Что мы узнаем? Биографию автора («в дипломе написано „Математик“ орфографически правильно»), цитаты, в том числе из «Дня сурка», много анекдотов.

Отзывы вполне исчерпывающие.

«Книга написана утомительным хамоватым стилем и засыпана доверху неуместными цитатами и пошлыми анекдотами, которыми автор среди самовосхваления постоянно перебивает себя. [...]

Автор [...] прочно застрял в замшелом Pascal и Delphi утверждая, что они, дескать, очень полезны для понимания алгоритмов».

Но в начале книги про математику есть главка про опечатки и ошибки в предыдущих книгах. Первая — «про Паскаль всех видов», вторая — про «ОПП» [sic] и т. д. Так автор расписывается в том, что он действительно автор, а не просто редактор (книга «Полезное программирование», с которой мы начали, посвящена «всем людям, которые хотят получить пользу от программирования», её официальный автор — Н. Ю. Комлев).

«Ещё должен признаться, что посвящение к предыдущей книге («Полезное программирование») было немного другим. Изначально там красовалось „Посвящается жалким ничтожным людишкам, которые ждут от программирования только пользы“. Издатель решил, что это может обидеть потенциального читателя. Я согласился и заменил: „Посвящается тем, кто ждёт от программирования пользы и денег, лучше, конечно, денег“. Ну, а здесь-то что обидного? Но Издателю и это не понравилось».

Слово «Издатель» автор пишет непременно с большой буквы, подчёркивает и добавляет знак ™.

Астраханский госуниверситет предлагает студентам «Простой учебник программирования» Рика Гаско

Рик Гаско. Простой учебник программирования

320 страниц. СОЛОН-пресс, 2018

Автор не изменяет своему стилю. Название начальной главы: «Всяческие вступления и предисловия (вступление № 1, вступление № 2 — от старой книги с моей давно изменившейся точки зрения)».

  1. Просто программа
  2. Переменные
  3. Условные операторы
  4. Очень простая. Немного графики
  5. Сложная. Циклы и массивы
  6. Строки
  7. Продолжение пятой. Ещё циклы и массивы
  8. Процедуры и функции
  9. Совсем настоящая программа
  10. Файлы
  11. Всякие глупости, она же Глава очень длинная

И ещё набор загадочных глав.

  1. Ещё раз: простая программа и переменные
  2. Вспомнить всё, или Не очень сложная программа — ханойские башни
  3. Всё таки кое-что новое
  4. По ту сторону — опустимся чуть ниже
  5. Указатели. Зачем они действительно нужны

«Так получилось, что шесть лет я учил программировать. Сначала решил для интереса попробовать один год, но получилось шесть. [...] Но до того как начать учить, я много лет программировал. И пока учил, тоже программировал. [...] А в придачу руководил и руковожу группой коллег-программистов. [...]

Так получается, что опытные педагоги, обучающие программированию, обычно программисты-теоретики и ничего существенного запрограммировать им в жизни не довелось».

Среди всех книг эта содержит, наверное, меньше всего постороннего, но то, что есть, заставляет удивляться:

«...С желанием оттоптаться по телу безобидных сиплюсплюссников — C++ язык очень сильный, позволяющий программисту буквально всё. [...] Си программиста не ограничивает ни в чём, Паскаль берёт за хобот и тащит унылой, но безопасной дорогой».

А стиль кода просто великолепен.

nashli:=true;

В принципе, интересная и простая задача — считать из файла ноты, длительности и воспроизвести через встроенный динамик. Почитайте:

«Все фа стали на полтона выше. Кстати, диез на ноте фа стоит, а тональность называется соль мажор. Хотя, с другой стороны, „Муму“ Тургенев написал, а памятник почему-то Пушкину поставили».

Попутно автор объясняет нотную грамоту.

Задача для самостоятельного решения:

«Запишите нашей программой для музыки девятую симфонию Бетховена. Или пятую? Какая разница!»

Многое уже было в других книгах: указатели, ханойские башни — теперь с картинкой, ранее автор долго рассказывал про «графику в Паскале», но ни одной сгенерированной картинки не было. Поначалу автор вставляет скриншоты консоли, а потом бросает это.

Он пишет, что хотел бы привести отрывок из одной книги, но боится нарушить авторские права (хотя закон не запрещает цитировать), и тут же пишет «обновление», будто бы это не книга, а пост на форуме:

«Upd. Ан нет. Вышел, вышел срок [авторских прав]».

Отрывок в книге так и не появился. Как и цитата Дейкстры:

«Здесь должна была быть цитата из Дейкстры, но я её не нашёл. Может, это не Дейкстра был? Дейкстра, если что, — это такой величайший программист всех времён и народов. Смысл мысли был в том, что когда если программист программирует какую-то конкретную фигню, то он должен быть на ней, на фигне, и сосредоточен, но не полностью, а только на 99 процентов. А в уголке мозга у него, программиста, должна быть красная лампочка в погашенном состоянии. И когда программист тем текстом, который он пишет сейчас, портит что-то из написанного ранее, а возможно, также из того, что будет написано только позже — лампочка должна ярко вспыхнуть».


Обзор на Youtube-канале, где изучают Python

Обзор книги «Простой Python просто с нуля» на «Хабрахабре»

Рабочая программа по «Технологии программирования» в Рязанском радиотехническом университете ссылается на эту книгу

Рик Гаско. Простой Python просто с нуля

258 страниц. СОЛОН-пресс, 2019

Это издание уже не раз обозревали, его критикуют за то же, за что критикуют другие книги, а также за устаревшую версию языка Python.

Вы удивитесь, но в книге есть примеры кода на Паскале.

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

Рик Гаско. Простой Python для опытных программистов

268 страниц. СОЛОН-пресс, 2021

  1. Питон в статике
  2. Краткое введение. Питон в динамике
  3. Списки, кортежи, словари
  4. Питон, расфасованный по пакетикам. Функции
  5. Питон, как консервы в холодильнике. Файлы
  6. Более сложные примеры из жизни файлов
  7. Введение в графику, которого нет
  8. Питон и математика
  9. Модули, очень коротко
  10. Классы. Два слова о классах. Или три

Приложения: «Как работать в традиционной среде», «Как работать в интерактивной среде», «Что такое Geany. Коротко», «Так что же такое текстовый файл», «Что нужно знать об оптимизации — на трёх страницах [...]», «Страшное слово — PEP-8» (PEP-8 — соглашение о том, как писать код на языке Python), «Что-то в этом есть», «18+. Отношение к Питону через проекцию А. С. Пушкина».

В книге есть главки «Кортеж — это понятно, только зачем?» и «Lambda. Оно надо?». То есть автор так и не разобрался в том, что такое лямбда-функции, но взялся за учебник якобы для более продвинутых.

* * *

Средняя цена книг — 1300 рублей, со скидками по акции — 900. Дороже всего стоит книга по ООП. У некоторых книг сносные обложки, на других стоит метка «Библиотека профессионала», внутри — исходники, какие-то термины, так что может показаться, что это стоит купить. Но если присмотреться, то выяснится, что даже в учебнике по языку Python автор пишет свои мемуары с анекдотами и кодом на Delphi, и кажется, что День дельфийского сурка никогда не закончится.

4 марта
Зарегистрируйтесь и войдите, чтобы оставлять комментарии и голосовать.

Также может быть интересным
© MMXI—MMXXIII. RSS. Поддержать сайт
Светлая тема / тёмная тема