LINUX.ORG.RU

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

 , , ,

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

3

4

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

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

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

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

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

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

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

★★★★★

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

Ну так если компилятор не оптимизирует, то это менее эффективно

Если бы компилятор не оптимизировал while (*p++ = *q++) в strcpy/memcpy, он был бы настолько же медленным, как и любая другая форма ручного цикла :)

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

с какой стороны посмотреть. ведь они создавали наш прекрасный современный мир уже тогда

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

Конечно не надо, у тебя тут три скобки потерялись и одна лишняя вылезла.

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

Если бы компилятор не оптимизировал while (*p++ = *q++) в strcpy/memcpy

Чё ? Если не брать современные реализации libc оптимизирующих код векторными командами процессора, то каноническая реализация функции strcpy как раз и выглядит как while (*p++ = *q++) Вы как 2 звезды заработали ? Копипастой чужих статей ?

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

Тогда как пример с while — это просто чистая случайность, в которой удачно сошлись все пазлы.

Нет, никакая это не случайность. То, что строки терминируются нулём, как минимум частично обосновано тем что сравнить с нулём (на ассемблере) проще чем сравнить с другим числом. То, что с нулём сравнить проще и в Си тоже - опять не случайность. То, что операторы ++ работают симметрично и к p и к q так это вообще дизайн языка. Так что - никаких случайностей.

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

По-моему современные компиляторы оптимизируют и while(*p++=*q++) и for(i=0; p[i]; i++) p[i]=q[i]; p[i]=q[i];. Проблема тут не в скорости выполнения, а в том что второй вариант выглядит ужасно.

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

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

там еще перед этим было про «гол»... :о)

Ну, то, что «было», запрещено правилами этого форума... ;))

Но я помню, да. :))))

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

Самое главное в обучении - это репутация, доверие ученика учителю

Нет. Это важное качество преподавателя, но не самое главное.

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

Не секрет, что бывают довольно талантливые, а то и гениальные, ученые, которые не могут «поделиться» своими знаниями даже с коллегами, с людьми примерно их уровня, а не то что с «чайниками». Они - ученые, но они не умеют учить... Они - НЕ преподаватели. Один такой «учил» меня «вышке»... Это был просто «ПЦ какой-то»... а перед ним, годом раньше, была дама, которая за месяц сессии - лекций и «практики» - смогла «вложить в бошки» целому потоку студентов-заочников материал, который они «очень успешно не учили и не усвоили самостоятельно» за весь предыдущий год. Башка у всех трещала, но даже самые «тупые» сдали экзамен... Вот она была «учителем от Бога»!..

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

это уже задача для обучаемого - на зачете-экзамене изложить так, чтобы препод понял

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

на второй год преподавания уже будешь «в теме»

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

Если бы компилятор не оптимизировал while (*p++ = *q++) в strcpy/memcpy, он был бы настолько же медленным, как и любая другая форма ручного цикла :)

Эвона как. Вы хотя бы один делающий так видели? Мне не удалось ничего даже близкого к libc’шному strcpy() добиться, или хотя бы заставить компилятор дёрнуть за него. Максимум эффекта было от -funroll-all-loops, и всё равно очень далеко от желаемого. Может я не понимаю чего…

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

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

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

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

Не нужно всё знать самому, нужно знать где и что искать

Это популярное ныне заблуждение... :))

Ну, знаете вы, «где искать», и что? Что, где и, главное, КАК вы будете «искать», например, при более-менее серьёзном отключении электроэнергии??.. ;))

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

Так что «то такое»... не стоит слепо рассчитывать, что «мы в интернете всё найдём». Его (интернете) легко и быстро, а главное - внезапно! - может «вдруг» не стать...

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

электричества нет, паяльники в жо потерялись, друзей забрала фсб

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

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

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

Плохо, осталось паять радио на 160 метров, друзья-радиолюбители всегда помогут

Вот только и радио может «вдруг» перестать работать... ;)

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

В мою бытность существовал межбиблиотечный обмен. Заказываешь книгу по каталогу из большинства серьёзных библиотек. Через неделю приходит. А уже здесь, в США, мне как-то по работе понадобилась книжка по атомным делам издания одного института в Вильнюсе, какого-то 1970 года издания, так что вы думаете? Нашли! Знаете где? В библиотеке Конгресса. Прислали, новенькая! Тираж 5000 экземпляров.

Надо уметь искать! Спасибо учителям.

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

К этому моменту у вас должны быть «очень серьёзные проблемы» и уже точно не до знаний

Знания могут помочь выжить. А могут и не помочь, если их нет «при себе»..

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

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

Он сразу сказал, что живёт в сложном месте с не очень развитой инфраструктурой. Я догадываюсь, что в таких местах будет сложно найти Астрономический журнал Университета Чикаго за май 1975 года. Вопрос «зачем этот журнал может в таких местах понадобиться» оставим до лучших времён. :)

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

В мою бытность существовал межбиблиотечный обмен

Да, помню такое. Но это для «обычной», «неспешной» жизни. И потом, «правильная» литература, насколько я знаю, «вымывается2 или уже „вымыта“ из библиотек повсюду. Неоткуда заказывать...

Надо уметь искать!

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

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

Я согласен с этим, но мне всё-таки хочется жить не рядом с вулканом. Отвык уже от этих экстримов, забываться начали.

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

Я догадываюсь, что в таких местах будет сложно найти Астрономический журнал Университета Чикаго за май 1975 года

100% :)

Такой литературы в этих краях не водилось никогда.

У меня были подшивки английского журнала «Electronics & Wireless World», репринтное издание ещё времён СССР, но их давно уже нет, да и толку от них особого не было даже «тогда»...

В общем, «Спасение утопающих дело рук самих утопающих»... :)

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

мне всё-таки хочется жить не рядом с вулканом

Ну, жить хочется всем. Но вулкан может «внезапно» возникнуть и там, где вулканов никогда не было... ;))

Отвык уже от этих экстримов, забываться начали

И напрасно... ;)

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

Мы уже очень отклонились от темы. Знания всё-таки сила, и несмотря ни на что, лучше быть грамотным и умным в «еб..» эээ далеко от цивилизации, чем тупым необразованным дебилом в Москве или Нью-Йорке. Даже несмотря на то, что дебилом проще жить. Учиться надо, и учителя, которое тоже люди со всеми присущими людям недостатками, играют в этом ключевую роль.

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

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

Ну и что плохого в том, что нужно помнить приоритет? И смысл в том, что в общем случае не надо писать так, чтобы в заголовке цикла, условия или правой части присваивания было что-то кроме проверки условия. Как это сформулировать?

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

Лиспом нынче только Common называется

Но ведь если бы существовал только один лисп, приставка Common ему не была бы нужна, не так ли? Зачем она, если других лиспов не существует.

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