LINUX.ORG.RU

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

 , , ,

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

3

4

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

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

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

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

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

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

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

★★★★★

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

у АСМ есть замечательная серия история CS/EE так вот

в мире было не только юсэйка юссарка так что вы буквально речекрякаете

реальное «отставание» в частности проявилось в ис бис сбис

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

ваще история знает много гитик

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

А какое это число, если не десятичное?

Думай, голова, думай, ты сможешь))

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

вообще комплексная карусель

Мне нравится эта идея. Если что-то новое стало запланировано - увеличиваем мнимую часть. Если реализовано - увеличиваем реальную.

Saakx
()
Ответ на: комментарий от Manhunt

там ещё более лольно случилось

если ЭНИАК был во многом ожелезованием стада вычислительниц + некая эстафета которая синхронизирует и создаёт иллюзию последовательного вычисления

то на «Западе» в дальнейшем в основном ушли в последовательное (хотя очевидно SAGE то ещё чудо юдо ) большое числодробление + dumb терминалы (Утилити которое multics а до большие imb/360)

-то в тут решая более оборонные чем коммерческие задачи многократно и с развитием воплощали SAGEподобное на более проверенных(и временем и приёмкой) элементах

крч отстование если и было то в идеологии - в прочем у ВИЛ ещё в ~1920 статье прямо было сказано о временном авангарде РСФСР :)

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

ну можно всёж прикрутить прокрусто-линтер что бы функции были чистыми (ака прозрачными по ссылкам)

а всю императивщину оставить в процедурах

чисто из эстетства

ps. т.е. функции целенаправленно писать иммутабельно а чекать чисто для поверхностного — в таком виде практика(дисциплина программирования :) ) - засинтесизируется с теорией :)

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

А что, в C реально нельзя объявить указатель на указатель на функцию? Никогда не пробовал.

Можно, конечно.

// Указатель на указатель на функцию, принимающую пару double и возвращающую int
int (**ptr2)(double, double);
wandrien ★★★★
()
Ответ на: комментарий от wandrien

Эту хрень даже кто-то на 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.»

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

код версии в общем виде строка на которой по возможности есть лексикографический порядок - а более точно лексикографический порядок на полях - поэтому и полезен символ разделитель(обычно точка(одна и более) - али у особо одарённых вот запнутая)

например на этом свойстве можно быстро считать дельту в полных годах если дата в виде YYYY_MM|DD - отфильтровав разделители,вычтя и сдвинув до лет получаем полное число лет

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

Кстати, забавно было бы развернуть сайт на локальной машине и сделать стресс тест его движку, чтобы посмотреть на эффективность алгоритмов.

А то вдруг «гуру»… того…

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

меня бОльше удивляет то, что «стандартные» средства языка - вот так вот за здорово живешь «называют вредными».

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

p.s.

http://rebuildworld.net/ - где расписано

ну вы даете, взять и весь «блог» перечитать?! спасибо!
если вы про монифест:

http://rebuildworld.net/manifesto.html

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

все таки - от себя что-то прокомментируете по поводу вредных операторов?

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

keyutils.c:96–115 — Флаг seeded инициализирован в 0, но нигде не выставляется в 1 после первого seed’а. В результате PRNG re-seed’ится из одних и тех же фиксированных констант (v = 4101842887655102017LL, w = 1) при каждом вызове. Последовательность fill_noise, rand_from_range, comctx_fill_nonce становится детерминистической. Это критически влияет на генерацию nonce’ов.

Шикарно.

Я так понимаю, тесты писать - для слабаков.

wandrien ★★★★
()

Кстати, а гуру что-то пишет в своих книгах про тесты?

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

Чего не китайского, египетского, древнешумерского? Это неуважение к древним цивилизациям.

Ну ты хотя бы додумался обозначать неизвестные русскими буквами?

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

"После того как MIT похоронил SICP в пользу питона, подобные ссылки на авторитет учебных заведений окончательно утратили смысл. Замечу, это было чуть ли не двадцать лет назад. " (c) А.В. Столяров

Непрофессионально написано. Профессионально - это вписывать даты и цитировать источники. Не примерно 20 лет назад, а точную дату, и ссылку на публикацию-новость о смене.

Saakx
()
Ответ на: комментарий от sunjob

меня бОльше удивляет то, что «стандартные» средства языка - вот так вот за здорово живешь «называют вредными».

А автор считает стандарты как таковые вредными. И я склонен с ним согласиться, поскольку в юникод запихали эмодзи, а в HTML средства DRM.

я всего лишь хотел услышать ваше мнение

Я не копался в кишках C++, поэтому у меня нет какого-то определенного мнения. Ещё можешь посмотреть http://stolyarov.info/faq.html

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

Много в чём копался, но мне для всех нужд хватало чистого C, а плюсы я по верхам почитал и всё.

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

ты думаешь, что надо обязательно воткнуть СУБД для хранения любых данных?

Да. Если есть слово «хранения», значит есть хранители.
А их учили именно БД бекапить, а не что-то другое.

Saakx
()
Ответ на: комментарий от Xenius

Да я уже понял, как ты копался в Tcl, в C++, в Питоне и прочие твои перлы.

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

Ещё можешь посмотреть http://stolyarov.info/faq.html

я со столяровым «достаточно» знаком ... :о)

А автор считает стандарты как таковые вредными

нельзя вот так-вот налево-направо махать шашкой и рубить все в капусту... (может и за это «любят» его на лоре?! :о)

и еще раз:

А автор считает

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

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 2)

Специально посмотрел что он там про IPv6 пишет. И прямо угадал. Про него он не забыл. При этом успел рассказать, что IPv4 «белые» сейчас даже не все провайдеры выдают своим клиентам и все сидят за CGNAT. Однако всё равно делает вывод, что IPv4 хватит всем, а IPv6 ненужная фигня и не взлетит. Возможно текст устаревший, потому что говорить так в 2026 году, когда у гугля трафик IPv6 перевалил за 50%, довольно странно. Могу предложить автору переработать этот раздел. Да и, как человеку, знающему о том, как работает IPv4 изучить IPv6 вообще не проблема. Там всё знакомо. Даже ICMP есть аналогичный, выкинуты старые неэффективные механизмы, упрощена конфигурация сети. И наконец-то можно забыть об этих дурацких вычислениях кому сколько IPv4 адресов выделить в сети. Маска во всех сетях одна и там всегда достаточно адресов для всех. А на транзитных узлах на стыках между ними вообще не нужно ничего выделять, там достаточно link-local адресации, которая по умолчанию есть на любом хосте с IPv6. Надеюсь автор доработает свой учебник.

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

А вот БЭСМ ни в чём таком замечен не был и клепал его совок почти до самой своей кончины

БЭСМ-6 для своего времени был вполне норм, а БЭСМ-10 был зарезан политическим решением:
"Зимой 1972 года Сергей Алексеевич лежал с воспалением легких, когда узнал, что решение копировать американскую машину принято окончательно. Он встал с постели и отправился к министру, чтобы убедить его не совершать ошибку, которая отбросит страну на годы назад. Лебедев прождал в приемной больше часа. Министр его не принял."

видимо не от хорошей жизни

Мне сложно судить. Может, на самом деле экономически не тянули. А может, дело было в невменяемой политической борьбе наверху, когда принимаются неоптимальные решения, по такой логике, что лишь бы придушить оппонента, а на объект управления как-нибудь переживёт, too big to fail.

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

Автор пишет свой IPv6 роутер FEDA если что. Хз насколько он нужный, в деталях не копался, но факт что он на v6 как раз.

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

надо просто иметь свое мнение на базе своих-же наработок

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

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

там случился (как оказалось так то идея вполне)кидок через мания конвергенции и в частности еврокоммунизма как очередная Европа от лисабона до владика - забавно именно «низкопоклонство перед Западом(скорее старой Европкой)» новиопнуло совок :(

см знаменитое(в некоторых кругах) письмо открытое

Турчин Медведев Сахаров

в политбюро в ~1971 году

реально забавно как речекряки сожрали идеологов и реальных мочённых

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

в си/плюсах вообще без «отдельного слова» обходятся, если не считать «скобки», так они и в других языках «скобки»

И как понять

A B();

функция или переменная?

придумывать еще и разделение на function & procedure

У функции и процедуры разные назначения. Семантика. У функции что-то вычислить, а у процедуры что-то сделать. Хотя в Си и его наследниках процедура часто синтаксически оформляется как функция, чтобы вернуть ошибку.

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

до сих пор не могу с 16-ричными числами в голове спокойно работать

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

Я уверен, что ты не прилагал такого же объёма усилий на заучивание таблицы 16-ричной. Кстати, времени на неё надо больше в 2.56 раза (16*16/(10*10)).

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

а БЭСМ-10 был зарезан политическим решением:

А не надо было клепать ни с чем не совместимое оборудование. В США злые капиталисты отчего-то все стандартизировали.

pasquale
()
Ответ на: комментарий от sunjob

вот это-бы поподробнее развернуть (а то я живу и не знаю, что „тащюсь от норкоты“ :о) можно в нескольких предложениях? спасибо

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

И список функций из сишного файла вытащить достаточно нетривиально.

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

да вы не спешите, он появиться, со временем (это и есть самое ценное - опыт, кот. не приобретешь никаким иным способом) :о)

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

лол кек - история чтения в западном мире от античности до нашик дней

- печатный капитализм <- ( байка про то что современные нации следствия карты типографий которые выиграли в конкуренции и следовательно стали усилителями местного диалекта в непрерывном всеевропейском спектре)

есть фундамент есть текущий передний край - для последнее есть более эффективные инструменты информирования чем очередная пересмотренная раз за декулет редакция циркопедии

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

зы - в 2004 в БЭ был издан том Россия - будь это одним из трёх(остальное матема и «розенталь») учебников на всю среднюю школу (остальные предметы через ссылки на первоисточники) вот была бы альтернатива

как мин люди бы знали где чё на 1/8

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

У функции что-то вычислить, а у процедуры что-то сделать.

да что-же вас сегодня как прорвало с этими «вычислить/сделать»?!!!
а это не одно и тоже?!
(только вот не надо наворачивать сюда толстым слоем шоколада разработанную концепцию столярова о правильном программировании... было просто, а мы тут навалили шоколада и теперь разбирайтесь во «всем этом» :о)

И как понять

так и понимайте! вопрос из серии «разделяй и вляпствуй»? контекст вы опустили, ведь так? :о)

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

БЭСМ-10 был зарезан политическим решением

Отцы все правильно сделали. Затраты на разработку System/360 составили около 5 млрд долларов США (что соответствует 30 млрд в ценах 2005 г.). Таким образом, это был второй по стоимости проект НИОКР 1960-х годов после программы «Аполлон».

А главное «Распространение System/360 в качестве отраслевого стандарта позволило использовать одни и те же программные решения в разных компаниях.» Глупые конструкторы не понимали, что своего софта в СССР нет. А у амеров уже были ОС с виртуальной памятью, СУБД, сети и виртуальные машины.

Lusine
()
Ответ на: комментарий от Saakx

больше в 2.56 раза

повышение сложности может(скорее всего) будет рости по экспоненте :о)

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

при прочих равных

после 10тичной - особенно после полиномов от икса - основная трудность 16ричной - требования переключения регистра - мы в какой ща системе? - когда осваивать 10тичную позиционную нет(небыло ща вон в началке дитёй пугают бинарной) ваще (обычно) мысли о неединственности позиционных нотаций ( даже если упоминается римская(ща стрелко часы не так массовы))

восьми ричная проще ибо не надо путатся в буквах

будь доп_цыфры(10..15) обозначение например через 6(с тильдой сверху как 16-6 для 10) .. 1(с тильдой как 16-1) для тех же чисел после привыкания было бы проще - но тут вылазит не единственность представления и что самое главное нужны отрицательные числа предварительно нотации :)

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

ну блин ознакомся с ial а точнее algol60 вики в этом смысле достаточно

тогда жи реально было противопоставление задач вычислений(Fortran) и задач учёта(Cobol)

ps тыж в курсе что на складе после учёта есть задача движения по складу хранимых остатков :)

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

Автор пишет свой IPv6 роутер FEDA если что.

Это что-то вроде yggdrasil?

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

когда дочитаешь до скобки.

понятно. касается бОльше привычки и скорости/стиля набора (но ни как не понимания/анализа кода, удобства написания)
и это не та проблема, которая вылезит потом гемороем с «изменением» procedure-function
(с этим положением согласен только лишь в том, что «да», пока не встретишь скобку! ну, встретил, и шо? будем глазки строить или дальше кодить?! :о)

И список функций из сишного файла вытащить достаточно нетривиально

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

может что-то еще есть, за что вы не любите си/плюсы?

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

Всю дорогу этим занимались. Ту-4 это B-29 и т.д. Нахрена надо было тратить деньги и разводить зоопарк несовместимых между собой железяк непонятно.

Lusine
()
Ответ на: комментарий от sunjob

А чего сразу непонятно было, что если амеры ввалили 5 лярдов, только в НИИОКР, такие вещи силами нескольких лабораторий не сделать?

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

и конечно-же вы сидели за теми столами в то-самое время и принимали решешие за всю страну?!
сейчас рассуждать просто ... мой «коммент» был по поводу ... области а не средств.

историко/экономическая область

sunjob ★★★★★
()
Последнее исправление: sunjob (всего исправлений: 2)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.