LINUX.ORG.RU

Переиздание книг Столярова по программированию

 


9

4

Скандально известный на ЛОРе Андрей Викторович Столяров выпустил новое издание своего учебного пособия «Программирование: введение в профессию» и обновил PDF-версии:
«Азы программирования»
«Системы и сети»
«Парадигмы»
В новом издании 4-томник стал 3-томником.

Как и предыдущее издание, новое использует странную кодировку текста, но если вы не пользуетесь преимуществами электронных книг, разницы не заметите. Книга будет полезна начинающим изучать программирование.

>>> Сайт автора

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Zhbert (всего исправлений: 3)

Ответ на: комментарий от liksys

И как же он уродует мышление?

Ты всерьёз думаешь, что я с тобой буду что-то обсуждать?

Ответ на вопрос содержится в вышеупомянутом параграфе, если что.

Croco ★★★
()

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

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

Ты всерьёз думаешь, что я с тобой буду что-то обсуждать?

Почему нет? Чтобы профессор с регалиями боялся обсуждать свои труды? Как-то это не круто.

Ответ на вопрос содержится в вышеупомянутом параграфе, если что.

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

Если у тебя цель продемонстрировать парадигму, то ты можешь сделать это и без паскаля.

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

5 килобайт

Там 11,5 страниц мелкого шрифта, то есть это килобайт 25 примерно

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

нет никакого четвёртого тома в разработке и не будет. Понятия не имею, откуда автор новости это взял.

http://www.stolyarov.info/books/programming_intro/contents.html

Сейчас, когда три тома уже вышли, а работа над четвёртым вроде бы находится в наиболее активной фазе

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

Сейчас, когда три тома уже вышли,

А ничего, что там ссылка на «новость», датированную ноябрём 2018? Разумеется, это текст эпохи первого издания, которое, да, было четырёхтомным. Этот четвёртый том благополучно вышел в марте 2020, после чего, поскольку первые два были уже год как распроданы, мне пришлось срочно форсировать второе издание. В ходе его подготовки вместо трёх тонких томов и одного толстого было сделано три одинаковых по толщине. Четвёртый превратился в третий.

Croco ★★★
()

Начал читать книгу. Мне нравится. Читать её интереснее, чем 99% комменторов лора, причём я так сразу и не вспомню оставшийся 1%.

Что касается защиты... я вот думал, что разные кикстартеры нужны для того, чтобы автор мог собрать денег, сделать нужное и потом либо открыть исходники, либо хотя бы раздавать бесплатно. Я и не думал, что это про то, что автор собирает денег для того, чтобы потом это продавать. А тут книга за донаты, выложена бесплатно... а что касается слоёв, то моя читалка по функциональности не сильно отличается от бумажной книги :) и про слои не знает.

В общем, от меня только спасибо за такие книги и за бесплатный доступ к ним.

alt-tab-let ★★
()
Ответ на: комментарий от zer0cat

Зачем студентам учить ООП?

Шаблоны сам до сих пор не осилю. Итераторы, классы, готовые вещи из stl кое-как пытался применить, когда внезапно требовалось что-то мелкое написать раз в пятилетку.

grem ★★★★★
()

ИМХО, автор - умелый манипулятор и тролль. Если его цель - популяризовать своё творчество, он её успешно добился.

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

Я согласен с автором, что начинать обучение с сишечки - это плохая практика, очень плохая. Довольно таки уродский инструмент по сравнению с имеющимися альтернативами. Будь моя воля - я бы вообще похоронил это убожество 30-ти, или сколько там, летней давности. Да, оно всё ещё популярно, да, на нём пишет большое количество людей. Но это зачастую, скорее, инерция, чем реальная необходимость, ИМХО. Конечно, наверняка есть ещё области, где альтернативы Си пока нет. Надеюсь, однако, что это ненадолго.

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

Он не может скопировать, кодировка не позволяет! :)))

А если серьёзно, там форматированный текст, здесь придётся его форматировать заново, слишком много чести для троллей.

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

Всем уже пофиг: срач случился и то, что в новости существенная фактическая ошибка, никого не волнует, потому что подтверждали её не для информации, а ради возможности анонимам ЛОРа самоутвердиться за счёт автора и друг друга.

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

И если человек успешно решает поставленную задачу
Будь моя воля - я бы вообще похоронил это убожество 30-ти, или сколько там, летней давности

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

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

у того же abc.pascal довольно большое сообщество и много пользователей, и большинство из них как раз начинающие. По вашему их силой туда загоняют?

Можно сказать, что на PascalABC как раз таки силой загоняют. Его обязывают использовать в каких-то курсах программирования. Всё его сообщество - это студенты и школьники, которым приходится пользоваться этим паскалем. Может, конечно, это и к лучшему. Там, где сейчас PascalABC, ещё 10 лет назад вообще Turbo Pascal был.

И уж точно они знают о существовании Си

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

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

ИМХО, автор - умелый манипулятор и тролль. Если его цель - популяризовать своё творчество, он её успешно добился.

Ну да, школотронов зацепить просто. Не удивлюсь, если он ещё и пеналы у них забирает на переменке. Просто для смеха. Правда умение для этого не нужно – ты просто больше и знаешь больше, вот и всё.

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

у того же abc.pascal довольно большое сообщество и много пользователей

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

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

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

Последний раз работал с сишечкой лет двадцать назад. И, слава богу, больше не приходилось.

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

Инертность нашей системы образования удручает.

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

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

что большинство практиков говорят, что паскаль - пустая трата времени, и сишка легко осваивается, с пруфами.

Это ошибка выжившего

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

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

Многие факультеты начинают обучать с сишки, и ничего, люди учатся.

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

Многие факультеты начинают обучать с сишки, и ничего, люди учатся.

Ога, знаю я как они «учатся». На мехмате начинают с Сишки, при этом очередь пересдач «практикума на ЭВМ» одна из самых больших среди всех дисциплин. Людям проще освоить матан чем сишку.

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

Значит надо отразить это в тексте заметки.

Да, согласен. Сейчас сделаю.

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

самоутвердиться за счёт автора

ой да ладно :-) Если им так нравится демонстрировать пируэты на этой своей анально-реактивной тяге, пусть их летают. Главное, чтоб фамилию не перепутали.

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

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

ИМХО, автор - умелый манипулятор и тролль. Если его цель - популяризовать своё творчество, он её успешно добился.

Тут есть одна сложность: я вообще в этот раз активных действий не предпринимал, всё сделали за меня. Я-то в тред пришёл на 11й странице.

наверняка есть ещё области, где альтернативы Си пока нет.

Такая область ровно одна: программирование на голом железе. Ядра операционных систем и прошивки микроконтроллеров. Тут или Си, или асм, но для асма жизнь как-то слишком уж коротка.

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

Надеюсь, однако, что это ненадолго.

Когда-то и я на это надеялся. Сейчас уже перестал. Судя по тому, как выглядят все попытки создания замены сишечки (из последнего самое наглядное – Раст), в мире нет никого, кто бы понимал, как такая замена должна выглядеть.

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

Можно сказать, что на PascalABC как раз таки силой загоняют.

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

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

Раньше так и было, сейчас там большинство это молодняк.

Инертность нашей системы образования удручает.

В штатах в большинстве школ я так понимаю С ?

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

Учат НЕ Паскалю, учат АЛГОРИТМАМ и структурам данных.

Учёбу алгоритмам надо закреплять практикой, закреплять можно на чём угодно, хоть на Лого, хоть на Scrath`е, хоть на Бейсике с Паскалем и тут Си ничем не хуже.

Только всё мной перечисленное - лишний, не нужный мёртвый груз, кроме Си. Вот о чём речь, но адептам секты Паскаля этого не понять.

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

Это зависит от того как преподавать.

Вы хоть представляете себе, сколько учащихся не могут уразуметь разницу между read и write?

Этим уже ничего не поможет - попали в ВУЗ по ошибке.

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

Самое забавное в этой ситуации то, что большинство практиков говорят, что паскаль - пустая трата времени, и сишка легко осваивается, с пруфами

Практиков чего? Практик освоения сишечки? Опять подмена понятий.

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

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

Практиков чего? Практик освоения сишечки?

Опять подмена понятий.

Сам придумал - сам опроверг. Тебе уже объясняли в два горла, иди перечитывай все обоснования, пока не дойдет.

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

Есть куча не ASCII кодировок. Windows 10:

chcp 37 & echo PQRST 12345| wsl hd
Active code page: 37
00000000  d7 d8 d9 e2 e3 40 f1 f2  f3 f4 f5 0d 25           |.....@......%|
0000000d
В приложениях могут использоваться нестадартные кодировки, зависящие от устройства. Например, в которых внутреннее представление цифры или буквы побитово совпадает с состоянием сегментов 8-сегментного индикатора. Или обладает какими-то нужными математическими свойствами. Или, наоборот, совсем простые, в которых 0 == '0'

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

Нельзя

можно, вместо того что бы объяснять что такое Program laba_1 объяснить что #include <stdio.h> подключает нужные функции для ввода-вывода. И так далее.

зачем, если стоит задача объяснить, что такое цикл,

Это можно объяснить и на блок схемах начиная с развёрнутого до if цикла, а закрепить уже for(;;), более того - это будет правильней, т.к. в отличие от Паскаля в цикл for не прибит гвоздями к перечислимым типам.

слишком многие решать побаловаться его «магией» и начнут отстреливать себе яйца с помощью int a=b=c=e<d=2

Если преподаватель не говорил, что «=» так же возвращает значение, которое можно где-то использовать и они сами до этого дошли - пусть стреляют:

О, сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель.
drfaust ★★★★★
()
Ответ на: комментарий от Reset

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

Одного не пойму, это как же на занятиях нужно было ушами хлопать,чтобы совсем ничего полезного из них не вынести?

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

объяснить что #include <stdio.h> подключает нужные функции для ввода-вывода.

Это неправильное объяснение и оно только запутывает.

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

Это как раз неправильно, так как только запутывает.

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

Правильно им объяснят, когда начнут конкретно язык учить. Вы же обучая АЛГОРИТМАМ не будете объяснять что такое startup-код в Паскале, или же что именно делает uses CRT - ведь вы же обучаете ТОЛЬКО АЛГОРИТМАМ?

Это как раз неправильно, так как только запутывает.

Общая форма цикла запутывает, или мы циклы будем недообъяснять, а так поверхностно?

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

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

Лучше никак не объяснять, чем говорить чушь.

uses CRT - ведь вы же обучаете ТОЛЬКО АЛГОРИТМАМ?

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

Общая форма цикла запутывает, или мы циклы будем недообъяснять, а так поверхностно?

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

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

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

Из тех, кто очищает экран, что бы вывести транспонированную матрицу.

а «общность» формы даже если объяснять, она в одно ухо влетит, а из другого вылетит.

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

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

Из тех, кто очищает экран, что бы вывести транспонированную матрицу.

Зачем его очищать? uses crt это последнее что нужно при обучении паскалю.

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

Цикл while. Через него можно сделать все сложные случаи.

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

Зачем его очищать?

Хорошо, матрица - неудачно. А насчёт вполне реальных лаб «нарисовать график функции». Причём что такое uses Graph нам никто не объяснял (знали единицы) - рисовали в текстовом режиме «звёздочками», и ассистенты, принимающе лабы на это не обращали внимания, главное есть цикл, есть вычисления.

Цикл while. Через него можно сделать все сложные случаи.

Все сложные случаи в таком разе делаются через if->then->else+goto, и при объяснении циклов в эту связку как раз и надо разворачивать цикл, что бы студен понял где, и что на самом деле делается.

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

Объясняем студенту переменные:

– Представим, что ячейка памяти вот эта коробочка. Назовём её x. Вторую назовём y. Положим в коробочку x 2 яблока, т.е. сделаем присвоение x = 2. Теперь сделаем присвоение y = x. Сколько яблок лежит в каждой коробке? ….

Слушаем варианты ответов:
– В коробке y 0 яблок, мы туда ничего не положили, я сам видел.
– В коробке y 2 яблока, т.к. их переложили из коробки x, а в коробке x нет яблок.
– В коробке y 2 яблока, а в коробке x бесконечное число, но за раз можно вытащить только 2.
– Тогда и в коробке y теперь бесконечное число, а за раз можно вытащить 2 яблока.

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

А насчёт вполне реальных лаб «нарисовать график функции»

Вывести числа и нарисовать в gnuplot. Вообще uses и include это принципиально разные вещи. В связке с include идут еще ключи линковщика, которые никак не связаны с именем файла в include. Да и сам include в Си тоже делать не обязательно.

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

Поржал, спасибо.

– Представим, что ячейка памяти вот эта коробочка.

Если обсудить этот анекдот, то именно в этой фразе заключается ошибка препода - сравнить «память» с «коробкой», объяснить «присвоение» фразой «положим», когда надо говорить «скопируем/клонируем» 2 яблока из кармана. и т.д.

Но это конечно не для студентов - может для 3-5 класса (сейчас я не смогу сориентироваться, т.к. что и в каком классе изучается, т.к. «Слава реформам!!! Слава ЕГЭ!!! Слава Фурсенко!!!»)

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

Вывести числа и нарисовать в gnuplot

Ага. #include / uses Crt объяснить - запутает/усложнит/не_смогут, а объяснить, хоть и в зачаточной стадии gnuplot - нет.

Вообще uses и include это принципиально разные вещи. В связке с include идут еще ключи линковщика, которые никак не связаны с именем файла в include. Да и сам include в Си тоже делать не обязательно.

Прекрасно знаю что и почём. Сам когда-то писал TPLки для BP7.

Вот только на начальном этапе для обучения, как тут утверждают «АЛГОРИТМАМ» хватит и простых объяснений вроде:

  1. uses Crt - «подключаем набор функций в котором есть ….»
  2. #include <stdio.h> - «подключаем набор функций в котором есть ….»
drfaust ★★★★★
()
Ответ на: комментарий от drfaust

Ага. #include / uses Crt объяснить - запутает/усложнит/не_смогут, а объяснить, хоть и в зачаточной стадии gnuplot - нет.

Чтобы объяснить #include надо прочитать лекцию на час, в отличие от uses crt.

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

#include <stdio.h> - «подключаем набор функций в котором есть ….»

Еще раз, это неправда! include stdio не подключает какие-либо функции. Зачем вводить студентов в заблуждение? Они потом такое скажут на собеседовании и опозорятся, а у них еще после этого спросят кто их учил.

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

Чтобы объяснить #include надо прочитать лекцию на час, в отличие от uses crt.

Для обучения «АЛГОРИТМАМ» этого не надо. Про линковку и препроцессор тоже не надо, т.к. функции из stdio/stdlib находятся в libc линкующейся автоматом.

Знания gnuplot или аналогов помогут в будущем

Зачаточные знания Си для цели «обучения АЛГОРИТМАМ» помогут в будущем. Знания Паскаля в будущем ненужно.

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

Они потом такое скажут на собеседовании и опозорятся, а у них еще после этого спросят кто их учил.

С чего ты взял, что это обяснение предлагается оставить до самого выпуска? Оно канает в первом приближении, пока студент учится писать АЛГОРИТМЫ в однофайловых программах. Когда дойдет до многофайловых (чему будет посвящено отдельное занятие, очевидно), ему нужно объяснить про хедеры и линковку.

Хоспаде, что только паскаль-фанбои не придумают, лишь бы защитить свою вайфу. Ты тред вообще читал? Я десять раз уже объяснял это и разжевывал порядок обучения сишке.

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

Для обучения «АЛГОРИТМАМ» этого не надо.

Тогда и Си рассказывать не надо вообще. Либо не рассказывать вообще либо рассказывать нормально. На кой хрен студентам рассказывать заведомую ложь? Ты можешь ответить на этот вопрос?

Зачаточные знания Си для цели «обучения АЛГОРИТМАМ» помогут в будущем. Знания Паскаля в будущем ненужно.

С чего ты взял? Помогут еще как.

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

С чего ты взял, что это обяснение предлагается оставить до самого выпуска?

Еще раз, это НЕ объяснение, а заведомая ЛОЖЬ!

Оно канает в первом приближении

Среди гопоты, «базарящей» на «фене» оно может быть и «канает».

Я десять раз уже объяснял это и разжевывал порядок обучения сишке.

Ты где преподаешь и какой у тебя стаж?

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

На кой хрен студентам рассказывать заведомую ложь?

С такой логикой F=m*a - тоже ложь, потому что сам Ньютон записал свой закон в дифференциальной форме.

Допустимое упрощение и опущение деталей применяется в образовании повсеместно.

liksys ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.