LINUX.ORG.RU

Вышло издание 2,92 книги «Программирование: введение в профессию» А. В. Столярова

 , , ,

Вышло издание 2,92 книги «Программирование: введение в профессию» А. В. Столярова

4

4

Тихо и незаметно 30 апреля 2026 года вышло издание 2.92, которое наконец включает в себя читаемый текстовый слой.

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

Книга предназначена для самообучения основам программирования и в отличии от многих других изданий предполагает фундаментальный подход - вначале основы дискретной математики и использования GNU/Linux или BSD с командной строкой, затем паскаль, потом ассемблер и только потом Си, системное программирование и альтернативные парадигмы (функциональное, логическое и так далее).

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

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

>>> Ссылка на страницу издания
>>> Альтернативные способы скачивания

>>> Новость на сайте автора

★★★★★

Проверено: dataman ()
Последнее исправление: dataman (всего исправлений: 9)
Ответ на: комментарий от hobbit

Кстати, а как там с регистрозависимостью в Расте?

Алиска от ТЫндекса ответила:

Да, язык программирования Rust регистрозависимый. Это означает, что регистр символов в идентификаторах (именах переменных, функций, модулей и т. д.) имеет значение. Например,

MyVariable и myvariable

— это разные идентификаторы.

Такая особенность связана с синтаксисом языка, который похож на синтаксис Си и C++.

Somebody ★★★★
()
Ответ на: комментарий от mister_VA

Паскаль утратил актуальность из-за «встроенной» ограниченности. На нём удобно писать проги до нескольких сотен строк для личного использования,.. если не знаешь ничего другого. Но даже при этом постоянно будешь наталкиваться на паскалевские ограничения.

На Delphi чего-только не писали, чуть ли не полноценный бухучёт. И TeX изначально был на Паскале написан и в нём не «несколько сотен строк для личного использования».

monk ★★★★★
()
Ответ на: комментарий от bugfixer

Вы действительно видите смысл в «программировании ради процесса» в отрыве от какой-либо прикладной задачи?

Более того, я даже читал книжку (с картинками) которая так и называлась The Art of Computer Programming - и была посвящена этому примерно целиком. Довольно популярная, кстати - искренне рекомендую в отличии от убожества из новости ;)

zabbal ★★★★☆
()
Последнее исправление: zabbal (всего исправлений: 1)
Ответ на: комментарий от Somebody

это совершенно обычный подход многих, если не большинства, «преподавателей»

Что не делает его приемлемым.

Это сто-сорок-какие-то-там статьи УК

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

а «заявы» на них не пишет…

Даже если отбросить предыдущее, с чего ты решил что им не пох - они совершенно не обязательно живут под юрисдикцией РФ. Даже на этом форуме над Столяриком ржут люди с разных стран и даже континентов. Натужные попытки Столярика пропиариться любой ценой таки дали свои плоды, пусть и не те на которые он рассчитывал - теперь этот фимозный шиз известен не только в РФ :)

zabbal ★★★★☆
()
Ответ на: комментарий от s-warus

Читать Столярова можно и нужно

А по мне так лишняя трата времени на выдуманные непонятно зачем определения общепринятых понятий, мёртвые языки и авторскую идиосинкразию для давно распространённых практик индустрии.

Даже краткий список авторского фимоза http://www.rebuildworld.net/taboo/ искренне восхищает.

Вот приходит к тебе сектант Столярика для «введения в профессию» и такой:

  • никаких внешних зависимостей
  • никаких интерпретируемых языков
  • только статическая линковка
  • никакого MIME\XML\JSON
  • никакой многопоточности
  • никакого TLS … и ещё пара экранов такого бреда.

И вот к кому практическому делу ты сможешь этого «введённого в профессию» Столяриком приставить? Кофе подносить и полы в офисе мыть?

Для того чтобы написать адекватное введение в профессию ты просто обязан быть частью этой самой профессии. Заметь, именно реально быть, а не воображать себя как Столярик.

Может балерина написать «введение в профессию слесаря», не поднимая ничего тяжелее пуантов за всю жизнь? Вообще без проблем. Будут над ним слесари ржать? Наверняка, так что молотки будут от смеха из рук вываливаться.

zabbal ★★★★☆
()
Ответ на: комментарий от zabbal

Даже краткий список авторского фимоза http://www.rebuildworld.net/taboo/ искренне восхищает.

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

никаких внешних зависимостей

Он хочет, чтобы «всё своё ношу с собой». В принципе даже можно понять, намучавшись с dependancy hell

Но вот чем ему не угодила динамическая линковка я так толком и не въехал. В конце-концов, если не хочешь, чтобы во время работы программа линковалась с чем-то непонятным, то dlopen() на файл с либой никто не отменял. Но он же даже с X'ами хочет статически линковаться и огорчается, что это слишком сложно и приходится допускать динамическое связывание.

и ещё пара экранов такого бреда.

В итоге он кажется пришёл к тому, что rebuild world надо только на C89 и докомитетском C++, т.е., до стандарта C++-98.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от zabbal

Что не делает его приемлемым

Для кого?? Твоё мнение, ваши «повизгивания» в сети никого не интересуют...

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

«Бы»...«бы»... «Наивные чукотские мальчики»...

ржут люди с разных стран и даже континентов

Я не психиатр, так что пусть себе «ржут», пока...

Натужные попытки Столярика пропиариться
на которые он рассчитывал

Это и подобное выглядит как туипичные бредовые фантазии, «проекции и переносы» сетевого сролля... Бессильная злоба завистливых неудачников... :))

этот фимозный шиз

Классная подпись!.. :))

Somebody ★★★★
()
Ответ на: комментарий от VanyaZay

Эту хрень даже кто-то на hacker news постил. Новость величественно собрала 3 комментария, один из которых гласит: «If you’re going to make me rebuild the world in a restricted subset of C++, I’ll just find a way to content myself with the current world. Good luck.»

На ycombinator https://news.ycombinator.com/item?id=45518124

О, ещё на https://forums.freebsd.org/threads/manifesto-www-rebuildworld-net.100985/

Там больше 3-х сообщений, но везде почему-то ржут =) Хотя среди FreeBSD там более взвешенное обсуждение. Что характерно, кто-то даже заподозрил в манифесте Столярова высмеивание идей минимализма.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 3)
Ответ на: комментарий от Somebody

«Бы»...«бы»... «Наивные чукотские мальчики»...

Развалилось бы. Его сайт никто не взламывал, никакую информацию незаконно не копировали и не блокировали, денег зарабатывать не мешали, сайт не относится к критической инфраструктуре.

Просто во время чтения сообщения (страницы с сообщением) в браузере вылезло стандартное js-окошко алерта с Hello World или что там написали. И то, если в браузере был включён javascript. Да ещё и сообщение не прошло премодерацию. Это надо сильно натянуть сову на глобус, чтобы уголовку из этого сделать.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от zabbal

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

s-warus ★★★★
()
Ответ на: комментарий от Somebody

ваши «повизгивания» в сети никого не интересуют…

Ну наконец-то ты понял «ценность» твоих комментариев :-D

zabbal ★★★★☆
()
Ответ на: комментарий от mister_VA

мак ос была на нём написана, паскалевский способ вызов функций можно в си использовать в нём нет возможности вызвать переполнение (winapi такое соглашение использует), turbo pascal генерит такойже быстрый код как и си того же времени. Он безопаснее си того времени. Типы переменых операторы си и паскаля того времени равнозначны (кроме строк, строки си с нулевым концом самая большая глупость). Компилятор паскаля сложнее писать, это да.

s-warus ★★★★
()
Ответ на: комментарий от zabbal

Ну наконец-то ты понял «ценность» твоих комментариев

Вообще-то я имел в виду злобные выпады местной злобной и пустопорожней парочки: твои и ещё одного п... гмм.. пользователя, скажем так... :)

Но ты можешь продолжать эти детские бессмысленные попытки «куснуть»: «горячо нелюбимого вами» Столярова, хотя его со всей очевидностью вам не достать, а меня твои потуги не трогают...

Вашу бы энергию, «да в мирных целях»: взяли бы, да и написали для людей что-нибудь стоящее, а не это вот ваше пустое злобное критиканство... Но «чукчи не писатели», это понятно... :))))

Somebody ★★★★
()
Последнее исправление: Somebody (всего исправлений: 1)
Ответ на: комментарий от s-warus

строки си с нулевым концом самая большая глупость

А что не «глупость»?..

Somebody ★★★★
()
Ответ на: комментарий от anonymous_incognito

но везде почему-то ржут =)

Ты не понимаешь, это же

Бессильная злоба завистливых неудачников…

как сказал фанбой Столярика комментом выше ;)

zabbal ★★★★☆
()
Ответ на: комментарий от Somebody

его со всей очевидностью вам не достать

Это только в глазах фанбоев Столярика кто-то пытается вечно обидеть их гуру. В то время как в треде подробно и с многочисленными примерами обсудили именно чудовищное качество это «учебника», вызванное полной профнепригодностью его автора - которую тоже продемонстрировали с кучей подтверждающих ссылок и примеров. И если хотя бы паре начинающих это сэкономит время на чтение бессмысленной макулатуры - значит доброе дело уже сделано. Хотя удовольствие от пригара фанбоев Столярика и само по себе того стоит :)

написали для людей что-нибудь стоящее

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

zabbal ★★★★☆
()
Ответ на: комментарий от zabbal

фанбоев Столярика
твоего гуру

Тут вопрос к тебе, пуcтышка... Вопрос риторический, да... Ответ явно положительный :))

Я не знаком со Столяровым и не читал его книг. Единственное интересное здесь - комментарии и мнения людей (не прими на свой счёт), единственно забавное - пара здешних «живых иллюстраций» к образу небезызвестной собачки из басни «Слон и Моська»...

Ну детские попытки «задеть» и «уколоть» кого бы то ни было я «списываю» на незрелость их «источников». Ничего полезного вы не пишете, но и особо не мешаете - так, «шум эфира»...

Я понял из комментариев, что Столяров мог кого-то задеть, «ранить» болезненное эго незрелых инливидов, возможно, что и достаточно болезненно. То-то вы и «беситесь» здесь, «на безопасном расстоянии»... ;P ;)))

Но он что-то уже сделал и делает, независимо от оценок его труда «досужими зеваками» и людьми более адекватными, проявившими здесь способность к более взвешенным суждениям. Вы же, критиканы пустопорожние, не сделали ничего. Это многое говорит и о нём, и о вас.

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

И да, будьте здоровы!.. :) А то мало ли... кто тогда развлекать людей будет??.. ;))

P.S. @}->-- ;)

Somebody ★★★★
()
Последнее исправление: Somebody (всего исправлений: 2)
Ответ на: комментарий от Somebody

Я понял из комментариев

Опять ты себе льстишь. Хотя порвало тебя знатно конечно - непременно продолжай, твой баттхёрт весьма доставляет несмотря на обилие бессмысленных скобок :-D

zabbal ★★★★☆
()
Ответ на: комментарий от anonymous_incognito

В принципе даже можно понять, намучавшись с dependancy hell

Но вот чем ему не угодила динамическая линковка я так толком и не въехал.

Так именно этим. Запускаешь на своём компьютере с libc.so.6, всё работает. Отдаёшь пользователю: symbol lookup error. Причём пользователь считает, что ты виноват в том, что у него кривая библиотека.

то dlopen() на файл с либой никто не отменял

Так если файл с собой, то зачем dlopen? Разве что для извращённых случаев, когда программа закрыта, а библиотека LGPL. Но это юридическое требование, а не техническое.

Но он же даже с X’ами хочет статически линковаться и огорчается, что это слишком сложно и приходится допускать динамическое связывание.

Есть вот такое: http://flibex.ru/index_ru.html

monk ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Но он же даже с X’ами хочет статически линковаться и огорчается, что это слишком сложно и приходится допускать динамическое связывание.

Зачем линковаться с иксами хоть статически, хоть динамически? Иксы вообще-то в клиент-серверной модели работают через IPC. К ним никто не линкуется, а посылают пакеты через сокет.

wandrien ★★★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от monk

Динамическую библиотеку действительно необходимо использовать в двух случаях:

  1. Если пользователь может дать команду подгрузить подключаемые модули, которые могут быть даже написаны после программы. Тогда dlopen/modprobe/…

  2. Если программа пишется для разных ОС с идентичным API, но разными действиями по командам этого API, и должна распространяться одним бинарником (как в MS Windows программа для Win95 благодаря динамической линковке успешно работает в Win11). Для Linux неактуально.

В остальных случаях от них больше вреда, чем пользы, но так как авторы GLibc сломали статическую линковку, а авторы остальных распространённых библиотек опираются на Glibc, то выбора практически нет.

monk ★★★★★
()
Ответ на: комментарий от wandrien

Чтобы отправляемые команды не самому писать, а через XLib функции дёргать.

monk ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Но он же даже с X’ами хочет статически линковаться и огорчается, что это слишком сложно и приходится допускать динамическое связывание.

Это где огорчается? Люди пишут, что при помощи напильника и чьей-то матери всё работает: https://www.cyberforum.ru/qt/thread2472880.html

monk ★★★★★
()
Ответ на: комментарий от monk

Причём пользователь считает, что ты виноват в том, что у него кривая библиотека.

И совершенно справедливо: если ты не осилил нормальное описание зависимостей и пакетирование, то ты не профессиональный разработчик, а фанбой Столярика какой-то просто.

zabbal ★★★★☆
()
Ответ на: комментарий от zabbal

И совершенно справедливо: если ты не осилил нормальное описание зависимостей и пакетирование

Там нормальное описание зависимостей: требуется libc.so.6. Вообще, под одним именем делать библиотеки с разным API не следует.

И предположим, что сделан нормальный пакет deb и в нём стоит зависимость libc6 <= 2.2 Как это поможет пользователю?

При том, что статически слинкованная версия работает без проблем.

monk ★★★★★
()
Ответ на: комментарий от monk

сделан нормальный пакет deb и в нём стоит зависимость libc6 <= 2.2 Как это поможет пользователю?

Концепцию QA адептам Столярика тоже разжёвывать надо? Ты в профессию на четвереньках что-ли входил?

zabbal ★★★★☆
()
Ответ на: комментарий от monk

На него уже с десяток человек в этом обсуждении плюнули, он не понимает, каким клоуном себя выставил. Вы тоже хотите с ним пообщаться?

VIT ★★
()
Ответ на: комментарий от monk

Поясни, что имеешь в виду?

Единственный вариант как достичь описанного тобой это собрать deb вообще его не тестируя.

zabbal ★★★★☆
()
Ответ на: комментарий от anonymous_incognito

Вот то, что он стал

Временные рамки не хочешь уточнить?

Так-то я живьём наблюдал последствия его профессиональной деятельности во всё ещё лихом 1999-ом.

frob ★★★★★
()
Ответ на: комментарий от zabbal

Единственный вариант как достичь описанного тобой это собрать deb вообще его не тестируя.

В смысле? Он успешно протестирован на всех версиях glibc до 2.2 включительно (вот кстати, ещё один недостаток динамической линковки, или тестировать на всех или писать libc6 = 2.2). Затем собран и выложен с ограничением, показывающим протестированные версии.

monk ★★★★★
()
Ответ на: комментарий от VIT

Клоуны иногда выдают полезную информацию. Например, Луговский и Эдди очень полезную информацию выдавали.

monk ★★★★★
()
Ответ на: комментарий от VIT

Правда ни Виталик ни тем более Эдик клоунами никогда не были. Один просто был шпаной, а Эдик дурачился. Но это к делу не относится.

VIT ★★
()
Ответ на: комментарий от VIT

Иногда были. Иногда изображали. Иногда не были. Но это действительно к делу не относится.

monk ★★★★★
()
Ответ на: комментарий от frob

Временные рамки не хочешь уточнить?

Я ему не биограф, не психоаналитик и тем более не судья, просто замечу, что с некоторых пор с ним всё менее возможно поспорить на профессиональные темы. Может быть всегда трудно было, но особенно после прекращения преподавания в МГУ в 2022-м стал окукливаться от несогласного мнения, даже если позиция вызывает у людей изумление, вроде его утверждений (в 2025-м году!) о малополезности многоядерных процессоров и даже вызывающей дебильности их придумывания, каких-то очень чудных воззрений на применимость СУБД, считание дебильным или вредным наличия сборщика мусора в императивных языках (ага, Java и C# ненужны, но Lisp и сборщик мусора в нём допустимы или он лисп императивным не считает? хз) и много чего ещё, что в концентрированном виде выразил в http://rebuildworld.net/manifesto.html и http://rebuildworld.net/taboo/

Так-то я живьём наблюдал последствия его профессиональной деятельности во всё ещё лихом 1999-ом.

Положительные или отрицательные последствия?

anonymous_incognito ★★★★★
()
Ответ на: комментарий от wandrien

Зачем линковаться с иксами хоть статически, хоть динамически? Иксы вообще-то в клиент-серверной модели работают через IPC. К ним никто не линкуется, а посылают пакеты через сокет.

Ниже monk ответил уже: чтобы не писать самому работу с пакетами и сокетами.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от monk

Это где огорчается? Люди пишут, что при помощи напильника и чьей-то матери всё работает: https://www.cyberforum.ru/qt/thread2472880.html

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

anonymous_incognito ★★★★★
()
Ответ на: комментарий от wandrien

Ну я так и понял, что вы оба не отличаете библиотеку и сервер

Что-то я уже не понял кто что понял и не понял =) Можно вручную всё сделать, но всё же мне казалось, что в своей программе, использующей для графики X11/X.org хотя бы к Xlib (libX11) надо прилинковаться, #include <X11/Xlib.h> и потом что-то вроде gcc example.c -o -lX11 -lXext написать.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

Можно что угодно, Иксы-то при чем.) Иксы - это оконный сервер. Они вообще на другой машине могут быть запущены.

wandrien ★★★★
()
Ответ на: комментарий от wandrien

Можно что угодно, Иксы-то при чем.) Иксы - это оконный сервер. Они вообще на другой машине могут быть запущены.

Кроме X Server бывает ещё XLib. И то и то по-русски Иксы (также, как по-русски Линукс и ядро и дистрибутив). При чём тут сервер к обсуждению линковки?

monk ★★★★★
()
Ответ на: комментарий от monk

Нет, не по-русски и не по еще каковски. Это по-неграмотному.

xlib - это xlib, xcb - это xcb, Иксы - это Иксы.

Ты бы еще к веб-серверу через HTTP+JSON «прилинковался».

wandrien ★★★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

считает допустимым исключение из требований статической линковки для glibc и как раз иксов.

Я так понимаю, это не столько про сложность, сколько про допустимость. Как в GPL есть исключение для системных библиотек, так и линковка с glibc и Xlib подразумевает использование API операционной системы.

monk ★★★★★
()
Ответ на: комментарий от monk

Кроме X Server бывает ещё XLib. И то и то по-русски Иксы

Я думаю, многие тут это первый раз слышат

James_Holden ★★★★★
()
Ответ на: комментарий от wandrien

Что за обсуждение, у одного на термин «побочные эффекты» лицензия, у другого на «Иксы»…

Ты бы еще к веб-серверу через HTTP+JSON «прилинковался».

Если бы речь была про libnginx, то была бы речь про линковку к веб-серверу. С чего ты взял, что утверждением «даже с X’ами хочет статически линковаться» описывается подключение к серверу X по протоколу X?

Линковку к веб-серверу ты тоже представляешь исключительно по HTTP?

monk ★★★★★
()
Ответ на: комментарий от monk

Лицензии на владение родным языком не существует, а жаль: а то некоторых стоило бы отправить на дополнительные курсы.

wandrien ★★★★
()
Ответ на: комментарий от zabbal

Более того, я даже читал книжку (с картинками) которая так и называлась The Art of Computer Programming

Я не ставил бы в один ряд классику вроде «Война и мир» и бульварное чтиво вроде Донцовой, но хотелось бы увидеть прямые ссылки на высказывания Кнута где бы он оправдывал программирование ради самого программирования.

bugfixer ★★★★★
()
Ответ на: комментарий от wandrien

Так что ж ты ведёшь себя так, словно твоё личное мнение по поводу значения слова является единственно верным?

monk ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)