The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Опубликован третий том общедоступной книги 'Программирование..."
Отправлено Ordu, 29-Июл-17 15:12 
> Я в тексты не заглядывал...

Заглянул и полистал.

TL;DR

Первый том -- совершенно бесполезный учебник паскаля. Если нет цели изучить паскаль, то туда не стоит даже не заглядывать. Если это будет приводить к проблемам усвоения материалов второго/третьего тома, то надо будет сходить в гугл, найти там какой-нибудь тутор к тому же питону, и освоить там основные концепции, типа циклов.
Второй и третий тома -- отличный ликбез. Не стоит ждать, что эти книги научат алгоритмам или структурам -- они вообще не об этом. Там изложены азы C, libc, и азы устройства *nix систем. Изложены очень поверхностно, но достаточно широко для того, чтобы создать в голове у читателя более-менее полную картинку. Эти два тома -- отличный фундамент, который позволит двигаться дальше. Таким образом, эта книга, лучший из мне известных способов въехать в программирование под *nix. Но, подчеркну, не _стать_*nix-программистом_, а _въехать_ в тему. Обозреть перспективы и сориентироваться в океане информации гугла.

А теперь, по порядку.

Первый весь том посвящён паскалю. Педагогическая цель этого тома -- объяснить абстракции структурного программирования. Таким образом первый том практически бесполезная вещь. Лучше взять и почитать Кернигана и Ритчи, или любой другой пристойный труд посвящённый изложению этих азов на любом живом языке программирования. Это будет гораздо более эффективной тратой времени. Его аргументация в пользу выбора паскаля как первого языка программирования столь же невалидна, как и аргументация проф. Вирта. А уж отсылки к тому, что в какой-то там школе обучают программированию начиная с C++ и ученики не знают, что такое цикл -- это вообще шедевр педагогической аргументации, достойный лучших образцов выступления анонимов в интернете. Я пробовал детям излагать программирование, причём на паскале, C, и на языке специально созданном для обучения самым-самым азам. Более того, я слушал курсы педагогики, психологии развития и общей психологии. Так вот, мой опыт и мои знания сходятся в одном: выбор языка до лампочки, реально же влияет а) то как материал подаётся, насколько учитель понимает, что он излагает; б) мотивация учеников к усвоению материала: знания нельзя положить в чужую голову силой, только владелец головы может чему-нибудь научить свою голову, учитель же (в идеальной ситуации) должен играть роль инструктора, объясняющего как можно справиться с тем или иным материалом. И выбор конкретного языка здесь совершенно до лампочки, до тех пор пока он не мешает ученикам обретать мотивацию (изучать допотопный паскаль в DOS'е? фу), или не мешает учителю показывать те или иные абстракции (функциональное программирование в C? ну-ну). Аргументация же выбора языка вида "с C можно связываться только зная, что такое указатели" -- это явный признак "кухонной" педагогики, типа того, что случается, когда человек выходит за границы своей специализации, когда, например, программист (пускай он при этом хоть трижды профессор и доктор физ-мат наук) начинает рассуждать о том, как надо учить людей не будучи при этом учителем и не прочитав ни одной специализированной книжки, набирая при этом опыт посредством проб и ошибок, вместо консультаций со специалистами.

Второй том уже лучше, он излагает вещи, которые неплохо было бы знать, и он излагает на таких примерах, которые не совсем бесполезны сами по себе. Да, с одной стороны, применимость того же nasm очень узкоспецифична, но всё же, если цель писать законченные программы на ассемблере, без примеси других языков, то nasm -- неплохой выбор. Но второй том -- это опять же изложение базовых-базовых основ. Скажем раздел про структуры данных занимает ~25 страниц, из которых 15 посвящено разбору идиотских академических примеров того, как надо реализовывать никому не нужные односвязные, двусвязные списки и двоичные отсортированные деревья. То есть, нужно знать о таких структурах данных, но знание это не удастся непосредственно и удачно приложить к решению практической проблемы, не проводя отдельного исследования на тему того, что такое структуры данных и каковы алгоритмы их обработки.

Третий том -- это разбор unix'ов прошлого века и libc. Если цель -- первое знакомство с unix, то отличная книга. Если же цели шире, то эту книжку можно полистать, но затем всё равно придётся осваивать info libc (в glibc-based системах, по-крайней мере), и отдельно брать какой-нибудь современный труд посвящённый азам администрирования linux и/или *bsd. Взять и собрать LFS, или там gentoo/arch, на худой конец. На фоне последующих необходимых шагов, непонятно зачем нужен этот третий том, потому что info libc даёт более полный обзор возможностей glibc и POSIX libc, причём info libc можно использовать и как справочное пособие, а не только как учебное. Сборка же LFS даёт более полный обзор устройства linux. И в обоих случаях порог вхождения, чем для этой книги. Ну, разве что английский потребуется, но это даже плюс: можно параллельно освоить английский на уровне уверенного чтения технических текстов, что для программирования может быть даже полезнее, чем знание азов.

При этом, в этих книгах нет никаких сакральных знаний, ради обретения которых приходится долго-долго рыть гугель, находить обрывки этих знаний, собирать их воедино, почитывая сорцы ядра или каких-нибудь библиотек. Взять те же терминалы, которые разобраны на пару десятков страниц, и там вообще всё сводится к общим словам о том, что такое терминал, плюс упомянуто несколько функций libc, которые будут очень полезны при работе с терминалами. Да, большинству программистов этого более чем достаточно, но я к тому, что всё это -- лишь базовые знания, которые годятся лишь на то, чтобы лежать в голове и иногда помогать составить чуть более грамотный запрос гуглу, экономя таким образом время.

Таким образом, всё это очень напоминает мне попытку проапгрейдить курсы программирования/архитектуры ПК/ОС, с которыми я сталкивался в наших ВУЗах. Если знаний вообще ноль, и цель исправить этот косяк, то имеет смысл взять второй и третий тома в качестве базы, этого достаточно, чтобы заложить некий фундамент с которого можно двигаться дальше. Не буду утверждать что это лучший способ заниматься ликбезом при нуле знаний... Утверждать не буду, но всё же осторожно предположу, что это действительно лучший способ ликбеза, когда знаний ровно столько, чтобы понимать эти книги, начав читать со второго тома.

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

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру